{"_id":"@ariada-org/diff-stub","_rev":"2-3662f132b906fce64ed047da3a96d5b2","name":"@ariada-org/diff-stub","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@ariada-org/diff-stub","version":"0.1.0","keywords":["accessibility","a11y","wcag","ci","diff","stub","reference","eupl"],"author":{"url":"Agonist Development AB","name":"Alekszandr Bricskin","email":"git@ariada.org"},"license":"EUPL-1.2","_id":"@ariada-org/diff-stub@0.1.0","maintainers":[{"name":"agonist","email":"ab@agonist.ai"}],"homepage":"https://github.com/ariada-org/ariada/tree/main/packages/ariada-diff-stub#readme","bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"dist":{"shasum":"a8a7d393bbe8d72dc95d3369299d2fe99fc7a4e4","tarball":"https://registry.npmjs.org/@ariada-org/diff-stub/-/diff-stub-0.1.0.tgz","fileCount":14,"integrity":"sha512-NWNzDOK2kTu34ZmTBaRtof5SjYTh6l31Vs1we8e6+SLbNOPPXZKk15EPdvAvv9MzbvYw3weKvX4lqYTTwxl6+A==","signatures":[{"sig":"MEUCIQD9+AWYNjJWm9e8nhlaLBUb/tMIJ6G8pJEIhp/JRPN/AQIgAjT+x/1VQI4/9wfxy6SnGZ3GlXKbknT/7lhY86cc12s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ariada-org%2fdiff-stub@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29369},"main":"./dist/index.js","type":"module","_from":"file:ariada-org-diff-stub-0.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src tests","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rimraf dist coverage","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"agonist","email":"ab@agonist.ai"},"_resolved":"/tmp/3f0fa52b2f99b589e3710c1e5a9d1171/ariada-org-diff-stub-0.1.0.tgz","_integrity":"sha512-NWNzDOK2kTu34ZmTBaRtof5SjYTh6l31Vs1we8e6+SLbNOPPXZKk15EPdvAvv9MzbvYw3weKvX4lqYTTwxl6+A==","repository":{"url":"git+https://github.com/ariada-org/ariada.git","type":"git","directory":"packages/ariada-diff-stub"},"_npmVersion":"10.9.8","description":"Equality-only OSS reference classifier for the differential accessibility CI gate. NOT canonical — does not emit near-duplicate matches. Open source under EUPL-1.2.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@ariada-org/diff-schema":"0.1.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^4.1.0","typescript":"^5.7.2","@types/node":"^22.10.0","@vitest/coverage-v8":"^2.1.8"},"_npmOperationalInternal":{"tmp":"tmp/diff-stub_0.1.0_1781536547262_0.8257333560499811","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ariada-org/diff-stub","version":"0.1.1","description":"Equality-only OSS reference classifier for the differential accessibility CI gate. NOT canonical — does not emit near-duplicate matches. Open source under EUPL-1.2.","license":"EUPL-1.2","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"@ariada-org/diff-schema":"0.2.0"},"devDependencies":{"@types/node":"^22.10.0","@vitest/coverage-v8":"^4.1.0","rimraf":"^6.0.1","typescript":"^5.7.2","vitest":"^4.1.0"},"engines":{"node":">=22"},"keywords":["accessibility","a11y","wcag","ci","diff","stub","reference","eupl"],"homepage":"https://github.com/ariada-org/ariada/tree/main/packages/ariada-diff-stub#readme","repository":{"type":"git","url":"git+https://github.com/ariada-org/ariada.git","directory":"packages/ariada-diff-stub"},"bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"author":{"name":"Alekszandr Bricskin","email":"git@ariada.org","url":"Agonist Development AB"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","clean":"rimraf dist coverage","lint":"eslint src tests"},"_id":"@ariada-org/diff-stub@0.1.1","_integrity":"sha512-XN0SIzOclrhmEbAOsbbP8/bvFmhgNWXfXRuQth16G+a2txdKBDiSJEkirS8WqZAMwThlLQajA6OZE1l85Tp5ew==","_resolved":"/private/var/folders/2c/_42xj0l179z8yc7wmp5k91s00000gn/T/8d67e3906ee5a068e16d2e66b5596ae9/ariada-org-diff-stub-0.1.1.tgz","_from":"file:ariada-org-diff-stub-0.1.1.tgz","_nodeVersion":"26.5.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-XN0SIzOclrhmEbAOsbbP8/bvFmhgNWXfXRuQth16G+a2txdKBDiSJEkirS8WqZAMwThlLQajA6OZE1l85Tp5ew==","shasum":"df20c4d384c0bc95b5338815339cb59718efd419","tarball":"https://registry.npmjs.org/@ariada-org/diff-stub/-/diff-stub-0.1.1.tgz","fileCount":14,"unpackedSize":29430,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCvk/FgOePmT08Xj95ViQQNe3VBX86QknPM/hX3DWk/6AIhANDxO6AhWKkJnoUuPbb1R659Vuc7kW41mm9tcECHlltG"}]},"_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/diff-stub_0.1.1_1784942562173_0.3079103076517056"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-15T15:15:47.017Z","modified":"2026-07-25T01:22:42.503Z","0.1.0":"2026-06-15T15:15:47.438Z","0.1.1":"2026-07-25T01:22:42.305Z"},"bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"author":{"name":"Alekszandr Bricskin","email":"git@ariada.org","url":"Agonist Development AB"},"license":"EUPL-1.2","homepage":"https://github.com/ariada-org/ariada/tree/main/packages/ariada-diff-stub#readme","keywords":["accessibility","a11y","wcag","ci","diff","stub","reference","eupl"],"repository":{"type":"git","url":"git+https://github.com/ariada-org/ariada.git","directory":"packages/ariada-diff-stub"},"description":"Equality-only OSS reference classifier for the differential accessibility CI gate. NOT canonical — does not emit near-duplicate matches. Open source under EUPL-1.2.","maintainers":[{"name":"agonist","email":"ab@agonist.ai"}],"readme":"# @ariada-org/diff-stub\n\n> **NOT canonical — equality-only stub for OSS interoperability.**\n> This package matches findings strictly by fingerprint equality. It\n> never emits `near_duplicate` classifications. For production CI you\n> should use the canonical engine; otherwise false-positive «new»\n> findings caused by trivial DOM drift will not be merged into\n> `pre_existing` here.\n\nEquality-only reference classifier for the differential accessibility\nCI gate. Use it for OSS interoperability checks, schema conformance\ntests, and self-hosted pipelines that do not need near-duplicate\nmatching.\n\nOpen source under [EUPL-1.2](./LICENSE). Single workspace dependency:\n[`@ariada-org/diff-schema`](../ariada-diff-schema). Node 22 LTS or newer.\n\n## Install\n\n```bash\nnpm install @ariada-org/diff-stub @ariada-org/diff-schema\n```\n\n## Usage\n\n```ts\nimport { classifyStub } from '@ariada-org/diff-stub';\n\nconst diff = classifyStub({\n  headFindings: [\n    {\n      ruleId: 'wcag2/1.1.1',\n      jurisdictionTags: ['WCAG2.2-AA'],\n      severity: 'serious',\n      selector: 'main > img.hero',\n    },\n  ],\n  baseFindings: [],\n  diffId: '01HVABCDEF0123456789ABCDEFG',\n  computedAt: new Date().toISOString(),\n  head: { scan_id: 'head-scan', scan_root_hash: 'a'.repeat(64) },\n  base: { scan_id: 'base-scan', scan_root_hash: 'b'.repeat(64) },\n});\n\nconsole.log(diff.engine_info.classifier); // → \"stub\"\nconsole.log(diff.classification.new.length); // → 1\n```\n\n## API\n\n| Export                       | Type     | Description                                       |\n|------------------------------|----------|---------------------------------------------------|\n| `classifyStub`               | function | Equality-only classifier producing a DiffResult.  |\n| `STUB_CLASSIFIER_VERSION`    | constant | Stub version string.                              |\n| `STUB_NOT_CANONICAL_BANNER`  | constant | Warning to surface in downstream UI / logs.       |\n\n## When to NOT use this package\n\n- You run the differential gate in a production CI pipeline where false-positive\n  «new» findings from trivial DOM drift would block real merges.\n- You need the canonical engine guarantees (deterministic near-duplicate\n  matching, hierarchical policy resolution, exemption-with-DOM-invalidation).\n\nSwitch to the canonical engine via the GitHub Action's `engine: canonical`\ninput, or invoke the SaaS API directly.\n\n## License\n\nEUPL-1.2 for code; CC-BY-SA-4.0 for prose; CC0-1.0 for build config.\nSee [LICENSE](./LICENSE) and [NOTICE](./NOTICE).\n","readmeFilename":"README.md"}