@openreplay/tracker 15.0.0 → 15.0.2

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.
Files changed (52) hide show
  1. package/dist/cjs/index.js +9058 -68
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/lib/index.js +4 -4
  4. package/dist/lib/index.js.map +1 -1
  5. package/dist/types/common/interaction.d.ts +37 -0
  6. package/dist/types/common/messages.gen.d.ts +567 -0
  7. package/dist/types/main/app/canvas.d.ts +28 -0
  8. package/dist/types/main/app/guards.d.ts +22 -0
  9. package/dist/types/main/app/index.d.ts +322 -0
  10. package/dist/types/main/app/logger.d.ts +17 -0
  11. package/dist/types/main/app/messages.gen.d.ts +81 -0
  12. package/dist/types/main/app/nodes/index.d.ts +31 -0
  13. package/dist/types/main/app/nodes/maintainer.d.ts +28 -0
  14. package/dist/types/main/app/observer/iframe_observer.d.ts +6 -0
  15. package/dist/types/main/app/observer/iframe_offsets.d.ts +8 -0
  16. package/dist/types/main/app/observer/observer.d.ts +29 -0
  17. package/dist/types/main/app/observer/shadow_root_observer.d.ts +4 -0
  18. package/dist/types/main/app/observer/top_observer.d.ts +31 -0
  19. package/dist/types/main/app/sanitizer.d.ts +48 -0
  20. package/dist/types/main/app/session.d.ts +57 -0
  21. package/dist/types/main/app/ticker.d.ts +18 -0
  22. package/dist/types/main/index.d.ts +111 -0
  23. package/dist/types/main/modules/attributeSender.d.ts +23 -0
  24. package/dist/types/main/modules/axiosSpy.d.ts +54 -0
  25. package/dist/types/main/modules/conditionsManager.d.ts +84 -0
  26. package/dist/types/main/modules/connection.d.ts +2 -0
  27. package/dist/types/main/modules/console.d.ts +6 -0
  28. package/dist/types/main/modules/constructedStyleSheets.d.ts +4 -0
  29. package/dist/types/main/modules/cssrules.d.ts +2 -0
  30. package/dist/types/main/modules/exception.d.ts +16 -0
  31. package/dist/types/main/modules/featureFlags.d.ts +25 -0
  32. package/dist/types/main/modules/focus.d.ts +2 -0
  33. package/dist/types/main/modules/fonts.d.ts +2 -0
  34. package/dist/types/main/modules/img.d.ts +2 -0
  35. package/dist/types/main/modules/input.d.ts +34 -0
  36. package/dist/types/main/modules/mouse.d.ts +31 -0
  37. package/dist/types/main/modules/network.d.ts +31 -0
  38. package/dist/types/main/modules/performance.d.ts +7 -0
  39. package/dist/types/main/modules/scroll.d.ts +2 -0
  40. package/dist/types/main/modules/selection.d.ts +7 -0
  41. package/dist/types/main/modules/tabs.d.ts +2 -0
  42. package/dist/types/main/modules/tagWatcher.d.ts +25 -0
  43. package/dist/types/main/modules/timing.d.ts +8 -0
  44. package/dist/types/main/modules/userTesting/SignalManager.d.ts +29 -0
  45. package/dist/types/main/modules/userTesting/dnd.d.ts +1 -0
  46. package/dist/types/main/modules/userTesting/index.d.ts +45 -0
  47. package/dist/types/main/modules/userTesting/recorder.d.ts +24 -0
  48. package/dist/types/main/modules/userTesting/styles.d.ts +277 -0
  49. package/dist/types/main/modules/userTesting/utils.d.ts +9 -0
  50. package/dist/types/main/modules/viewport.d.ts +2 -0
  51. package/dist/types/main/utils.d.ts +30 -0
  52. package/package.json +9 -5
