{"_id":"@ariada-org/core-playwright","_rev":"3-6726abb1c0f21f029dfaee6f84fc69c9","name":"@ariada-org/core-playwright","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@ariada-org/core-playwright","version":"0.1.0","license":"EUPL-1.2","_id":"@ariada-org/core-playwright@0.1.0","maintainers":[{"name":"agonist","email":"ab@agonist.ai"}],"homepage":"https://github.com/ariada-org/ariada#readme","bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"dist":{"shasum":"6eb8bcb7b2fcfeac85ca1cfd6bee9b66fae95dc9","tarball":"https://registry.npmjs.org/@ariada-org/core-playwright/-/core-playwright-0.1.0.tgz","fileCount":34,"integrity":"sha512-C/xiOS1kbcBIHZfXySjoDu/VKJOrzz+4WhLgPKNx5v6+LI+CPpmKlPtFXHQKyV0MXPg8N2SQVN+P8PY8x/mSfQ==","signatures":[{"sig":"MEUCIQCvKWkr6jLlXeH6nHt/iBJLxW94i9PdKDYdphJOusg6qAIgbIWWAaZedmyQ4sHY93kziaHn8jDlp07S1ZSRdl32Rog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ariada-org%2fcore-playwright@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95288},"main":"./dist/index.js","type":"module","_from":"file:ariada-org-core-playwright-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 test-results playwright-report","test:e2e":"playwright test","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:e2e:ui":"playwright test --ui","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"agonist","email":"ab@agonist.ai"},"_resolved":"/tmp/ff997af772ddeb9cf6cb57913dee55ef/ariada-org-core-playwright-0.1.0.tgz","_integrity":"sha512-C/xiOS1kbcBIHZfXySjoDu/VKJOrzz+4WhLgPKNx5v6+LI+CPpmKlPtFXHQKyV0MXPg8N2SQVN+P8PY8x/mSfQ==","repository":{"url":"git+https://github.com/ariada-org/ariada.git","type":"git","directory":"packages/core-playwright"},"_npmVersion":"10.9.8","description":"Node + Playwright adapter for @ariada-org/core-engine — browser launch, CDP snapshot, captureSnapshot, and the canonical scan() entry point.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"pino":"^9.5.0","ulid":"^2.3.0","playwright":"^1.49.0","@ariada-org/core-engine":"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.2","@playwright/test":"^1.60.0","@ariada-org/test-fixtures":"0.2.0"},"peerDependencies":{"playwright":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/core-playwright_0.1.0_1781537794397_0.1565560534973287","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ariada-org/core-playwright","version":"0.2.0","license":"EUPL-1.2","_id":"@ariada-org/core-playwright@0.2.0","maintainers":[{"name":"agonist","email":"ab@agonist.ai"}],"homepage":"https://github.com/ariada-org/ariada#readme","bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"dist":{"shasum":"c14ac50cce4f74db128d184c1dc2295c815495ed","tarball":"https://registry.npmjs.org/@ariada-org/core-playwright/-/core-playwright-0.2.0.tgz","fileCount":42,"integrity":"sha512-fXKRnBbQYdswtOrMCeSHgd69+qbnVCa2vcv8lJdTJ56/7idw5zGfN1b5Hp+sP8jho81caiy08bn88cdfJyO4Bw==","signatures":[{"sig":"MEUCIHpHzj3q9lchItaZx5qWo2DFTVXqa8fuKaU8C5Hl8TgeAiEA/AInGNBWsWhz9Pn8/+R/8YU5jTyXszfEBuN4Q4FS8xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127206},"main":"./dist/index.js","type":"module","_from":"file:ariada-org-core-playwright-0.2.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 test-results playwright-report","test:e2e":"playwright test","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"vitest","test:e2e:ui":"playwright test --ui","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"agonist","email":"ab@agonist.ai"},"_resolved":"/private/var/folders/2c/_42xj0l179z8yc7wmp5k91s00000gn/T/2438d7fb8ed48845636ae12fb8cfc4de/ariada-org-core-playwright-0.2.0.tgz","_integrity":"sha512-fXKRnBbQYdswtOrMCeSHgd69+qbnVCa2vcv8lJdTJ56/7idw5zGfN1b5Hp+sP8jho81caiy08bn88cdfJyO4Bw==","repository":{"url":"git+https://github.com/ariada-org/ariada.git","type":"git","directory":"packages/core-playwright"},"_npmVersion":"11.17.0","description":"Node + Playwright adapter for @ariada-org/core-engine — browser launch, CDP snapshot, captureSnapshot, and the canonical scan() entry point.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"pino":"^9.5.0","ulid":"^2.3.0","playwright":"^1.49.0","@ariada-org/url-guard":"0.1.0","@ariada-org/core-engine":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^4.1.0","typescript":"^5.7.2","@types/node":"^22.10.2","@playwright/test":"^1.60.0","@ariada-org/test-fixtures":"0.2.0"},"peerDependencies":{"playwright":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/core-playwright_0.2.0_1784942574528_0.4667089933791162","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ariada-org/core-playwright","version":"0.3.0","description":"Node + Playwright adapter for @ariada-org/core-engine — browser launch, CDP snapshot, captureSnapshot, and the canonical scan() entry point.","license":"EUPL-1.2","publishConfig":{"access":"public"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"pino":"^9.5.0","playwright":"^1.49.0","ulid":"^2.3.0","@ariada-org/url-guard":"0.1.0","@ariada-org/core-engine":"0.3.0"},"devDependencies":{"@playwright/test":"^1.60.0","@types/node":"^22.10.2","happy-dom":"^20.9.0","rimraf":"^6.0.1","typescript":"^5.7.2","vitest":"^4.1.0","@ariada-org/test-fixtures":"0.2.0"},"peerDependencies":{"playwright":"^1.49.0"},"engines":{"node":">=22"},"repository":{"type":"git","url":"git+https://github.com/ariada-org/ariada.git","directory":"packages/core-playwright"},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.typecheck.json","lint":"eslint src tests","test":"vitest run","test:watch":"vitest","test:integration":"vitest run --config vitest.integration.config.ts","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","clean":"rimraf dist coverage test-results playwright-report"},"_id":"@ariada-org/core-playwright@0.3.0","bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"homepage":"https://github.com/ariada-org/ariada#readme","_integrity":"sha512-mnGnNwOT9HdF8c2+Yp4Mdog6UgYS/J+HhFSJmKN9LcVky8Y2yK59trxEz0MGPFd5PXPCzOLk+QXXS6GDVkH/NQ==","_resolved":"/private/var/folders/2c/_42xj0l179z8yc7wmp5k91s00000gn/T/c8d3afada09efdd7c1003f5569594f11/ariada-org-core-playwright-0.3.0.tgz","_from":"file:ariada-org-core-playwright-0.3.0.tgz","_nodeVersion":"26.5.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-mnGnNwOT9HdF8c2+Yp4Mdog6UgYS/J+HhFSJmKN9LcVky8Y2yK59trxEz0MGPFd5PXPCzOLk+QXXS6GDVkH/NQ==","shasum":"64b64c818f317e1aa9aaf59307932a7432eacd95","tarball":"https://registry.npmjs.org/@ariada-org/core-playwright/-/core-playwright-0.3.0.tgz","fileCount":42,"unpackedSize":134897,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICWALiW7EFvch+nO9wfRaAzrl71Wyjf4ZeKDwonOYcgBAiEA7sgG1QUQeuW5Vn/+xxuO8P0eVCLgs3/l15a+0EeCWLM="}]},"_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/core-playwright_0.3.0_1787175657158_0.5024219810812836"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-15T15:36:34.191Z","modified":"2026-08-19T21:40:57.484Z","0.1.0":"2026-06-15T15:36:34.534Z","0.2.0":"2026-07-25T01:22:54.667Z","0.3.0":"2026-08-19T21:40:57.317Z"},"bugs":{"url":"https://github.com/ariada-org/ariada/issues"},"license":"EUPL-1.2","homepage":"https://github.com/ariada-org/ariada#readme","repository":{"type":"git","url":"git+https://github.com/ariada-org/ariada.git","directory":"packages/core-playwright"},"description":"Node + Playwright adapter for @ariada-org/core-engine — browser launch, CDP snapshot, captureSnapshot, and the canonical scan() entry point.","maintainers":[{"name":"agonist","email":"ab@agonist.ai"}],"readme":"# @ariada-org/core-playwright\n\nNode + Playwright adapter for [`@ariada-org/core-engine`](../core-engine). The\ncanonical Node entry point used by any CI-gate consumer or downstream tool\nthat needs to scan a URL from a Node process.\n\n| Field          | Value                                                                 |\n| -------------- | --------------------------------------------------------------------- |\n| Package name   | `@ariada-org/core-playwright`                                             |\n| Version        | 0.1.0                                                                 |\n| Licence        | EUPL-1.2 (European Union Public Licence)                              |\n| Runtime        | Node `>= 22`                                                          |\n| Dependencies   | `@ariada-org/core-engine`, `playwright`, `pino`, `ulid`                   |\n| Peer deps      | `playwright >= 1.49`                                                  |\n| REUSE-compliant | yes — `REUSE.toml` + per-file SPDX headers                           |\n\n## Public API (v0.1)\n\n```ts\nimport {\n  scan,\n  createScanner,\n  launchBrowser,\n  captureSnapshot,\n  createPlaywrightBoundingBoxResolver,\n  createLogger,\n} from '@ariada-org/core-playwright';\n\nconst report = await scan('https://example.com', {\n  domains: ['a11y'],\n  ai: 'off',\n});\n```\n\n- `scan(url, opts?)` — single-call entry point: launches Playwright, navigates\n  to `url`, captures a `UnifiedSnapshot`, runs `runOrchestration`, returns\n  the `UnifiedReport`. Closes the browser on exit.\n- `createScanner(defaults)` — factory for a reusable `Scanner` instance with\n  fixed defaults (good for batch CLI runs).\n- `launchBrowser(name, headless)` — Playwright browser launch helper.\n- `captureSnapshot(page, opts?)` — `UnifiedSnapshot` capture via CDP\n  (Chrome DevTools Protocol).\n- `createPlaywrightBoundingBoxResolver(page)` — `BoundingBoxResolver` impl\n  for the engine's element iterator.\n- `createLogger()` — `pino` logger configured for ariada's log levels.\n\n## Usage — CLI / CI gate\n\n```ts\n// scripts/scan.mts\nimport { scan } from '@ariada-org/core-playwright';\n\nconst url = process.argv[2];\nif (!url) {\n  console.error('Usage: scan <url>');\n  process.exit(2);\n}\n\nconst result = await scan(url, { domains: ['a11y'] });\nconsole.log(JSON.stringify(result.report.stats, null, 2));\nif (result.report.stats.totalViolations > 0) process.exit(1);\n```\n\n## Usage — reusable scanner (batch mode)\n\n```ts\nimport { createScanner } from '@ariada-org/core-playwright';\n\nconst scanner = createScanner({\n  ai: 'off',\n  playwright: { browser: 'chromium', headless: true },\n});\n\nfor (const url of urls) {\n  const result = await scanner.scan(url);\n  console.log(url, result.report.stats.totalViolations);\n}\n```\n\n## Testing\n\nUnit tests run with vitest; end-to-end tests (real Chromium via Playwright)\nlive behind `pnpm --filter @ariada-org/core-playwright test:e2e` (`playwright.config.ts`)\nand require a working Playwright browser install (`pnpm exec playwright install chromium`).\n\n## Layout\n\n```\nsrc/\n  index.ts            — public exports\n  scanner.ts          — scan() + createScanner()\n  snapshot.ts         — captureSnapshot()\n  cdp.ts              — CDP wiring\n  bbox-resolver.ts    — Playwright BoundingBoxResolver\n  logger.ts           — pino setup\ntests/\n  *.test.ts           — vitest unit tests\n```\n\n## Licence\n\nEUPL-1.2 — see `LICENSE`. Per-file SPDX headers + `REUSE.toml` keep\nmachine-readable metadata in sync. Trademarks not granted; see `TRADEMARK.md`.\n\n## Security\n\nVulnerability reports → `https://github.com/ariada-org/ariada/security/advisories/new`\nor `security@ariada.org`. See `SECURITY.md`.\n","readmeFilename":"README.md"}