{"_id":"@accesslint/report","_rev":"3-eb3b4215e4dc27bab59697e6c2de3261","name":"@accesslint/report","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@accesslint/report","version":"0.1.0","license":"MIT","_id":"@accesslint/report@0.1.0","maintainers":[{"name":"ckundo","email":"cameron@accesslint.com"}],"homepage":"https://github.com/AccessLint/accesslint#readme","bugs":{"url":"https://github.com/AccessLint/accesslint/issues"},"bin":{"accesslint-report":"dist/cli.js"},"dist":{"shasum":"63f25009e8067a536162af4828d16e5d68bcfea3","tarball":"https://registry.npmjs.org/@accesslint/report/-/report-0.1.0.tgz","fileCount":22,"integrity":"sha512-O8Ul0WRqkSehk5XuA7jw4FU9bdV14FOAPQ0Z3fHhoi3tec4mlH5xivcSakaKFFXvN8cxHJwNjboXZy+lD5u8FA==","signatures":[{"sig":"MEQCH2PH2fiQbUah9rE9EwtH+As/3fw4w1V+FynGzwGG6HgCIQDVynBRg9DWUMOmVay9b4JAuhJTjLFwHt5AE62nR7VufQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239815},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./history":{"import":{"types":"./dist/history.d.ts","default":"./dist/history.js"},"require":{"types":"./dist/history.d.cts","default":"./dist/history.cjs"}},"./aggregate":{"import":{"types":"./dist/aggregate.d.ts","default":"./dist/aggregate.js"},"require":{"types":"./dist/aggregate.d.cts","default":"./dist/aggregate.cjs"}}},"gitHead":"2d99099e23ceb9e6367576ecd31ff3382748cf88","scripts":{"dev":"bun src/cli.ts","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"ckundo","email":"cameron@accesslint.com"},"repository":{"url":"git+https://github.com/AccessLint/accesslint.git","type":"git","directory":"report"},"_npmVersion":"11.9.0","description":"Generate trend reports from @accesslint snapshot history","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@accesslint/core":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"citty":"^0.1.6","tsdown":"^0.21.9","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/report_0.1.0_1776538962809_0.38760287922199455","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unresolved workspace:* dep made this uninstallable; use 0.1.1+"},"0.1.1":{"name":"@accesslint/report","version":"0.1.1","license":"MIT","_id":"@accesslint/report@0.1.1","maintainers":[{"name":"ckundo","email":"cameron@accesslint.com"}],"homepage":"https://github.com/AccessLint/accesslint#readme","bugs":{"url":"https://github.com/AccessLint/accesslint/issues"},"bin":{"accesslint-report":"dist/cli.js"},"dist":{"shasum":"019433894ab8c7a070d4c412e90bbb88ff856add","tarball":"https://registry.npmjs.org/@accesslint/report/-/report-0.1.1.tgz","fileCount":22,"integrity":"sha512-lF6msUFDjAEPTmGK5c2auOfQaENj+2gFDITdOi0qcIzEBySnekM185mnoa11ebha43PEO7NcmuiLviSn4vskLg==","signatures":[{"sig":"MEQCIEv83MXGS4HDW4spOA4GXi3UEfYz8h/kQ4RBjGFKurXUAiAtk9pfxnyUWDxOJeiGALew7eJUXTHVecNc9fBX9itn2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@accesslint%2freport@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":239809},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./history":{"import":{"types":"./dist/history.d.ts","default":"./dist/history.js"},"require":{"types":"./dist/history.d.cts","default":"./dist/history.cjs"}},"./aggregate":{"import":{"types":"./dist/aggregate.d.ts","default":"./dist/aggregate.js"},"require":{"types":"./dist/aggregate.d.cts","default":"./dist/aggregate.cjs"}}},"gitHead":"26fc98e6d5ac941cb2521718946ac65bfa2c8f66","scripts":{"dev":"bun src/cli.ts","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:336d0038-c149-4c14-9a26-5e412f34adb6"}},"repository":{"url":"git+https://github.com/AccessLint/accesslint.git","type":"git","directory":"report"},"_npmVersion":"11.11.0","description":"Generate trend reports from @accesslint snapshot history","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@accesslint/core":"0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"citty":"^0.1.6","tsdown":"^0.21.9","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/report_0.1.1_1776539860726_0.22283913171300296","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-04-18T19:02:42.746Z","modified":"2026-04-18T19:20:32.119Z","0.1.0":"2026-04-18T19:02:42.939Z","0.1.1":"2026-04-18T19:17:40.880Z"},"bugs":{"url":"https://github.com/AccessLint/accesslint/issues"},"license":"MIT","homepage":"https://github.com/AccessLint/accesslint#readme","repository":{"url":"git+https://github.com/AccessLint/accesslint.git","type":"git","directory":"report"},"description":"Generate trend reports from @accesslint snapshot history","maintainers":[{"name":"ckundo","email":"cameron@accesslint.com"}],"readme":"# @accesslint/report\n\nGenerate trend reports from [`@accesslint/jest`](../jest), [`@accesslint/vitest`](../vitest), and [`@accesslint/playwright`](../playwright) snapshot history.\n\nThose packages append one NDJSON record to `accessibility-snapshots/.history.ndjson` every time a baseline is created, ratcheted down, or force-updated. This tool reads that sidecar and emits a report showing how violations have trended over time.\n\n## Usage\n\n```sh\n# Markdown (default) — good for PR comments\nnpx @accesslint/report > a11y-report.md\n\n# Single-file HTML with an SVG chart per snapshot\nnpx @accesslint/report --format html --out a11y-report.html\n\n# Raw JSON for downstream tooling\nnpx @accesslint/report --format json\n\n# Filter to a single snapshot\nnpx @accesslint/report --snapshot login-form\n\n# Point at a non-default directory\nnpx @accesslint/report --dir ./test/a11y-snapshots\n```\n\n## What's in the report\n\n- **Summary** — totals for events, snapshots, added/removed violations, and the observed window.\n- **Per-snapshot timeline** — an event log plus a stacked-area chart (HTML only) of total violations over time.\n- **Rule movement** — which rules appeared and were fixed across the history, joined to WCAG level + criterion from [`@accesslint/core`](../core).\n\n## Limits\n\n- The sidecar only records events from runs that _wrote_ the snapshot file (created / ratchet / force-update). Passing runs that matched the baseline leave no trace — they're visible in your CI logs, not here.\n- Events are classified by what the matcher saw, not by git intent. A `force-update` that adds violations means someone ran with `ACCESSLINT_UPDATE=1` or `-u`; the report surfaces that so regressions don't disappear silently.\n- Rule metadata lookups against `@accesslint/core` only succeed for built-in rules. Custom rules passed via `additionalRules` show up as `level: \"unknown\"` with empty WCAG.\n\n## Programmatic API\n\n```ts\nimport { loadAllHistory, aggregate, emitMarkdown } from \"@accesslint/report\";\n\nconst records = loadAllHistory(\"./accessibility-snapshots\");\nconst report = aggregate(records);\nconsole.log(emitMarkdown(report));\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}