@betterbugs/rrweb 2.0.0-alpha.19
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 +237 -0
- package/dist/assets/image-bitmap-data-url-worker-IJpC7g_b.js.map +1 -0
- package/dist/rrweb.cjs +17087 -0
- package/dist/rrweb.cjs.map +1 -0
- package/dist/rrweb.d.cts +477 -0
- package/dist/rrweb.d.ts +477 -0
- package/dist/rrweb.js +17088 -0
- package/dist/rrweb.js.map +1 -0
- package/dist/rrweb.umd.cjs +17106 -0
- package/dist/rrweb.umd.cjs.map +7 -0
- package/dist/rrweb.umd.min.cjs +98 -0
- package/dist/rrweb.umd.min.cjs.map +7 -0
- package/dist/style.css +79 -0
- package/dist/style.min.css +2 -0
- package/dist/style.min.css.map +7 -0
- package/package.json +96 -0
package/dist/rrweb.d.cts
ADDED
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
import { actionWithDelay } from '@betterbugs/types';
|
|
2
|
+
import { addedNodeMutation } from '@betterbugs/types';
|
|
3
|
+
import { blockClass } from '@betterbugs/types';
|
|
4
|
+
import { canvasMutationData } from '@betterbugs/types';
|
|
5
|
+
import { DataURLOptions } from '@betterbugs/types';
|
|
6
|
+
import { DeprecatedMirror } from '@betterbugs/types';
|
|
7
|
+
import { DocumentDimension } from '@betterbugs/types';
|
|
8
|
+
import { Emitter } from '@betterbugs/types';
|
|
9
|
+
import { EventType } from '@betterbugs/types';
|
|
10
|
+
import { eventWithTime } from '@betterbugs/types';
|
|
11
|
+
import { Handler } from '@betterbugs/types';
|
|
12
|
+
import { hookResetter } from '@betterbugs/types';
|
|
13
|
+
import { hooksParam } from '@betterbugs/types';
|
|
14
|
+
import { IMirror } from '@betterbugs/types';
|
|
15
|
+
import { IncrementalSource } from '@betterbugs/types';
|
|
16
|
+
import { IWindow } from '@betterbugs/types';
|
|
17
|
+
import { KeepIframeSrcFn } from '@betterbugs/types';
|
|
18
|
+
import { listenerHandler } from '@betterbugs/types';
|
|
19
|
+
import { MaskInputFn } from '@betterbugs/rrweb-snapshot';
|
|
20
|
+
import { MaskInputOptions } from '@betterbugs/rrweb-snapshot';
|
|
21
|
+
import { maskTextClass } from '@betterbugs/types';
|
|
22
|
+
import { MaskTextFn } from '@betterbugs/rrweb-snapshot';
|
|
23
|
+
import { Mirror } from '@betterbugs/rrweb-snapshot';
|
|
24
|
+
import { MouseInteractions } from '@betterbugs/types';
|
|
25
|
+
import { PackFn } from '@betterbugs/types';
|
|
26
|
+
import { playerMetaData } from '@betterbugs/types';
|
|
27
|
+
import { RecordPlugin } from '@betterbugs/types';
|
|
28
|
+
import { ReplayerEvents } from '@betterbugs/types';
|
|
29
|
+
import { RRDocument } from '@betterbugs/rrdom';
|
|
30
|
+
import { RRIFrameElement } from '@betterbugs/rrdom';
|
|
31
|
+
import { RRNode } from '@betterbugs/rrdom';
|
|
32
|
+
import { SamplingStrategy } from '@betterbugs/types';
|
|
33
|
+
import { SlimDOMOptions } from '@betterbugs/rrweb-snapshot';
|
|
34
|
+
import { StateMachine } from '@xstate/fsm';
|
|
35
|
+
import { textMutation } from '@betterbugs/types';
|
|
36
|
+
import { throttleOptions } from '@betterbugs/types';
|
|
37
|
+
import { UnpackFn } from '@betterbugs/types';
|
|
38
|
+
|
|
39
|
+
export declare const addCustomEvent: <T>(tag: string, payload: T) => void;
|
|
40
|
+
|
|
41
|
+
declare type AppendedIframe = {
|
|
42
|
+
mutationInQueue: addedNodeMutation;
|
|
43
|
+
builtNode: HTMLIFrameElement | RRIFrameElement;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export declare function canvasMutation({ event, mutation, target, imageMap, canvasEventMap, errorHandler, }: {
|
|
47
|
+
event: Parameters<Replayer['applyIncremental']>[0];
|
|
48
|
+
mutation: canvasMutationData;
|
|
49
|
+
target: HTMLCanvasElement;
|
|
50
|
+
imageMap: Replayer['imageMap'];
|
|
51
|
+
canvasEventMap: Replayer['canvasEventMap'];
|
|
52
|
+
errorHandler: Replayer['warnCanvasMutationFailed'];
|
|
53
|
+
}): Promise<void>;
|
|
54
|
+
|
|
55
|
+
declare function closestElementOfNode(node: Node | null): HTMLElement | null;
|
|
56
|
+
|
|
57
|
+
declare function createPlayerService(context: PlayerContext, { getCastFn, applyEventsSynchronously, emitter }: PlayerAssets): StateMachine.Service<PlayerContext, PlayerEvent, PlayerState>;
|
|
58
|
+
|
|
59
|
+
declare function createSpeedService(context: SpeedContext): StateMachine.Service<SpeedContext, SpeedEvent, SpeedState>;
|
|
60
|
+
|
|
61
|
+
declare type ErrorHandler = (error: unknown) => void | boolean;
|
|
62
|
+
|
|
63
|
+
export { EventType }
|
|
64
|
+
|
|
65
|
+
export { eventWithTime }
|
|
66
|
+
|
|
67
|
+
export declare const freezePage: () => void;
|
|
68
|
+
|
|
69
|
+
declare function getBaseDimension(node: Node, rootIframe: Node): DocumentDimension;
|
|
70
|
+
|
|
71
|
+
declare function getNestedRule(rules: CSSRuleList, position: number[]): CSSGroupingRule;
|
|
72
|
+
|
|
73
|
+
declare function getPositionsAndIndex(nestedIndex: number[]): {
|
|
74
|
+
positions: number[];
|
|
75
|
+
index: number | undefined;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
declare function getRootShadowHost(n: Node): Node;
|
|
79
|
+
|
|
80
|
+
declare function getShadowHost(n: Node): Element | null;
|
|
81
|
+
|
|
82
|
+
declare function getWindowHeight(): number;
|
|
83
|
+
|
|
84
|
+
declare function getWindowScroll(win: Window): {
|
|
85
|
+
left: number;
|
|
86
|
+
top: number;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
declare function getWindowWidth(): number;
|
|
90
|
+
|
|
91
|
+
declare function hasShadowRoot<T extends Node | RRNode>(n: T): n is T & {
|
|
92
|
+
shadowRoot: ShadowRoot;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
declare function hookSetter<T>(target: T, key: string | number | symbol, d: PropertyDescriptor, isRevoked?: boolean, win?: Window & typeof globalThis): hookResetter;
|
|
96
|
+
|
|
97
|
+
export { IncrementalSource }
|
|
98
|
+
|
|
99
|
+
declare function inDom(n: Node): boolean;
|
|
100
|
+
|
|
101
|
+
declare function isAncestorRemoved(target: Node, mirror: Mirror): boolean;
|
|
102
|
+
|
|
103
|
+
declare function isBlocked(node: Node | null, blockClass: blockClass, blockSelector: string | null, checkAncestors: boolean): boolean;
|
|
104
|
+
|
|
105
|
+
declare function isIgnored(n: Node, mirror: Mirror, slimDOMOptions: SlimDOMOptions): boolean;
|
|
106
|
+
|
|
107
|
+
declare function isSerialized(n: Node, mirror: Mirror): boolean;
|
|
108
|
+
|
|
109
|
+
declare function isSerializedIframe<TNode extends Node | RRNode>(n: TNode, mirror: IMirror<TNode>): boolean;
|
|
110
|
+
|
|
111
|
+
declare function isSerializedStylesheet<TNode extends Node | RRNode>(n: TNode, mirror: IMirror<TNode>): boolean;
|
|
112
|
+
|
|
113
|
+
declare function iterateResolveTree(tree: ResolveTree, cb: (mutation: addedNodeMutation) => unknown): void;
|
|
114
|
+
|
|
115
|
+
declare function legacy_isTouchEvent(event: MouseEvent | TouchEvent | PointerEvent): event is TouchEvent;
|
|
116
|
+
|
|
117
|
+
export declare let mirror: DeprecatedMirror;
|
|
118
|
+
|
|
119
|
+
export { MouseInteractions }
|
|
120
|
+
|
|
121
|
+
declare let nowTimestamp: () => number;
|
|
122
|
+
|
|
123
|
+
declare function on(type: string, fn: EventListenerOrEventListenerObject, target?: Document | IWindow): listenerHandler;
|
|
124
|
+
|
|
125
|
+
declare type PlayerAssets = {
|
|
126
|
+
emitter: Emitter;
|
|
127
|
+
applyEventsSynchronously(events: Array<eventWithTime>): void;
|
|
128
|
+
getCastFn(event: eventWithTime, isSync: boolean): () => void;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export declare type playerConfig = {
|
|
132
|
+
speed: number;
|
|
133
|
+
maxSpeed: number;
|
|
134
|
+
root: Element;
|
|
135
|
+
loadTimeout: number;
|
|
136
|
+
skipInactive: boolean;
|
|
137
|
+
inactivePeriodThreshold: number;
|
|
138
|
+
showWarning: boolean;
|
|
139
|
+
showDebug: boolean;
|
|
140
|
+
blockClass: string;
|
|
141
|
+
liveMode: boolean;
|
|
142
|
+
insertStyleRules: string[];
|
|
143
|
+
triggerFocus: boolean;
|
|
144
|
+
UNSAFE_replayCanvas: boolean;
|
|
145
|
+
pauseAnimation?: boolean;
|
|
146
|
+
mouseTail: boolean | {
|
|
147
|
+
duration?: number;
|
|
148
|
+
lineCap?: string;
|
|
149
|
+
lineWidth?: number;
|
|
150
|
+
strokeStyle?: string;
|
|
151
|
+
};
|
|
152
|
+
unpackFn?: UnpackFn;
|
|
153
|
+
useVirtualDom: boolean;
|
|
154
|
+
logger: {
|
|
155
|
+
log: (...args: Parameters<typeof console.log>) => void;
|
|
156
|
+
warn: (...args: Parameters<typeof console.warn>) => void;
|
|
157
|
+
};
|
|
158
|
+
plugins?: ReplayPlugin[];
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
declare type PlayerContext = {
|
|
162
|
+
events: eventWithTime[];
|
|
163
|
+
timer: Timer;
|
|
164
|
+
timeOffset: number;
|
|
165
|
+
baselineTime: number;
|
|
166
|
+
lastPlayedEvent: eventWithTime | null;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
declare type PlayerEvent = {
|
|
170
|
+
type: 'PLAY';
|
|
171
|
+
payload: {
|
|
172
|
+
timeOffset: number;
|
|
173
|
+
};
|
|
174
|
+
} | {
|
|
175
|
+
type: 'CAST_EVENT';
|
|
176
|
+
payload: {
|
|
177
|
+
event: eventWithTime;
|
|
178
|
+
};
|
|
179
|
+
} | {
|
|
180
|
+
type: 'PAUSE';
|
|
181
|
+
} | {
|
|
182
|
+
type: 'TO_LIVE';
|
|
183
|
+
payload: {
|
|
184
|
+
baselineTime?: number;
|
|
185
|
+
};
|
|
186
|
+
} | {
|
|
187
|
+
type: 'ADD_EVENT';
|
|
188
|
+
payload: {
|
|
189
|
+
event: eventWithTime;
|
|
190
|
+
};
|
|
191
|
+
} | {
|
|
192
|
+
type: 'END';
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
export declare type PlayerMachineState = StateMachine.State<PlayerContext, PlayerEvent, PlayerState>;
|
|
196
|
+
|
|
197
|
+
declare type PlayerState = {
|
|
198
|
+
value: 'playing';
|
|
199
|
+
context: PlayerContext;
|
|
200
|
+
} | {
|
|
201
|
+
value: 'paused';
|
|
202
|
+
context: PlayerContext;
|
|
203
|
+
} | {
|
|
204
|
+
value: 'live';
|
|
205
|
+
context: PlayerContext;
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
declare function polyfill(win?: Window & typeof globalThis): void;
|
|
209
|
+
|
|
210
|
+
declare function queueToResolveTrees(queue: addedNodeMutation[]): ResolveTree[];
|
|
211
|
+
|
|
212
|
+
export declare function record<T = eventWithTime>(options?: recordOptions<T>): listenerHandler | undefined;
|
|
213
|
+
|
|
214
|
+
export declare namespace record {
|
|
215
|
+
var addCustomEvent: <T>(tag: string, payload: T) => void;
|
|
216
|
+
var freezePage: () => void;
|
|
217
|
+
var takeFullSnapshot: (isCheckout?: boolean | undefined) => void;
|
|
218
|
+
var mirror: Mirror;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export declare type recordOptions<T> = {
|
|
222
|
+
emit?: (e: T, isCheckout?: boolean) => void;
|
|
223
|
+
checkoutEveryNth?: number;
|
|
224
|
+
checkoutEveryNms?: number;
|
|
225
|
+
blockClass?: blockClass;
|
|
226
|
+
blockSelector?: string;
|
|
227
|
+
ignoreClass?: string;
|
|
228
|
+
ignoreSelector?: string;
|
|
229
|
+
maskTextClass?: maskTextClass;
|
|
230
|
+
maskTextSelector?: string;
|
|
231
|
+
maskAllInputs?: boolean;
|
|
232
|
+
maskInputOptions?: MaskInputOptions;
|
|
233
|
+
maskInputFn?: MaskInputFn;
|
|
234
|
+
maskTextFn?: MaskTextFn;
|
|
235
|
+
slimDOMOptions?: SlimDOMOptions | 'all' | true;
|
|
236
|
+
ignoreCSSAttributes?: Set<string>;
|
|
237
|
+
inlineStylesheet?: boolean;
|
|
238
|
+
hooks?: hooksParam;
|
|
239
|
+
packFn?: PackFn;
|
|
240
|
+
sampling?: SamplingStrategy;
|
|
241
|
+
dataURLOptions?: DataURLOptions;
|
|
242
|
+
recordDOM?: boolean;
|
|
243
|
+
recordCanvas?: boolean;
|
|
244
|
+
recordCrossOriginIframes?: boolean;
|
|
245
|
+
recordAfter?: 'DOMContentLoaded' | 'load';
|
|
246
|
+
userTriggeredOnInput?: boolean;
|
|
247
|
+
collectFonts?: boolean;
|
|
248
|
+
inlineImages?: boolean;
|
|
249
|
+
plugins?: RecordPlugin[];
|
|
250
|
+
mousemoveWait?: number;
|
|
251
|
+
keepIframeSrcFn?: KeepIframeSrcFn;
|
|
252
|
+
errorHandler?: ErrorHandler;
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
export declare class Replayer {
|
|
256
|
+
wrapper: HTMLDivElement;
|
|
257
|
+
iframe: HTMLIFrameElement;
|
|
258
|
+
service: ReturnType<typeof createPlayerService>;
|
|
259
|
+
speedService: ReturnType<typeof createSpeedService>;
|
|
260
|
+
get timer(): Timer;
|
|
261
|
+
config: playerConfig;
|
|
262
|
+
usingVirtualDom: boolean;
|
|
263
|
+
virtualDom: RRDocument;
|
|
264
|
+
private mouse;
|
|
265
|
+
private mouseTail;
|
|
266
|
+
private tailPositions;
|
|
267
|
+
private emitter;
|
|
268
|
+
private nextUserInteractionEvent;
|
|
269
|
+
private legacy_missingNodeRetryMap;
|
|
270
|
+
private cache;
|
|
271
|
+
private imageMap;
|
|
272
|
+
private canvasEventMap;
|
|
273
|
+
private mirror;
|
|
274
|
+
private styleMirror;
|
|
275
|
+
private mediaManager;
|
|
276
|
+
private firstFullSnapshot;
|
|
277
|
+
private newDocumentQueue;
|
|
278
|
+
private mousePos;
|
|
279
|
+
private touchActive;
|
|
280
|
+
private lastMouseDownEvent;
|
|
281
|
+
private lastHoveredRootNode;
|
|
282
|
+
private lastSelectionData;
|
|
283
|
+
private constructedStyleMutations;
|
|
284
|
+
private adoptedStyleSheets;
|
|
285
|
+
constructor(events: Array<eventWithTime | string>, config?: Partial<playerConfig>);
|
|
286
|
+
on(event: string, handler: Handler): this;
|
|
287
|
+
off(event: string, handler: Handler): this;
|
|
288
|
+
setConfig(config: Partial<playerConfig>): void;
|
|
289
|
+
getMetaData(): playerMetaData;
|
|
290
|
+
getCurrentTime(): number;
|
|
291
|
+
getTimeOffset(): number;
|
|
292
|
+
getMirror(): Mirror;
|
|
293
|
+
play(timeOffset?: number): void;
|
|
294
|
+
pause(timeOffset?: number): void;
|
|
295
|
+
resume(timeOffset?: number): void;
|
|
296
|
+
destroy(): void;
|
|
297
|
+
startLive(baselineTime?: number): void;
|
|
298
|
+
addEvent(rawEvent: eventWithTime | string): void;
|
|
299
|
+
enableInteract(): void;
|
|
300
|
+
disableInteract(): void;
|
|
301
|
+
resetCache(): void;
|
|
302
|
+
private setupDom;
|
|
303
|
+
private handleResize;
|
|
304
|
+
private applyEventsSynchronously;
|
|
305
|
+
private getCastFn;
|
|
306
|
+
private rebuildFullSnapshot;
|
|
307
|
+
private insertStyleRules;
|
|
308
|
+
private attachDocumentToIframe;
|
|
309
|
+
private collectIframeAndAttachDocument;
|
|
310
|
+
private waitForStylesheetLoad;
|
|
311
|
+
private preloadAllImages;
|
|
312
|
+
private preloadImages;
|
|
313
|
+
private deserializeAndPreloadCanvasEvents;
|
|
314
|
+
private applyIncremental;
|
|
315
|
+
private applyMutation;
|
|
316
|
+
private applyScroll;
|
|
317
|
+
private applyInput;
|
|
318
|
+
private applySelection;
|
|
319
|
+
private applyStyleSheetMutation;
|
|
320
|
+
private applyStyleSheetRule;
|
|
321
|
+
private applyStyleDeclaration;
|
|
322
|
+
private applyAdoptedStyleSheet;
|
|
323
|
+
private legacy_resolveMissingNode;
|
|
324
|
+
private moveAndHover;
|
|
325
|
+
private drawMouseTail;
|
|
326
|
+
private hoverElements;
|
|
327
|
+
private isUserInteraction;
|
|
328
|
+
private backToNormal;
|
|
329
|
+
private warnNodeNotFound;
|
|
330
|
+
private warnCanvasMutationFailed;
|
|
331
|
+
private debugNodeNotFound;
|
|
332
|
+
private warn;
|
|
333
|
+
private debug;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
export { ReplayerEvents }
|
|
337
|
+
|
|
338
|
+
export declare type ReplayPlugin = {
|
|
339
|
+
handler?: (event: eventWithTime, isSync: boolean, context: {
|
|
340
|
+
replayer: Replayer;
|
|
341
|
+
}) => void;
|
|
342
|
+
onBuild?: (node: Node | RRNode, context: {
|
|
343
|
+
id: number;
|
|
344
|
+
replayer: Replayer;
|
|
345
|
+
}) => void;
|
|
346
|
+
getMirror?: (mirrors: {
|
|
347
|
+
nodeMirror: Mirror;
|
|
348
|
+
}) => void;
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
declare type ResolveTree = {
|
|
352
|
+
value: addedNodeMutation;
|
|
353
|
+
children: ResolveTree[];
|
|
354
|
+
parent: ResolveTree | null;
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
declare function shadowHostInDom(n: Node): boolean;
|
|
358
|
+
|
|
359
|
+
declare type SpeedContext = {
|
|
360
|
+
normalSpeed: playerConfig['speed'];
|
|
361
|
+
timer: Timer;
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
declare type SpeedEvent = {
|
|
365
|
+
type: 'FAST_FORWARD';
|
|
366
|
+
payload: {
|
|
367
|
+
speed: playerConfig['speed'];
|
|
368
|
+
};
|
|
369
|
+
} | {
|
|
370
|
+
type: 'BACK_TO_NORMAL';
|
|
371
|
+
} | {
|
|
372
|
+
type: 'SET_SPEED';
|
|
373
|
+
payload: {
|
|
374
|
+
speed: playerConfig['speed'];
|
|
375
|
+
};
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
export declare type SpeedMachineState = StateMachine.State<SpeedContext, SpeedEvent, SpeedState>;
|
|
379
|
+
|
|
380
|
+
declare type SpeedState = {
|
|
381
|
+
value: 'normal';
|
|
382
|
+
context: SpeedContext;
|
|
383
|
+
} | {
|
|
384
|
+
value: 'skipping';
|
|
385
|
+
context: SpeedContext;
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
declare class StyleSheetMirror {
|
|
389
|
+
private id;
|
|
390
|
+
private styleIDMap;
|
|
391
|
+
private idStyleMap;
|
|
392
|
+
getId(stylesheet: CSSStyleSheet): number;
|
|
393
|
+
has(stylesheet: CSSStyleSheet): boolean;
|
|
394
|
+
add(stylesheet: CSSStyleSheet, id?: number): number;
|
|
395
|
+
getStyle(id: number): CSSStyleSheet | null;
|
|
396
|
+
reset(): void;
|
|
397
|
+
generateId(): number;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
export declare const takeFullSnapshot: (isCheckout?: boolean | undefined) => void;
|
|
401
|
+
|
|
402
|
+
declare function throttle<T>(func: (arg: T) => void, wait: number, options?: throttleOptions): (...args: T[]) => void;
|
|
403
|
+
|
|
404
|
+
declare class Timer {
|
|
405
|
+
timeOffset: number;
|
|
406
|
+
speed: number;
|
|
407
|
+
private actions;
|
|
408
|
+
private raf;
|
|
409
|
+
private lastTimestamp;
|
|
410
|
+
constructor(actions: actionWithDelay[] | undefined, config: {
|
|
411
|
+
speed: number;
|
|
412
|
+
});
|
|
413
|
+
addAction(action: actionWithDelay): void;
|
|
414
|
+
start(): void;
|
|
415
|
+
private rafCheck;
|
|
416
|
+
clear(): void;
|
|
417
|
+
setSpeed(speed: number): void;
|
|
418
|
+
isActive(): boolean;
|
|
419
|
+
private findActionIndex;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
declare function uniqueTextMutations(mutations: textMutation[]): textMutation[];
|
|
423
|
+
|
|
424
|
+
declare namespace utils {
|
|
425
|
+
export {
|
|
426
|
+
on,
|
|
427
|
+
throttle,
|
|
428
|
+
hookSetter,
|
|
429
|
+
getWindowScroll,
|
|
430
|
+
getWindowHeight,
|
|
431
|
+
getWindowWidth,
|
|
432
|
+
closestElementOfNode,
|
|
433
|
+
isBlocked,
|
|
434
|
+
isSerialized,
|
|
435
|
+
isIgnored,
|
|
436
|
+
isAncestorRemoved,
|
|
437
|
+
legacy_isTouchEvent,
|
|
438
|
+
polyfill,
|
|
439
|
+
queueToResolveTrees,
|
|
440
|
+
iterateResolveTree,
|
|
441
|
+
isSerializedIframe,
|
|
442
|
+
isSerializedStylesheet,
|
|
443
|
+
getBaseDimension,
|
|
444
|
+
hasShadowRoot,
|
|
445
|
+
getNestedRule,
|
|
446
|
+
getPositionsAndIndex,
|
|
447
|
+
uniqueTextMutations,
|
|
448
|
+
getShadowHost,
|
|
449
|
+
getRootShadowHost,
|
|
450
|
+
shadowHostInDom,
|
|
451
|
+
inDom,
|
|
452
|
+
mirror as _mirror,
|
|
453
|
+
nowTimestamp,
|
|
454
|
+
AppendedIframe,
|
|
455
|
+
StyleSheetMirror
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
export { utils }
|
|
459
|
+
|
|
460
|
+
export { }
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
declare namespace record {
|
|
464
|
+
var addCustomEvent: <T>(tag: string, payload: T) => void;
|
|
465
|
+
var freezePage: () => void;
|
|
466
|
+
var takeFullSnapshot: (isCheckout?: boolean | undefined) => void;
|
|
467
|
+
var mirror: import("@betterbugs/rrweb-snapshot").Mirror;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
declare global {
|
|
472
|
+
interface Window {
|
|
473
|
+
FontFace: typeof FontFace;
|
|
474
|
+
Array: typeof Array;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
|