@highlight-run/rrweb 1.1.4 → 1.1.8
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/index.css +1 -11
- package/dist/index.css.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/record/mutation.d.ts +4 -1
- package/dist/record/observer.d.ts +2 -1
- package/dist/record/observers/canvas/2d.d.ts +2 -2
- package/dist/record/observers/canvas/canvas-manager.d.ts +32 -0
- package/dist/record/observers/canvas/webgl.d.ts +2 -2
- package/dist/record/shadow-dom-manager.d.ts +2 -0
- package/dist/snapshot/utils.d.ts +1 -0
- package/dist/types.d.ts +12 -2
- package/dist/utils.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { MaskInputOptions, SlimDOMOptions, MaskTextFn, MaskInputFn } from '../snapshot';
|
|
2
2
|
import { mutationRecord, blockClass, maskTextClass, mutationCallBack, Mirror } from '../types';
|
|
3
3
|
import { IframeManager } from './iframe-manager';
|
|
4
|
+
import { CanvasManager } from './observers/canvas/canvas-manager';
|
|
4
5
|
import { ShadowDomManager } from './shadow-dom-manager';
|
|
5
6
|
export default class MutationBuffer {
|
|
6
7
|
private frozen;
|
|
@@ -29,12 +30,14 @@ export default class MutationBuffer {
|
|
|
29
30
|
private mirror;
|
|
30
31
|
private iframeManager;
|
|
31
32
|
private shadowDomManager;
|
|
32
|
-
|
|
33
|
+
private canvasManager;
|
|
34
|
+
init(cb: mutationCallBack, blockClass: blockClass, blockSelector: string | null, maskTextClass: maskTextClass, maskTextSelector: string | null, inlineStylesheet: boolean, maskInputOptions: MaskInputOptions, maskTextFn: MaskTextFn | undefined, maskInputFn: MaskInputFn | undefined, recordCanvas: boolean, slimDOMOptions: SlimDOMOptions, doc: Document, mirror: Mirror, iframeManager: IframeManager, shadowDomManager: ShadowDomManager, canvasManager: CanvasManager, enableStrictPrivacy: boolean): void;
|
|
33
35
|
freeze(): void;
|
|
34
36
|
unfreeze(): void;
|
|
35
37
|
isFrozen(): boolean;
|
|
36
38
|
lock(): void;
|
|
37
39
|
unlock(): void;
|
|
40
|
+
reset(): void;
|
|
38
41
|
processMutations: (mutations: mutationRecord[]) => void;
|
|
39
42
|
emit: () => void;
|
|
40
43
|
private processMutation;
|
|
@@ -3,8 +3,9 @@ import { mutationCallBack, observerParam, listenerHandler, scrollCallback, block
|
|
|
3
3
|
import MutationBuffer from './mutation';
|
|
4
4
|
import { IframeManager } from './iframe-manager';
|
|
5
5
|
import { ShadowDomManager } from './shadow-dom-manager';
|
|
6
|
+
import { CanvasManager } from './observers/canvas/canvas-manager';
|
|
6
7
|
export declare const mutationBuffers: MutationBuffer[];
|
|
7
|
-
export declare function initMutationObserver(cb: mutationCallBack, doc: Document, blockClass: blockClass, blockSelector: string | null, maskTextClass: maskTextClass, maskTextSelector: string | null, inlineStylesheet: boolean, maskInputOptions: MaskInputOptions, maskTextFn: MaskTextFn | undefined, maskInputFn: MaskInputFn | undefined, recordCanvas: boolean, slimDOMOptions: SlimDOMOptions, mirror: Mirror, iframeManager: IframeManager, shadowDomManager: ShadowDomManager, rootEl: Node, enableStrictPrivacy: boolean): MutationObserver;
|
|
8
|
+
export declare function initMutationObserver(cb: mutationCallBack, doc: Document, blockClass: blockClass, blockSelector: string | null, maskTextClass: maskTextClass, maskTextSelector: string | null, inlineStylesheet: boolean, maskInputOptions: MaskInputOptions, maskTextFn: MaskTextFn | undefined, maskInputFn: MaskInputFn | undefined, recordCanvas: boolean, slimDOMOptions: SlimDOMOptions, mirror: Mirror, iframeManager: IframeManager, shadowDomManager: ShadowDomManager, canvasManager: CanvasManager, rootEl: Node, enableStrictPrivacy: boolean): MutationObserver;
|
|
8
9
|
export declare function initScrollObserver(cb: scrollCallback, doc: Document, mirror: Mirror, blockClass: blockClass, sampling: SamplingStrategy): listenerHandler;
|
|
9
10
|
export declare const INPUT_TAGS: string[];
|
|
10
11
|
export declare function initObservers(o: observerParam, hooks?: hooksParam): listenerHandler;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { blockClass,
|
|
2
|
-
export default function initCanvas2DMutationObserver(cb:
|
|
1
|
+
import { blockClass, canvasManagerMutationCallback, IWindow, listenerHandler, Mirror } from '../../../types';
|
|
2
|
+
export default function initCanvas2DMutationObserver(cb: canvasManagerMutationCallback, win: IWindow, blockClass: blockClass, mirror: Mirror): listenerHandler;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { blockClass, canvasMutationCallback, IWindow, Mirror } from '../../../types';
|
|
2
|
+
export declare type RafStamps = {
|
|
3
|
+
latestId: number;
|
|
4
|
+
invokeId: number | null;
|
|
5
|
+
};
|
|
6
|
+
export declare class CanvasManager {
|
|
7
|
+
private pendingCanvasMutations;
|
|
8
|
+
private rafStamps;
|
|
9
|
+
private mirror;
|
|
10
|
+
private mutationCb;
|
|
11
|
+
private resetObservers;
|
|
12
|
+
private frozen;
|
|
13
|
+
private locked;
|
|
14
|
+
reset(): void;
|
|
15
|
+
freeze(): void;
|
|
16
|
+
unfreeze(): void;
|
|
17
|
+
lock(): void;
|
|
18
|
+
unlock(): void;
|
|
19
|
+
constructor(options: {
|
|
20
|
+
recordCanvas: boolean | number;
|
|
21
|
+
mutationCb: canvasMutationCallback;
|
|
22
|
+
win: IWindow;
|
|
23
|
+
blockClass: blockClass;
|
|
24
|
+
mirror: Mirror;
|
|
25
|
+
});
|
|
26
|
+
private processMutation;
|
|
27
|
+
private initCanvasMutationObserver;
|
|
28
|
+
private startPendingCanvasMutationFlusher;
|
|
29
|
+
private startRAFTimestamping;
|
|
30
|
+
flushPendingCanvasMutations(): void;
|
|
31
|
+
flushPendingCanvasMutationFor(canvas: HTMLCanvasElement, id: number): void;
|
|
32
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { blockClass,
|
|
2
|
-
export default function initCanvasWebGLMutationObserver(cb:
|
|
1
|
+
import { blockClass, canvasManagerMutationCallback, IWindow, listenerHandler, Mirror } from '../../../types';
|
|
2
|
+
export default function initCanvasWebGLMutationObserver(cb: canvasManagerMutationCallback, win: IWindow, blockClass: blockClass, mirror: Mirror): listenerHandler;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { mutationCallBack, blockClass, maskTextClass, Mirror, scrollCallback, SamplingStrategy } from '../types';
|
|
2
2
|
import { MaskInputOptions, SlimDOMOptions, MaskTextFn, MaskInputFn } from '../snapshot';
|
|
3
3
|
import { IframeManager } from './iframe-manager';
|
|
4
|
+
import { CanvasManager } from './observers/canvas/canvas-manager';
|
|
4
5
|
declare type BypassOptions = {
|
|
5
6
|
blockClass: blockClass;
|
|
6
7
|
blockSelector: string | null;
|
|
@@ -14,6 +15,7 @@ declare type BypassOptions = {
|
|
|
14
15
|
sampling: SamplingStrategy;
|
|
15
16
|
slimDOMOptions: SlimDOMOptions;
|
|
16
17
|
iframeManager: IframeManager;
|
|
18
|
+
canvasManager: CanvasManager;
|
|
17
19
|
enableStrictPrivacy: boolean;
|
|
18
20
|
};
|
|
19
21
|
export declare class ShadowDomManager {
|
package/dist/snapshot/utils.d.ts
CHANGED
package/dist/types.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { FontFaceDescriptors } from 'css-font-loading-module';
|
|
|
4
4
|
import { IframeManager } from './record/iframe-manager';
|
|
5
5
|
import { ShadowDomManager } from './record/shadow-dom-manager';
|
|
6
6
|
import type { Replayer } from './replay';
|
|
7
|
+
import { CanvasManager } from './record/observers/canvas/canvas-manager';
|
|
7
8
|
export declare enum EventType {
|
|
8
9
|
DomContentLoaded = 0,
|
|
9
10
|
Load = 1,
|
|
@@ -128,6 +129,7 @@ export declare type SamplingStrategy = Partial<{
|
|
|
128
129
|
mousemoveCallback: number;
|
|
129
130
|
mouseInteraction: boolean | Record<string, boolean | undefined>;
|
|
130
131
|
scroll: number;
|
|
132
|
+
media: number;
|
|
131
133
|
input: 'all' | 'last';
|
|
132
134
|
}>;
|
|
133
135
|
export declare type RecordPlugin<TOptions = unknown> = {
|
|
@@ -191,6 +193,7 @@ export declare type observerParam = {
|
|
|
191
193
|
mirror: Mirror;
|
|
192
194
|
iframeManager: IframeManager;
|
|
193
195
|
shadowDomManager: ShadowDomManager;
|
|
196
|
+
canvasManager: CanvasManager;
|
|
194
197
|
plugins: Array<{
|
|
195
198
|
observer: Function;
|
|
196
199
|
callback: Function;
|
|
@@ -345,7 +348,6 @@ export declare type styleDeclarationParam = {
|
|
|
345
348
|
};
|
|
346
349
|
};
|
|
347
350
|
export declare type styleDeclarationCallback = (s: styleDeclarationParam) => void;
|
|
348
|
-
export declare type canvasMutationCallback = (p: canvasMutationParam) => void;
|
|
349
351
|
export declare type canvasMutationCommand = {
|
|
350
352
|
property: string;
|
|
351
353
|
args: Array<unknown>;
|
|
@@ -359,6 +361,11 @@ export declare type canvasMutationParam = {
|
|
|
359
361
|
id: number;
|
|
360
362
|
type: CanvasContext;
|
|
361
363
|
} & canvasMutationCommand);
|
|
364
|
+
export declare type canvasMutationWithType = {
|
|
365
|
+
type: CanvasContext;
|
|
366
|
+
} & canvasMutationCommand;
|
|
367
|
+
export declare type canvasMutationCallback = (p: canvasMutationParam) => void;
|
|
368
|
+
export declare type canvasManagerMutationCallback = (target: HTMLCanvasElement, p: canvasMutationWithType) => void;
|
|
362
369
|
export declare type fontParam = {
|
|
363
370
|
family: string;
|
|
364
371
|
fontSource: string;
|
|
@@ -382,12 +389,15 @@ export declare type inputCallback = (v: inputValue & {
|
|
|
382
389
|
export declare const enum MediaInteractions {
|
|
383
390
|
Play = 0,
|
|
384
391
|
Pause = 1,
|
|
385
|
-
Seeked = 2
|
|
392
|
+
Seeked = 2,
|
|
393
|
+
VolumeChange = 3
|
|
386
394
|
}
|
|
387
395
|
export declare type mediaInteractionParam = {
|
|
388
396
|
type: MediaInteractions;
|
|
389
397
|
id: number;
|
|
390
398
|
currentTime?: number;
|
|
399
|
+
volume?: number;
|
|
400
|
+
muted?: boolean;
|
|
391
401
|
};
|
|
392
402
|
export declare type mediaInteractionCallback = (p: mediaInteractionParam) => void;
|
|
393
403
|
export declare type DocumentDimension = {
|
package/dist/utils.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@highlight-run/rrweb",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "record and replay the web",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "npm run bundle:browser && cross-env TS_NODE_CACHE=false TS_NODE_FILES=true mocha -r ts-node/register -r ignore-styles -r jsdom-global/register test/**.test.ts",
|