Alexandro.Net

Download README · GitHub release

@stackline/har-validator

Compatibility-first HAR 1.2 validator with maintained packaging, browser builds, and first-party types.

npm version license GitHub repository Docs Reddit community

Documentation | npm | Issues | Repository

Current package version: 1.0.4


Why this package?

A compatibility-first maintained replacement for har-validator@5.1.5. It validates HAR 1.2 objects with the same Promise root and synchronous/callback deep API, while adding ESM, browser bundles, first-party TypeScript types, and a self-contained, compatibility-pinned Ajv 6 runtime.

This project is independent of and is not endorsed by the original maintainer. The upstream MIT license and attribution are preserved.

Compatibility

Item Value
Package @stackline/har-validator@1.0.4
Node.js runtime >=6
CommonJS / primary entry ./lib/promise.js
ES module entry ./index.mjs
Type declarations ./index.d.ts

Installation

Install

npm install @stackline/har-validator

For a migration without source changes, retain the historical key with an npm alias:

npm install har-validator@npm:@stackline/har-validator

Usage

Promise API

const validate = require('@stackline/har-validator')

await validate.har(archive)
await validate.request(request)

Each validator resolves to the exact input reference. Invalid input rejects with a HARError containing Ajv 6-compatible errors records.

The published package has no runtime, optional, or peer dependencies. The audited Ajv 6.15 runtime and the exact HAR 1.2 schemas are shipped inside the package with their complete license texts, so consumer installation does not depend on abandoned registry packages.

Browser bundlers may import the normal root and deep entries; they intentionally remain one shared module graph so errors retain identity with lib/error. A prebundled root-only entry is available as @stackline/har-validator/browser.

ESM

import validate, { har, request } from '@stackline/har-validator'

await har(archive)
await validate.request(request)

Security

Review inputs and the package-specific compatibility limits before processing untrusted data. Report suspected vulnerabilities as described in the security policy.

API Surface

Historical callback and boolean API

const validate = require('@stackline/har-validator/lib/async')

const valid = validate.request(request)
validate.request(request, (error, valid) => {
  if (error) console.error(error.errors)
})

All 18 upstream validators are preserved: afterRequest, beforeRequest, browser, cache, content, cookie, creator, entry, har, header, log, page, pageTimings, postData, query, request, response, and timings.

See COMPATIBILITY_CONTRACT.md for exact behavior, MIGRATION.md for migration choices, and SECURITY.md for supported versions and reporting. The complete dependency decision and evidence are in DEPENDENCY_REVIEW.md.

Local Development

git clone https://github.com/alexandroit/stackline-har-validator.git
cd stackline-har-validator
npm ci
npm run verify

Release tooling uses Node.js 24.20.0 and npm 11.19.0. The consumer runtime contract remains the one documented above.

Consumer Smoke Test

Run the repository's existing consumer/package check after installing development dependencies:

npm run test:smoke

Release Checklist

Run npm run verify and inspect the package contents before release. Publish a new version through the GitHub Actions publishing workflow, using the SHA-512 digest of the reviewed tarball. Verify the exact published version, tarball integrity, and npm provenance after the run.

License

MIT. See the license for the complete terms.

Original authorship and third-party attribution are preserved in NOTICE.

Credits and original authors

Original copyright, license notices and contributor acknowledgements remain part of this distribution. Stackline maintenance does not replace authorship of the original work.

Community and Links

Use this repository's issue tracker for reproducible bugs and feature requests. Join r/Stackline for examples, usage questions and release discussions.