@openreplay/tracker 5.0.1-beta.3 → 5.0.2-beta

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 (136) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/package.json +1 -1
  3. package/cjs/app/guards.d.ts +0 -20
  4. package/cjs/app/guards.js +0 -33
  5. package/cjs/app/index.d.ts +0 -121
  6. package/cjs/app/index.js +0 -439
  7. package/cjs/app/logger.d.ts +0 -26
  8. package/cjs/app/logger.js +0 -45
  9. package/cjs/app/messages.gen.d.ts +0 -63
  10. package/cjs/app/messages.gen.js +0 -551
  11. package/cjs/app/nodes.d.ts +0 -18
  12. package/cjs/app/nodes.js +0 -82
  13. package/cjs/app/observer/iframe_observer.d.ts +0 -4
  14. package/cjs/app/observer/iframe_observer.js +0 -23
  15. package/cjs/app/observer/iframe_offsets.d.ts +0 -8
  16. package/cjs/app/observer/iframe_offsets.js +0 -59
  17. package/cjs/app/observer/observer.d.ts +0 -23
  18. package/cjs/app/observer/observer.js +0 -337
  19. package/cjs/app/observer/shadow_root_observer.d.ts +0 -4
  20. package/cjs/app/observer/shadow_root_observer.js +0 -21
  21. package/cjs/app/observer/top_observer.d.ts +0 -24
  22. package/cjs/app/observer/top_observer.js +0 -115
  23. package/cjs/app/sanitizer.d.ts +0 -24
  24. package/cjs/app/sanitizer.js +0 -76
  25. package/cjs/app/session.d.ts +0 -38
  26. package/cjs/app/session.js +0 -114
  27. package/cjs/app/ticker.d.ts +0 -12
  28. package/cjs/app/ticker.js +0 -42
  29. package/cjs/common/interaction.d.ts +0 -24
  30. package/cjs/common/interaction.js +0 -2
  31. package/cjs/common/messages.gen.d.ts +0 -427
  32. package/cjs/common/messages.gen.js +0 -4
  33. package/cjs/index.d.ts +0 -47
  34. package/cjs/index.js +0 -254
  35. package/cjs/modules/connection.d.ts +0 -2
  36. package/cjs/modules/connection.js +0 -15
  37. package/cjs/modules/console.d.ts +0 -6
  38. package/cjs/modules/console.js +0 -119
  39. package/cjs/modules/constructedStyleSheets.d.ts +0 -4
  40. package/cjs/modules/constructedStyleSheets.js +0 -131
  41. package/cjs/modules/cssrules.d.ts +0 -2
  42. package/cjs/modules/cssrules.js +0 -99
  43. package/cjs/modules/exception.d.ts +0 -16
  44. package/cjs/modules/exception.js +0 -77
  45. package/cjs/modules/focus.d.ts +0 -2
  46. package/cjs/modules/focus.js +0 -45
  47. package/cjs/modules/fonts.d.ts +0 -2
  48. package/cjs/modules/fonts.js +0 -57
  49. package/cjs/modules/img.d.ts +0 -2
  50. package/cjs/modules/img.js +0 -110
  51. package/cjs/modules/input.d.ts +0 -16
  52. package/cjs/modules/input.js +0 -163
  53. package/cjs/modules/mouse.d.ts +0 -2
  54. package/cjs/modules/mouse.js +0 -148
  55. package/cjs/modules/network.d.ts +0 -28
  56. package/cjs/modules/network.js +0 -237
  57. package/cjs/modules/performance.d.ts +0 -7
  58. package/cjs/modules/performance.js +0 -53
  59. package/cjs/modules/scroll.d.ts +0 -2
  60. package/cjs/modules/scroll.js +0 -79
  61. package/cjs/modules/timing.d.ts +0 -7
  62. package/cjs/modules/timing.js +0 -160
  63. package/cjs/modules/viewport.d.ts +0 -2
  64. package/cjs/modules/viewport.js +0 -43
  65. package/cjs/package.json +0 -1
  66. package/cjs/utils.d.ts +0 -13
  67. package/cjs/utils.js +0 -71
  68. package/cjs/vendors/finder/finder.d.ts +0 -12
  69. package/cjs/vendors/finder/finder.js +0 -352
  70. package/lib/app/guards.d.ts +0 -20
  71. package/lib/app/guards.js +0 -23
  72. package/lib/app/index.d.ts +0 -121
  73. package/lib/app/index.js +0 -435
  74. package/lib/app/logger.d.ts +0 -26
  75. package/lib/app/logger.js +0 -41
  76. package/lib/app/messages.gen.d.ts +0 -63
  77. package/lib/app/messages.gen.js +0 -486
  78. package/lib/app/nodes.d.ts +0 -18
  79. package/lib/app/nodes.js +0 -79
  80. package/lib/app/observer/iframe_observer.d.ts +0 -4
  81. package/lib/app/observer/iframe_observer.js +0 -20
  82. package/lib/app/observer/iframe_offsets.d.ts +0 -8
  83. package/lib/app/observer/iframe_offsets.js +0 -56
  84. package/lib/app/observer/observer.d.ts +0 -23
  85. package/lib/app/observer/observer.js +0 -334
  86. package/lib/app/observer/shadow_root_observer.d.ts +0 -4
  87. package/lib/app/observer/shadow_root_observer.js +0 -18
  88. package/lib/app/observer/top_observer.d.ts +0 -24
  89. package/lib/app/observer/top_observer.js +0 -112
  90. package/lib/app/sanitizer.d.ts +0 -24
  91. package/lib/app/sanitizer.js +0 -72
  92. package/lib/app/session.d.ts +0 -38
  93. package/lib/app/session.js +0 -111
  94. package/lib/app/ticker.d.ts +0 -12
  95. package/lib/app/ticker.js +0 -39
  96. package/lib/common/interaction.d.ts +0 -24
  97. package/lib/common/interaction.js +0 -1
  98. package/lib/common/messages.gen.d.ts +0 -427
  99. package/lib/common/messages.gen.js +0 -3
  100. package/lib/common/tsconfig.tsbuildinfo +0 -1
  101. package/lib/index.d.ts +0 -47
  102. package/lib/index.js +0 -248
  103. package/lib/modules/connection.d.ts +0 -2
  104. package/lib/modules/connection.js +0 -12
  105. package/lib/modules/console.d.ts +0 -6
  106. package/lib/modules/console.js +0 -116
  107. package/lib/modules/constructedStyleSheets.d.ts +0 -4
  108. package/lib/modules/constructedStyleSheets.js +0 -126
  109. package/lib/modules/cssrules.d.ts +0 -2
  110. package/lib/modules/cssrules.js +0 -97
  111. package/lib/modules/exception.d.ts +0 -16
  112. package/lib/modules/exception.js +0 -71
  113. package/lib/modules/focus.d.ts +0 -2
  114. package/lib/modules/focus.js +0 -42
  115. package/lib/modules/fonts.d.ts +0 -2
  116. package/lib/modules/fonts.js +0 -54
  117. package/lib/modules/img.d.ts +0 -2
  118. package/lib/modules/img.js +0 -107
  119. package/lib/modules/input.d.ts +0 -16
  120. package/lib/modules/input.js +0 -158
  121. package/lib/modules/mouse.d.ts +0 -2
  122. package/lib/modules/mouse.js +0 -145
  123. package/lib/modules/network.d.ts +0 -28
  124. package/lib/modules/network.js +0 -234
  125. package/lib/modules/performance.d.ts +0 -7
  126. package/lib/modules/performance.js +0 -49
  127. package/lib/modules/scroll.d.ts +0 -2
  128. package/lib/modules/scroll.js +0 -76
  129. package/lib/modules/timing.d.ts +0 -7
  130. package/lib/modules/timing.js +0 -157
  131. package/lib/modules/viewport.d.ts +0 -2
  132. package/lib/modules/viewport.js +0 -40
  133. package/lib/utils.d.ts +0 -13
  134. package/lib/utils.js +0 -61
  135. package/lib/vendors/finder/finder.d.ts +0 -12
  136. package/lib/vendors/finder/finder.js +0 -348
