@tracelane/wdio 0.1.0-alpha.1 → 0.1.0-alpha.10

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/dist/service.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Frameworks, Services } from '@wdio/types';
1
+ import type { Capabilities, Frameworks, Options, Services } from '@wdio/types';
2
2
  import type { TraceLaneOptions } from './options.js';
3
3
  /**
4
4
  * The tracelane WebdriverIO Service. Implements the worker + launcher hooks from
@@ -6,18 +6,27 @@ import type { TraceLaneOptions } from './options.js';
6
6
  * `afterScenario`) are declared as plain methods since `@wdio/types` doesn't put
7
7
  * them on `ServiceInstance` (they only exist at runtime under the Cucumber
8
8
  * framework).
9
+ *
10
+ * The constructor signature deliberately matches `Services.ServiceClass`:
11
+ * `new (options: WebdriverIO.ServiceOption,
12
+ * capabilities: ResolvedTestrunnerCapabilities,
13
+ * config: Options.Testrunner): ServiceInstance`
14
+ * (T-4 fix, 2026-05-28 QA walk). Earlier intersection-typing on `options` was
15
+ * not enough — the `capabilities` and `config` parameters had to ALSO be
16
+ * compatible with the interface, otherwise registering the class as
17
+ * `services: [[TraceLaneService, { ... }]]` raised the "not assignable to
18
+ * ServiceClass" error in the user's wdio.conf.ts. With the full triple in
19
+ * place the tuple form typechecks without `@ts-expect-error`.
9
20
  */
10
21
  export default class TraceLaneService implements Services.ServiceInstance {
11
22
  private readonly session;
12
23
  /**
13
24
  * WDIO instantiates the Service with `(options, capabilities, config)`. We
14
25
  * read `config.framework` so the result-shape switch (P1 PRD §A.2) picks the
15
- * right normalization, and `config.outputDir`-adjacent options come from the
16
- * `options` arg.
26
+ * right normalization. `capabilities` is accepted for ServiceClass
27
+ * compatibility but unused (the live browser arrives in the `before` hook).
17
28
  */
18
- constructor(options?: TraceLaneOptions, _capabilities?: unknown, config?: {
19
- framework?: string;
20
- });
29
+ constructor(options?: TraceLaneOptions & WebdriverIO.ServiceOption, _capabilities?: Capabilities.ResolvedTestrunnerCapabilities, config?: Options.Testrunner);
21
30
  /** Refine the framework + worker id once the session is initializing. */
22
31
  beforeSession(_config: unknown, _capabilities: unknown, _specs: string[], cid?: string): void;
23
32
  /** Worker hook: stash the live browser + build the recorder. */
@@ -32,8 +41,24 @@ export default class TraceLaneService implements Services.ServiceInstance {
32
41
  beforeScenario(world: unknown, _context?: unknown): Promise<void>;
33
42
  /** Cucumber: scenario end (runtime-only hook; mirrors `afterTest`). */
34
43
  afterScenario(world: unknown, result?: unknown): Promise<void>;
35
- /** Re-inject the recorder after a `url(...)` navigation (ADR-0006). */
36
- beforeCommand(commandName: string, args: unknown[]): Promise<void>;
44
+ /**
45
+ * Re-inject the recorder AFTER a `url(...)` navigation (ADR-0006, T-9 fix).
46
+ *
47
+ * WDIO's `beforeCommand` fires before the command executes; if we re-inject
48
+ * there, the page is about to be torn down and Chrome's load of the new URL
49
+ * destroys the just-injected rrweb instance + the `__tracelane__events`
50
+ * buffer. By the time the test starts interacting nothing is recording.
51
+ *
52
+ * `afterCommand` fires after WDIO returns from `url(...)`, which only
53
+ * happens once Chrome has navigated and the document has loaded. Injecting
54
+ * here lands rrweb on the NEW page, where it can observe DOM mutations,
55
+ * console output, and fetches.
56
+ *
57
+ * Errors from the command itself (e.g. a malformed URL) skip re-injection —
58
+ * if the navigation failed, the page never changed and the existing
59
+ * recorder (if any) is still attached to the old page; this is a no-op.
60
+ */
61
+ afterCommand(commandName: string, args: unknown[], _result: unknown, error?: Error): Promise<void>;
37
62
  /** No-op in v1; present for the documented hook surface (ADR-0004). */
38
63
  afterSuite(_suite: Frameworks.Suite): void;
39
64
  /** Worker teardown: stop the drain poll so no timer leaks. */
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKrD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,QAAQ,CAAC,eAAe;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAE3C;;;;;OAKG;gBAED,OAAO,GAAE,gBAAqB,EAC9B,aAAa,CAAC,EAAE,OAAO,EACvB,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAKjC,yEAAyE;IACzE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7F,gEAAgE;IAC1D,MAAM,CACV,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,WAAW,CAAC,OAAO,GAC3B,OAAO,CAAC,IAAI,CAAC;IAIhB,uEAAuE;IACvE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI;IAE3C,mEAAmE;IAC7D,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzE,yEAAyE;IACnE,SAAS,CACb,KAAK,EAAE,UAAU,CAAC,IAAI,EACtB,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,UAAU,CAAC,UAAU,GAC5B,OAAO,CAAC,IAAI,CAAC;IAIhB,0EAA0E;IACpE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvE,uEAAuE;IACjE,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,uEAAuE;IACjE,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxE,uEAAuE;IACvE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI;IAE1C,8DAA8D;IACxD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF,8EAA8E;IAC9E,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,OAAO,GAChB,IAAI;CACR"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKrD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,QAAQ,CAAC,eAAe;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAE3C;;;;;OAKG;gBAED,OAAO,GAAE,gBAAgB,GAAG,WAAW,CAAC,aAAkB,EAC1D,aAAa,CAAC,EAAE,YAAY,CAAC,8BAA8B,EAC3D,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU;IAK7B,yEAAyE;IACzE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7F,gEAAgE;IAC1D,MAAM,CACV,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,WAAW,CAAC,OAAO,GAC3B,OAAO,CAAC,IAAI,CAAC;IAIhB,uEAAuE;IACvE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI;IAE3C,mEAAmE;IAC7D,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzE,yEAAyE;IACnE,SAAS,CACb,KAAK,EAAE,UAAU,CAAC,IAAI,EACtB,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,UAAU,CAAC,UAAU,GAC5B,OAAO,CAAC,IAAI,CAAC;IAIhB,0EAA0E;IACpE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvE,uEAAuE;IACjE,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EAAE,EACf,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,IAAI,CAAC;IAMhB,uEAAuE;IACvE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI;IAE1C,8DAA8D;IACxD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF,8EAA8E;IAC9E,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,OAAO,GAChB,IAAI;CACR"}
package/dist/service.js CHANGED
@@ -15,14 +15,25 @@ import { TraceLaneSession } from './tracelane-session.js';
15
15
  * `afterScenario`) are declared as plain methods since `@wdio/types` doesn't put
