@openreplay/tracker 9.0.11 → 10.0.0

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 (112) hide show
  1. package/.nvmrc +1 -0
  2. package/CHANGELOG.md +7 -0
  3. package/README.md +4 -0
  4. package/bun.lockb +0 -0
  5. package/cjs/app/index.js +15 -12
  6. package/cjs/app/logger.d.ts +1 -1
  7. package/cjs/app/messages.gen.d.ts +2 -1
  8. package/cjs/app/messages.gen.js +20 -5
  9. package/cjs/app/nodes.js +4 -3
  10. package/cjs/app/observer/observer.js +2 -1
  11. package/cjs/common/messages.gen.d.ts +17 -4
  12. package/cjs/index.js +1 -1
  13. package/cjs/modules/Network/beaconProxy.d.ts +16 -0
  14. package/cjs/modules/Network/beaconProxy.js +82 -0
  15. package/cjs/modules/Network/fetchProxy.d.ts +0 -1
  16. package/cjs/modules/Network/fetchProxy.js +0 -1
  17. package/cjs/modules/Network/index.js +5 -0
  18. package/cjs/modules/Network/networkMessage.d.ts +1 -1
  19. package/cjs/modules/Network/networkMessage.js +1 -1
  20. package/cjs/modules/Network/xhrProxy.d.ts +0 -9
  21. package/cjs/modules/Network/xhrProxy.js +0 -1
  22. package/cjs/modules/axiosSpy.js +1 -1
  23. package/cjs/modules/constructedStyleSheets.js +25 -21
  24. package/cjs/modules/featureFlags.js +0 -1
  25. package/cjs/modules/img.js +2 -2
  26. package/cjs/modules/network.js +3 -2
  27. package/cjs/modules/timing.js +5 -0
  28. package/cjs/utils.d.ts +16 -0
  29. package/cjs/utils.js +53 -1
  30. package/coverage/clover.xml +533 -772
  31. package/coverage/coverage-final.json +8 -12
  32. package/coverage/lcov-report/index.html +27 -42
  33. package/coverage/lcov-report/main/app/guards.ts.html +1 -1
  34. package/coverage/lcov-report/main/app/index.html +14 -14
  35. package/coverage/lcov-report/main/app/index.ts.html +196 -28
  36. package/coverage/lcov-report/main/app/logger.ts.html +1 -1
  37. package/coverage/lcov-report/main/app/messages.gen.ts.html +1 -1
  38. package/coverage/lcov-report/main/app/nodes.ts.html +13 -7
  39. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
  40. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
  41. package/coverage/lcov-report/main/app/observer/index.html +1 -1
  42. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
  43. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
  44. package/coverage/lcov-report/main/app/sanitizer.ts.html +1 -1
  45. package/coverage/lcov-report/main/app/session.ts.html +20 -8
  46. package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
  47. package/coverage/lcov-report/main/index.html +23 -23
  48. package/coverage/lcov-report/main/index.ts.html +26 -26
  49. package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +1 -1
  50. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +1 -1
  51. package/coverage/lcov-report/main/modules/Network/index.html +1 -1
  52. package/coverage/lcov-report/main/modules/Network/index.ts.html +1 -1
  53. package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +1 -1
  54. package/coverage/lcov-report/main/modules/Network/utils.ts.html +1 -1
  55. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +1 -1
  56. package/coverage/lcov-report/main/modules/attributeSender.ts.html +1 -1
  57. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
  58. package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
  59. package/coverage/lcov-report/main/modules/console.ts.html +1 -1
  60. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +42 -30
  61. package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
  62. package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
  63. package/coverage/lcov-report/main/modules/featureFlags.ts.html +1 -1
  64. package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
  65. package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
  66. package/coverage/lcov-report/main/modules/img.ts.html +23 -20
  67. package/coverage/lcov-report/main/modules/index.html +12 -12
  68. package/coverage/lcov-report/main/modules/input.ts.html +1 -1
  69. package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
  70. package/coverage/lcov-report/main/modules/network.ts.html +1 -1
  71. package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
  72. package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
  73. package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
  74. package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
  75. package/coverage/lcov-report/main/modules/timing.ts.html +30 -6
  76. package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
  77. package/coverage/lcov-report/main/utils.ts.html +269 -44
  78. package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
  79. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +1 -1
  80. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
  81. package/coverage/lcov-report/webworker/QueueSender.ts.html +1 -1
  82. package/coverage/lcov-report/webworker/index.html +1 -1
  83. package/coverage/lcov-report/webworker/index.ts.html +1 -1
  84. package/coverage/lcov.info +920 -1285
  85. package/lib/app/index.js +16 -13
  86. package/lib/app/logger.d.ts +1 -1
  87. package/lib/app/messages.gen.d.ts +2 -1
  88. package/lib/app/messages.gen.js +16 -2
  89. package/lib/app/nodes.js +4 -3
  90. package/lib/app/observer/observer.js +2 -1
  91. package/lib/common/messages.gen.d.ts +17 -4
  92. package/lib/common/tsconfig.tsbuildinfo +1 -1
  93. package/lib/index.js +1 -1
  94. package/lib/modules/Network/beaconProxy.d.ts +16 -0
  95. package/lib/modules/Network/beaconProxy.js +77 -0
  96. package/lib/modules/Network/fetchProxy.d.ts +0 -1
  97. package/lib/modules/Network/fetchProxy.js +0 -1
  98. package/lib/modules/Network/index.js +5 -0
  99. package/lib/modules/Network/networkMessage.d.ts +1 -1
  100. package/lib/modules/Network/networkMessage.js +1 -1
  101. package/lib/modules/Network/xhrProxy.d.ts +0 -9
  102. package/lib/modules/Network/xhrProxy.js +0 -1
  103. package/lib/modules/axiosSpy.js +1 -1
  104. package/lib/modules/constructedStyleSheets.js +25 -21
  105. package/lib/modules/featureFlags.js +0 -1
  106. package/lib/modules/img.js +3 -3
  107. package/lib/modules/network.js +3 -2
  108. package/lib/modules/timing.js +5 -0
  109. package/lib/utils.d.ts +16 -0
  110. package/lib/utils.js +47 -0
  111. package/package.json +13 -13
  112. package/rollup.config.js +4 -4
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/54</span>
28
+ <span class='fraction'>0/55</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/50</span>
49
+ <span class='fraction'>0/51</span>
50
50
  </div>
