{"_id":"@ciach/playwright-private-reporter","_rev":"2-8a3e06f0cc4ad202fbd38f7c6f176ec0","name":"@ciach/playwright-private-reporter","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.1":{"name":"@ciach/playwright-private-reporter","version":"0.1.1","keywords":["playwright","reporter","jenkins","testing","ci"],"author":{"name":"ciach"},"license":"MIT","_id":"@ciach/playwright-private-reporter@0.1.1","maintainers":[{"name":"ciach","email":"ci3l4k@gmail.com"}],"homepage":"https://github.com/ciach/literate-octo-computing-machine/tree/main/packages/playwright-private-reporter#readme","bugs":{"url":"https://github.com/ciach/literate-octo-computing-machine/issues"},"bin":{"playwright-private-reporter-generate":"dist/cjs/bin/generate-report.js"},"dist":{"shasum":"b4a0133c7a22a9458d44be0396d2fe202fc6de4c","tarball":"https://registry.npmjs.org/@ciach/playwright-private-reporter/-/playwright-private-reporter-0.1.1.tgz","fileCount":105,"integrity":"sha512-eybd8mo3zvCbbkFLWWWrOSNyeUW9pfLrYrrx6tALj+dYtQ3iQFhTzQRKW5FiOD1aKKe8HFpt0ykQcetiWjxX2Q==","signatures":[{"sig":"MEYCIQC8W+M78/XDpjd1bEu5clk+tkITqB7Ik1V95nxCAggA6QIhAKRPi9GLkFiPxoSTmG0FRHOizflddjflcjtc5zcNsK4F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117858},"main":"dist/cjs/index.js","type":"module","types":"dist/cjs/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./cli":{"import":{"types":"./dist/esm/cli/generateReport.d.ts","default":"./dist/esm/cli/generateReport.js"},"require":{"types":"./dist/cjs/cli/generateReport.d.ts","default":"./dist/cjs/cli/generateReport.js"}},"./package.json":"./package.json"},"gitHead":"fe7ea40c19596a35950ea65507783d445915dd50","scripts":{"test":"npm run build && node --test tests/*.test.mjs","build":"npm run build:cjs && npm run build:esm && npm run fix:cjs-package","prepack":"npm test","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","fix:cjs-package":"echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json && echo '{\"type\":\"module\"}' > dist/esm/package.json"},"_npmUser":{"name":"ciach","email":"ci3l4k@gmail.com"},"repository":{"url":"git+https://github.com/ciach/literate-octo-computing-machine.git","type":"git","directory":"packages/playwright-private-reporter"},"_npmVersion":"11.6.2","description":"Jenkins-first Playwright reporting utilities.","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2"},"peerDependencies":{"@playwright/test":">=1.45.0"},"_npmOperationalInternal":{"tmp":"tmp/playwright-private-reporter_0.1.1_1774260249731_0.06542212515456902","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ciach/playwright-private-reporter","version":"0.1.2","description":"Jenkins-first Playwright reporting utilities.","license":"MIT","author":{"name":"ciach"},"repository":{"type":"git","url":"git+https://github.com/ciach/literate-octo-computing-machine.git","directory":"packages/playwright-private-reporter"},"bugs":{"url":"https://github.com/ciach/literate-octo-computing-machine/issues"},"homepage":"https://github.com/ciach/literate-octo-computing-machine/tree/main/packages/playwright-private-reporter#readme","keywords":["playwright","reporter","jenkins","testing","ci"],"engines":{"node":">=18"},"type":"module","main":"dist/cjs/index.js","types":"dist/cjs/index.d.ts","bin":{"playwright-private-reporter-generate":"dist/cjs/bin/generate-report.js"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}},"./cli":{"import":{"types":"./dist/esm/cli/generateReport.d.ts","default":"./dist/esm/cli/generateReport.js"},"require":{"types":"./dist/cjs/cli/generateReport.d.ts","default":"./dist/cjs/cli/generateReport.js"}},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"scripts":{"build":"npm run build:cjs && npm run build:esm && npm run fix:cjs-package","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","fix:cjs-package":"echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json && echo '{\"type\":\"module\"}' > dist/esm/package.json","prepack":"npm test","test":"npm run build && node --test tests/*.test.mjs"},"peerDependencies":{"@playwright/test":">=1.45.0"},"devDependencies":{"typescript":"^5.8.2"},"_id":"@ciach/playwright-private-reporter@0.1.2","gitHead":"b9e8118ef823ea1441de3d523de08c718cd29403","_nodeVersion":"18.20.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-OZ816hsMZEMkNa0LBeFLlWj6PsSvCsobG4W8jy7qgLK65lGlekQj1VEP5Fn3O6jv228rdt5NefQUywxIyd/wkg==","shasum":"5ae1b4f6268ad699d2504550760a640f912d7f04","tarball":"https://registry.npmjs.org/@ciach/playwright-private-reporter/-/playwright-private-reporter-0.1.2.tgz","fileCount":133,"unpackedSize":199856,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD8TTZVwCT5bUT9n7IUjEphGkaXw2wsRq6JXflwEmD/JAIhAM/g3cseVhoCLQGgmsaurrBMR/qEHZC6vq190qAG8uMT"}]},"_npmUser":{"name":"ciach","email":"ci3l4k@gmail.com"},"directories":{},"maintainers":[{"name":"ciach","email":"ci3l4k@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/playwright-private-reporter_0.1.2_1774529564311_0.8756645398305898"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-23T10:04:09.597Z","modified":"2026-03-26T12:52:44.602Z","0.1.1":"2026-03-23T10:04:09.892Z","0.1.2":"2026-03-26T12:52:44.482Z"},"bugs":{"url":"https://github.com/ciach/literate-octo-computing-machine/issues"},"author":{"name":"ciach"},"license":"MIT","homepage":"https://github.com/ciach/literate-octo-computing-machine/tree/main/packages/playwright-private-reporter#readme","keywords":["playwright","reporter","jenkins","testing","ci"],"repository":{"type":"git","url":"git+https://github.com/ciach/literate-octo-computing-machine.git","directory":"packages/playwright-private-reporter"},"description":"Jenkins-first Playwright reporting utilities.","maintainers":[{"name":"ciach","email":"ci3l4k@gmail.com"}],"readme":"# @ciach/playwright-private-reporter\n\nJenkins-first Playwright reporting utilities.\n\n## What it gives you\n\n- A `withPrivateReporter()` config wrapper for Playwright projects.\n- A `PrivateReporter` implementation that emits `run.json`, `failures.json`, and `health.json`.\n- A `generateReport` CLI that creates `summary.md` and a themeable static `summary.html` suitable for Jenkins HTML Publisher.\n- JSON schemas and examples for Jenkins + Playwright adoption.\n\n## Installation\n\nAdd the package to a Playwright repo:\n\n```bash\nnpm install --save-dev @ciach/playwright-private-reporter @playwright/test\n```\n\nIf your CI image does not already include browsers, install them as part of setup:\n\n```bash\nnpx playwright install --with-deps\n```\n\n## Consumer quick start\n\n### 1. Wrap your Playwright config\n\n```ts\nimport { defineConfig } from '@playwright/test';\nimport { withPrivateReporter } from '@ciach/playwright-private-reporter';\n\nexport default withPrivateReporter(\n  defineConfig({\n    testDir: './tests',\n    use: {\n      trace: 'retain-on-failure',\n      screenshot: 'only-on-failure',\n      video: 'retain-on-failure',\n    },\n  }),\n  {\n    projectName: 'payments-ui',\n    outputDir: 'artifacts',\n    summaryTheme: 'modern',\n    enableHistoryDiff: true,\n  },\n);\n```\n\nSee the full example in `examples/playwright.config.ts`.\n\n### 2. Run Playwright locally\n\n```bash\nnpx playwright test\nnpx playwright show-report\n```\n\nLocal runs keep developer-friendly terminal/html reporters. CI adds blob + JUnit + the private reporter automatically.\n\n### 3. Generate the Jenkins artifacts in CI\n\nRun tests first:\n\n```bash\nnpx playwright test\n```\n\nMerge sharded blob reports into HTML:\n\n```bash\nnpx playwright merge-reports --reporter html ./all-blob-reports\n```\n\nGenerate the private summary artifacts:\n\n```bash\nnpx playwright-private-reporter-generate\n```\n\n### 4. Publish from Jenkins\n\nUse the example pipeline in `examples/Jenkinsfile` to:\n\n- publish JUnit XML,\n- publish `artifacts/internal-report/summary.html`,\n- publish the merged `playwright-report/index.html`, and\n- archive traces, screenshots, videos, blob zips, and XML.\n\n## Output files\n\nAfter a CI run, expect these artifacts:\n\n- `blob-report/`\n- `playwright-report/`\n- `artifacts/test-results/`\n- `junit/results.xml`\n- `artifacts/internal-report/run.json`\n- `artifacts/internal-report/failures.json`\n- `artifacts/internal-report/health.json`\n- `artifacts/internal-report/summary.md`\n- `artifacts/internal-report/summary.html`\n\n## Themes and custom templates\n\nThe HTML summary renderer is presentation-only. The Playwright reporter still writes JSON first, and `generateReport()` turns that data into HTML later.\n\nBuilt-in themes:\n\n- `classic`: compact version of the original summary.\n- `modern`: richer default with visual hierarchy, cards, collapsible failure groups, and improved artifact navigation.\n\nSet a built-in theme in config or when calling `generateReport()`:\n\n```ts\nwithPrivateReporter(defineConfig({}), {\n  projectName: 'payments-ui',\n  summaryTheme: 'modern',\n});\n```\n\nFor full control, point `summaryTemplatePath` at a local `.js`, `.mjs`, or `.cjs` module that exports either `default` or `renderSummary(context)`.\n\n```ts\nwithPrivateReporter(defineConfig({}), {\n  projectName: 'payments-ui',\n  summaryTemplatePath: './reporting/summary-template.mjs',\n});\n```\n\nThe renderer receives `title`, `theme`, `runSummary`, `failuresSummary`, `diff`, and `artifactLinks`.\n\nSee `examples/summary-templates.md` for the full template guide and the three ready-to-copy examples. You can also import the built-ins from the package and wrap them:\n\n```ts\nimport { renderModernSummaryHtml } from '@ciach/playwright-private-reporter';\n```\n\nIf you invoke the standalone CLI directly, you can also override presentation with env vars:\n\n```bash\nPRIVATE_REPORT_SUMMARY_THEME=modern \\\nPRIVATE_REPORT_SUMMARY_TEMPLATE_PATH=./reporting/summary-template.mjs \\\nnpx playwright-private-reporter-generate\n```\n\n## How to test this package in this repo right now\n\nFrom the repository root:\n\n```bash\nnpm run check:schemas\nnpm run check:examples\nnpm run test:private-reporter\n```\n\nWhat those do:\n\n- `check:schemas` parses the JSON schemas.\n- `check:examples` verifies the example/docs files exist.\n- `test:private-reporter` builds the package and runs the node-based tests for:\n  - `withPrivateReporter()` reporter injection,\n  - `PrivateReporter` artifact generation, and\n  - `generateReport` history-diff summary generation.\n\n## Smoke test in a consumer repo\n\nOnce installed in an actual Playwright project:\n\n1. add `withPrivateReporter(...)` to your `playwright.config.ts`,\n2. run `npx playwright test`,\n3. confirm `junit/results.xml` and `artifacts/internal-report/*.json` exist,\n4. merge blob reports if you shard on CI, and\n5. run `npx playwright-private-reporter-generate` to produce `summary.md` and `summary.html`.\n\n## Publishing\n\nFrom the repository root:\n\n```bash\nnpm --workspace @ciach/playwright-private-reporter test\nnpm publish --workspace @ciach/playwright-private-reporter --access public\n```\n\n`prepack` runs the full test suite before npm creates the publish tarball, so `npm publish` ships freshly built artifacts.\n\n## Example files\n- Playwright config example: `examples/playwright.config.ts`\n- Jenkins pipeline example: `examples/Jenkinsfile`\n- Template guide: `examples/summary-templates.md`\n- Template example: `examples/summary-template.cjs`\n- Template example: `examples/summary-template-minimal.cjs`\n- Template example: `examples/summary-template-ops.cjs`\n- Architecture/build spec: `../../docs/playwright-private-reporter-build-spec.md`\n","readmeFilename":"README.md"}