{"_id":"@ariada-org/evidence-emitter","name":"@ariada-org/evidence-emitter","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@ariada-org/evidence-emitter","version":"0.1.0","description":"EAA / WCAG compliance evidence emitters — VPAT 2.5, EN 301 549 §11, Swedish DOS-lagen. Open source under EUPL-1.2.","license":"EUPL-1.2","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{},"devDependencies":{"@types/node":"^22.10.0","rimraf":"^6.0.1","typescript":"^5.7.2","vitest":"^4.1.0","eslint":"^9.17.0","@vitest/coverage-v8":"^2.1.8"},"engines":{"node":">=22"},"keywords":["accessibility","a11y","wcag","vpat","en-301-549","dos-lagen","eaa","european-accessibility-act","compliance","evidence","eupl"],"homepage":"https://ariada.org/packages/evidence-emitter","repository":{"type":"git","url":"git+https://github.com/ariada-org/ariada.git","directory":"packages/ariada-evidence-emitter"},"bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"author":{"name":"Alekszandr Bricskin","email":"git@ariada.org","url":"Agonist Development AB"},"publishConfig":{"access":"public","provenance":true},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run","test:watch":"vitest","test:property":"vitest run src/__property__/","clean":"rimraf dist coverage","lint":"eslint src","test:coverage":"vitest run --coverage"},"_id":"@ariada-org/evidence-emitter@0.1.0","_integrity":"sha512-Mx55GDHx60SElk/cZpy1uz80Vr0nUWSyRw1NPH9tRm4iVDGC8AnfnWWnLMiousJumYBYgqEBP/AAcJaeMjE5fA==","_resolved":"/tmp/84225db4133c152822d8b148a2e3d8a3/ariada-org-evidence-emitter-0.1.0.tgz","_from":"file:ariada-org-evidence-emitter-0.1.0.tgz","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-Mx55GDHx60SElk/cZpy1uz80Vr0nUWSyRw1NPH9tRm4iVDGC8AnfnWWnLMiousJumYBYgqEBP/AAcJaeMjE5fA==","shasum":"6797434182f72db11610a74402a7c7064094709e","tarball":"https://registry.npmjs.org/@ariada-org/evidence-emitter/-/evidence-emitter-0.1.0.tgz","fileCount":28,"unpackedSize":77588,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ariada-org%2fevidence-emitter@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDfzNT72RFrcqcaAFmTLPvXGgEcwv6c54PiWoWH6f051wIhAOrmQGT3ifO+1/5H3ArVnsXN3Q5NHPp8CaBQy4TCXEAR"}]},"_npmUser":{"name":"agonist","email":"ab@agonist.ai"},"directories":{},"maintainers":[{"name":"agonist","email":"ab@agonist.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/evidence-emitter_0.1.0_1781536547563_0.5357132862128298"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-15T15:15:47.427Z","0.1.0":"2026-06-15T15:15:47.692Z","modified":"2026-06-15T15:15:48.045Z"},"maintainers":[{"name":"agonist","email":"ab@agonist.ai"}],"description":"EAA / WCAG compliance evidence emitters — VPAT 2.5, EN 301 549 §11, Swedish DOS-lagen. Open source under EUPL-1.2.","homepage":"https://ariada.org/packages/evidence-emitter","keywords":["accessibility","a11y","wcag","vpat","en-301-549","dos-lagen","eaa","european-accessibility-act","compliance","evidence","eupl"],"repository":{"type":"git","url":"git+https://github.com/ariada-org/ariada.git","directory":"packages/ariada-evidence-emitter"},"author":{"name":"Alekszandr Bricskin","email":"git@ariada.org","url":"Agonist Development AB"},"bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"license":"EUPL-1.2","readme":"<!-- SPDX-FileCopyrightText: 2025-2026 Agonist Development AB -->\n<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->\n\n# @ariada-org/evidence-emitter\n\nPure-function emitters that turn a normalized list of accessibility violations into machine-readable compliance evidence — VPAT 2.5, EN 301 549 §11, Swedish DOS-lagen.\n\n[![License: EUPL-1.2](https://img.shields.io/badge/license-EUPL--1.2-blue)](LICENSE)\n[![CI](https://github.com/ariada-org/ariada/actions/workflows/ci.yml/badge.svg)](https://github.com/ariada-org/ariada/actions/workflows/ci.yml)\n\n## Quick-start\n\n```bash\nnpm install @ariada-org/evidence-emitter\n```\n\n```ts\nimport {\n  emitVpat,\n  emitEn301549,\n  emitDosLagen,\n} from \"@ariada-org/evidence-emitter\";\nimport type { Violation, ReportMeta } from \"@ariada-org/evidence-emitter\";\n\nconst violations: Violation[] = [\n  /* axe-core results normalized */\n];\nconst meta: ReportMeta = {\n  productName: \"Example Web App\",\n  productVersion: \"2.5.0\",\n  evaluator: \"Audit Team\",\n  evaluationDate: \"2026-05-16\",\n  scope: \"https://example.com/checkout\",\n};\n\nconst vpat = emitVpat(violations, meta);\nconst en301549 = emitEn301549(violations, meta);\n```\n\nNode ≥ 22. No runtime dependencies, no network, no DOM mutation.\n\n## What this package does\n\nThree deterministic functions take a `Violation[]` plus `ReportMeta` and return JSON-serialisable report objects in the three formats most often demanded by EU + US procurement, regulator notifications, and `.well-known/` publication:\n\n- **VPAT 2.5** (`emitVpat`) — US Section 508 / ITI Voluntary Product Accessibility Template, structured by WCAG 2.2 Success Criterion with per-criterion conformance level.\n- **EN 301 549 v3.2.1 §11** (`emitEn301549`) — ETSI harmonised standard conformance report covering WCAG-mapped clauses §11.1–§11.8.\n- **Swedish DOS-lagen** (`emitDosLagen`) — Lag (2018:1937) accessibility-statement structure aligned with DIGG (Myndigheten för digital förvaltning) guidelines.\n\nEvery emitter is a pure function: same input → same output, no side effects. Each result carries a pinned `$schema` URI and `schemaVersion` literal so downstream consumers (queues, dashboards, regulator-portal uploads) can route on version. All three formats consume the same `Violation` shape, so a single scanner run can produce all three artefacts without re-aggregation.\n\n## What this package does NOT do\n\nIt does not scan, render HTML, render PDF, sign reports, post to regulator portals, or generate accessibility-statement landing pages. The output is JSON only — see [`@ariada-org/statement-generator`](../ariada-statement-generator) for the EN 301 549 §7 HTML / MDX accessibility-statement renderer, and [`@ariada-org/vpat-html-renderer`](../ariada-vpat-html-renderer) for the VPAT HTML view.\n\n## API summary\n\n| Export                                 | Signature                                                      | Returns                                                           |\n| -------------------------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------- |\n| `emitVpat(violations, meta)`           | `(Violation[], ReportMeta) => VpatReport`                      | VPAT 2.5 JSON — per-SC conformance rows                           |\n| `emitEn301549(violations, meta)`       | `(Violation[], ReportMeta) => En301549Report`                  | EN 301 549 §11 conformance table                                  |\n| `emitDosLagen(violations, meta, opts)` | `(Violation[], ReportMeta, DosLagenOptions) => DosLagenReport` | Swedish DOS-lagen statement object (Swedish-language fields)      |\n| `WCAG_22_CRITERIA`                     | `readonly WcagCriterion[]`                                     | Catalogue of all WCAG 2.2 Success Criteria (number, level, title) |\n| `WCAG_BY_SC`                           | `Record<string, WcagCriterion>`                                | SC-number lookup table                                            |\n\nTypes: `Violation`, `ReportMeta`, `VpatReport`, `VpatCriterion`, `VpatConformanceLevel`, `En301549Report`, `En301549Row`, `En301549Status`, `DosLagenReport`, `DosLagenStatus`, `DosLagenOptions`.\n\n## Regulatory mapping\n\n- **VPAT 2.5** — [ITI specification](https://www.itic.org/policy/accessibility/vpat); structured per WCAG 2.2 Success Criteria + US Revised Section 508 (36 CFR Part 1194)\n- **EN 301 549 v3.2.1** — [ETSI harmonised standard](https://www.etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf); §11.1–§11.8 cover WCAG 2.1 AA web mapping (extended here to WCAG 2.2 AA)\n- **DOS-lagen** — Lag (2018:1937) om tillgänglighet till digital offentlig service; statement structure per [DIGG guidelines](https://www.digg.se/digital-tillganglighet)\n- Companion to Directive (EU) 2019/882 (EAA) Annex I §I.1 statement obligations and Directive (EU) 2016/2102 art. 7\n\n## Tests + verification\n\n67 tests across 4 files (vitest), including 3 property-based suites via fast-check that verify structural invariants (schema URI stability, summary totals, per-SC cardinality). Run with `pnpm test`; coverage via `pnpm test:coverage`.\n\n## Sibling packages\n\n- [`@ariada-org/wcag-rules-extended`](../wcag-rules-extended) — produces the violations these emitters consume\n- [`@ariada-org/statement-generator`](../ariada-statement-generator) — renders accessibility-statement HTML/MDX from the same `Violation` + `ReportMeta`\n- [`@ariada-org/vpat-html-renderer`](../ariada-vpat-html-renderer) — renders VPAT HTML from `emitVpat` output\n\n## License\n\nEUPL-1.2 — see [LICENSE](LICENSE).\n","readmeFilename":"README.md","_rev":"1-6c4da5b3503879c5d565d81855807026"}