51
51
 
52
52
 
@@ -163,7 +163,11 @@
163
163
  <a name='L98'></a><a href='#L98'>98</a>
164
164
  <a name='L99'></a><a href='#L99'>99</a>
165
165
  <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
169
+ <span class="cline-any cline-neutral">&nbsp;</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
171
  <span class="cline-any cline-neutral">&nbsp;</span>
168
172
  <span class="cline-any cline-neutral">&nbsp;</span>
169
173
  <span class="cline-any cline-no">&nbsp;</span>
@@ -263,7 +267,9 @@
263
267
  <span class="cline-any cline-no">&nbsp;</span>
264
268
  <span class="cline-any cline-neutral">&nbsp;</span>
265
269
  <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">type NodeCallback = (node: Node, isStart: boolean) =&gt; void
270
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { createEventListener, deleteEventListener } from '../utils.js'</span>
271
+ &nbsp;
272
+ type NodeCallback = (node: Node, isStart: boolean) =&gt; void
267
273
  type ElementListener = [string, EventListener, boolean]
268
274
  &nbsp;
269
275
  <span class="cstat-no" title="statement not covered" >export default class N</span>odes {
@@ -284,7 +290,7 @@ type ElementListener = [string, EventListener, boolean]
284
290
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (id === undefined) {</span>
285
291
  <span class="cstat-no" title="statement not covered" > return</span>
286
292
  }
287
- <span class="cstat-no" title="statement not covered" > node.addEventListener(type, listener, useCapture)</span>
293
+ <span class="cstat-no" title="statement not covered" > createEventListener(node, type, listener, useCapture)</span>
288
294
  let listeners = <span class="cstat-no" title="statement not covered" >this.elementListeners.get(id)</span>
289
295
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (listeners === undefined) {</span>
290
296
  <span class="cstat-no" title="statement not covered" > listeners = []</span>
@@ -314,7 +320,7 @@ type ElementListener = [string, EventListener, boolean]
314
320
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (listeners !== undefined) {</span>
315
321
  <span class="cstat-no" title="statement not covered" > this.elementListeners.delete(id)</span>
316
322
  <span class="cstat-no" title="statement not covered" > listeners.forEach(<span class="fstat-no" title="function not covered" >(l</span>istener) =&gt;</span>
317
- <span class="cstat-no" title="statement not covered" > node.removeEventListener(listener[0], listener[1], listener[2]),</span>
323
+ <span class="cstat-no" title="statement not covered" > deleteEventListener(node, listener[0], listener[1], listener[2]),</span>
318
324
  )
319
325
  }
320
326
  <span class="cstat-no" title="statement not covered" > this.totalNodeAmount--</span>
@@ -370,7 +376,7 @@ type ElementListener = [string, EventListener, boolean]
370
376
  <div class='footer quiet pad2 space-top1 center small'>
371
377
  Code coverage generated by
372
378
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
373
- at 2023-10-17T13:37:58.420Z
379
+ at 2023-10-24T10:53:06.602Z
374
380
  </div>
375
381
  <script src="../../prettify.js"></script>
376
382
  <script>
@@ -133,7 +133,7 @@
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
136
- at 2023-10-17T13:37:58.420Z
136
+ at 2023-10-24T10:53:06.602Z
137
137
  </div>
138
138
  <script src="../../../prettify.js"></script>
139
139
  <script>
@@ -274,7 +274,7 @@ type OffsetState = {
274
274
  <div class='footer quiet pad2 space-top1 center small'>
275
275
  Code coverage generated by
276
276
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
277
- at 2023-10-17T13:37:58.420Z
277
+ at 2023-10-24T10:53:06.602Z
278
278
  </div>
279
279
  <script src="../../../prettify.js"></script>
280
280
  <script>
@@ -146,7 +146,7 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at 2023-10-17T13:37:58.420Z
149
+ at 2023-10-24T10:53:06.602Z
150
150
  </div>
151
151
  <script src="../../../prettify.js"></script>
152
152
  <script>
@@ -127,7 +127,7 @@
127
127
  <div class='footer quiet pad2 space-top1 center small'>
128
128
  Code coverage generated by
129
129
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
130
- at 2023-10-17T13:37:58.420Z
130
+ at 2023-10-24T10:53:06.602Z
131
131
  </div>
132
132
  <script src="../../../prettify.js"></script>
133
133
  <script>
@@ -523,7 +523,7 @@ const attachShadowNativeFn = <span class="cstat-no" title="statement not covered
523
523
  <div class='footer quiet pad2 space-top1 center small'>
524
524
  Code coverage generated by
525
525
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
526
- at 2023-10-17T13:37:58.420Z
526
+ at 2023-10-24T10:53:06.602Z
527
527
  </div>
528
528
  <script src="../../../prettify.js"></script>
529
529
  <script>
@@ -379,7 +379,7 @@ export const <span class="cstat-no" title="statement not covered" >stringWiper =
379
379
  <div class='footer quiet pad2 space-top1 center small'>
380
380
  Code coverage generated by
381
381
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
382
- at 2023-10-17T13:37:58.420Z
382
+ at 2023-10-24T10:53:06.602Z
383
383
  </div>
384
384
  <script src="../../prettify.js"></script>
385
385
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/74</span>
28
+ <span class='fraction'>0/75</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/19</span>
42
+ <span class='fraction'>0/20</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/70</span>
49
+ <span class='fraction'>0/71</span>
50
50
  </div>
51
51
 
52
52
 
@@ -235,7 +235,11 @@
235
235
  <a name='L170'></a><a href='#L170'>170</a>
236
236
  <a name='L171'></a><a href='#L171'>171</a>
237
237
  <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
239
243
  <span class="cline-any cline-no">&nbsp;</span>
240
244
  <span class="cline-any cline-neutral">&nbsp;</span>
241
245
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -383,8 +387,12 @@
383
387
  <span class="cline-any cline-no">&nbsp;</span>
384
388
  <span class="cline-any cline-no">&nbsp;</span>
385
389
  <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-no">&nbsp;</span>
386
393
  <span class="cline-any cline-no">&nbsp;</span>
387
394
  <span class="cline-any cline-no">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
396
  <span class="cline-any cline-no">&nbsp;</span>
389
397
  <span class="cline-any cline-neutral">&nbsp;</span>
390
398
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -549,15 +557,19 @@ export type Options = {
549
557
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.tabId) <span class="cstat-no" title="statement not covered" >this.createTabId()</span></span>
550
558
  <span class="cstat-no" title="statement not covered" > return this.tabId</span>
551
559
  }
560
+ &nbsp;
561
+ public <span class="fstat-no" title="function not covered" >regenerateTabId(</span>) {
562
+ const randomId = <span class="cstat-no" title="statement not covered" >generateRandomId(12)</span>
563
+ <span class="cstat-no" title="statement not covered" > this.app.sessionStorage.setItem(this.options.session_tabid_key, randomId)</span>
564
+ <span class="cstat-no" title="statement not covered" > this.tabId = randomId</span>
565
+ }
552
566
  &nbsp;
553
567
  private <span class="fstat-no" title="function not covered" >createTabId(</span>) {
554
568
  const localId = <span class="cstat-no" title="statement not covered" >this.app.sessionStorage.getItem(this.options.session_tabid_key)</span>
555
569
  <span class="cstat-no" title="statement not covered" > if (localId) {</span>
556
570
  <span class="cstat-no" title="statement not covered" > this.tabId = localId</span>
557
571
  } else {
558
- const randomId = <span class="cstat-no" title="statement not covered" >generateRandomId(12)</span>
559
- <span class="cstat-no" title="statement not covered" > this.app.sessionStorage.setItem(this.options.session_tabid_key, randomId)</span>
560
- <span class="cstat-no" title="statement not covered" > this.tabId = randomId</span>
572
+ <span class="cstat-no" title="statement not covered" > this.regenerateTabId()</span>
561
573
  }
562
574
  }
563
575
  &nbsp;
@@ -586,7 +598,7 @@ export type Options = {
586
598
  <div class='footer quiet pad2 space-top1 center small'>
587
599
  Code coverage generated by
588
600
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
589
- at 2023-10-17T13:37:58.420Z
601
+ at 2023-10-24T10:53:06.602Z
590
602
  </div>
591
603
  <script src="../../prettify.js"></script>
592
604
  <script>
@@ -235,7 +235,7 @@ function <span class="fstat-no" title="function not covered" >wrap(</span>callba
235
235
  <div class='footer quiet pad2 space-top1 center small'>
236
236
  Code coverage generated by
237
237
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
238
- at 2023-10-17T13:37:58.420Z
238
+ at 2023-10-24T10:53:06.602Z
239
239
  </div>
240
240
  <script src="../../prettify.js"></script>
241
241
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
26
+ <span class="strong">14.74% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/219</span>
28
+ <span class='fraction'>37/251</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">7.56% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/101</span>
35
+ <span class='fraction'>9/119</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">5.45% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/48</span>
42
+ <span class='fraction'>3/55</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
47
+ <span class="strong">14.85% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/217</span>
49
+ <span class='fraction'>37/249</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,28 +84,28 @@
84
84
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
85
85
  </td>
86
86
  <td data-value="0" class="pct low">0%</td>
87
- <td data-value="168" class="abs low">0/168</td>
87
+ <td data-value="171" class="abs low">0/171</td>
88
88
  <td data-value="0" class="pct low">0%</td>
89
- <td data-value="77" class="abs low">0/77</td>
89
+ <td data-value="89" class="abs low">0/89</td>
90
90
  <td data-value="0" class="pct low">0%</td>
91
- <td data-value="34" class="abs low">0/34</td>
91
+ <td data-value="33" class="abs low">0/33</td>
92
92
  <td data-value="0" class="pct low">0%</td>
93
- <td data-value="166" class="abs low">0/166</td>
93
+ <td data-value="169" class="abs low">0/169</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
97
  <td class="file low" data-value="utils.ts"><a href="utils.ts.html">utils.ts</a></td>
98
- <td data-value="0" class="pic low">
99
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
98
+ <td data-value="46.25" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 46%"></div><div class="cover-empty" style="width: 54%"></div></div>
100
100
  </td>
101
- <td data-value="0" class="pct low">0%</td>
102
- <td data-value="51" class="abs low">0/51</td>
103
- <td data-value="0" class="pct low">0%</td>
104
- <td data-value="24" class="abs low">0/24</td>
105
- <td data-value="0" class="pct low">0%</td>
106
- <td data-value="14" class="abs low">0/14</td>
107
- <td data-value="0" class="pct low">0%</td>
108
- <td data-value="51" class="abs low">0/51</td>
101
+ <td data-value="46.25" class="pct low">46.25%</td>
102
+ <td data-value="80" class="abs low">37/80</td>
103
+ <td data-value="30" class="pct low">30%</td>
104
+ <td data-value="30" class="abs low">9/30</td>
105
+ <td data-value="13.63" class="pct low">13.63%</td>
106
+ <td data-value="22" class="abs low">3/22</td>
107
+ <td data-value="46.25" class="pct low">46.25%</td>
108
+ <td data-value="80" class="abs low">37/80</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2023-10-17T13:37:58.420Z
119
+ at 2023-10-24T10:53:06.602Z
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>
@@ -25,28 +25,28 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/168</span>
28
+ <span class='fraction'>0/171</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/77</span>
35
+ <span class='fraction'>0/89</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/34</span>
42
+ <span class='fraction'>0/33</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/166</span>
49
+ <span class='fraction'>0/169</span>
50
50
  </div>
51
51
 
52
52
 
@@ -470,8 +470,6 @@
470
470
  <span class="cline-any cline-no">&nbsp;</span>
471
471
  <span class="cline-any cline-no">&nbsp;</span>
472
472
  <span class="cline-any cline-no">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-no">&nbsp;</span>
475
473
  <span class="cline-any cline-no">&nbsp;</span>
476
474
  <span class="cline-any cline-neutral">&nbsp;</span>
477
475
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -503,6 +501,7 @@
503
501
  <span class="cline-any cline-neutral">&nbsp;</span>
504
502
  <span class="cline-any cline-neutral">&nbsp;</span>
505
503
  <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
505
  <span class="cline-any cline-no">&nbsp;</span>
507
506
  <span class="cline-any cline-neutral">&nbsp;</span>
508
507
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -537,8 +536,6 @@
537
536
  <span class="cline-any cline-neutral">&nbsp;</span>
538
537
  <span class="cline-any cline-no">&nbsp;</span>
539
538
  <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
539
  <span class="cline-any cline-no">&nbsp;</span>
543
540
  <span class="cline-any cline-neutral">&nbsp;</span>
544
541
  <span class="cline-any cline-no">&nbsp;</span>
@@ -592,7 +589,6 @@
592
589
  <span class="cline-any cline-no">&nbsp;</span>
593
590
  <span class="cline-any cline-no">&nbsp;</span>
594
591
  <span class="cline-any cline-no">&nbsp;</span>
595
- <span class="cline-any cline-no">&nbsp;</span>
596
592
  <span class="cline-any cline-neutral">&nbsp;</span>
597
593
  <span class="cline-any cline-no">&nbsp;</span>
598
594
  <span class="cline-any cline-no">&nbsp;</span>
@@ -603,9 +599,17 @@
603
599
  <span class="cline-any cline-no">&nbsp;</span>
604
600
  <span class="cline-any cline-no">&nbsp;</span>
605
601
  <span class="cline-any cline-no">&nbsp;</span>
602
+ <span class="cline-any cline-no">&nbsp;</span>
603
+ <span class="cline-any cline-no">&nbsp;</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</span>
605
+ <span class="cline-any cline-no">&nbsp;</span>
606
+ <span class="cline-any cline-no">&nbsp;</span>
607
+ <span class="cline-any cline-no">&nbsp;</span>
606
608
  <span class="cline-any cline-neutral">&nbsp;</span>
607
609
  <span class="cline-any cline-no">&nbsp;</span>
608
610
  <span class="cline-any cline-no">&nbsp;</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-no">&nbsp;</span>
609
613
  <span class="cline-any cline-no">&nbsp;</span>
610
614
  <span class="cline-any cline-no">&nbsp;</span>
611
615
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -811,10 +815,6 @@
811
815
  <span class="cline-any cline-neutral">&nbsp;</span>
812
816
  <span class="cline-any cline-neutral">&nbsp;</span>
813
817
  <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-no">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
818
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import App, { DEFAULT_INGEST_POINT } from './app/index.js'</span>
819
819
  &nbsp;
820
820
  <span class="cstat-no" title="statement not covered" >export { <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >d</span>efault </span>as App </span>} from './app/index.js'
@@ -845,8 +845,6 @@ export const <span class="cstat-no" title="statement not covered" >Messages = _M
845
845
  <span class="cstat-no" title="statement not covered" >import ConstructedStyleSheets from './modules/constructedStyleSheets.js'</span>
846
846
  <span class="cstat-no" title="statement not covered" >import Selection from './modules/selection.js'</span>
847
847
  <span class="cstat-no" title="statement not covered" >import Tabs from './modules/tabs.js'</span>
848
- <span class="cstat-no" title="statement not covered" >import UserTestManager from './modules/userTesting/index.js'</span>
849
- &nbsp;
850
848
  <span class="cstat-no" title="statement not covered" >import { IN_BROWSER, deprecationWarn, DOCS_HOST } from './utils.js'</span>
851
849
  <span class="cstat-no" title="statement not covered" >import FeatureFlags, { IFeatureFlag } from './modules/featureFlags.js'</span>
852
850
  import type { Options as AppOptions } from './app/index.js'
@@ -870,6 +868,7 @@ export type Options = Partial&lt;
870
868
  sessionToken?: string
871
869
  respectDoNotTrack?: boolean
872
870
  autoResetOnWindowOpen?: boolean
871
+ resetTabOnWindowOpen?: boolean
873
872
  network?: Partial&lt;NetworkOptions&gt;
874
873
  mouse?: Partial&lt;MouseHandlerOptions&gt;
875
874
  flags?: {
@@ -913,8 +912,6 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
913
912
  &nbsp;
914
913
  <span class="cstat-no" title="statement not covered" >export default class A</span>PI {
915
914
  public featureFlags: FeatureFlags
916
- private readonly userTestManager: UserTestManager
917
- &nbsp;
918
915
  private readonly <span class="cstat-no" title="statement not covered" >app: App | null = null</span>
919
916
  &nbsp;
920
917
  <span class="fstat-no" title="function not covered" > constructor(private readonly <span class="cstat-no" title="statement not covered" >o</span>ptions: Options)</span> {
@@ -968,7 +965,6 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
968
965
  <span class="cstat-no" title="statement not covered" > Tabs(app)</span>
969
966
  <span class="cstat-no" title="statement not covered" > this.featureFlags = new FeatureFlags(app)</span>
970
967
  ;(<span class="cstat-no" title="statement not covered" >window as any).__OPENREPLAY__ = this</span>
971
- <span class="cstat-no" title="statement not covered" > this.userTestManager = new UserTestManager(app)</span>
972
968
  &nbsp;
973
969
  <span class="cstat-no" title="statement not covered" > app.attachStartCallback(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
974
970
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.flags?.onFlagsLoad) {</span>
@@ -976,14 +972,22 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
976
972
  }
977
973
  <span class="cstat-no" title="statement not covered" > void this.featureFlags.reloadFlags()</span>
978
974
  })
979
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.autoResetOnWindowOpen) {</span>
980
- const wOpen = <span class="cstat-no" title="statement not covered" >window.open</span>
975
+ const wOpen = <span class="cstat-no" title="statement not covered" >window.open</span>
976
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.autoResetOnWindowOpen || options.resetTabOnWindowOpen) {</span>
981
977
  <span class="cstat-no" title="statement not covered" > app.attachStartCallback(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
978
+ const tabId = <span class="cstat-no" title="statement not covered" >app.getTabId()</span>
979
+ const sessStorage = <span class="cstat-no" title="statement not covered" >app.sessionStorage ?? window.sessionStorage</span>
982
980
  // @ts-ignore ?
983
981
  <span class="cstat-no" title="statement not covered" > window.open = <span class="fstat-no" title="function not covered" >function (.</span>..args) {</span>
984
- <span class="cstat-no" title="statement not covered" > app.resetNextPageSession(true)</span>
982
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.autoResetOnWindowOpen) {</span>
983
+ <span class="cstat-no" title="statement not covered" > app.resetNextPageSession(true)</span>
984
+ }
985
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.resetTabOnWindowOpen) {</span>
986
+ <span class="cstat-no" title="statement not covered" > sessStorage.removeItem(options.session_tabid_key || '__openreplay_tabid')</span>
987
+ }
985
988
  <span class="cstat-no" title="statement not covered" > wOpen.call(window, ...args)</span>
986
989
  <span class="cstat-no" title="statement not covered" > app.resetNextPageSession(false)</span>
990
+ <span class="cstat-no" title="statement not covered" > sessStorage.setItem(options.session_tabid_key || '__openreplay_tabid', tabId)</span>
987
991
  }
988
992
  })
989
993
  <span class="cstat-no" title="statement not covered" > app.attachStopCallback(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
@@ -1186,10 +1190,6 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
1186
1190
  }
1187
1191
  }
1188
1192
  }
