{"_id":"@andrewgolovanov/checks","_rev":"6-976e6f5c421906d08392c609f389dd5b","name":"@andrewgolovanov/checks","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"@andrewgolovanov/checks","version":"0.1.0","license":"UNLICENSED","_id":"@andrewgolovanov/checks@0.1.0","maintainers":[{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"}],"homepage":"https://github.com/pixel-point/siteos-health#readme","bugs":{"url":"https://github.com/pixel-point/siteos-health/issues"},"bin":{"checks":"dist/cli.js"},"dist":{"shasum":"f5ebe69f323ebe77e2551051dd282baca8176177","tarball":"https://registry.npmjs.org/@andrewgolovanov/checks/-/checks-0.1.0.tgz","fileCount":4,"integrity":"sha512-VUc7bab7X1/1TCj+E2xxqLqQEDe/OL8QV6w4X03xQInvC5f9LXxfWSYpRHdSpj8i2DQ/0utpPFKy7FcpvKq/IA==","signatures":[{"sig":"MEYCIQCpTsB/0/R/QFJLKNWX3/XZ64d0zAbULk62oGVDAq8KKAIhAKnpIDabKkLhYDN8atHYqGhMqxkNYqIQ3LJTdRyz3M/r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70776},"type":"module","engines":{"node":">=20.12"},"scripts":{"lint":"oxlint src scripts vitest.config.ts","test":"vitest run --config vitest.config.ts --pool=forks --poolOptions.forks.singleFork","build":"node scripts/build.mjs","verify":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build && pnpm pack:check","typecheck":"tsc --noEmit","pack:check":"npm pack --dry-run","format:check":"oxfmt --check src scripts README.md package.json tsconfig.json vitest.config.ts","prepublishOnly":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build"},"_npmUser":{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"},"repository":{"url":"git+https://github.com/pixel-point/siteos-health.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.9.4","description":"Developer-first CLI for validating, running, and packaging Checks Playwright suites.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"tar":"7.5.20","zod":"3.25.76","fast-glob":"3.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.45.0","oxlint":"^1.60.0","vitest":"^3.2.4","esbuild":"^0.27.7","typescript":"^5","@types/node":"^20"},"_npmOperationalInternal":{"tmp":"tmp/checks_0.1.0_1784672206433_0.6988383260121249","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: use @andrewgolovanov/pulse instead."},"0.2.0":{"name":"@andrewgolovanov/checks","version":"0.2.0","license":"UNLICENSED","_id":"@andrewgolovanov/checks@0.2.0","maintainers":[{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"}],"homepage":"https://github.com/pixel-point/siteos-health#readme","bugs":{"url":"https://github.com/pixel-point/siteos-health/issues"},"bin":{"checks":"dist/cli.js"},"dist":{"shasum":"734d125b55b2b63576ce929341d8d2eac5e17a52","tarball":"https://registry.npmjs.org/@andrewgolovanov/checks/-/checks-0.2.0.tgz","fileCount":4,"integrity":"sha512-3tgr41YvLkWgLE5y1ak10oirOltkO9RCOTPnIvTeBWBUudsJwVFXeNtdt7ItUmNNbxg8n29nuqvznf37i3RP3A==","signatures":[{"sig":"MEUCIC/jMtriTJEw0orkaEXXyNlDkHaSv1zbrL0liUUiTSeBAiEAhyej6zjDSvjS1mGqkS8B5BfUg9gV9Dpin7JgI4int6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109021},"type":"module","engines":{"node":">=20.12"},"gitHead":"069074a2a88f5aaea2527b1ad587ff2bbb69d3f6","scripts":{"lint":"oxlint src scripts vitest.config.ts","test":"vitest run --config vitest.config.ts --pool=forks --poolOptions.forks.singleFork","build":"node scripts/build.mjs","verify":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build && pnpm pack:check","typecheck":"tsc --noEmit","pack:check":"npm pack --dry-run","format:check":"oxfmt --check src scripts README.md package.json tsconfig.json vitest.config.ts","prepublishOnly":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build"},"_npmUser":{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"},"repository":{"url":"git+https://github.com/pixel-point/siteos-health.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.9.4","description":"Developer-first CLI for validating, running, and packaging Checks Playwright suites.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"tar":"7.5.20","zod":"3.25.76","fast-glob":"3.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.45.0","oxlint":"^1.60.0","vitest":"^3.2.4","esbuild":"^0.27.7","typescript":"^5","@types/node":"^20"},"_npmOperationalInternal":{"tmp":"tmp/checks_0.2.0_1784709954906_0.4872982008686799","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: use @andrewgolovanov/pulse instead."},"0.3.0":{"name":"@andrewgolovanov/checks","version":"0.3.0","license":"UNLICENSED","_id":"@andrewgolovanov/checks@0.3.0","maintainers":[{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"}],"homepage":"https://github.com/pixel-point/siteos-health#readme","bugs":{"url":"https://github.com/pixel-point/siteos-health/issues"},"bin":{"checks":"dist/cli.js"},"dist":{"shasum":"bec268a35bcaeadd1e924f6e866b6a68e897d64b","tarball":"https://registry.npmjs.org/@andrewgolovanov/checks/-/checks-0.3.0.tgz","fileCount":4,"integrity":"sha512-aTEfhIJ170mXv6gNJYK9gVuSv7H3YB/bBtKFVeKnUxTx4HisUxxEWbBrJZfg4FRedvoOrRKCXw/oTcHAJ0sqYw==","signatures":[{"sig":"MEUCIBX00hBM+5hqXoRM1lJpSTvNeCU9YQlPFDXoyT/vLinVAiEA05haxSJf4ATqm/amwncESktZRZzDqCqKfTxyGoZlkBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159857},"type":"module","engines":{"node":">=20.12"},"gitHead":"e7cc3db92b2718f99420568510074e01cf976b83","scripts":{"lint":"oxlint src scripts vitest.config.ts","test":"vitest run --config vitest.config.ts --pool=forks --poolOptions.forks.singleFork","build":"node scripts/build.mjs","verify":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build && pnpm pack:check","typecheck":"tsc --noEmit","pack:check":"npm pack --dry-run","format:check":"oxfmt --check src scripts README.md package.json tsconfig.json vitest.config.ts","prepublishOnly":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build"},"_npmUser":{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"},"repository":{"url":"git+https://github.com/pixel-point/siteos-health.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.9.4","description":"Developer-first CLI for validating, running, and packaging Checks Playwright suites.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"tar":"7.5.20","zod":"3.25.76","fast-glob":"3.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.45.0","oxlint":"^1.60.0","vitest":"^3.2.4","esbuild":"^0.27.7","typescript":"^5","@types/node":"^20"},"_npmOperationalInternal":{"tmp":"tmp/checks_0.3.0_1784717719574_0.8841519010531937","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: use @andrewgolovanov/pulse instead."},"0.4.0":{"name":"@andrewgolovanov/checks","version":"0.4.0","license":"UNLICENSED","_id":"@andrewgolovanov/checks@0.4.0","maintainers":[{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"}],"homepage":"https://github.com/pixel-point/siteos-health#readme","bugs":{"url":"https://github.com/pixel-point/siteos-health/issues"},"bin":{"checks":"dist/cli.js"},"dist":{"shasum":"0691eb853c0b7a0a5bafa2b13390102521a517aa","tarball":"https://registry.npmjs.org/@andrewgolovanov/checks/-/checks-0.4.0.tgz","fileCount":4,"integrity":"sha512-Y8y5w6PUulzjFwJhNlVwVGHBdKLa7sUhp3xYivRNMwkKu+e0yJO0kHp4F8cl5FjrInrZ2WSywxqUvsfkFujA3w==","signatures":[{"sig":"MEUCIHilITQdEl/dokSjcW73sPykjPCWQb16M2QmOkw2JKzIAiEAttetkqmaSrbHTTqDvyQVti9ZcxwxzXEaKxgWlvOaZ0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204692},"type":"module","engines":{"node":">=20.12"},"gitHead":"2a8a00c1e28cd0e236d07ebc345748e09bd819b4","scripts":{"lint":"oxlint src scripts vitest.config.ts","test":"vitest run --config vitest.config.ts --pool=forks --poolOptions.forks.singleFork","build":"node scripts/build.mjs","verify":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build && pnpm pack:check","typecheck":"tsc --noEmit","pack:check":"npm pack --dry-run","format:check":"oxfmt --check src scripts README.md package.json tsconfig.json vitest.config.ts","prepublishOnly":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build"},"_npmUser":{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"},"repository":{"url":"git+https://github.com/pixel-point/siteos-health.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.9.4","description":"Developer-first CLI for validating, running, and packaging Checks Playwright suites.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"tar":"7.5.20","zod":"3.25.76","esbuild":"^0.27.7","fast-glob":"3.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.45.0","oxlint":"^1.60.0","vitest":"^3.2.4","typescript":"^5","@types/node":"^20"},"_npmOperationalInternal":{"tmp":"tmp/checks_0.4.0_1784740585816_0.2289569434262022","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: use @andrewgolovanov/pulse instead."},"0.4.1":{"name":"@andrewgolovanov/checks","version":"0.4.1","license":"UNLICENSED","_id":"@andrewgolovanov/checks@0.4.1","maintainers":[{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"}],"homepage":"https://github.com/pixel-point/siteos-health#readme","bugs":{"url":"https://github.com/pixel-point/siteos-health/issues"},"bin":{"checks":"dist/cli.js"},"dist":{"shasum":"3fed577d512ae13556b309a5ca5e4b9a5ca5ef1f","tarball":"https://registry.npmjs.org/@andrewgolovanov/checks/-/checks-0.4.1.tgz","fileCount":4,"integrity":"sha512-gIhTVxgYfLUq1ml/X0QuukyO89qIzvJPb0ICfx6RbdIq+5CSTsaOnHkLuOI/eOCkhyzmaRzCuoaUYzGWCo/0hw==","signatures":[{"sig":"MEUCIE0Q20xRmbBZRnAWTUyBI0ql4Qf5161DPFMsuaB+4+xMAiEAxNrGnCtq0N3dpZjZBbHR/AYRIKy12QWYe83xaPs80Jc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226478},"type":"module","engines":{"node":">=20.12"},"gitHead":"83b4792b8cb552d4459ce2de59d4e254c971f253","scripts":{"lint":"oxlint src scripts vitest.config.ts","test":"vitest run --config vitest.config.ts --pool=forks --poolOptions.forks.singleFork","build":"node scripts/build.mjs","verify":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build && pnpm pack:check","typecheck":"tsc --noEmit","pack:check":"npm pack --dry-run","format:check":"oxfmt --check src scripts README.md package.json tsconfig.json vitest.config.ts","prepublishOnly":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm test && pnpm build"},"_npmUser":{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"},"repository":{"url":"git+https://github.com/pixel-point/siteos-health.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.9.4","description":"Developer-first CLI for validating, running, and packaging Checks Playwright suites.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"tar":"7.5.20","zod":"3.25.76","esbuild":"^0.27.7","fast-glob":"3.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.45.0","oxlint":"^1.60.0","vitest":"^3.2.4","typescript":"^5","@types/node":"^20"},"_npmOperationalInternal":{"tmp":"tmp/checks_0.4.1_1784765985119_0.9077713419141646","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: use @andrewgolovanov/pulse instead."}},"time":{"created":"2026-07-21T22:16:46.212Z","modified":"2026-07-23T09:40:02.705Z","0.1.0":"2026-07-21T22:16:46.603Z","0.2.0":"2026-07-22T08:45:55.037Z","0.3.0":"2026-07-22T10:55:19.735Z","0.4.0":"2026-07-22T17:16:25.955Z","0.4.1":"2026-07-23T00:19:45.264Z"},"bugs":{"url":"https://github.com/pixel-point/siteos-health/issues"},"license":"UNLICENSED","homepage":"https://github.com/pixel-point/siteos-health#readme","repository":{"url":"git+https://github.com/pixel-point/siteos-health.git","type":"git","directory":"packages/cli"},"description":"Developer-first CLI for validating, running, and packaging Checks Playwright suites.","maintainers":[{"name":"andrewgolovanov","email":"spacewebdeveloper@gmail.com"}],"readme":"# Checks CLI\n\nChecks CLI validates and runs Playwright smoke suites locally, then creates an immutable bundle for the Checks monitoring service.\n\n## Requirements\n\n- Node.js 20.12 or newer.\n- A JavaScript or TypeScript project using npm, pnpm, Yarn, or Bun.\n- Chromium installed through Playwright before the mandatory local monitoring run.\n\nDuring guided first-run setup, the CLI can install `@playwright/test` as a development dependency\nafter showing the exact package-manager command and receiving confirmation. It does not install\nChromium or any other project dependency automatically.\n\n## Install\n\nRun without a permanent installation:\n\n```sh\nnpx @andrewgolovanov/checks --help\n```\n\nOr install the `checks` command globally:\n\n```sh\nnpm install --global @andrewgolovanov/checks\nchecks --help\n```\n\n## Quick start\n\nFrom the root of an existing project:\n\n```sh\nnpx @andrewgolovanov/checks login\nnpm install --save-dev @playwright/test\nnpx playwright install chromium\nnpx @andrewgolovanov/checks init --project storefront --base-url https://storefront.example.com\nnpx @andrewgolovanov/checks validate\nCHECKS_BASE_URL=http://localhost:3000 npx @andrewgolovanov/checks test\n```\n\nAlternatively, run `npx @andrewgolovanov/checks` without a command for guided onboarding. If\nPlaywright is missing, Checks detects the package manager and offers to install only\n`@playwright/test` before creating configuration files. If Chromium is missing during the local\ntest, the CLI prints the matching install command; it never downloads the browser without the\nuser running that command.\n\n`checks init` creates:\n\n- `checks.config.json`;\n- `checks.playwright.config.ts` when the project has no Playwright configuration;\n- `tests/checks/homepage.spec.ts` as a replaceable starter check;\n- a `.checks/` entry in `.gitignore`.\n\nExisting Checks configuration and existing Playwright configuration are not overwritten.\n\n## Commands\n\n### `checks init`\n\nCreate the minimal Checks project files. This explicit command does not install dependencies.\n\n```sh\nchecks init --project storefront --suite smoke --tests-dir tests/checks --base-url https://storefront.example.com\n```\n\n### `checks login`\n\nAuthorize the CLI in your browser. The resulting deploy-only token is scoped to the active Checks\nworkspace and stored in `~/.config/checks/credentials.json` with user-only permissions.\n\n```sh\nchecks login\nchecks login --api-url https://health.xui.se\n```\n\nUse `checks logout` to remove the saved session for that API origin.\nUse `checks status` to show the active API origin, workspace, and expiry without\nprinting the deploy token.\n\n### `checks validate`\n\nValidate configuration, test discovery, dependency declaration, bundle size, and secret exclusions.\n\n```sh\nchecks validate\nchecks validate --json\n```\n\n### `checks test`\n\nRun the project's own `@playwright/test` installation. Arguments after `--` are passed to Playwright.\n\n```sh\nchecks test --base-url http://localhost:3000\nchecks test --headed --project chromium -- --workers=1\n```\n\n### `checks deploy`\n\nValidate the project and build an immutable `.tgz` bundle with a SHA-256 checksum:\n\n```sh\nchecks deploy --dry-run\nchecks deploy --dry-run --output .checks/release.tgz --json\n```\n\nRemote upload uses the versioned Checks API and the scoped session created by `checks login`:\n\n```sh\nchecks deploy\n```\n\nFor non-interactive CI, `CHECKS_API_TOKEN` can override the saved local session.\n\nThe CLI has no direct access to PostgreSQL, artifact storage, the scheduler, or the runner.\n\n## Configuration\n\n`checks.config.json` is data-only JSON and is never executed as JavaScript:\n\n```json\n{\n  \"version\": 1,\n  \"project\": \"storefront\",\n  \"suite\": \"smoke\",\n  \"testsDir\": \"tests/checks\",\n  \"baseUrl\": \"https://storefront.example.com\",\n  \"schedule\": { \"enabled\": true, \"cadenceSeconds\": 300 },\n  \"playwrightConfig\": \"playwright.config.ts\",\n  \"include\": [\"tests/checks/**/*\", \"playwright.config.ts\"],\n  \"apiUrl\": \"https://health.xui.se\"\n}\n```\n\nUse `include` for every helper, fixture, or configuration file required by the smoke suite. Paths must stay inside the project root.\n\n## Bundle safety\n\nDeployment bundles are limited to 5,000 files, 50 MiB total, and 10 MiB per file. The CLI rejects sensitive or control-plane paths including:\n\n- `.env` and `.env.*`;\n- `.npmrc`;\n- filenames containing `secret` or `credential`;\n- `.git`, `.checks`, and `node_modules`.\n\n`CHECKS_API_TOKEN` is read from the process environment only when provided and must never be placed in `checks.config.json` or committed to the project.\n","readmeFilename":"README.md"}