@tracelane/wdio 0.1.0-alpha.22 → 0.1.0-alpha.24
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 +12 -5
- package/package.json +13 -13
package/README.md
CHANGED
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
# @tracelane/wdio
|
|
4
4
|
|
|
5
|
-
> The recorder for your WebdriverIO
|
|
5
|
+
> The recorder for your WebdriverIO tests. Self-contained HTML for every run — replay failures, audit successes, attach to any bug tracker. No SaaS, no dashboard, no signup. (Playwright is available via [`@tracelane/playwright`](https://github.com/Cubenest/rrweb-stack/tree/main/packages/tracelane-playwright); Cypress is on the roadmap.)
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@tracelane/wdio)
|
|
8
8
|
[](https://www.npmjs.com/package/@tracelane/wdio)
|
|
9
9
|
[](https://github.com/Cubenest/rrweb-stack/blob/main/LICENSE)
|
|
10
10
|
[](https://github.com/Cubenest/rrweb-stack/actions/workflows/ci.yml)
|
|
11
11
|
[](https://scorecard.dev/viewer/?uri=github.com/Cubenest/rrweb-stack)
|
|
12
|
+
[](https://www.npmjs.com/package/@tracelane/wdio)
|
|
13
|
+
[](https://www.npmjs.com/package/@tracelane/wdio)
|
|
14
|
+

|
|
12
15
|
|
|
13
16
|

|
|
14
17
|
|
|
@@ -82,7 +85,7 @@ export const config: Options.Testrunner = {
|
|
|
82
85
|
};
|
|
83
86
|
```
|
|
84
87
|
|
|
85
|
-
`webdriverio` and `@wdio/types` are **peer dependencies** (`^9.0.0`); you already have them in a WDIO project.
|
|
88
|
+
`webdriverio` and `@wdio/types` are **peer dependencies** (`^9.0.0`); you already have them in a WDIO project. Node **>= 22** is required (a common first-run failure on older runtimes).
|
|
86
89
|
|
|
87
90
|
## How it works
|
|
88
91
|
|
|
@@ -92,6 +95,8 @@ export const config: Options.Testrunner = {
|
|
|
92
95
|
|
|
93
96
|
**Content-Security-Policy**: rrweb capture requires in-page script evaluation. If a page's CSP blocks `'unsafe-eval'`, capture degrades gracefully — the test still runs and completes normally, a warning is logged once, but no replay is recorded for the affected page.
|
|
94
97
|
|
|
98
|
+
For what `tracelane` captures, masks, and never sends off your machine, see the [security notes](https://github.com/Cubenest/rrweb-stack/blob/main/docs/SECURITY-NOTES.md).
|
|
99
|
+
|
|
95
100
|
## Options
|
|
96
101
|
|
|
97
102
|
| Option | Type | Default | Notes |
|
|
@@ -102,10 +107,13 @@ export const config: Options.Testrunner = {
|
|
|
102
107
|
| `capture.network` | `boolean` | `true` | Capture network requests via the in-page `rrweb/network@1` plugin — all browsers, no CDP. Privacy-first: only URL/method/status/timing by default (headers + bodies off; opt in via `capture.networkOptions`). CDP is an optional fallback that adds authoritative status + true no-response failures where it's available. |
|
|
103
108
|
| `capture.networkOptions` | `NetworkRecordOptions` | plugin defaults | Forwarded to the in-page network plugin (`recordHeaders`, `recordBody`, `maskRequestFn`, `payloadHostDenyList`, …). Defaults are privacy-first (headers + bodies off). Ignored when `capture.network` is `false`. |
|
|
104
109
|
| `capture.console` | `boolean` | `true` | Capture `console.*` via the rrweb console plugin. Setting this `false` also drops any `[tracelane.net]` network-error lines from the CDP fallback path, since those surface through `console.error`. |
|
|
110
|
+
| `consolePluginOptions` | `ConsolePluginOptions` | plugin defaults | Forwarded to the in-page rrweb console plugin. Ignored when `capture.console` is `false` (which instead passes `{ level: [] }` to patch no methods). |
|
|
105
111
|
| `drainIntervalMs` | `number` | `500` | Node-side drain poll interval. |
|
|
106
112
|
| `cooldownMs` | `number` | `250` | Re-injection cooldown guard (suppresses double-init on hash/HMR navigation). |
|
|
113
|
+
| `security` | `boolean` | `true` | Advisory security-hygiene signals (`[tracelane.sec]`) captured during the run and analyzed in the report. Set `false` to disable both the capture and the analysis. When on, an optional `tracelane.security.suppress.json` in the project cwd silences known-acceptable signals (missing/malformed file degrades to no suppressions). |
|
|
107
114
|
| `allure` | `boolean` | `false` | Reserved for the v1.1 Allure shim. No-op in v1. |
|
|
108
115
|
| `visualDiff` | `boolean` | `false` | Reserved for the post-MVP visual-diff add-on. No-op in v1. |
|
|
116
|
+
| `report.footer` | `boolean` | `true` | Show the tool-credit footer in the generated HTML report. Set `false` to suppress it. |
|
|
109
117
|
|
|
110
118
|
The options type is published — `import type { TraceLaneOptions } from '@tracelane/wdio'`.
|
|
111
119
|
|
|
@@ -145,7 +153,6 @@ Privacy-first by default: only **URL, method, status, and timing** are captured.
|
|
|
145
153
|
|
|
146
154
|
When a CDP-capable session is present, `tracelane` *additionally* uses `browser.cdp(...)` to capture **authoritative HTTP status** for failed responses (`status >= 400`) and **true no-response failures** (CORS/DNS/offline/abort) that the page wrappers can't always see. These are routed into the report's console timeline (prefixed `[tracelane.net]`) and the report merges them over the in-page rows for the same request (real status wins). To enable it:
|
|
147
155
|
|
|
148
|
-
- **WDIO 8:** add `['devtools', {}]` via `@wdio/devtools-service@8`.
|
|
149
156
|
- **WDIO 9:** `@wdio/devtools-service` has no stable v9 line (it stabilized at v10); use the v10 service or a CDP-capable session.
|
|
150
157
|
|
|
151
158
|
If CDP is unavailable (cloud Selenium, Firefox, Safari), nothing is lost beyond the CDP-only authoritative-status enhancement — the in-page plugin still populates the network panel and the report is still produced.
|
|
@@ -167,7 +174,7 @@ If CDP is unavailable (cloud Selenium, Firefox, Safari), nothing is lost beyond
|
|
|
167
174
|
|
|
168
175
|
## Playwright + Cypress
|
|
169
176
|
|
|
170
|
-
The
|
|
177
|
+
The design is portable across runners — same `@tracelane/core` engine, different glue. Tracking issues:
|
|
171
178
|
|
|
172
179
|
- **`@tracelane/playwright`** — Playwright Reporter implementing `onTestEnd` + `onAttachment` for shareable HTML. Targeted for week 2-3 of the public launch.
|
|
173
180
|
- **`@tracelane/cypress`** — JSON-output adapter only (no Cypress Test Replay overlap). Targeted for week 11.
|
|
@@ -176,7 +183,7 @@ Watch the [release notes](https://github.com/Cubenest/rrweb-stack/releases) on `
|
|
|
176
183
|
|
|
177
184
|
## Versioning & telemetry
|
|
178
185
|
|
|
179
|
-
Semantic Versioning. Currently `0.1.0-alpha.x` (pre-release; the API may shift before `1.0.0`). See [SUPPORTED.md](https://github.com/Cubenest/rrweb-stack/blob/main/SUPPORTED.md) for the compatibility matrix.
|
|
186
|
+
Semantic Versioning. Currently `0.1.0-alpha.x` (pre-release; the API may shift before `1.0.0`). See [SUPPORTED.md](https://github.com/Cubenest/rrweb-stack/blob/main/SUPPORTED.md) for the compatibility matrix and the [CHANGELOG](https://github.com/Cubenest/rrweb-stack/blob/main/packages/tracelane-wdio/CHANGELOG.md) for release history.
|
|
180
187
|
|
|
181
188
|
**No telemetry.** `tracelane` collects and sends nothing; reports are written to your local `outDir` only. The generated HTML report includes a footer crediting the tool; you can suppress it with `report: { footer: false }`.
|
|
182
189
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tracelane/wdio",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.24",
|
|
4
4
|
"description": "WebdriverIO Service that records rrweb sessions and writes a self-contained HTML report on failed tests. The user-facing tracelane integration for WDIO.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tracelane",
|
|
@@ -38,24 +38,24 @@
|
|
|
38
38
|
"README.md"
|
|
39
39
|
],
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@tracelane/core": "0.1.0-alpha.
|
|
42
|
-
"@tracelane/report": "0.1.0-alpha.
|
|
41
|
+
"@tracelane/core": "0.1.0-alpha.18",
|
|
42
|
+
"@tracelane/report": "0.1.0-alpha.21"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@wdio/types": "^9.0.0",
|
|
46
46
|
"webdriverio": "^9.0.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@wdio/cli": "^9.
|
|
50
|
-
"@wdio/globals": "^9.
|
|
51
|
-
"@wdio/local-runner": "^9.
|
|
52
|
-
"@wdio/mocha-framework": "^9.
|
|
53
|
-
"@wdio/spec-reporter": "^9.
|
|
54
|
-
"@wdio/types": "^9.
|
|
55
|
-
"esbuild": "^0.28.
|
|
56
|
-
"tsx": "^4.
|
|
57
|
-
"webdriverio": "^9.
|
|
58
|
-
"@cubenest/rrweb-core": "0.1.0-alpha.
|
|
49
|
+
"@wdio/cli": "^9.29.0",
|
|
50
|
+
"@wdio/globals": "^9.29.0",
|
|
51
|
+
"@wdio/local-runner": "^9.29.0",
|
|
52
|
+
"@wdio/mocha-framework": "^9.29.0",
|
|
53
|
+
"@wdio/spec-reporter": "^9.29.0",
|
|
54
|
+
"@wdio/types": "^9.29.0",
|
|
55
|
+
"esbuild": "^0.28.1",
|
|
56
|
+
"tsx": "^4.22.4",
|
|
57
|
+
"webdriverio": "^9.29.0",
|
|
58
|
+
"@cubenest/rrweb-core": "0.1.0-alpha.7"
|
|
59
59
|
},
|
|
60
60
|
"publishConfig": {
|
|
61
61
|
"access": "public",
|