{
  "name": "kicad-wasm-tests",
  "version": "1.0.0",
  "description": "Playwright tests for wxWidgets WASM and KiCad",
  "scripts": {
    "test": "npm run test:e2e",
    "test:e2e": "npm run setup:kicad && playwright test --project=wx-chromium --project=kicad-firefox --project=kicad-chromium --project=jspi-firefox --project=coroutine-firefox",
    "test:kicad": "npm run setup:kicad && playwright test --project=kicad-firefox",
    "test:kicad:headed": "npm run setup:kicad && playwright test --project=kicad-chrome --headed",
    "test:jspi:chrome": "playwright test --project=jspi-chrome",
    "test:perf": "npm run setup:kicad && playwright test --project=perf --workers=1",
    "test:web": "npm run setup:kicad && playwright test --config=playwright-web.config.ts --project=web-firefox",
    "test:web:ci": "npm run setup:kicad && playwright test --config=playwright-web.config.ts --project=web-firefox --project=web-chromium --project=web-mobile",
    "build:collab": "node collab/build.mjs",
    "serve": "npx serve apps -p 8080 -c ../serve.json",
    "setup:kicad": "./scripts/setup-kicad-wasm.sh",
    "corpus:lint": "tsx tools/corpus-lint.ts",
    "lint:determinism": "tsx tools/lint-determinism.ts",
    "lint:ci-coverage": "tsx tools/lint-ci-coverage.ts",
    "screenshots:check": "tsx tools/screenshots/compare.ts",
    "screenshots:noise": "tsx tools/screenshots/noise.ts",
    "screenshots:report": "tsx tools/screenshots/post-discord.ts",
    "screenshots:fetch-manifest": "tsx tools/screenshots/r2-sync.ts --manifest",
    "screenshots:fetch": "tsx tools/screenshots/r2-sync.ts --pull",
    "screenshots:upload-run": "tsx tools/screenshots/upload-run.ts",
    "3d:compare": "tsx tools/screenshots/compare-dirs.ts",
    "3d:check": "tsx tools/screenshots/compare-dirs.ts --old 3d-regression/baseline --new 3d-regression/output/native --out 3d-regression/output/diff/native-self --floors 3d-regression/floors.json --level native-self --label 3d-native --fail-on-change",
    "3d:check:webgl": "tsx tools/screenshots/compare-dirs.ts --old 3d-regression/baseline-webgl --new 3d-regression/output/webgl --out 3d-regression/output/diff/webgl-self --floors 3d-regression/floors.json --level webgl-self --label 3d-webgl --fail-on-change",
    "3d:check:parity": "tsx tools/screenshots/compare-dirs.ts --old 3d-regression/baseline --new 3d-regression/output/webgl --out 3d-regression/output/diff/parity --floors 3d-regression/floors.json --level webgl-vs-native --label 3d-parity",
    "3d:review": "tsx tools/screenshots/compare-dirs.ts --old 3d-regression/baseline --new 3d-regression/output/webgl --out 3d-regression/output/diff/parity-review --floors 3d-regression/floors.json --level webgl-vs-native --label 3d-parity --artifacts always",
    "3d:test:webgl": "playwright test --project=wx-chromium e2e/3d-webgl.spec.ts",
    "tools:contract": "tsx tools/cli-contract.ts"
  },
  "devDependencies": {
    "@playwright/test": "^1.62.1",
    "@types/node": "^24.10.1",
    "@types/pixelmatch": "^5.2.6",
    "@types/pngjs": "^6.0.5",
    "aws4fetch": "^1.0.20",
    "esbuild": "^0.28.0",
    "pixelmatch": "^5.3.0",
    "playwright": "^1.62.1",
    "pngjs": "^7.0.0",
    "serve": "^14.2.0",
    "tsx": "^4.22.4",
    "typescript": "^5.9.3",
    "yjs": "^13.6.31"
  }
}