1189
- &nbsp;
1190
- <span class="fstat-no" title="function not covered" > createTestingWidget(</span>) {
1191
- <span class="cstat-no" title="statement not covered" > this.userTestManager.createGreeting('Test name goes here,', false, false)</span>
1192
- }
1193
1193
  }
1194
1194
  &nbsp;</pre></td></tr></table></pre>
1195
1195
 
@@ -1198,7 +1198,7 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
1198
1198
  <div class='footer quiet pad2 space-top1 center small'>
1199
1199
  Code coverage generated by
1200
1200
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1201
- at 2023-10-17T13:37:58.420Z
1201
+ at 2023-10-24T10:53:06.602Z
1202
1202
  </div>
1203
1203
  <script src="../prettify.js"></script>
1204
1204
  <script>
@@ -376,7 +376,7 @@ const getContentType = <span class="cstat-no" title="statement not covered" ><sp
376
376
  <div class='footer quiet pad2 space-top1 center small'>
377
377
  Code coverage generated by
378
378
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
379
- at 2023-10-17T13:37:58.420Z
379
+ at 2023-10-24T10:53:06.602Z
380
380
  </div>
381
381
  <script src="../../../prettify.js"></script>
382
382
  <script>
@@ -1012,7 +1012,7 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
1012
1012
  <div class='footer quiet pad2 space-top1 center small'>
