npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ariada-org/evidence-emitter

v0.1.0

Published

EAA / WCAG compliance evidence emitters — VPAT 2.5, EN 301 549 §11, Swedish DOS-lagen. Open source under EUPL-1.2.

Readme

@ariada-org/evidence-emitter

Pure-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.

License: EUPL-1.2 CI

Quick-start

npm install @ariada-org/evidence-emitter
import {
  emitVpat,
  emitEn301549,
  emitDosLagen,
} from "@ariada-org/evidence-emitter";
import type { Violation, ReportMeta } from "@ariada-org/evidence-emitter";

const violations: Violation[] = [
  /* axe-core results normalized */
];
const meta: ReportMeta = {
  productName: "Example Web App",
  productVersion: "2.5.0",
  evaluator: "Audit Team",
  evaluationDate: "2026-05-16",
  scope: "https://example.com/checkout",
};

const vpat = emitVpat(violations, meta);
const en301549 = emitEn301549(violations, meta);

Node ≥ 22. No runtime dependencies, no network, no DOM mutation.

What this package does

Three 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:

  • VPAT 2.5 (emitVpat) — US Section 508 / ITI Voluntary Product Accessibility Template, structured by WCAG 2.2 Success Criterion with per-criterion conformance level.
  • EN 301 549 v3.2.1 §11 (emitEn301549) — ETSI harmonised standard conformance report covering WCAG-mapped clauses §11.1–§11.8.
  • Swedish DOS-lagen (emitDosLagen) — Lag (2018:1937) accessibility-statement structure aligned with DIGG (Myndigheten för digital förvaltning) guidelines.

Every 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.

What this package does NOT do

It 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 for the EN 301 549 §7 HTML / MDX accessibility-statement renderer, and @ariada-org/vpat-html-renderer for the VPAT HTML view.

API summary

| Export | Signature | Returns | | -------------------------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------- | | emitVpat(violations, meta) | (Violation[], ReportMeta) => VpatReport | VPAT 2.5 JSON — per-SC conformance rows | | emitEn301549(violations, meta) | (Violation[], ReportMeta) => En301549Report | EN 301 549 §11 conformance table | | emitDosLagen(violations, meta, opts) | (Violation[], ReportMeta, DosLagenOptions) => DosLagenReport | Swedish DOS-lagen statement object (Swedish-language fields) | | WCAG_22_CRITERIA | readonly WcagCriterion[] | Catalogue of all WCAG 2.2 Success Criteria (number, level, title) | | WCAG_BY_SC | Record<string, WcagCriterion> | SC-number lookup table |

Types: Violation, ReportMeta, VpatReport, VpatCriterion, VpatConformanceLevel, En301549Report, En301549Row, En301549Status, DosLagenReport, DosLagenStatus, DosLagenOptions.

Regulatory mapping

  • VPAT 2.5ITI specification; structured per WCAG 2.2 Success Criteria + US Revised Section 508 (36 CFR Part 1194)
  • EN 301 549 v3.2.1ETSI harmonised standard; §11.1–§11.8 cover WCAG 2.1 AA web mapping (extended here to WCAG 2.2 AA)
  • DOS-lagen — Lag (2018:1937) om tillgänglighet till digital offentlig service; statement structure per DIGG guidelines
  • Companion to Directive (EU) 2019/882 (EAA) Annex I §I.1 statement obligations and Directive (EU) 2016/2102 art. 7

Tests + verification

67 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.

Sibling packages

License

EUPL-1.2 — see LICENSE.