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

@holmdigital/standards

v2.1.0

Published

Machine-readable regulatory database for WCAG, EN 301 549 and the DOS Act

Readme

@holmdigital/standards

npm version License: MIT TypeScript Downloads

Machine-readable regulatory database for WCAG, EN 301 549, DOS-lagen, and EU Legal Frameworks (WAD/EAA).

Why this package?

This package serves as the Single Source of Truth for accessibility compliance mapping in the HolmDigital ecosystem. It eliminates the need to manually cross-reference standard documents by providing:

  1. WCAG 2.1 Criteria (Technical Base)
  2. EN 301 549 (EU Standard Mapping)
  3. National Laws (Specific legal references for SE, NL, DE, etc.)
  4. EU Legal Frameworks (WAD 2016/2102 & EAA 2019/882)
  5. Nordic Authority Data (Digg, PTS, UU-tilsynet, etc.)

It allows developers to query: "Which law mandates WCAG 1.4.3 in Sweden?" and get the exact legal paragraph (Lag (2018:1937) 12 §).

For the full regulatory database details, API reference, and legal framework mappings (WAD/EAA), see the Standards Library Catalog.

Installation

npm install @holmdigital/standards

Features

  • Multi-Language Support:
    • en (Generic / UK PSBAR)
    • sv (Sweden / DOS-lagen)
    • de (Germany / BITV 2.0)
    • fr (France / RGAA)
    • es (Spain / UNE 139803)
    • nl (Netherlands / Digitoegankelijk)
    • en-us (USA / Section 508 & ADA)
    • en-ca (Canada / AODA)
  • Risk Assessment: DIGG-aligned risk levels (critical, high, medium, low).
  • Remediation: Maps issues to @holmdigital/components for fixing.
  • EU Legal Frameworks: WAD (public sector) and EAA (private sector) compliance data.
  • Nordic Authorities & Enforcement: Shared database of regulatory bodies (ENFORCEMENT_BODIES) for SE, NO, DK, FI, and the broader EU.

Usage

Basic Mapping

import { 
  getEN301549Mapping, 
  getDOSLagenReference 
} from '@holmdigital/standards';

// Get EN 301 549 Mapping
const mapping = getEN301549Mapping('1.4.3');
// { en301549Criteria: "9.1.4.3", ... }

// Get Swedish Law Reference
const ref = getDOSLagenReference('1.4.3', 'sv');
// "EN 301 549 V3.2.1, WCAG 2.1 Level AA required"

EU Legal Framework Queries

import { 
  getRulesByFramework,
  getRulesBySector,
  getLegalFramework,
  getNordicAuthorities,
  getEAADeadlineRules
} from '@holmdigital/standards';

// Get all rules applicable to WAD (Web Accessibility Directive)
const wadRules = getRulesByFramework('WAD');

// Get rules for public sector
const publicRules = getRulesBySector('public');

// Get rules with EAA 2025 deadline
const eaaRules = getEAADeadlineRules();

// Get WAD directive details
const wad = getLegalFramework('WAD');
// { id: "2016/2102", name: "Web Accessibility Directive", ... }

// Get Nordic authorities
const authorities = getNordicAuthorities();
// [{ id: "se-digg", name: "Myndigheten för digital förvaltning (Digg)", ... }]

Statement Tools

import { getStatementTools } from '@holmdigital/standards';

// Get accessibility statement generators
const tools = getStatementTools();
// [{ id: "digg-generator", url: "https://webbriktlinjer.se/...", ... }]

National Laws & Sanctions

import { 
  getNationalLaws,
  getNationalLaw,
  getSanctions,
  getMaxSanction,
  getSectorAuthorities
} from '@holmdigital/standards';

// Get all laws for Sweden
const seLaws = getNationalLaws('SE');
// [{ id: "dos-lagen", law: "DOS-lagen", ... }, { id: "lptt", law: "LPTT", ... }]

// Get sanctions for a specific law
const sanctions = getSanctions('lptt', 'SE');
// { type: "Sanktionsavgift", maxAmount: 10000000, currency: "SEK" }

// Get maximum sanction for a country
const maxSanction = getMaxSanction('DE');
// { law: "BFSG", amount: 500000, currency: "EUR" }

// Get sector-specific EAA authorities
const sectors = getSectorAuthorities('SE');
// [{ authority: "Konsumentverket", responsibility: "Transport" }, ...]

Supported Countries & Maximum Sanctions

| Country | WAD Law | EAA Law | Max Sanction | |---------|---------|---------|--------------| | 🇸🇪 SE | DOS-lagen | LPTT | 1M SEK (Vite) / 10M SEK (EAA) | | 🇳🇱 NL | Digitoegankelijk | Warenwet | 900k EUR | | 🇩🇪 DE | BITV 2.0 | BFSG | 500k EUR | | 🇫🇷 FR | RGAA | - | 300k EUR | | 🇪🇸 ES | Real Decreto | - | 1M EUR | | 🇮🇪 IE | S.I. 358/2020 | - | 60k EUR | | 🇳🇴 NO | IKT-forskrift | - | Daily fines | | 🇫🇮 FI | 306/2019 | EAA | Vite | | 🇩🇰 DK | Tilgængelighed | - | Fines | | 🇬🇧 GB | PSBAR | - | Unlawful Act Notice | | 🇺🇸 US | Section 508 | - | Civil Rights Complaint | | 🇨🇦 CA | AODA | - | $100k per day |

API Reference

Core Functions

| Function | Description | |----------|-------------| | getEN301549Mapping(criteria, lang?) | Get EN 301 549 mapping for WCAG criteria | | getDOSLagenReference(criteria, lang?) | Get DOS-lagen reference for criteria | | getAllConvergenceRules(lang?) | Get all convergence rules | | getConvergenceRule(ruleId, lang?) | Get specific rule by ID | | searchRulesByTags(tags, lang?) | Search rules by tags |

EU Legal Framework Functions

| Function | Description | |----------|-------------| | getRulesByFramework(framework, lang?) | Get rules by WAD or EAA | | getRulesBySector(sector, lang?) | Get rules by public/private sector | | getLegalFrameworks() | Get all EU legal frameworks | | getLegalFramework(id) | Get specific framework (WAD/EAA) | | getNordicAuthorities() | Get all Nordic authorities | | getNordicAuthority(id) | Get authority by ID | | getNordicAuthoritiesByCountry(country) | Get authorities by country | | getStatementTools() | Get statement generator tools | | getEAADeadlineRules(lang?) | Get rules with EAA deadlines |

National Laws & Sanctions Functions

| Function | Description | |----------|-------------| | getNationalLaws(country) | Get all laws for a country | | getNationalLaw(id, country?) | Get specific law by ID | | getNationalLawByFramework(framework, country?) | Get law by WAD/EAA | | getSanctions(lawId, country?) | Get sanctions for a law | | getMaxSanction(country?) | Get maximum sanction amount | | getSectorAuthorities(country?) | Get EAA sector authorities |

License

MIT © Holm Digital AB