1013
1013
  Code coverage generated by
1014
1014
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1015
- at 2023-10-17T13:37:58.420Z
1015
+ at 2023-10-24T10:53:06.602Z
1016
1016
  </div>
1017
1017
  <script src="../../../prettify.js"></script>
1018
1018
  <script>
@@ -176,7 +176,7 @@
176
176
  <div class='footer quiet pad2 space-top1 center small'>
177
177
  Code coverage generated by
178
178
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
179
- at 2023-10-17T13:37:58.420Z
179
+ at 2023-10-24T10:53:06.602Z
180
180
  </div>
181
181
  <script src="../../../prettify.js"></script>
182
182
  <script>
@@ -229,7 +229,7 @@ If you're using serverside rendering in your app, make sure that tracker is load
229
229
  <div class='footer quiet pad2 space-top1 center small'>
230
230
  Code coverage generated by
231
231
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
232
- at 2023-10-17T13:37:58.420Z
232
+ at 2023-10-24T10:53:06.602Z
233
233
  </div>
234
234
  <script src="../../../prettify.js"></script>
235
235
  <script>
@@ -370,7 +370,7 @@ export type httpMethod =
370
370
  <div class='footer quiet pad2 space-top1 center small'>
371
371
  Code coverage generated by
372
372
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
373
- at 2023-10-17T13:37:58.420Z
373
+ at 2023-10-24T10:53:06.602Z
374
374
  </div>