@@ -1,486 +0,0 @@
1
- // Auto-generated, do not edit
2
- /* eslint-disable */
3
- export function Timestamp(timestamp) {
4
- return [
5
- 0 /* Messages.Type.Timestamp */,
6
- timestamp,
7
- ];
8
- }
9
- export function SetPageLocation(url, referrer, navigationStart) {
10
- return [
11
- 4 /* Messages.Type.SetPageLocation */,
12
- url,
13
- referrer,
14
- navigationStart,
15
- ];
16
- }
17
- export function SetViewportSize(width, height) {
18
- return [
19
- 5 /* Messages.Type.SetViewportSize */,
20
- width,
21
- height,
22
- ];
23
- }
24
- export function SetViewportScroll(x, y) {
25
- return [
26
- 6 /* Messages.Type.SetViewportScroll */,
27
- x,
28
- y,
29
- ];
30
- }
31
- export function CreateDocument() {
32
- return [
33
- 7 /* Messages.Type.CreateDocument */,
34
- ];
35
- }
36
- export function CreateElementNode(id, parentID, index, tag, svg) {
37
- return [
38
- 8 /* Messages.Type.CreateElementNode */,
39
- id,
40
- parentID,
41
- index,
42
- tag,
43
- svg,
44
- ];
45
- }
46
- export function CreateTextNode(id, parentID, index) {
47
- return [
48
- 9 /* Messages.Type.CreateTextNode */,
49
- id,
50
- parentID,
51
- index,
52
- ];
53
- }
54
- export function MoveNode(id, parentID, index) {
55
- return [
56
- 10 /* Messages.Type.MoveNode */,
57
- id,
58
- parentID,
59
- index,
60
- ];
61
- }
62
- export function RemoveNode(id) {
63
- return [
64
- 11 /* Messages.Type.RemoveNode */,
65
- id,
66
- ];
67
- }
68
- export function SetNodeAttribute(id, name, value) {
69
- return [
70
- 12 /* Messages.Type.SetNodeAttribute */,
71
- id,
72
- name,
73
- value,
74
- ];
75
- }
76
- export function RemoveNodeAttribute(id, name) {
77
- return [
78
- 13 /* Messages.Type.RemoveNodeAttribute */,
79
- id,
80
- name,
81
- ];
82
- }
83
- export function SetNodeData(id, data) {
84
- return [
85
- 14 /* Messages.Type.SetNodeData */,
86
- id,
87
- data,
88
- ];
89
- }
90
- export function SetNodeScroll(id, x, y) {
91
- return [
92
- 16 /* Messages.Type.SetNodeScroll */,
93
- id,
94
- x,
95
- y,
96
- ];
97
- }
98
- export function SetInputTarget(id, label) {
99
- return [
100
- 17 /* Messages.Type.SetInputTarget */,
101
- id,
102
- label,
103
- ];
104
- }
105
- export function SetInputValue(id, value, mask) {
106
- return [
107
- 18 /* Messages.Type.SetInputValue */,
108
- id,
109
- value,
110
- mask,
111
- ];
112
- }
113
- export function SetInputChecked(id, checked) {
114
- return [
115
- 19 /* Messages.Type.SetInputChecked */,
116
- id,
117
- checked,
118
- ];
119
- }
120
- export function MouseMove(x, y) {
121
- return [
122
- 20 /* Messages.Type.MouseMove */,
123
- x,
124
- y,
125
- ];
126
- }
127
- export function NetworkRequest(type, method, url, request, response, status, timestamp, duration) {
128
- return [
129
- 21 /* Messages.Type.NetworkRequest */,
130
- type,
131
- method,
132
- url,
133
- request,
134
- response,
135
- status,
136
- timestamp,
137
- duration,
138
- ];
139
- }
140
- export function ConsoleLog(level, value) {
141
- return [
142
- 22 /* Messages.Type.ConsoleLog */,
143
- level,
144
- value,
145
- ];
146
- }
147
- export function PageLoadTiming(requestStart, responseStart, responseEnd, domContentLoadedEventStart, domContentLoadedEventEnd, loadEventStart, loadEventEnd, firstPaint, firstContentfulPaint) {
148
- return [
149
- 23 /* Messages.Type.PageLoadTiming */,
150
- requestStart,
151
- responseStart,
152
- responseEnd,
153
- domContentLoadedEventStart,
154
- domContentLoadedEventEnd,
155
- loadEventStart,
156
- loadEventEnd,
157
- firstPaint,
158
- firstContentfulPaint,
159
- ];
160
- }
161
- export function PageRenderTiming(speedIndex, visuallyComplete, timeToInteractive) {
162
- return [
163
- 24 /* Messages.Type.PageRenderTiming */,
164
- speedIndex,
165
- visuallyComplete,
166
- timeToInteractive,
167
- ];
168
- }
169
- export function CustomEvent(name, payload) {
170
- return [
171
- 27 /* Messages.Type.CustomEvent */,
172
- name,
173
- payload,
174
- ];
175
- }
176
- export function UserID(id) {
177
- return [
178
- 28 /* Messages.Type.UserID */,
179
- id,
180
- ];
181
- }
182
- export function UserAnonymousID(id) {
183
- return [
184
- 29 /* Messages.Type.UserAnonymousID */,
185
- id,
186
- ];
187
- }
188
- export function Metadata(key, value) {
189
- return [
190
- 30 /* Messages.Type.Metadata */,
191
- key,
192
- value,
193
- ];
194
- }
195
- export function CSSInsertRule(id, rule, index) {
196
- return [
197
- 37 /* Messages.Type.CSSInsertRule */,
198
- id,
199
- rule,
200
- index,
201
- ];
202
- }
203
- export function CSSDeleteRule(id, index) {
204
- return [
205
- 38 /* Messages.Type.CSSDeleteRule */,
206
- id,
207
- index,
208
- ];
209
- }
210
- export function Fetch(method, url, request, response, status, timestamp, duration) {
211
- return [
212
- 39 /* Messages.Type.Fetch */,
213
- method,
214
- url,
215
- request,
216
- response,
217
- status,
218
- timestamp,
219
- duration,
220
- ];
221
- }
222
- export function Profiler(name, duration, args, result) {
223
- return [
224
- 40 /* Messages.Type.Profiler */,
225
- name,
226
- duration,
227
- args,
228
- result,
229
- ];
230
- }
231
- export function OTable(key, value) {
232
- return [
233
- 41 /* Messages.Type.OTable */,
234
- key,
235
- value,
236
- ];
237
- }
238
- export function StateAction(type) {
239
- return [
240
- 42 /* Messages.Type.StateAction */,
241
- type,
242
- ];
243
- }
244
- export function Redux(action, state, duration) {
245
- return [
246
- 44 /* Messages.Type.Redux */,
247
- action,
248
- state,
249
- duration,
250
- ];
251
- }
252
- export function Vuex(mutation, state) {
253
- return [
254
- 45 /* Messages.Type.Vuex */,
255
- mutation,
256
- state,
257
- ];
258
- }
259
- export function MobX(type, payload) {
260
- return [
261
- 46 /* Messages.Type.MobX */,
262
- type,
263
- payload,
264
- ];
265
- }
266
- export function NgRx(action, state, duration) {
267
- return [
268
- 47 /* Messages.Type.NgRx */,
269
- action,
270
- state,
271
- duration,
272
- ];
273
- }
274
- export function GraphQL(operationKind, operationName, variables, response) {
275
- return [
276
- 48 /* Messages.Type.GraphQL */,
277
- operationKind,
278
- operationName,
279
- variables,
280
- response,
281
- ];
282
- }
283
- export function PerformanceTrack(frames, ticks, totalJSHeapSize, usedJSHeapSize) {
284
- return [
285
- 49 /* Messages.Type.PerformanceTrack */,
286
- frames,
287
- ticks,
288
- totalJSHeapSize,
289
- usedJSHeapSize,
290
- ];
291
- }
292
- export function StringDict(key, value) {
293
- return [
294
- 50 /* Messages.Type.StringDict */,
295
- key,
296
- value,
297
- ];
298
- }
299
- export function SetNodeAttributeDict(id, nameKey, valueKey) {
300
- return [
301
- 51 /* Messages.Type.SetNodeAttributeDict */,
302
- id,
303
- nameKey,
304
- valueKey,
305
- ];
306
- }
307
- export function ResourceTiming(timestamp, duration, ttfb, headerSize, encodedBodySize, decodedBodySize, url, initiator) {
308
- return [
309
- 53 /* Messages.Type.ResourceTiming */,
310
- timestamp,
311
- duration,
312
- ttfb,
313
- headerSize,
314
- encodedBodySize,
315
- decodedBodySize,
316
- url,
317
- initiator,
318
- ];
319
- }
320
- export function ConnectionInformation(downlink, type) {
321
- return [
322
- 54 /* Messages.Type.ConnectionInformation */,
323
- downlink,
324
- type,
325
- ];
326
- }
327
- export function SetPageVisibility(hidden) {
328
- return [
329
- 55 /* Messages.Type.SetPageVisibility */,
330
- hidden,
331
- ];
332
- }
333
- export function LoadFontFace(parentID, family, source, descriptors) {
334
- return [
335
- 57 /* Messages.Type.LoadFontFace */,
336
- parentID,
337
- family,
338
- source,
339
- descriptors,
340
- ];
341
- }
342
- export function SetNodeFocus(id) {
343
- return [
344
- 58 /* Messages.Type.SetNodeFocus */,
345
- id,
346
- ];
347
- }
348
- export function LongTask(timestamp, duration, context, containerType, containerSrc, containerId, containerName) {
349
- return [
350
- 59 /* Messages.Type.LongTask */,
351
- timestamp,
352
- duration,
353
- context,
354
- containerType,
355
- containerSrc,
356
- containerId,
357
- containerName,
358
- ];
359
- }
360
- export function SetNodeAttributeURLBased(id, name, value, baseURL) {
361
- return [
362
- 60 /* Messages.Type.SetNodeAttributeURLBased */,
363
- id,
364
- name,
365
- value,
366
- baseURL,
367
- ];
368
- }
369
- export function SetCSSDataURLBased(id, data, baseURL) {
370
- return [
371
- 61 /* Messages.Type.SetCSSDataURLBased */,
372
- id,
373
- data,
374
- baseURL,
375
- ];
376
- }
377
- export function TechnicalInfo(type, value) {
378
- return [
379
- 63 /* Messages.Type.TechnicalInfo */,
380
- type,
381
- value,
382
- ];
383
- }
384
- export function CustomIssue(name, payload) {
385
- return [
386
- 64 /* Messages.Type.CustomIssue */,
387
- name,
388
- payload,
389
- ];
390
- }
391
- export function CSSInsertRuleURLBased(id, rule, index, baseURL) {
392
- return [
393
- 67 /* Messages.Type.CSSInsertRuleURLBased */,
394
- id,
395
- rule,
396
- index,
397
- baseURL,
398
- ];
399
- }
400
- export function MouseClick(id, hesitationTime, label, selector) {
401
- return [
402
- 69 /* Messages.Type.MouseClick */,
403
- id,
404
- hesitationTime,
405
- label,
406
- selector,
407
- ];
408
- }
409
- export function CreateIFrameDocument(frameID, id) {
410
- return [
411
- 70 /* Messages.Type.CreateIFrameDocument */,
412
- frameID,
413
- id,
414
- ];
415
- }
416
- export function AdoptedSSReplaceURLBased(sheetID, text, baseURL) {
417
- return [
418
- 71 /* Messages.Type.AdoptedSSReplaceURLBased */,
419
- sheetID,
420
- text,
421
- baseURL,
422
- ];
423
- }
424
- export function AdoptedSSInsertRuleURLBased(sheetID, rule, index, baseURL) {
425
- return [
426
- 73 /* Messages.Type.AdoptedSSInsertRuleURLBased */,
427
- sheetID,
428
- rule,
429
- index,
430
- baseURL,
431
- ];
432
- }
433
- export function AdoptedSSDeleteRule(sheetID, index) {
434
- return [
435
- 75 /* Messages.Type.AdoptedSSDeleteRule */,
436
- sheetID,
437
- index,
438
- ];
439
- }
440
- export function AdoptedSSAddOwner(sheetID, id) {
441
- return [
442
- 76 /* Messages.Type.AdoptedSSAddOwner */,
443
- sheetID,
444
- id,
445
- ];
446
- }
447
- export function AdoptedSSRemoveOwner(sheetID, id) {
448
- return [
449
- 77 /* Messages.Type.AdoptedSSRemoveOwner */,
450
- sheetID,
451
- id,
452
- ];
453
- }
454
- export function JSException(name, message, payload, metadata) {
455
- return [
456
- 78 /* Messages.Type.JSException */,
457
- name,
458
- message,
459
- payload,
460
- metadata,
461
- ];
462
- }
463
- export function Zustand(mutation, state) {
464
- return [
465
- 79 /* Messages.Type.Zustand */,
466
- mutation,
467
- state,
468
- ];
469
- }
470
- export function BatchMetadata(version, pageNo, firstIndex, timestamp, location) {
471
- return [
472
- 81 /* Messages.Type.BatchMetadata */,
473
- version,
474
- pageNo,
475
- firstIndex,
476
- timestamp,
477
- location,
478
- ];
479
- }
480
- export function PartitionedMessage(partNo, partTotal) {
481
- return [
482
- 82 /* Messages.Type.PartitionedMessage */,
483
- partNo,
484
- partTotal,
485
- ];
486
- }
@@ -1,18 +0,0 @@
1
- type NodeCallback = (node: Node, isStart: boolean) => void;
2
- export default class Nodes {
3
- private readonly node_id;
4
- private nodes;
5
- private readonly nodeCallbacks;
6
- private readonly elementListeners;
7
- constructor(node_id: string);
8
- attachNodeCallback(nodeCallback: NodeCallback): void;
9
- attachNodeListener(node: Node, type: string, listener: EventListener, useCapture?: boolean): void;
10
- registerNode(node: Node): [/*id:*/ number, /*isNew:*/ boolean];
11
- unregisterNode(node: Node): number | undefined;
12
- cleanTree(): void;
13
- callNodeCallbacks(node: Node, isStart: boolean): void;
14
- getID(node: Node): number | undefined;
15
- getNode(id: number): void | Node;
16
- clear(): void;
17
- }
18
- export {};
package/lib/app/nodes.js DELETED
@@ -1,79 +0,0 @@
1
- export default class Nodes {
2
- constructor(node_id) {
3
- this.node_id = node_id;
4
- this.nodes = [];
5
- this.nodeCallbacks = [];
6
- this.elementListeners = new Map();
7
- }
8
- // Attached once per Tracker instance
9
- attachNodeCallback(nodeCallback) {
10
- this.nodeCallbacks.push(nodeCallback);
11
- }
12
- attachNodeListener(node, type, listener, useCapture = true) {
13
- const id = this.getID(node);
14
- if (id === undefined) {
15
- return;
16
- }
17
- node.addEventListener(type, listener, useCapture);
18
- let listeners = this.elementListeners.get(id);
19
- if (listeners === undefined) {
20
- listeners = [];
21
- this.elementListeners.set(id, listeners);
22
- }
23
- listeners.push([type, listener, useCapture]);
24
- }
25
- registerNode(node) {
26
- let id = node[this.node_id];
27
- const isNew = id === undefined;
28
- if (isNew) {
29
- id = this.nodes.length;
30
- this.nodes[id] = node;
31
- node[this.node_id] = id;
32
- }
33
- return [id, isNew];
34
- }
35
- unregisterNode(node) {
36
- const id = node[this.node_id];
37
- if (id !== undefined) {
38
- delete node[this.node_id];
39
- delete this.nodes[id];
40
- const listeners = this.elementListeners.get(id);
41
- if (listeners !== undefined) {
42
- this.elementListeners.delete(id);
43
- listeners.forEach((listener) => node.removeEventListener(listener[0], listener[1], listener[2]));
44
- }
45
- }
46
- return id;
47
- }
48
- cleanTree() {
49
- // sadly we keep empty items in array here resulting in some memory still being used
50
- // but its still better than keeping dead nodes or undef elements
51
- // plus we keep our index positions for new/alive nodes
52
- // performance test: 3ms for 30k nodes with 17k dead ones
53
- for (let i = 0; i < this.nodes.length; i++) {
54
- const node = this.nodes[i];
55
- if (node && !document.contains(node)) {
56
- this.unregisterNode(node);
57
- }
58
- }
59
- }
60
- callNodeCallbacks(node, isStart) {
61
- this.nodeCallbacks.forEach((cb) => cb(node, isStart));
62
- }
63
- getID(node) {
64
- return node[this.node_id];
65
- }
66
- getNode(id) {
67
- return this.nodes[id];
68
- }
69
- clear() {
70
- for (let id = 0; id < this.nodes.length; id++) {
71
- const node = this.nodes[id];
72
- if (node === undefined) {
73
- continue;
74
- }
75
- this.unregisterNode(node);
76
- }
77
- this.nodes.length = 0;
78
- }
79
- }
@@ -1,4 +0,0 @@
1
- import Observer from './observer.js';
2
- export default class IFrameObserver extends Observer {
3
- observe(iframe: HTMLIFrameElement): void;
4
- }
@@ -1,20 +0,0 @@
1
- import Observer from './observer.js';
2
- import { CreateIFrameDocument } from '../messages.gen.js';
3
- export default class IFrameObserver extends Observer {
4
- observe(iframe) {
5
- const doc = iframe.contentDocument;
6
- const hostID = this.app.nodes.getID(iframe);
7
- if (!doc || hostID === undefined) {
8
- return;
9
- } //log TODO common app.logger
10
- // Have to observe document, because the inner <html> might be changed
11
- this.observeRoot(doc, (docID) => {
12
- //MBTODO: do not send if empty (send on load? it might be in-place iframe, like our replayer, which does not get loaded)
13
- if (docID === undefined) {
14
- console.log('OpenReplay: Iframe document not bound');
15
- return;
16
- }
17
- this.app.send(CreateIFrameDocument(hostID, docID));
18
- });
19
- }
20
- }
@@ -1,8 +0,0 @@
1
- export type Offset = [/*left:*/ number, /*top: */ number];
2
- export default class IFrameOffsets {
3
- private readonly states;
4
- private calcOffset;
5
- getDocumentOffset(doc: Document): Offset;
6
- observe(iFrame: HTMLIFrameElement): void;
7
- clear(): void;
8
- }
@@ -1,56 +0,0 @@
1
- // Le truc - for defining an absolute offset for (nested) iframe documents. (To track mouse movments)
2
- export default class IFrameOffsets {
3
- constructor() {
4
- this.states = new Map();
5
- }
6
- calcOffset(state) {
7
- let parLeft = 0, parTop = 0;
8
- if (state.parent) {
9
- ;
10
- [parLeft, parTop] = this.calcOffset(state.parent);
11
- }
12
- if (!state.offset) {
13
- const { left, top } = state.iFrame.getBoundingClientRect();
14
- state.offset = [left, top];
15
- }
16
- const [left, top] = state.offset;
17
- return [parLeft + left, parTop + top]; // TODO: store absolute sum, invalidate whole subtree. Otherwise it is summated on each mousemove
18
- }
19
- getDocumentOffset(doc) {
20
- const state = this.states.get(doc);
21
- if (!state) {
22
- return [0, 0];
23
- } // topmost doc
24
- return this.calcOffset(state);
25
- }
26
- observe(iFrame) {
27
- var _a;
28
- const doc = iFrame.contentDocument;
29
- if (!doc) {
30
- return;
31
- }
32
- const parentDoc = iFrame.ownerDocument;
33
- const parentState = this.states.get(parentDoc);
34
- const state = {
35
- offset: null,
36
- iFrame,
37
- parent: parentState || null,
38
- clear: () => {
39
- var _a;
40
- parentDoc.removeEventListener('scroll', invalidateOffset);
41
- (_a = parentDoc.defaultView) === null || _a === void 0 ? void 0 : _a.removeEventListener('resize', invalidateOffset);
42
- },
43
- };
44
- const invalidateOffset = () => {
45
- state.offset = null;
46
- };
47
- // anything more reliable? This does not cover all cases (layout changes are ignored, for ex.)
48
- parentDoc.addEventListener('scroll', invalidateOffset);
49
- (_a = parentDoc.defaultView) === null || _a === void 0 ? void 0 : _a.addEventListener('resize', invalidateOffset);
50
- this.states.set(doc, state);
51
- }
52
- clear() {
53
- this.states.forEach((s) => s.clear());
54
- this.states.clear();
55
- }
56
- }
@@ -1,23 +0,0 @@
1
- import App from '../index.js';
2
- export default abstract class Observer {
3
- protected readonly app: App;
4
- protected readonly isTopContext: boolean;
5
- private readonly observer;
6
- private readonly commited;
7
- private readonly recents;
8
- private readonly indexes;
9
- private readonly attributesMap;
10
- private readonly textSet;
11
- constructor(app: App, isTopContext?: boolean);
12
- private clear;
13
- private sendNodeAttribute;
14
- private sendNodeData;
15
- private bindNode;
16
- private bindTree;
17
- private unbindTree;
18
- private _commitNode;
19
- private commitNode;
20
- private commitNodes;
21
- protected observeRoot(node: Node, beforeCommit: (id?: number) => unknown, nodeToBind?: Node): void;
22
- disconnect(): void;
23
- }