@@ -0,0 +1,37 @@
1
+ import Message from './messages.gen.js';
2
+ export interface Options {
3
+ connAttemptCount?: number;
4
+ connAttemptGap?: number;
5
+ }
6
+ type Start = {
7
+ type: 'start';
8
+ ingestPoint: string;
9
+ pageNo: number;
10
+ timestamp: number;
11
+ url: string;
12
+ tabId: string;
13
+ } & Options;
14
+ type Auth = {
15
+ type: 'auth';
16
+ token: string;
17
+ beaconSizeLimit?: number;
18
+ };
19
+ export type ToWorkerData = null | 'stop' | Start | Auth | Array<Message> | {
20
+ type: 'compressed';
21
+ batch: Uint8Array;
22
+ } | {
23
+ type: 'uncompressed';
24
+ batch: Uint8Array;
25
+ } | 'forceFlushBatch' | 'check_queue';
26
+ type Failure = {
27
+ type: 'failure';
28
+ reason: string;
29
+ };
30
+ type QEmpty = {
31
+ type: 'queue_empty';
32
+ };
33
+ export type FromWorkerData = 'a_stop' | 'a_start' | Failure | 'not_init' | {
34
+ type: 'compress';
35
+ batch: Uint8Array;
36
+ } | QEmpty;
37
+ export {};
@@ -0,0 +1,567 @@
1
+ export declare const enum Type {
2
+ Timestamp = 0,
3
+ SetPageLocationDeprecated = 4,
4
+ SetViewportSize = 5,
5
+ SetViewportScroll = 6,
6
+ CreateDocument = 7,
7
+ CreateElementNode = 8,
8
+ CreateTextNode = 9,
9
+ MoveNode = 10,
10
+ RemoveNode = 11,
11
+ SetNodeAttribute = 12,
12
+ RemoveNodeAttribute = 13,
13
+ SetNodeData = 14,
14
+ SetNodeScroll = 16,
15
+ SetInputTarget = 17,
16
+ SetInputValue = 18,
17
+ SetInputChecked = 19,
18
+ MouseMove = 20,
19
+ NetworkRequestDeprecated = 21,
20
+ ConsoleLog = 22,
21
+ PageLoadTiming = 23,
22
+ PageRenderTiming = 24,
23
+ CustomEvent = 27,
24
+ UserID = 28,
25
+ UserAnonymousID = 29,
26
+ Metadata = 30,
27
+ CSSInsertRule = 37,
28
+ CSSDeleteRule = 38,
29
+ Fetch = 39,
30
+ Profiler = 40,
31
+ OTable = 41,
32
+ StateAction = 42,
33
+ ReduxDeprecated = 44,
34
+ Vuex = 45,
35
+ MobX = 46,
36
+ NgRx = 47,
37
+ GraphQLDeprecated = 48,
38
+ PerformanceTrack = 49,
39
+ StringDictDeprecated = 50,
40
+ SetNodeAttributeDictDeprecated = 51,
41
+ StringDict = 43,
42
+ SetNodeAttributeDict = 52,
43
+ ResourceTimingDeprecated = 53,
44
+ ConnectionInformation = 54,
45
+ SetPageVisibility = 55,
46
+ LoadFontFace = 57,
47
+ SetNodeFocus = 58,
48
+ LongTask = 59,
49
+ SetNodeAttributeURLBased = 60,
50
+ SetCSSDataURLBased = 61,
51
+ TechnicalInfo = 63,
52
+ CustomIssue = 64,
53
+ CSSInsertRuleURLBased = 67,
54
+ MouseClick = 68,
55
+ MouseClickDeprecated = 69,
56
+ CreateIFrameDocument = 70,
57
+ AdoptedSSReplaceURLBased = 71,
58
+ AdoptedSSInsertRuleURLBased = 73,
59
+ AdoptedSSDeleteRule = 75,
60
+ AdoptedSSAddOwner = 76,
61
+ AdoptedSSRemoveOwner = 77,
62
+ JSException = 78,
63
+ Zustand = 79,
64
+ BatchMetadata = 81,
65
+ PartitionedMessage = 82,
66
+ NetworkRequest = 83,
67
+ WSChannel = 84,
68
+ InputChange = 112,
69
+ SelectionChange = 113,
70
+ MouseThrashing = 114,
71
+ UnbindNodes = 115,
72
+ ResourceTiming = 116,
73
+ TabChange = 117,
74
+ TabData = 118,
75
+ CanvasNode = 119,
76
+ TagTrigger = 120,
77
+ Redux = 121,
78
+ SetPageLocation = 122,
79
+ GraphQL = 123,
80
+ WebVitals = 124
81
+ }
82
+ export type Timestamp = [
83
+ Type.Timestamp,
84
+ number
85
+ ];
86
+ export type SetPageLocationDeprecated = [
87
+ Type.SetPageLocationDeprecated,
88
+ string,
89
+ string,
90
+ number
91
+ ];
92
+ export type SetViewportSize = [
93
+ Type.SetViewportSize,
94
+ number,
95
+ number
96
+ ];
97
+ export type SetViewportScroll = [
98
+ Type.SetViewportScroll,
99
+ number,
100
+ number
101
+ ];
102
+ export type CreateDocument = [
103
+ Type.CreateDocument
104
+ ];
105
+ export type CreateElementNode = [
106
+ Type.CreateElementNode,
107
+ number,
108
+ number,
109
+ number,
110
+ string,
111
+ boolean
112
+ ];
113
+ export type CreateTextNode = [
114
+ Type.CreateTextNode,
115
+ number,
116
+ number,
117
+ number
118
+ ];
119
+ export type MoveNode = [
120
+ Type.MoveNode,
121
+ number,
122
+ number,
123
+ number
124
+ ];
125
+ export type RemoveNode = [
126
+ Type.RemoveNode,
127
+ number
128
+ ];
129
+ export type SetNodeAttribute = [
130
+ Type.SetNodeAttribute,
131
+ number,
132
+ string,
133
+ string
134
+ ];
135
+ export type RemoveNodeAttribute = [
136
+ Type.RemoveNodeAttribute,
137
+ number,
138
+ string
139
+ ];
140
+ export type SetNodeData = [
141
+ Type.SetNodeData,
142
+ number,
143
+ string
144
+ ];
145
+ export type SetNodeScroll = [
146
+ Type.SetNodeScroll,
147
+ number,
148
+ number,
149
+ number
150
+ ];
151
+ export type SetInputTarget = [
152
+ Type.SetInputTarget,
153
+ number,
154
+ string
155
+ ];
156
+ export type SetInputValue = [
157
+ Type.SetInputValue,
158
+ number,
159
+ string,
160
+ number
161
+ ];
162
+ export type SetInputChecked = [
163
+ Type.SetInputChecked,
164
+ number,
165
+ boolean
166
+ ];
167
+ export type MouseMove = [
168
+ Type.MouseMove,
169
+ number,
170
+ number
171
+ ];
172
+ export type NetworkRequestDeprecated = [
173
+ Type.NetworkRequestDeprecated,
174
+ string,
175
+ string,
176
+ string,
177
+ string,
178
+ string,
179
+ number,
180
+ number,
181
+ number
182
+ ];
183
+ export type ConsoleLog = [
184
+ Type.ConsoleLog,
185
+ string,
186
+ string
187
+ ];
188
+ export type PageLoadTiming = [
189
+ Type.PageLoadTiming,
190
+ number,
191
+ number,
192
+ number,
193
+ number,
194
+ number,
195
+ number,
196
+ number,
197
+ number,
198
+ number
199
+ ];
200
+ export type PageRenderTiming = [
201
+ Type.PageRenderTiming,
202
+ number,
203
+ number,
204
+ number
205
+ ];
206
+ export type CustomEvent = [
207
+ Type.CustomEvent,
208
+ string,
209
+ string
210
+ ];
211
+ export type UserID = [
212
+ Type.UserID,
213
+ string
214
+ ];
215
+ export type UserAnonymousID = [
216
+ Type.UserAnonymousID,
217
+ string
218
+ ];
219
+ export type Metadata = [
220
+ Type.Metadata,
221
+ string,
222
+ string
223
+ ];
224
+ export type CSSInsertRule = [
225
+ Type.CSSInsertRule,
226
+ number,
227
+ string,
228
+ number
229
+ ];
230
+ export type CSSDeleteRule = [
231
+ Type.CSSDeleteRule,
232
+ number,
233
+ number
234
+ ];
235
+ export type Fetch = [
236
+ Type.Fetch,
237
+ string,
238
+ string,
239
+ string,
240
+ string,
241
+ number,
242
+ number,
243
+ number
244
+ ];
245
+ export type Profiler = [
246
+ Type.Profiler,
247
+ string,
248
+ number,
249
+ string,
250
+ string
251
+ ];
252
+ export type OTable = [
253
+ Type.OTable,
254
+ string,
255
+ string
256
+ ];
257
+ export type StateAction = [
258
+ Type.StateAction,
259
+ string
260
+ ];
261
+ export type ReduxDeprecated = [
262
+ Type.ReduxDeprecated,
263
+ string,
264
+ string,
265
+ number
266
+ ];
267
+ export type Vuex = [
268
+ Type.Vuex,
269
+ string,
270
+ string
271
+ ];
272
+ export type MobX = [
273
+ Type.MobX,
274
+ string,
275
+ string
276
+ ];
277
+ export type NgRx = [
278
+ Type.NgRx,
279
+ string,
280
+ string,
281
+ number
282
+ ];
283
+ export type GraphQLDeprecated = [
284
+ Type.GraphQLDeprecated,
285
+ string,
286
+ string,
287
+ string,
288
+ string,
289
+ number
290
+ ];
291
+ export type PerformanceTrack = [
292
+ Type.PerformanceTrack,
293
+ number,
294
+ number,
295
+ number,
296
+ number
297
+ ];
298
+ export type StringDictDeprecated = [
299
+ Type.StringDictDeprecated,
300
+ number,
301
+ string
302
+ ];
303
+ export type SetNodeAttributeDictDeprecated = [
304
+ Type.SetNodeAttributeDictDeprecated,
305
+ number,
306
+ number,
307
+ number
308
+ ];
309
+ export type StringDict = [
310
+ Type.StringDict,
311
+ string,
312
+ string
313
+ ];
314
+ export type SetNodeAttributeDict = [
315
+ Type.SetNodeAttributeDict,
316
+ number,
317
+ string,
318
+ string
319
+ ];
320
+ export type ResourceTimingDeprecated = [
321
+ Type.ResourceTimingDeprecated,
322
+ number,
323
+ number,
324
+ number,
325
+ number,
326
+ number,
327
+ number,
328
+ string,
329
+ string
330
+ ];
331
+ export type ConnectionInformation = [
332
+ Type.ConnectionInformation,
333
+ number,
334
+ string
335
+ ];
336
+ export type SetPageVisibility = [
337
+ Type.SetPageVisibility,
338
+ boolean
339
+ ];
340
+ export type LoadFontFace = [
341
+ Type.LoadFontFace,
342
+ number,
343
+ string,
344
+ string,
345
+ string
346
+ ];
347
+ export type SetNodeFocus = [
348
+ Type.SetNodeFocus,
349
+ number
350
+ ];
351
+ export type LongTask = [
352
+ Type.LongTask,
353
+ number,
354
+ number,
355
+ number,
356
+ number,
357
+ string,
358
+ string,
359
+ string
360
+ ];
361
+ export type SetNodeAttributeURLBased = [
362
+ Type.SetNodeAttributeURLBased,
363
+ number,
364
+ string,
365
+ string,
366
+ string
367
+ ];
368
+ export type SetCSSDataURLBased = [
369
+ Type.SetCSSDataURLBased,
370
+ number,
371
+ string,
372
+ string
373
+ ];
374
+ export type TechnicalInfo = [
375
+ Type.TechnicalInfo,
376
+ string,
377
+ string
378
+ ];
379
+ export type CustomIssue = [
380
+ Type.CustomIssue,
381
+ string,
382
+ string
383
+ ];
384
+ export type CSSInsertRuleURLBased = [
385
+ Type.CSSInsertRuleURLBased,
386
+ number,
387
+ string,
388
+ number,
389
+ string
390
+ ];
391
+ export type MouseClick = [
392
+ Type.MouseClick,
393
+ number,
394
+ number,
395
+ string,
396
+ string,
397
+ number,
398
+ number
399
+ ];
400
+ export type MouseClickDeprecated = [
401
+ Type.MouseClickDeprecated,
402
+ number,
403
+ number,
404
+ string,
405
+ string
406
+ ];
407
+ export type CreateIFrameDocument = [
408
+ Type.CreateIFrameDocument,
409
+ number,
410
+ number
411
+ ];
412
+ export type AdoptedSSReplaceURLBased = [
413
+ Type.AdoptedSSReplaceURLBased,
414
+ number,
415
+ string,
416
+ string
417
+ ];
418
+ export type AdoptedSSInsertRuleURLBased = [
419
+ Type.AdoptedSSInsertRuleURLBased,
420
+ number,
421
+ string,
422
+ number,
423
+ string
424
+ ];
425
+ export type AdoptedSSDeleteRule = [
426
+ Type.AdoptedSSDeleteRule,
427
+ number,
428
+ number
429
+ ];
430
+ export type AdoptedSSAddOwner = [
431
+ Type.AdoptedSSAddOwner,
432
+ number,
433
+ number
434
+ ];
435
+ export type AdoptedSSRemoveOwner = [
436
+ Type.AdoptedSSRemoveOwner,
437
+ number,
438
+ number
439
+ ];
440
+ export type JSException = [
441
+ Type.JSException,
442
+ string,
443
+ string,
444
+ string,
445
+ string
446
+ ];
447
+ export type Zustand = [
448
+ Type.Zustand,
449
+ string,
450
+ string
451
+ ];
452
+ export type BatchMetadata = [
453
+ Type.BatchMetadata,
454
+ number,
455
+ number,
456
+ number,
457
+ number,
458
+ string
459
+ ];
460
+ export type PartitionedMessage = [
461
+ Type.PartitionedMessage,
462
+ number,
463
+ number
464
+ ];
465
+ export type NetworkRequest = [
466
+ Type.NetworkRequest,
467
+ string,
468
+ string,
469
+ string,
470
+ string,
471
+ string,
472
+ number,
473
+ number,
474
+ number,
475
+ number
476
+ ];
477
+ export type WSChannel = [
478
+ Type.WSChannel,
479
+ string,
480
+ string,
481
+ string,
482
+ number,
483
+ string,
484
+ string
485
+ ];
486
+ export type InputChange = [
487
+ Type.InputChange,
488
+ number,
489
+ string,
490
+ boolean,
491
+ string,
492
+ number,
493
+ number
494
+ ];
495
+ export type SelectionChange = [
496
+ Type.SelectionChange,
497
+ number,
498
+ number,
499
+ string
500
+ ];
501
+ export type MouseThrashing = [
502
+ Type.MouseThrashing,
503
+ number
504
+ ];
505
+ export type UnbindNodes = [
506
+ Type.UnbindNodes,
507
+ number
508
+ ];
509
+ export type ResourceTiming = [
510
+ Type.ResourceTiming,
511
+ number,
512
+ number,
513
+ number,
514
+ number,
515
+ number,
516
+ number,
517
+ string,
518
+ string,
519
+ number,
520
+ boolean
521
+ ];
522
+ export type TabChange = [
523
+ Type.TabChange,
524
+ string
525
+ ];
526
+ export type TabData = [
527
+ Type.TabData,
528
+ string
529
+ ];
530
+ export type CanvasNode = [
531
+ Type.CanvasNode,
532
+ string,
533
+ number
534
+ ];
535
+ export type TagTrigger = [
536
+ Type.TagTrigger,
537
+ number
538
+ ];
539
+ export type Redux = [
540
+ Type.Redux,
541
+ string,
542
+ string,
543
+ number,
544
+ number
545
+ ];
546
+ export type SetPageLocation = [
547
+ Type.SetPageLocation,
548
+ string,
549
+ string,
550
+ number,
551
+ string
552
+ ];
553
+ export type GraphQL = [
554
+ Type.GraphQL,
555
+ string,
556
+ string,
557
+ string,
558
+ string,
559
+ number
560
+ ];
561
+ export type WebVitals = [
562
+ Type.WebVitals,
563
+ string,
564
+ string
565
+ ];
566
+ type Message = Timestamp | SetPageLocationDeprecated | SetViewportSize | SetViewportScroll | CreateDocument | CreateElementNode | CreateTextNode | MoveNode | RemoveNode | SetNodeAttribute | RemoveNodeAttribute | SetNodeData | SetNodeScroll | SetInputTarget | SetInputValue | SetInputChecked | MouseMove | NetworkRequestDeprecated | ConsoleLog | PageLoadTiming | PageRenderTiming | CustomEvent | UserID | UserAnonymousID | Metadata | CSSInsertRule | CSSDeleteRule | Fetch | Profiler | OTable | StateAction | ReduxDeprecated | Vuex | MobX | NgRx | GraphQLDeprecated | PerformanceTrack | StringDictDeprecated | SetNodeAttributeDictDeprecated | StringDict | SetNodeAttributeDict | ResourceTimingDeprecated | ConnectionInformation | SetPageVisibility | LoadFontFace | SetNodeFocus | LongTask | SetNodeAttributeURLBased | SetCSSDataURLBased | TechnicalInfo | CustomIssue | CSSInsertRuleURLBased | MouseClick | MouseClickDeprecated | CreateIFrameDocument | AdoptedSSReplaceURLBased | AdoptedSSInsertRuleURLBased | AdoptedSSDeleteRule | AdoptedSSAddOwner | AdoptedSSRemoveOwner | JSException | Zustand | BatchMetadata | PartitionedMessage | NetworkRequest | WSChannel | InputChange | SelectionChange | MouseThrashing | UnbindNodes | ResourceTiming | TabChange | TabData | CanvasNode | TagTrigger | Redux | SetPageLocation | GraphQL | WebVitals;
567
+ export default Message;
@@ -0,0 +1,28 @@
1
+ import App from '../app/index.js';
2
+ interface Options {
3
+ fps: number;
4
+ quality: 'low' | 'medium' | 'high';
5
+ isDebug?: boolean;
6
+ fixedScaling?: boolean;
7
+ useAnimationFrame?: boolean;
8
+ fileExt?: 'webp' | 'png' | 'jpeg' | 'avif';
9
+ }
10
+ declare class CanvasRecorder {
11
+ private readonly app;
12
+ private readonly options;
13
+ private snapshots;
14
+ private readonly intervals;
15
+ private readonly interval;
16
+ private readonly fileExt;
17
+ constructor(app: App, options: Options);
18
+ startTracking(): void;
19
+ restartTracking: () => void;
20
+ captureCanvas: (node: Node) => void;
21
+ recordCanvas: (node: Node, id: number) => void;
22
+ sendSnaps(images: {
23
+ data: Blob;
24
+ id: number;
25
+ }[], canvasId: number, createdAt: number): void;
26
+ clear(): void;
27
+ }
28
+ export default CanvasRecorder;
@@ -0,0 +1,22 @@
1
+ export declare function isNode(sth: any): sth is Node;
2
+ export declare function isSVGElement(node: Element): node is SVGElement;
3
+ export declare function isElementNode(node: Node): node is Element;
4
+ export declare function isCommentNode(node: Node): node is Comment;
5
+ export declare function isTextNode(node: Node): node is Text;
6
+ export declare function isDocument(node: Node): node is Document;
7
+ export declare function isRootNode(node: Node): node is Document | DocumentFragment;
8
+ type TagTypeMap = {
9
+ html: HTMLHtmlElement;
10
+ body: HTMLBodyElement;
11
+ img: HTMLImageElement;
12
+ input: HTMLInputElement;
13
+ textarea: HTMLTextAreaElement;
14
+ select: HTMLSelectElement;
15
+ label: HTMLLabelElement;
16
+ iframe: HTMLIFrameElement;
17
+ style: HTMLStyleElement | SVGStyleElement;
18
+ link: HTMLLinkElement;
19
+ canvas: HTMLCanvasElement;
20
+ };
21
+ export declare function hasTag<T extends keyof TagTypeMap>(el: Node, tagName: T): el is TagTypeMap[typeof tagName];
22
+ export {};