16
16
  * them on `ServiceInstance` (they only exist at runtime under the Cucumber
17
17
  * framework).
18
+ *
19
+ * The constructor signature deliberately matches `Services.ServiceClass`:
20
+ * `new (options: WebdriverIO.ServiceOption,
21
+ * capabilities: ResolvedTestrunnerCapabilities,
22
+ * config: Options.Testrunner): ServiceInstance`
23
+ * (T-4 fix, 2026-05-28 QA walk). Earlier intersection-typing on `options` was
24
+ * not enough — the `capabilities` and `config` parameters had to ALSO be
25
+ * compatible with the interface, otherwise registering the class as
26
+ * `services: [[TraceLaneService, { ... }]]` raised the "not assignable to
27
+ * ServiceClass" error in the user's wdio.conf.ts. With the full triple in
28
+ * place the tuple form typechecks without `@ts-expect-error`.
18
29
  */
19
30
  export default class TraceLaneService {
20
31
  session;
21
32
  /**
22
33
  * WDIO instantiates the Service with `(options, capabilities, config)`. We
23
34
  * read `config.framework` so the result-shape switch (P1 PRD §A.2) picks the
24
- * right normalization, and `config.outputDir`-adjacent options come from the
25
- * `options` arg.
35
+ * right normalization. `capabilities` is accepted for ServiceClass
36
+ * compatibility but unused (the live browser arrives in the `before` hook).
26
37
  */
27
38
  constructor(options = {}, _capabilities, config) {
28
39
  this.session = new TraceLaneSession(options, config?.framework);
@@ -55,11 +66,29 @@ export default class TraceLaneService {
55
66
  async afterScenario(world, result) {
56
67
  await this.session.onAfterTest(world, result);
57
68
  }
58
- /** Re-inject the recorder after a `url(...)` navigation (ADR-0006). */
59
- async beforeCommand(commandName, args) {
60
- if (commandName === 'url' && typeof args[0] === 'string') {
61
- await this.session.onUrl(args[0]);
62
- }
69
+ /**
70
+ * Re-inject the recorder AFTER a `url(...)` navigation (ADR-0006, T-9 fix).
71
+ *
72
+ * WDIO's `beforeCommand` fires before the command executes; if we re-inject
73
+ * there, the page is about to be torn down and Chrome's load of the new URL
74
+ * destroys the just-injected rrweb instance + the `__tracelane__events`
75
+ * buffer. By the time the test starts interacting nothing is recording.
76
+ *
77
+ * `afterCommand` fires after WDIO returns from `url(...)`, which only
78
+ * happens once Chrome has navigated and the document has loaded. Injecting
79
+ * here lands rrweb on the NEW page, where it can observe DOM mutations,
80
+ * console output, and fetches.
81
+ *
82
+ * Errors from the command itself (e.g. a malformed URL) skip re-injection —
83
+ * if the navigation failed, the page never changed and the existing
84
+ * recorder (if any) is still attached to the old page; this is a no-op.
85
+ */
86
+ async afterCommand(commandName, args, _result, error) {
87
+ if (commandName !== 'url' || typeof args[0] !== 'string')
88
+ return;
89
+ if (error !== undefined)
90
+ return;
91
+ await this.session.onUrl(args[0]);
63
92
  }
64
93
  /** No-op in v1; present for the documented hook surface (ADR-0004). */
65
94
  afterSuite(_suite) { }
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,qEAAqE;AACrE,EAAE;AACF,iFAAiF;AACjF,gEAAgE;AAIhE,OAAO,EAAiB,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAClB,OAAO,CAAmB;IAE3C;;;;;OAKG;IACH,YACE,UAA4B,EAAE,EAC9B,aAAuB,EACvB,MAA+B;QAE/B,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,yEAAyE;IACzE,aAAa,CAAC,OAAgB,EAAE,aAAsB,EAAE,MAAgB,EAAE,GAAY;QACpF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,MAAM,CACV,aAAsB,EACtB,MAAgB,EAChB,OAA4B;QAE5B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAiC,CAAC,CAAC;IACjE,CAAC;IAED,uEAAuE;IACvE,WAAW,CAAC,MAAwB,IAAS,CAAC;IAE9C,mEAAmE;IACnE,KAAK,CAAC,UAAU,CAAC,IAAqB,EAAE,QAAiB;QACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,IAAgB,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,SAAS,CACb,KAAsB,EACtB,QAAiB,EACjB,MAA6B;QAE7B,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,cAAc,CAAC,KAAc,EAAE,QAAkB;QACrD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,aAAa,CAAC,KAAc,EAAE,MAAgB;QAClD,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,IAAe;QACtD,IAAI,WAAW,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,UAAU,CAAC,MAAwB,IAAS,CAAC;IAE7C,8DAA8D;IAC9D,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,aAAsB,EAAE,MAAgB;QACnE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,8EAA8E;IAC9E,UAAU,CACR,SAAiB,EACjB,OAAgB,EAChB,aAAsB,EACtB,QAAiB,IACV,CAAC;CACX"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,qEAAqE;AACrE,EAAE;AACF,iFAAiF;AACjF,gEAAgE;AAIhE,OAAO,EAAiB,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAClB,OAAO,CAAmB;IAE3C;;;;;OAKG;IACH,YACE,UAAwD,EAAE,EAC1D,aAA2D,EAC3D,MAA2B;QAE3B,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,yEAAyE;IACzE,aAAa,CAAC,OAAgB,EAAE,aAAsB,EAAE,MAAgB,EAAE,GAAY;QACpF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,MAAM,CACV,aAAsB,EACtB,MAAgB,EAChB,OAA4B;QAE5B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAiC,CAAC,CAAC;IACjE,CAAC;IAED,uEAAuE;IACvE,WAAW,CAAC,MAAwB,IAAS,CAAC;IAE9C,mEAAmE;IACnE,KAAK,CAAC,UAAU,CAAC,IAAqB,EAAE,QAAiB;QACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,IAAgB,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,SAAS,CACb,KAAsB,EACtB,QAAiB,EACjB,MAA6B;QAE7B,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,cAAc,CAAC,KAAc,EAAE,QAAkB;QACrD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,aAAa,CAAC,KAAc,EAAE,MAAgB;QAClD,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,YAAY,CAChB,WAAmB,EACnB,IAAe,EACf,OAAgB,EAChB,KAAa;QAEb,IAAI,WAAW,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;YAAE,OAAO;QACjE,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,uEAAuE;IACvE,UAAU,CAAC,MAAwB,IAAS,CAAC;IAE7C,8DAA8D;IAC9D,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,aAAsB,EAAE,MAAgB;QACnE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,8EAA8E;IAC9E,UAAU,CACR,SAAiB,EACjB,OAAgB,EAChB,aAAsB,EACtB,QAAiB,IACV,CAAC;CACX"}
@@ -55,7 +55,15 @@ export declare class TraceLaneSession {
55
55
  * exactly once (#2).
56
56
  */
57
57
  private maybeAttachNetworkCapture;
58
- /** WDIO `beforeCommand('url', ...)`: re-inject the recorder after navigation. */
58
+ /**
59
+ * WDIO `afterCommand('url', ...)`: re-inject the recorder AFTER the
60
+ * navigation has landed (T-9 fix). The Service / hooks factory used to
61
+ * call this from `beforeCommand`, but that fired before the navigation —
62
+ * the page was about to be torn down, and the freshly-re-injected rrweb
63
+ * + the `__tracelane__events` buffer were both wiped by the load. Now we
64
+ * inject on the NEW page so events flow from the first FullSnapshot
65
+ * forward.
66
+ */
59
67
  onUrl(url: string): Promise<void>;
60
68
  /**
61
69
  * `afterTest`/`afterScenario`: normalize the framework result, ask the
@@ -1 +1 @@
1
- {"version":3,"file":"tracelane-session.d.ts","sourceRoot":"","sources":["../src/tracelane-session.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,oBAAoB,CAAC;AAQ1E,qFAAqF;AACrF,UAAU,mBAAmB;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,KAAK,cAAc,GAAG,WAAW,GAAG;IAClC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,GAAG,CAAqB;IAEhC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,eAAe,CAAS;IAChC,6EAA6E;IAC7E,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,OAAO,GAAE,gBAAqB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAW5E,iFAAiF;IACjF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIjD,+EAA+E;IAC/E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIrC;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAKnC,sEAAsE;IACtE,OAAO,CAAC,4BAA4B;IAqBpC,iFAAiF;IAC3E,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D;;;;;OAKG;YACW,yBAAyB;IAevC,iFAAiF;IAC3E,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAuBnF;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,gFAAgF;IAChF,OAAO,CAAC,SAAS;CAclB"}
1
+ {"version":3,"file":"tracelane-session.d.ts","sourceRoot":"","sources":["../src/tracelane-session.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,oBAAoB,CAAC;AAQ1E,qFAAqF;AACrF,UAAU,mBAAmB;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,KAAK,cAAc,GAAG,WAAW,GAAG;IAClC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,GAAG,CAAqB;IAEhC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,eAAe,CAAS;IAChC,6EAA6E;IAC7E,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,OAAO,GAAE,gBAAqB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAW5E,iFAAiF;IACjF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIjD,+EAA+E;IAC/E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIrC;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAKnC,sEAAsE;IACtE,OAAO,CAAC,4BAA4B;IA6BpC,iFAAiF;IAC3E,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D;;;;;OAKG;YACW,yBAAyB;IAevC;;;;;;;;OAQG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAuBnF;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,gFAAgF;IAChF,OAAO,CAAC,SAAS;CAclB"}
@@ -82,6 +82,14 @@ export class TraceLaneSession {
82
82
  if (consolePluginOptions !== undefined) {
83
83
  recorderOptions.consolePluginOptions = consolePluginOptions;
84
84
  }
85
+ // Network plugin opt-in: when capture.network !== false (default), forward
86
+ // the user's networkOptions (or `{}` for the plugin's defaults — bodies +
87
+ // headers off, PerformanceObserver on). When capture.network === false we
88
+ // pass nothing, leaving the legacy CDP path as the only network channel.
89
+ if (this.captureNetwork) {
90
+ recorderOptions.networkPluginOptions =
91
+ this.options.capture?.networkOptions ?? {};
92
+ }
85
93
  if (this.options.mode !== undefined) {
86
94
  recorderOptions.mode = this.options.mode;
87
95
  }
@@ -120,7 +128,15 @@ export class TraceLaneSession {
120
128
  console.warn('[tracelane/wdio] network capture unavailable (CDP not attached); degrading to rrweb+console only.');
121
129
  }
122
130
  }
123
- /** WDIO `beforeCommand('url', ...)`: re-inject the recorder after navigation. */
131
+ /**
132
+ * WDIO `afterCommand('url', ...)`: re-inject the recorder AFTER the
133
+ * navigation has landed (T-9 fix). The Service / hooks factory used to
134
+ * call this from `beforeCommand`, but that fired before the navigation —
135
+ * the page was about to be torn down, and the freshly-re-injected rrweb
136
+ * + the `__tracelane__events` buffer were both wiped by the load. Now we
137
+ * inject on the NEW page so events flow from the first FullSnapshot
138
+ * forward.
139
+ */
124
140
  async onUrl(url) {
125
141
  if (!this.recorder)
126
142
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"tracelane-session.js","sourceRoot":"","sources":["../src/tracelane-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracelane-session.js","sourceRoot":"","sources":["../src/tracelane-session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tracelane/wdio",
3
- "version": "0.1.0-alpha.1",
3
+ "version": "0.1.0-alpha.10",
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
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -16,23 +16,20 @@
16
16
  "import": "./dist/hooks.js"
17
17
  }
18
18
  },
19
- "files": ["dist", "NOTICE", "README.md"],
20
- "scripts": {
21
- "build": "tsc -p tsconfig.json && node scripts/build-rrweb-bundle.mjs",
22
- "typecheck": "tsc -p tsconfig.json --noEmit",
23
- "test": "vitest run --passWithNoTests",
24
- "test:e2e": "node scripts/build-rrweb-bundle.mjs && node ./e2e/run.mjs"
25
- },
19
+ "files": [
20
+ "dist",
21
+ "NOTICE",
22
+ "README.md"
23
+ ],
26
24
  "dependencies": {
27
- "@tracelane/core": "workspace:*",
28
- "@tracelane/report": "workspace:*"
25
+ "@tracelane/core": "0.1.0-alpha.7",
26
+ "@tracelane/report": "0.1.0-alpha.8"
29
27
  },
30
28
  "peerDependencies": {
31
29
  "@wdio/types": "^9.0.0",
32
30
  "webdriverio": "^9.0.0"
33
31
  },
34
32
  "devDependencies": {
35
- "@cubenest/rrweb-core": "workspace:*",
36
33
  "@wdio/cli": "^9.0.0",
37
34
  "@wdio/globals": "^9.0.0",
38
35
  "@wdio/local-runner": "^9.0.0",
@@ -41,7 +38,8 @@
41
38
  "@wdio/types": "^9.0.0",
42
39
  "esbuild": "^0.28.0",
43
40
  "tsx": "^4.19.0",
44
- "webdriverio": "^9.0.0"
41
+ "webdriverio": "^9.0.0",
42
+ "@cubenest/rrweb-core": "0.1.0-alpha.3"
45
43
  },
46
44
  "publishConfig": {
47
45
  "access": "public",
@@ -49,8 +47,14 @@
49
47
  },
50
48
  "repository": {
51
49
  "type": "git",
52
- "url": "git+https://github.com/Cubenest/rrweb-stack.git",
50
+ "url": "https://github.com/Cubenest/rrweb-stack",
53
51
  "directory": "packages/tracelane-wdio"
54
52
  },
55
- "homepage": "https://github.com/Cubenest/rrweb-stack/tree/main/packages/tracelane-wdio#readme"
56
- }
53
+ "homepage": "https://github.com/Cubenest/rrweb-stack/tree/main/packages/tracelane-wdio#readme",
54
+ "scripts": {
55
+ "build": "tsc -p tsconfig.json && node scripts/build-rrweb-bundle.mjs",
56
+ "typecheck": "tsc -p tsconfig.json --noEmit",
57
+ "test": "vitest run --passWithNoTests",
58
+ "test:e2e": "node scripts/build-rrweb-bundle.mjs && node ./e2e/run.mjs"
59
+ }
60
+ }