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

@accesslint/report

v0.1.1

Published

Generate trend reports from @accesslint snapshot history

Downloads

111

Readme

@accesslint/report

Generate trend reports from @accesslint/jest, @accesslint/vitest, and @accesslint/playwright snapshot history.

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

Usage

# Markdown (default) — good for PR comments
npx @accesslint/report > a11y-report.md

# Single-file HTML with an SVG chart per snapshot
npx @accesslint/report --format html --out a11y-report.html

# Raw JSON for downstream tooling
npx @accesslint/report --format json

# Filter to a single snapshot
npx @accesslint/report --snapshot login-form

# Point at a non-default directory
npx @accesslint/report --dir ./test/a11y-snapshots

What's in the report

  • Summary — totals for events, snapshots, added/removed violations, and the observed window.
  • Per-snapshot timeline — an event log plus a stacked-area chart (HTML only) of total violations over time.
  • Rule movement — which rules appeared and were fixed across the history, joined to WCAG level + criterion from @accesslint/core.

Limits

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

Programmatic API

import { loadAllHistory, aggregate, emitMarkdown } from "@accesslint/report";

const records = loadAllHistory("./accessibility-snapshots");
const report = aggregate(records);
console.log(emitMarkdown(report));

License

MIT