@tracelane/core 0.1.0-alpha.5 → 0.1.0-alpha.7
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 +3 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/page-script.d.ts +17 -1
- package/dist/page-script.d.ts.map +1 -1
- package/dist/page-script.js +15 -2
- package/dist/page-script.js.map +1 -1
- package/dist/recorder.d.ts +11 -1
- package/dist/recorder.d.ts.map +1 -1
- package/dist/recorder.js +2 -2
- package/dist/recorder.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -16,10 +16,10 @@ See the [`@tracelane/wdio` README](https://github.com/Cubenest/rrweb-stack/tree/
|
|
|
16
16
|
|
|
17
17
|
## What's in here
|
|
18
18
|
|
|
19
|
-
- `BrowserExecutor` — the framework-agnostic surface that adapters implement
|
|
20
|
-
- Recorder controller — in-page buffer install + Node-polled drain
|
|
19
|
+
- `BrowserExecutor` — the framework-agnostic surface that adapters implement.
|
|
20
|
+
- Recorder controller — in-page buffer install + Node-polled drain.
|
|
21
21
|
- Navigation re-injection with a 250ms cooldown + `tracelane.nav` boundary events.
|
|
22
|
-
- Mode switch (`'failed' | 'all'`) and a 25 MB FullSnapshot-preserving report-size guard
|
|
22
|
+
- Mode switch (`'failed' | 'all'`) and a 25 MB FullSnapshot-preserving report-size guard.
|
|
23
23
|
|
|
24
24
|
Built on [`@cubenest/rrweb-core`](https://github.com/Cubenest/rrweb-stack/tree/main/packages/rrweb-core).
|
|
25
25
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { BrowserExecutor } from './browser-executor.js';
|
|
2
2
|
export { createRecorder, DEFAULT_COOLDOWN_MS, DEFAULT_DRAIN_INTERVAL_MS } from './recorder.js';
|
|
3
3
|
export type { FinalizeResult, Recorder, RecorderOptions, TestOutcome } from './recorder.js';
|
|
4
|
-
export type { ConsolePluginOptions } from './page-script.js';
|
|
4
|
+
export type { ConsolePluginOptions, NetworkPluginOptions } from './page-script.js';
|
|
5
5
|
export { DEFAULT_MODE, resolveMode } from './mode.js';
|
|
6
6
|
export type { Mode } from './mode.js';
|
|
7
7
|
export { MAX_REPORT_BYTES, PRUNE_EVENT_TAG, pruneToSizeBudget, serializedSize, } from './size-guard.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC/F,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5F,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC/F,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5F,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/page-script.d.ts
CHANGED
|
@@ -19,6 +19,16 @@ export interface ConsolePluginOptions {
|
|
|
19
19
|
}
|
|
20
20
|
/** Console-plugin defaults from PRD §D.3. */
|
|
21
21
|
export declare const DEFAULT_CONSOLE_PLUGIN_OPTIONS: ConsolePluginOptions;
|
|
22
|
+
/**
|
|
23
|
+
* Network-plugin options forwarded into the in-page rrweb network plugin.
|
|
24
|
+
*
|
|
25
|
+
* Typed as `unknown`-shaped here so `@tracelane/core` doesn't have to mirror
|
|
26
|
+
* the substrate's full type surface (those types live in `@cubenest/rrweb-core`
|
|
27
|
+
* and the adapter — `@tracelane/wdio` — is what types the user-facing
|
|
28
|
+
* passthrough). The init script forwards the value verbatim to
|
|
29
|
+
* `window.rrweb.getRecordNetworkPlugin(options)`.
|
|
30
|
+
*/
|
|
31
|
+
export type NetworkPluginOptions = Record<string, unknown>;
|
|
22
32
|
/**
|
|
23
33
|
* The in-page init routine (PRD §D.3 + ADR-0006). Idempotent across calls via a
|
|
24
34
|
* monotonic `__tracelane__sessionId` stamp and a cooldown guard so hash-only /
|
|
@@ -28,8 +38,14 @@ export declare const DEFAULT_CONSOLE_PLUGIN_OPTIONS: ConsolePluginOptions;
|
|
|
28
38
|
* Assumes `window.rrweb` is already defined (the recorder injects the rrweb
|
|
29
39
|
* bundle string first). Returns the active session id so the Node side can
|
|
30
40
|
* confirm whether a (re-)init actually took effect.
|
|
41
|
+
*
|
|
42
|
+
* `networkOptions === undefined` keeps the network plugin OFF (the legacy
|
|
43
|
+
* CDP-based path still applies). `networkOptions === {}` opts in with the
|
|
44
|
+
* plugin's defaults; any other object is forwarded verbatim. The plugin is
|
|
45
|
+
* only registered when `window.rrweb.getRecordNetworkPlugin` is present — so
|
|
46
|
+
* older bundles that pre-date the network-plugin export silently skip it.
|
|
31
47
|
*/
|
|
32
|
-
export declare function tracelaneInitScript(cooldownMs: number, consoleOptions: ConsolePluginOptions): number;
|
|
48
|
+
export declare function tracelaneInitScript(cooldownMs: number, consoleOptions: ConsolePluginOptions, networkOptions?: NetworkPluginOptions): number;
|
|
33
49
|
/**
|
|
34
50
|
* Read-and-clear drain (PRD §A.4 / §D.3). Returns the buffered events and resets
|
|
35
51
|
* the page buffer so the next drain doesn't double-count.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-script.d.ts","sourceRoot":"","sources":["../src/page-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,0EAA0E;AAC1E,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,6CAA6C;AAC7C,eAAO,MAAM,8BAA8B,EAAE,oBAI5C,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"page-script.d.ts","sourceRoot":"","sources":["../src/page-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,0EAA0E;AAC1E,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,6CAA6C;AAC7C,eAAO,MAAM,8BAA8B,EAAE,oBAI5C,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,oBAAoB,EACpC,cAAc,CAAC,EAAE,oBAAoB,GACpC,MAAM,CAsDR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,EAAE,CAKhD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAKhE"}
|
package/dist/page-script.js
CHANGED
|
@@ -22,8 +22,14 @@ export const DEFAULT_CONSOLE_PLUGIN_OPTIONS = {
|
|
|
22
22
|
* Assumes `window.rrweb` is already defined (the recorder injects the rrweb
|
|
23
23
|
* bundle string first). Returns the active session id so the Node side can
|
|
24
24
|
* confirm whether a (re-)init actually took effect.
|
|
25
|
+
*
|
|
26
|
+
* `networkOptions === undefined` keeps the network plugin OFF (the legacy
|
|
27
|
+
* CDP-based path still applies). `networkOptions === {}` opts in with the
|
|
28
|
+
* plugin's defaults; any other object is forwarded verbatim. The plugin is
|
|
29
|
+
* only registered when `window.rrweb.getRecordNetworkPlugin` is present — so
|
|
30
|
+
* older bundles that pre-date the network-plugin export silently skip it.
|
|
25
31
|
*/
|
|
26
|
-
export function tracelaneInitScript(cooldownMs, consoleOptions) {
|
|
32
|
+
export function tracelaneInitScript(cooldownMs, consoleOptions, networkOptions) {
|
|
27
33
|
const w = window;
|
|
28
34
|
const now = Date.now();
|
|
29
35
|
// Cooldown: a very recent init means this is a hash/HMR re-render, not a real
|
|
@@ -44,13 +50,20 @@ export function tracelaneInitScript(cooldownMs, consoleOptions) {
|
|
|
44
50
|
// ignore teardown errors from a destroyed page context
|
|
45
51
|
}
|
|
46
52
|
}
|
|
53
|
+
const plugins = [w.rrweb.getRecordConsolePlugin(consoleOptions)];
|
|
54
|
+
if (networkOptions !== undefined && typeof w.rrweb.getRecordNetworkPlugin === 'function') {
|
|
55
|
+
// Framework-agnostic network capture (replaces the CDP path for users on
|
|
56
|
+
// the in-page recorder). Emits EventType.Plugin events with
|
|
57
|
+
// `data.plugin === 'rrweb/network@1'`.
|
|
58
|
+
plugins.push(w.rrweb.getRecordNetworkPlugin(networkOptions));
|
|
59
|
+
}
|
|
47
60
|
const stop = w.rrweb.record({
|
|
48
61
|
emit(event) {
|
|
49
62
|
// Never call console.* here — the console plugin patches console and
|
|
50
63
|
// guards recursion (PRD §D.4).
|
|
51
64
|
w.__tracelane__events.push(event);
|
|
52
65
|
},
|
|
53
|
-
plugins
|
|
66
|
+
plugins,
|
|
54
67
|
});
|
|
55
68
|
w.__tracelane__stop = typeof stop === 'function' ? stop : undefined;
|
|
56
69
|
}
|
package/dist/page-script.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-script.js","sourceRoot":"","sources":["../src/page-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,8BAA8B,GAAyB;IAClE,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;IACvC,eAAe,EAAE,KAAK;IACtB,gBAAgB,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE;CACpF,CAAC;
|
|
1
|
+
{"version":3,"file":"page-script.js","sourceRoot":"","sources":["../src/page-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,8BAA8B,GAAyB;IAClE,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;IACvC,eAAe,EAAE,KAAK;IACtB,gBAAgB,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE;CACpF,CAAC;AAaF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,cAAoC,EACpC,cAAqC;IAErC,MAAM,CAAC,GAAG,MAYT,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,8EAA8E;IAC9E,0DAA0D;IAC1D,IAAI,CAAC,CAAC,mBAAmB,KAAK,SAAS,IAAI,GAAG,GAAG,CAAC,CAAC,mBAAmB,GAAG,UAAU,EAAE,CAAC;QACpF,OAAO,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,CAAC,CAAC,mBAAmB,GAAG,GAAG,CAAC;IAC5B,CAAC,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,mBAAmB,IAAI,EAAE,CAAC;IAEpD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1B,2EAA2E;QAC3E,IAAI,OAAO,CAAC,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,CAAC,CAAC,iBAAiB,EAAE,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;YACzD,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAc,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5E,IAAI,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,sBAAsB,KAAK,UAAU,EAAE,CAAC;YACzF,yEAAyE;YACzE,4DAA4D;YAC5D,uCAAuC;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAc;gBACjB,qEAAqE;gBACrE,+BAA+B;gBAC9B,CAAC,CAAC,mBAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC;YACD,OAAO;SACR,CAAC,CAAC;QACH,CAAC,CAAC,iBAAiB,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAE,IAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,CAAC;IAED,OAAO,CAAC,CAAC,sBAAsB,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,CAAC,GAAG,MAAwD,CAAC;IACnE,MAAM,GAAG,GAAG,CAAC,CAAC,mBAAmB,IAAI,EAAE,CAAC;IACxC,CAAC,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAC3B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,EAAU;IACxD,MAAM,CAAC,GAAG,MAET,CAAC;IACF,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC"}
|
package/dist/recorder.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { eventWithTime } from '@cubenest/rrweb-core';
|
|
2
2
|
import type { BrowserExecutor } from './browser-executor.js';
|
|
3
3
|
import { type Mode } from './mode.js';
|
|
4
|
-
import { type ConsolePluginOptions } from './page-script.js';
|
|
4
|
+
import { type ConsolePluginOptions, type NetworkPluginOptions } from './page-script.js';
|
|
5
5
|
/** Default re-injection cooldown in ms (ADR-0006). */
|
|
6
6
|
export declare const DEFAULT_COOLDOWN_MS = 250;
|
|
7
7
|
/** Default Node-side poll interval in ms (ADR-0006). */
|
|
@@ -21,6 +21,16 @@ export interface RecorderOptions {
|
|
|
21
21
|
cooldownMs?: number;
|
|
22
22
|
/** Options forwarded to the in-page console plugin. */
|
|
23
23
|
consolePluginOptions?: ConsolePluginOptions;
|
|
24
|
+
/**
|
|
25
|
+
* Options forwarded to the in-page rrweb network plugin (`rrweb/network@1`).
|
|
26
|
+
*
|
|
27
|
+
* `undefined` (default) keeps the plugin OFF — the legacy CDP-based capture
|
|
28
|
+
* path stays in charge. Pass an object (even `{}` for plugin defaults) to
|
|
29
|
+
* register the plugin in the in-page recorder. Adapters wire this through
|
|
30
|
+
* from their user-facing options (e.g. `@tracelane/wdio`'s
|
|
31
|
+
* `capture.networkOptions`).
|
|
32
|
+
*/
|
|
33
|
+
networkPluginOptions?: NetworkPluginOptions;
|
|
24
34
|
/**
|
|
25
35
|
* Capture mode (ADR-0005). Default `'failed'`. The `TRACELANE_MODE` env var
|
|
26
36
|
* overrides this at {@link Recorder.finalize} time.
|
package/dist/recorder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../src/recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,IAAI,EAAe,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../src/recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,KAAK,IAAI,EAAe,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EAI1B,MAAM,kBAAkB,CAAC;AAE1B,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,wDAAwD;AACxD,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,QAAQ,EAAE,eAAe,CAAC;IAC1B;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kEAAkE;IAClE,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,8EAA8E;IAC9E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,gFAAgF;IAChF,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAClC,8CAA8C;IAC9C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,0DAA0D;IAC1D,SAAS,IAAI,aAAa,EAAE,CAAC;CAC9B;AASD,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAiGjE"}
|
package/dist/recorder.js
CHANGED
|
@@ -11,7 +11,7 @@ function injectBundleScript(bundle) {
|
|
|
11
11
|
window.eval(bundle);
|
|
12
12
|
}
|
|
13
13
|
export function createRecorder(options) {
|
|
14
|
-
const { executor, rrwebBundle, drainIntervalMs = DEFAULT_DRAIN_INTERVAL_MS, cooldownMs = DEFAULT_COOLDOWN_MS, consolePluginOptions = DEFAULT_CONSOLE_PLUGIN_OPTIONS, mode: configMode, } = options;
|
|
14
|
+
const { executor, rrwebBundle, drainIntervalMs = DEFAULT_DRAIN_INTERVAL_MS, cooldownMs = DEFAULT_COOLDOWN_MS, consolePluginOptions = DEFAULT_CONSOLE_PLUGIN_OPTIONS, networkPluginOptions, mode: configMode, } = options;
|
|
15
15
|
const buffer = [];
|
|
16
16
|
let pollTimer;
|
|
17
17
|
let started = false;
|
|
@@ -20,7 +20,7 @@ export function createRecorder(options) {
|
|
|
20
20
|
let lastSessionId = 0;
|
|
21
21
|
/** Run the init script in-page and return the active session id. */
|
|
22
22
|
async function runInit() {
|
|
23
|
-
return executor.execute(tracelaneInitScript, cooldownMs, consolePluginOptions);
|
|
23
|
+
return executor.execute(tracelaneInitScript, cooldownMs, consolePluginOptions, networkPluginOptions);
|
|
24
24
|
}
|
|
25
25
|
async function inject() {
|
|
26
26
|
await executor.execute(injectBundleScript, rrwebBundle);
|
package/dist/recorder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recorder.js","sourceRoot":"","sources":["../src/recorder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAEL,8BAA8B,
|
|
1
|
+
{"version":3,"file":"recorder.js","sourceRoot":"","sources":["../src/recorder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tracelane/core",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.7",
|
|
4
4
|
"description": "Framework-agnostic rrweb recording engine for tracelane. Wraps a per-framework browser object behind a common BrowserExecutor interface.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"README.md"
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@cubenest/rrweb-core": "0.1.0-alpha.
|
|
21
|
+
"@cubenest/rrweb-core": "0.1.0-alpha.3"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"jsdom": "^25.0.1"
|