@scalebun/web 1.3.0 → 1.3.1

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.
@@ -72,11 +72,11 @@ export interface ResolvedConfig {
72
72
  captureNetworkBodies: boolean;
73
73
  denylist: string[];
74
74
  maskSelectors: string[];
75
- /** Mask all replay text. Default TRUE (privacy-first PII protected out of the box); set
76
- * false to capture visible text. Form input values have their own flag (maskInputs). */
75
+ /** Mask all STATIC replay text. Default FALSEtext is captured so replays are readable. Set
76
+ * true to mask every text node. Form input values have their own flag (maskInputs). */
77
77
  maskReplayText: boolean;
78
- /** Mask form input values in replay. Defaults to FOLLOW maskReplayText (one flag governs text +
79
- * inputs, so masked by default). Set explicitly to decouple. Passwords always blanked. */
78
+ /** Mask form input VALUES in replay. Default TRUE, INDEPENDENT of maskReplayText (typed input is
79
+ * the real PII, so it stays masked even when static text is shown). Passwords always blanked. */
80
80
  maskInputs: boolean;
81
81
  /** Honor GPC / Do-Not-Track by not recording replay for opted-out users. Default false. */
82
82
  respectDnt: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -79,13 +79,13 @@ export function resolveConfig(cfg) {
79
79
  captureNetworkBodies: cfg.privacy?.captureNetworkBodies ?? false,
80
80
  denylist: [...DEFAULT_DENYLIST, ...(cfg.privacy?.denylist ?? [])].map((s) => s.toLowerCase()),
81
81
  maskSelectors: cfg.privacy?.maskSelectors ?? [],
82
- // Privacy-first default: replay text is MASKED unless the integrator explicitly opts out
83
- // (maskReplayText: false). Protects PII in replays out of the box.
84
- maskReplayText: cfg.privacy?.maskReplayText ?? true,
85
- // Input masking FOLLOWS maskReplayText by default one flag governs everything (text + inputs).
86
- // Can be set explicitly to decouple. Passwords are ALWAYS blanked regardless. Defaults to
87
- // masked (true) in line with the privacy-first maskReplayText default above.
88
- maskInputs: cfg.privacy?.maskInputs ?? cfg.privacy?.maskReplayText ?? true,
82
+ // STATIC text is SHOWN by default (maskReplayText: false) so replays are readable — matching
83
+ // the documented contract. Set true to mask every text node for a fully-redacted recording.
84
+ maskReplayText: cfg.privacy?.maskReplayText ?? false,
85
+ // Form INPUT values are masked by default and INDEPENDENTLY of maskReplayText: user-typed data
86
+ // is the real PII exposure, so it stays masked even when static text is shown. Set maskInputs
87
+ // false to capture raw input (dev/internal apps only). Passwords are ALWAYS blanked regardless.
88
+ maskInputs: cfg.privacy?.maskInputs ?? true,
89
89
  respectDnt: cfg.privacy?.respectDnt ?? false,
90
90
  // Deliberately does NOT follow maskReplayText the way maskInputs does. Replay text and an event
91
91
  // label are different exposures: replay is a recording someone opens deliberately, whereas the
@@ -98,8 +98,8 @@ export function resolveConfig(cfg) {
98
98
  // gate silently stops ALL capture (sessions, replay, analytics) for every existing
99
99
  // integrator the moment they upgrade, until they discover setConsent(true) — dashboards go
100
100
  // dark with no error anywhere. The "default activates immediately — no regression" test
101
- // pins this contract. Privacy-first defaults live in masking (maskReplayText/maskInputs
102
- // default true), which protects PII without turning capture off.
101
+ // pins this contract. PII protection lives in masking (maskInputs defaults true, so typed
102
+ // input is masked; static text stays readable), which protects PII without turning capture off.
103
103
  required: cfg.requireConsent ?? false,
104
104
  initial: cfg.initialConsent ?? 'unknown',
105
105
  },
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,9 @@
10
10
  * - input: masked value (password → empty)
11
11
  * - viewport: on resize
12
12
  *
13
- * Events are batched and flushed on an interval (and on demand via flush() for tests). Dead-click
14
- * detection uses `notifyDomActivity()`, which the ReplayFeature calls on every mutation/navigation.
13
+ * Events are batched and flushed by semantic lane click/deadclick immediately, scroll/input/viewport
14
+ * on the `flushMs` tick, pure cursor moves pooled to `moveFlushMs` (see `queue`) and on demand via
15
+ * flush(). Dead-click detection uses `notifyDomActivity()`, called on every mutation/navigation.
15
16
  */
16
17
  import { NodeRegistry } from './nodeRegistry.js';
17
18
  export interface ClickTarget {
@@ -79,12 +80,26 @@ export interface InteractionOptions {
79
80
  moveThrottleMs?: number;
80
81
  scrollThrottleMs?: number;
81
82
  flushMs?: number;
83
+ /**
84
+ * How long a MOVE-ONLY batch may accumulate before it ships. Cursor positions are the highest-volume,
85
+ * lowest-signal stream: flushing them on the generic `flushMs` cadence produced a frame every 100ms
86
+ * for the entire time the mouse was moving (~10/sec of near-empty envelopes). Moves now pool until
87
+ * this window elapses — or instantly when a semantic event (click/deadclick) joins the batch, so the
88
+ * cursor trail leading INTO a click still ships with full fidelity, in the same frame.
89
+ */
90
+ moveFlushMs?: number;
82
91
  deadMs?: number;
83
92
  rageWindowMs?: number;
84
93
  rageRadius?: number;
85
94
  rageMin?: number;
86
95
  maskInputs?: boolean;
87
96
  maskText?: boolean;
97
+ /**
98
+ * Called right before an IMMEDIATE flush (click/deadclick). The recorder wires this to the DOM
99
+ * DeltaBatcher's flush so a click on a just-added node never ships before the mutation that adds it —
100
+ * the batching windows must not be allowed to reorder cause and effect.
101
+ */
102
+ beforeImmediateFlush?: () => void;
88
103
  }
89
104
  export declare class InteractionRecorder {
90
105
  private readonly reg;
@@ -100,11 +115,22 @@ export declare class InteractionRecorder {
100
115
  private clickHistory;
101
116
  private startHref;
102
117
  private frameOffsets;
118
+ private pendingSince;
103
119
  private readonly o;
104
120
  constructor(reg: NodeRegistry, onEvents: (events: Interaction[]) => void, opts?: InteractionOptions);
105
121
  /** Fed by the ReplayFeature on every mutation/navigation — powers dead-click detection. */
106
122
  notifyDomActivity(t?: number): void;
107
123
  observe(): void;
124
+ /**
125
+ * Flush policy — events have different semantic weight, so they flush on different lanes:
126
+ * - immediate (click/deadclick): flush NOW, after draining the DOM batcher (see beforeImmediateFlush).
127
+ * - fast (scroll/input/viewport): next `flushMs` tick (≤100ms) — latest-state streams where a small
128
+ * delay is imperceptible but per-event frames would explode (a keystroke or resize-drag burst).
129
+ * - move: pool until `moveFlushMs` — pure cursor trail, the lowest-signal stream.
130
+ * A mixed batch flushes at the fastest lane present, in arrival order, as ONE frame.
131
+ */
132
+ private queue;
133
+ private onTick;
108
134
  /** Also capture interactions inside a same-origin iframe document; `getOffset` maps its viewport
109
135
  * coords into the top document's space (computed live — the iframe can move/scroll). */
110
136
  observeFrame(doc: Document, getOffset: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../../src/features/replay/engine/interactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../../src/features/replay/engine/interactions.ts"],"names":[],"mappings":"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"}
@@ -10,14 +10,16 @@
10
10
  * - input: masked value (password → empty)
11
11
  * - viewport: on resize
12
12
  *
13
- * Events are batched and flushed on an interval (and on demand via flush() for tests). Dead-click
14
- * detection uses `notifyDomActivity()`, which the ReplayFeature calls on every mutation/navigation.
13
+ * Events are batched and flushed by semantic lane click/deadclick immediately, scroll/input/viewport
14
+ * on the `flushMs` tick, pure cursor moves pooled to `moveFlushMs` (see `queue`) and on demand via
15
+ * flush(). Dead-click detection uses `notifyDomActivity()`, called on every mutation/navigation.
15
16
  */
16
17
  import { maskText, maskSecret, isPasswordField } from './snapshot.js';
17
18
  const DEFAULTS = {
18
19
  moveThrottleMs: 50,
19
20
  scrollThrottleMs: 100,
20
21
  flushMs: 100,
22
+ moveFlushMs: 300,
21
23
  deadMs: 700,
22
24
  rageWindowMs: 800,
23
25
  rageRadius: 30,
@@ -42,6 +44,15 @@ export class InteractionRecorder {
42
44
  // F-IFR: per-document coordinate offset so clicks/moves inside a same-origin iframe land in the
43
45
  // TOP document's space (the overlay lives there). Top document has no entry → offset {0,0}.
44
46
  this.frameOffsets = new Map();
47
+ this.pendingSince = 0; // when the oldest event entered `pending` (drives the move-only window)
48
+ this.onTick = () => {
49
+ if (!this.pending.length)
50
+ return;
51
+ // A move-only batch keeps pooling until its window elapses; anything else flushes on this tick.
52
+ if (this.pending.every((e) => e.k === 'move') && Date.now() - this.pendingSince < this.o.moveFlushMs)
53
+ return;
54
+ this.flush();
55
+ };
45
56
  this.onMove = (e) => {
46
57
  const me = e;
47
58
  const t = Date.now();
@@ -50,7 +61,7 @@ export class InteractionRecorder {
50
61
  this.lastMoveT = t;
51
62
  const off = this.offsetFor(e.target);
52
63
  const s = this.rootScroll(e.target);
53
- this.pending.push({ k: 'move', x: me.clientX + off.x, y: me.clientY + off.y, sx: s.sx, sy: s.sy, t });
64
+ this.queue({ k: 'move', x: me.clientX + off.x, y: me.clientY + off.y, sx: s.sx, sy: s.sy, t }, 'move');
54
65
  };
55
66
  this.onClick = (e) => {
56
67
  const me = e;
@@ -70,7 +81,7 @@ export class InteractionRecorder {
70
81
  const path = e.composedPath?.();
71
82
  const rawTarget = (path && path.length ? path[0] : e.target);
72
83
  const el = describeTarget(rawTarget, this.o.maskText);
73
- this.pending.push({ k: 'click', x, y, sx: s.sx, sy: s.sy, id, t, ...(rage ? { rage: true } : {}), ...(el ? { el } : {}) });
84
+ this.queue({ k: 'click', x, y, sx: s.sx, sy: s.sy, id, t, ...(rage ? { rage: true } : {}), ...(el ? { el } : {}) }, 'immediate');
74
85
  // Dead-click: no RELEVANT response within deadMs. Target-scoped so background churn (animations,
75
86
  // spinners, polling) doesn't mask real dead clicks — the flaw that made almost every click read blue.
76
87
  this.armDeadCheck(rawTarget, { x, y, sx: s.sx, sy: s.sy, id, at: t, el });
@@ -83,7 +94,7 @@ export class InteractionRecorder {
83
94
  const target = e.target;
84
95
  const el = (target.documentElement ?? target);
85
96
  const id = this.reg.getId(el) ?? 0;
86
- this.pending.push({ k: 'scroll', id, x: el.scrollLeft ?? 0, y: el.scrollTop ?? 0, t });
97
+ this.queue({ k: 'scroll', id, x: el.scrollLeft ?? 0, y: el.scrollTop ?? 0, t }, 'fast');
87
98
  };
88
99
  this.onInput = (e) => {
89
100
  const el = e.target;
@@ -97,10 +108,12 @@ export class InteractionRecorder {
97
108
  value = maskSecret(value);
98
109
  else if (this.o.maskInputs)
99
110
  value = maskText(value);
100
- this.pending.push({ k: 'input', id, value, t: Date.now() });
111
+ this.queue({ k: 'input', id, value, t: Date.now() }, 'fast');
101
112
  };
102
113
  this.onResize = () => {
103
- this.pending.push({ k: 'viewport', w: window.innerWidth, h: window.innerHeight, t: Date.now() });
114
+ // 'fast', not 'immediate': a drag-resize fires dozens of resize events per second, and each frame
115
+ // only needs the LATEST size — the ≤flushMs tick coalesces the burst without losing the end state.
116
+ this.queue({ k: 'viewport', w: window.innerWidth, h: window.innerHeight, t: Date.now() }, 'fast');
104
117
  };
105
118
  this.o = { ...DEFAULTS, ...opts };
106
119
  }
@@ -118,7 +131,29 @@ export class InteractionRecorder {
118
131
  this.add(document, 'input', this.onInput, true);
119
132
  if (typeof window !== 'undefined')
120
133
  this.add(window, 'resize', this.onResize, true);
121
- this.timer = setInterval(() => this.flush(), this.o.flushMs);
134
+ this.timer = setInterval(this.onTick, this.o.flushMs);
135
+ }
136
+ /**
137
+ * Flush policy — events have different semantic weight, so they flush on different lanes:
138
+ * - immediate (click/deadclick): flush NOW, after draining the DOM batcher (see beforeImmediateFlush).
139
+ * - fast (scroll/input/viewport): next `flushMs` tick (≤100ms) — latest-state streams where a small
140
+ * delay is imperceptible but per-event frames would explode (a keystroke or resize-drag burst).
141
+ * - move: pool until `moveFlushMs` — pure cursor trail, the lowest-signal stream.
142
+ * A mixed batch flushes at the fastest lane present, in arrival order, as ONE frame.
143
+ */
144
+ queue(ev, lane) {
145
+ if (!this.pending.length)
146
+ this.pendingSince = Date.now();
147
+ this.pending.push(ev);
148
+ if (lane === 'immediate') {
149
+ try {
150
+ this.o.beforeImmediateFlush?.();
151
+ }
152
+ catch {
153
+ /* the DOM drain must never break interaction capture */
154
+ }
155
+ this.flush();
156
+ }
122
157
  }
123
158
  /** Also capture interactions inside a same-origin iframe document; `getOffset` maps its viewport
124
159
  * coords into the top document's space (computed live — the iframe can move/scroll). */
@@ -277,7 +312,7 @@ export class InteractionRecorder {
277
312
  this.deadTimers.delete(timer);
278
313
  finish();
279
314
  if (!responded && safeHref() === this.startHref) {
280
- this.pending.push({ k: 'deadclick', x, y, sx: c.sx, sy: c.sy, id, t: at, ...(el ? { el } : {}) });
315
+ this.queue({ k: 'deadclick', x, y, sx: c.sx, sy: c.sy, id, t: at, ...(el ? { el } : {}) }, 'immediate');
281
316
  }
282
317
  }, this.o.deadMs);
283
318
  this.deadTimers.add(timer);
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../../../src/features/replay/engine/interactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../../../src/features/replay/engine/interactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * DeltaBatcher — the single packaging point for DOM-shaped delta ops (mutations, CSSOM, iframe
3
+ * mutations). Producers keep their own capture cadence (MutationRecorder serializes per rAF so node
4
+ * state is read close to the change; CssomRecorder coalesces per microtask) but no longer decide
5
+ * frame boundaries: they APPEND ops here, and one frame ships per `windowMs` window.
6
+ *
7
+ * Why: a frame is the unit of meaningful replay state, not the unit of browser scheduling. Before
8
+ * this, every rAF with DOM activity produced its own frame — a 60fps DOM animation became 60
9
+ * frames/sec, and a CSSOM change in the same tick as a DOM change shipped as a second envelope.
10
+ * Batching here caps the DOM lane at ~1000/windowMs frames/sec while losing NO ops — only the
11
+ * packaging changes. Ordering is preserved (ops are appended in arrival order and applied in order
12
+ * by the player), which is also what lets DOM and CSSOM ops share one frame safely.
13
+ *
14
+ * `flush()` is synchronous for the moments that need a hard boundary: before a checkpoint snapshot
15
+ * (pending ops must ship as deltas against the OLD keyframe) and before an immediate interaction
16
+ * frame (a click on a just-added node must not precede the mutation that adds it).
17
+ */
18
+ import type { Mutation } from '../engine/types.js';
19
+ export declare class DeltaBatcher {
20
+ private readonly windowMs;
21
+ private readonly emit;
22
+ private pending;
23
+ private timer;
24
+ constructor(windowMs: number, emit: (mutations: Mutation[]) => void);
25
+ append(muts: Mutation[]): void;
26
+ /** Synchronously package everything pending into one frame (no-op when empty). */
27
+ flush(): void;
28
+ /** Flush the tail and stop — captured ops are never dropped on pause/teardown. */
29
+ dispose(): void;
30
+ }
31
+ //# sourceMappingURL=deltaBatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deltaBatcher.d.ts","sourceRoot":"","sources":["../../../../src/features/replay/lifecycle/deltaBatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,YAAY;IAKrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,KAAK,CAA8C;gBAGxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI;IAGxD,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI;IAM9B,kFAAkF;IAClF,KAAK,IAAI,IAAI;IAWb,kFAAkF;IAClF,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,32 @@
1
+ export class DeltaBatcher {
2
+ constructor(windowMs, emit) {
3
+ this.windowMs = windowMs;
4
+ this.emit = emit;
5
+ this.pending = [];
6
+ this.timer = null;
7
+ }
8
+ append(muts) {
9
+ if (!muts.length)
10
+ return;
11
+ this.pending.push(...muts);
12
+ if (this.timer == null)
13
+ this.timer = setTimeout(() => this.flush(), this.windowMs);
14
+ }
15
+ /** Synchronously package everything pending into one frame (no-op when empty). */
16
+ flush() {
17
+ if (this.timer != null) {
18
+ clearTimeout(this.timer);
19
+ this.timer = null;
20
+ }
21
+ if (!this.pending.length)
22
+ return;
23
+ const batch = this.pending;
24
+ this.pending = [];
25
+ this.emit(batch);
26
+ }
27
+ /** Flush the tail and stop — captured ops are never dropped on pause/teardown. */
28
+ dispose() {
29
+ this.flush();
30
+ }
31
+ }
32
+ //# sourceMappingURL=deltaBatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deltaBatcher.js","sourceRoot":"","sources":["../../../../src/features/replay/lifecycle/deltaBatcher.ts"],"names":[],"mappings":"AAmBA,MAAM,OAAO,YAAY;IAIvB,YACmB,QAAgB,EAChB,IAAqC;QADrC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAAiC;QALhD,YAAO,GAAe,EAAE,CAAC;QACzB,UAAK,GAAyC,IAAI,CAAC;IAKxD,CAAC;IAEJ,MAAM,CAAC,IAAgB;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrF,CAAC;IAED,kFAAkF;IAClF,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,kFAAkF;IAClF,OAAO;QACL,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACF"}
@@ -40,6 +40,18 @@ export interface ReplayStats {
40
40
  bufferBytes: number;
41
41
  droppedSegments: number;
42
42
  shedFrames: number;
43
+ /**
44
+ * Cumulative per-producer frame/byte counters for THIS session (what actually shipped or was
45
+ * buffered — adaptive-shed frames are excluded; they're in `shedFrames`). Bytes are approxBytes
46
+ * at push time, i.e. pre-gzip for keyframes. The point is attribution, not accounting: "62% of
47
+ * frames were cursor moves" is the measurement the flush-policy tuning is judged against.
48
+ * Producers: keyframe | mutation (DOM+CSSOM lane) | canvas | interaction (click/deadclick/input)
49
+ * | scroll (scroll/viewport) | move.
50
+ */
51
+ producers: Record<string, {
52
+ frames: number;
53
+ bytes: number;
54
+ }>;
43
55
  }
44
56
  export declare function createRecorder(ctx: FeatureContext, decision: SampleDecision): Promise<RecorderController>;
45
57
  export declare class RecorderController {
@@ -75,6 +87,8 @@ export declare class RecorderController {
75
87
  private readonly pendingEncodes;
76
88
  private adaptive?;
77
89
  private shed;
90
+ private deltaBatcher?;
91
+ private readonly producerCounts;
78
92
  private readonly persistBuffer;
79
93
  private replayStore?;
80
94
  private onPageHide?;
@@ -1 +1 @@
1
- {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../../src/features/replay/lifecycle/recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../../src/features/replay/lifecycle/recorder.ts"],"names":[],"mappings":"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"}