JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2287
  • Score
    100M100P100Q90163F
  • License MIT

Open-source CLI auditor: design-system drift + RGAA 4.1 conformity, with CI gatekeeper and optional Pro cloud gateway

Package Exports

  • @axaraaudit/cli
  • @axaraaudit/cli/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@axaraaudit/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@axaraaudit/cli

CLI d'audit open-core : conformité design-system (tokens DTCG) + accessibilité RGAA 4.1 / WCAG.

  • Open source (local) — analyse statique, rapport terminal/JSON, auto-fix. Aucune donnée ne quitte la machine.
  • Pro (passerelle cloud) — synchronisation distante des règles/tokens, upload des rapports vers le dashboard, gatekeeper CI. La CLI n'est qu'un capteur : toute la logique SaaS (dashboards, PDF de conformité, historique) vit côté serveur.
pnpm add -D @axaraaudit/cli
npx axaraaudit init      # génère .auditorrc.json
npx axaraaudit audit     # rapport terminal
npx axaraaudit fix --write

Commandes

Commande Rôle Niveau
audit Analyse dérives de tokens + RGAA (défaut) Open source
fix [--write] Applique les corrections sûres (dry-run par défaut) Open source
init [--force] Génère un .auditorrc.json de démarrage Open source
login --token <t> Enregistre un jeton Pro (~/.axaraaudit/credentials.json) Pro
logout / whoami Gestion du jeton Pro

Options d'audit

Flag Effet
--format pretty|json Sortie stylisée (défaut) ou payload JSON stable
--out <fichier> Écrit aussi le rapport JSON sur disque
--ci Gatekeeper : exit 1 si score < seuil ou critère RGAA bloquant
--fail-under <n> Seuil de score local (défaut : ci.failUnder, 80)
--skip-rgaa Dérive design uniquement
--remote Récupère règles + tokens depuis l'API Pro (bypass du fichier local)
--upload Envoie le rapport JSON à l'API Pro
--config / --tokens Chemins explicites

Variable d'environnement : AUDITOR_TOKEN (prioritaire, idéale en CI — jamais écrite sur disque).

.auditorrc.json

{
  "project": "mon-app",
  "tokens": "./design-tokens.dtcg.json",   // document DTCG (source de vérité)
  "include": ["src", "components", "styles"],
  "exclude": ["node_modules", "dist", ".next"],
  "extensions": [".css", ".scss", ".tsx", ".jsx", ".html"],
  "remBasePx": 16,
  "rgaa": {
    "enabled": true,
    "scope": "component",        // "component" = ignore les règles de page (h1, landmarks)
    "contrast": false,           // le contraste fiable nécessite un vrai layout (runtime Playwright)
    "priority": ["1.1", "3.2", "11.1"]  // critères bloquants pour le gate, quel que soit l'impact
  },
  "ci": {
    "failUnder": 80,             // score minimal 0–100
    "blockOnCritical": true      // toute violation critical/serious bloque le pipeline
  },
  "pro": {
    "apiUrl": "https://api.axara.dev",
    "upload": false,             // pousser chaque rapport vers le dashboard
    "remoteConfig": false        // tirer règles/tokens depuis l'API au lieu du local
  }
}

Le score (0–100) pondère les violations RGAA (critical −10 … minor −2) plus lourdement que les dérives de tokens (erreur −2, avertissement −0,5). C'est un signal de pression CI, pas un taux de conformité légal (qui exige un audit manuel).

Exemple GitHub Actions

- name: Audit accessibilité & design system
  run: npx axaraaudit audit --ci --format json --out audit-report.json
  env:
    AUDITOR_TOKEN: ${{ secrets.AUDITOR_TOKEN }}   # optionnel (Pro)

Contrat API (Pro)

La CLI ne connaît que trois routes, toutes authentifiées par Authorization: Bearer :

Route Usage
GET /v1/config { config?: PartialRc, tokens?: DtcgDocument } — règles/tokens distants
POST /v1/reports Reçoit le payload JSON du rapport (payloadVersion: 1)
GET /v1/me Identité du jeton (login / whoami)

Une panne cloud ne casse jamais l'audit local : l'upload échoue en avertissement, le gate CI est évalué sur le résultat local.