@reportforge/playwright-pdf 0.27.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Playwright PDF reporter: generate branded PDF reports from [Playwright Test](https://playwright.dev/) results. Three templates (minimal, detailed, executive) for developers, QA teams, and stakeholders. CI-ready, self-contained, with embedded screenshots and charts.
4
4
 
5
- Drop it into any Playwright project and get a PDF report on every CI run. No changes to your tests. Testing with Python? The same reports ship as [`reportforge-playwright-pdf` on PyPI](https://pypi.org/project/reportforge-playwright-pdf/) for pytest-playwright, on the same license key (see [Python](#python)).
5
+ Drop it into any Playwright project and get a PDF report on every CI run. No changes to your tests. Testing with Python or .NET? The same reports ship as [`reportforge-playwright-pdf` on PyPI](https://pypi.org/project/reportforge-playwright-pdf/) and `ReportForge.Playwright.Pdf` on NuGet, on the same license key (see [Python](#python) and [.NET](#net)).
6
6
 
7
7
  [![npm](https://img.shields.io/npm/v/@reportforge/playwright-pdf.svg)](https://www.npmjs.com/package/@reportforge/playwright-pdf)
8
8
  [![Node](https://img.shields.io/node/v/@reportforge/playwright-pdf.svg)](https://nodejs.org/)
@@ -67,7 +67,7 @@ Three templates, one reporter. Every PDF is fully offline: fonts, charts, and sc
67
67
  - **Executive report brief band**: leads with a plain-language brief (trend + root causes) and one hero pass-rate number instead of a flat KPI grid
68
68
  - **Data protection**: AES-256 password-protected PDFs (no external tools) and opt-in redaction of credentials/PII in report content and live streams
69
69
  - **Hybrid licensing**: one short key unlocks it; reports keep rendering offline via a locally cached license between refreshes
70
- - **Python support**: the same reports for pytest-playwright via the `reportforge-playwright-pdf` PyPI package; one subscription key covers both ecosystems (live runs and step trees are Node.js-only today)
70
+ - **Python and .NET support**: the same reports for pytest-playwright (`reportforge-playwright-pdf` on PyPI) and for NUnit/MSTest/xUnit (`ReportForge.Playwright.Pdf` on NuGet); one subscription key covers every ecosystem (live runs and step trees are Node.js-only today)
71
71
  - **Update notice**: when a newer reporter version is published, each run ends with one info line naming it and the update command; no extra network calls
72
72
 
73
73
  ---
@@ -183,6 +183,21 @@ The plugin reuses the Node runtime and Chromium that Playwright for Python alrea
183
183
 
184
184
  ---
185
185
 
186
+ ## .NET
187
+
188
+ The same reports for [Playwright .NET](https://playwright.dev/dotnet/) runs, from the `ReportForge.Playwright.Pdf` NuGet package. One vstest logger covers NUnit, MSTest, and xUnit, and the same subscription key covers every language.
189
+
190
+ ```bash
191
+ dotnet add package ReportForge.Playwright.Pdf
192
+
193
+ set RF_LICENSE_KEY=RFSU-XXXX-XXXX-XXXX-XXXX
194
+ dotnet test --logger "reportforge;output=reports/run.pdf;template=detailed"
195
+ ```
196
+
197
+ Full options come from a JSON file with the same camelCase names as this reporter: `--logger "reportforge;optionsFile=rf-options.json"`. The logger reuses the Node runtime Microsoft.Playwright places in your test output and a Playwright-managed Chromium, so there is nothing else to install. Retried tests render as flaky with their attempt history; categories become tags. Live runs and step trees are Node.js-only today. Full guide: [reportforge.org/docs/dotnet](https://reportforge.org/docs/dotnet).
198
+
199
+ ---
200
+
186
201
  ## Pricing
187
202
 
188
203
  | Plan | INR | USD | Includes |
@@ -704,7 +719,7 @@ ReportForge ships a **hybrid offline-first** model:
704
719
  3. Every subsequent run is **fully offline**: the cached license is validated on-device. No network call.
705
720
  4. The reporter refreshes the cache automatically in the background before it expires.
706
721
  5. Each subscription allows up to **25 active machines**. Machines that haven't run in 30 days free up automatically.
707
- 6. The key is **language-neutral**: the same subscription activates the Node.js reporter and the Python plugin, and a machine running both uses one slot.
722
+ 6. The key is **language-neutral**: the same subscription activates the Node.js reporter, the Python plugin, and the .NET logger, and a machine running several uses one slot.
708
723
 
709
724
  Cancel the subscription and the reporter keeps working until the end of the current billing period, then stops generating PDFs until you restart. **A license issue never aborts your test run**: the reporter logs a warning and skips PDF generation; your Playwright tests still pass.
710
725
 
@@ -766,6 +781,7 @@ Full documentation at [reportforge.org/docs](https://reportforge.org/docs):
766
781
 
767
782
  - [Quick start](https://reportforge.org/docs/quickstart): install, configure, activate
768
783
  - [Python](https://reportforge.org/docs/python): the pytest-playwright plugin, same license key
784
+ - [.NET](https://reportforge.org/docs/dotnet): the NUnit/MSTest/xUnit logger, same license key
769
785
  - [Chrome setup](https://reportforge.org/docs/running-tests#chrome-setup): Windows, Linux, macOS
770
786
  - [CI/CD integration](https://reportforge.org/docs/ci-cd): GitHub Actions, GitLab CI, Bitbucket Pipelines, Jenkins, Azure DevOps
771
787
  - [Configuration reference](https://reportforge.org/docs/configuration): all options
package/dist/index.js CHANGED
@@ -15257,7 +15257,7 @@ var PdfReporter = class {
15257
15257
  if (this.options.redact.enabled) {
15258
15258
  this.redactor = new Redactor(this.options.redact);
15259
15259
  }
15260
- this.version = true ? "0.27.0" : "0.x";
15260
+ this.version = true ? "0.28.0" : "0.x";
15261
15261
  logger.info(`@reportforge/playwright-pdf v${this.version} initialised`);
15262
15262
  this.licenseClient = new LicenseClient({
15263
15263
  licenseKey: this.options.licenseKey,
package/dist/index.mjs CHANGED
@@ -15258,7 +15258,7 @@ var PdfReporter = class {
15258
15258
  if (this.options.redact.enabled) {
15259
15259
  this.redactor = new Redactor(this.options.redact);
15260
15260
  }
15261
- this.version = true ? "0.27.0" : "0.x";
15261
+ this.version = true ? "0.28.0" : "0.x";
15262
15262
  logger.info(`@reportforge/playwright-pdf v${this.version} initialised`);
15263
15263
  this.licenseClient = new LicenseClient({
15264
15264
  licenseKey: this.options.licenseKey,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reportforge/playwright-pdf",
3
- "version": "0.27.0",
3
+ "version": "0.28.0",
4
4
  "description": "Playwright Test reporter that generates designed PDF reports: minimal, detailed, and executive templates with CI/CD integrations",
5
5
  "license": "Elastic-2.0",
6
6
  "author": "ReportForge",