375
375
  <script src="../../../prettify.js"></script>
376
376
  <script>
@@ -685,7 +685,7 @@ export const <span class="cstat-no" title="statement not covered" >getURL = <spa
685
685
  <div class='footer quiet pad2 space-top1 center small'>
686
686
  Code coverage generated by
687
687
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
688
- at 2023-10-17T13:37:58.420Z
688
+ at 2023-10-24T10:53:06.602Z
689
689
  </div>
690
690
  <script src="../../../prettify.js"></script>
691
691
  <script>
@@ -835,7 +835,7 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
835
835
  <div class='footer quiet pad2 space-top1 center small'>
836
836
  Code coverage generated by
837
837
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
838
- at 2023-10-17T13:37:58.420Z
838
+ at 2023-10-24T10:53:06.602Z
839
839
  </div>
840
840
  <script src="../../../prettify.js"></script>
841
841
  <script>
@@ -217,7 +217,7 @@ import App from '../app/index.js'
217
217
  <div class='footer quiet pad2 space-top1 center small'>
218
218
  Code coverage generated by
219
219
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
220
- at 2023-10-17T13:37:58.420Z
220
+ at 2023-10-24T10:53:06.602Z
221
221
  </div>
222
222
  <script src="../../prettify.js"></script>
223
223
  <script>
@@ -694,7 +694,7 @@ function <span class="fstat-no" title="function not covered" >isObject(</span>th
694
694
  <div class='footer quiet pad2 space-top1 center small'>
695
695
  Code coverage generated by
696
696
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
697
- at 2023-10-17T13:37:58.420Z
697
+ at 2023-10-24T10:53:06.602Z
698
698
  </div>
699
699
  <script src="../../prettify.js"></script>
700
700
  <script>
@@ -145,7 +145,7 @@
145
145
  <div class='footer quiet pad2 space-top1 center small'>
146
146
  Code coverage generated by
147
147
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
148
- at 2023-10-17T13:37:58.420Z
148
+ at 2023-10-24T10:53:06.602Z
149
149
  </div>
150
150
  <script src="../../prettify.js"></script>
151
151
  <script>
@@ -526,7 +526,7 @@ const consoleMethods = <span class="cstat-no" title="statement not covered" >['l
526
526
  <div class='footer quiet pad2 space-top1 center small'>
527
527
  Code coverage generated by
528
528
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
529
- at 2023-10-17T13:37:58.420Z
529
+ at 2023-10-24T10:53:06.602Z
530
530
  </div>
531
531
  <script src="../../prettify.js"></script>
532
532
  <script>