@openreplay/tracker 13.0.0 → 13.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 (79) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/bun.lockb +0 -0
  3. package/cjs/app/canvas.d.ts +4 -1
  4. package/cjs/app/canvas.js +28 -13
  5. package/cjs/app/index.d.ts +23 -0
  6. package/cjs/app/index.js +23 -4
  7. package/cjs/index.js +1 -1
  8. package/coverage/clover.xml +1054 -964
  9. package/coverage/coverage-final.json +21 -21
  10. package/coverage/lcov-report/index.html +43 -43
  11. package/coverage/lcov-report/main/app/canvas.ts.html +224 -47
  12. package/coverage/lcov-report/main/app/guards.ts.html +26 -26
  13. package/coverage/lcov-report/main/app/index.html +42 -42
  14. package/coverage/lcov-report/main/app/index.ts.html +157 -37
  15. package/coverage/lcov-report/main/app/logger.ts.html +1 -1
  16. package/coverage/lcov-report/main/app/messages.gen.ts.html +244 -154
  17. package/coverage/lcov-report/main/app/nodes.ts.html +7 -4
  18. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
  19. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
  20. package/coverage/lcov-report/main/app/observer/index.html +5 -5
  21. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
  22. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +7 -4
  23. package/coverage/lcov-report/main/app/sanitizer.ts.html +2 -2
  24. package/coverage/lcov-report/main/app/session.ts.html +2 -2
  25. package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
  26. package/coverage/lcov-report/main/index.html +13 -13
  27. package/coverage/lcov-report/main/index.ts.html +32 -14
  28. package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +17 -8
  29. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +40 -13
  30. package/coverage/lcov-report/main/modules/Network/index.html +21 -21
  31. package/coverage/lcov-report/main/modules/Network/index.ts.html +2 -2
  32. package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +12 -6
  33. package/coverage/lcov-report/main/modules/Network/utils.ts.html +17 -8
  34. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +39 -12
  35. package/coverage/lcov-report/main/modules/attributeSender.ts.html +1 -1
  36. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
  37. package/coverage/lcov-report/main/modules/conditionsManager.ts.html +4 -22
  38. package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
  39. package/coverage/lcov-report/main/modules/console.ts.html +1 -1
  40. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +3 -3
  41. package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
  42. package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
  43. package/coverage/lcov-report/main/modules/featureFlags.ts.html +1 -1
  44. package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
  45. package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
  46. package/coverage/lcov-report/main/modules/img.ts.html +4 -4
  47. package/coverage/lcov-report/main/modules/index.html +24 -24
  48. package/coverage/lcov-report/main/modules/input.ts.html +1 -1
  49. package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
  50. package/coverage/lcov-report/main/modules/network.ts.html +2 -2
  51. package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
  52. package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
  53. package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
  54. package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
  55. package/coverage/lcov-report/main/modules/tagWatcher.ts.html +95 -92
  56. package/coverage/lcov-report/main/modules/timing.ts.html +1 -1
  57. package/coverage/lcov-report/main/modules/userTesting/SignalManager.ts.html +1 -1
  58. package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +1 -1
  59. package/coverage/lcov-report/main/modules/userTesting/index.html +1 -1
  60. package/coverage/lcov-report/main/modules/userTesting/index.ts.html +1 -1
  61. package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +1 -1
  62. package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +1 -1
  63. package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +1 -1
  64. package/coverage/lcov-report/main/modules/viewport.ts.html +4 -4
  65. package/coverage/lcov-report/main/utils.ts.html +181 -31
  66. package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
  67. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +31 -7
  68. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
  69. package/coverage/lcov-report/webworker/QueueSender.ts.html +48 -18
  70. package/coverage/lcov-report/webworker/index.html +14 -14
  71. package/coverage/lcov-report/webworker/index.ts.html +51 -21
  72. package/coverage/lcov.info +1882 -1653
  73. package/lib/app/canvas.d.ts +4 -1
  74. package/lib/app/canvas.js +28 -13
  75. package/lib/app/index.d.ts +23 -0
  76. package/lib/app/index.js +23 -4
  77. package/lib/common/tsconfig.tsbuildinfo +1 -1
  78. package/lib/index.js +1 -1
  79. package/package.json +1 -1
@@ -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/58</span>
28
+ <span class='fraction'>0/59</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/53</span>
49
+ <span class='fraction'>0/54</span>
50
50
  </div>
51
51
 
52
52
 
@@ -169,7 +169,8 @@
169
169
  <a name='L104'></a><a href='#L104'>104</a>
170
170
  <a name='L105'></a><a href='#L105'>105</a>
171
171
  <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
173
174
  <span class="cline-any cline-neutral">&nbsp;</span>
174
175
  <span class="cline-any cline-neutral">&nbsp;</span>
175
176
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -227,6 +228,7 @@
227
228
  <span class="cline-any cline-no">&nbsp;</span>
228
229
  <span class="cline-any cline-no">&nbsp;</span>
229
230
  <span class="cline-any cline-no">&nbsp;</span>
231
+ <span class="cline-any cline-no">&nbsp;</span>
230
232
  <span class="cline-any cline-neutral">&nbsp;</span>
231
233
  <span class="cline-any cline-neutral">&nbsp;</span>
232
234
  <span class="cline-any cline-no">&nbsp;</span>
@@ -326,6 +328,7 @@ type ElementListener = [string, EventListener, boolean]
326
328
  <span class="fstat-no" title="function not covered" > unregisterNode(</span>node: Node): number | undefined {
327
329
  const id = (<span class="cstat-no" title="statement not covered" >node as any)[this.node_id]</span>
328
330
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (id !== undefined) {</span>
331
+ ;(<span class="cstat-no" title="statement not covered" >node as any)[this.node_id] = undefined</span>
329
332
  <span class="cstat-no" title="statement not covered" > delete (node as any)[this.node_id]</span>
330
333
  <span class="cstat-no" title="statement not covered" > delete this.nodes[id]</span>
331
334
  const listeners = <span class="cstat-no" title="statement not covered" >this.elementListeners.get(id)</span>
@@ -388,7 +391,7 @@ type ElementListener = [string, EventListener, boolean]
388
391
  <div class='footer quiet pad2 space-top1 center small'>
389
392
  Code coverage generated by
390
393
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
391
- at 2024-01-23T12:19:37.435Z
394
+ at 2024-06-04T11:50:55.506Z
392
395
  </div>
393
396
  <script src="../../prettify.js"></script>
394
397
  <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 2024-01-23T12:19:37.435Z
136
+ at 2024-06-04T11:50:55.506Z
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 2024-01-23T12:19:37.435Z
277
+ at 2024-06-04T11:50:55.506Z
278
278
  </div>
279
279
  <script src="../../../prettify.js"></script>
280
280
  <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/122</span>
28
+ <span class='fraction'>0/123</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/116</span>
49
+ <span class='fraction'>0/117</span>
50
50
  </div>
51
51
 
52
52
 
@@ -129,13 +129,13 @@
129
129
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
130
130
  </td>
131
131
  <td data-value="0" class="pct low">0%</td>
132
- <td data-value="67" class="abs low">0/67</td>
132
+ <td data-value="68" class="abs low">0/68</td>
133
133
  <td data-value="0" class="pct low">0%</td>
134
134
  <td data-value="19" class="abs low">0/19</td>
135
135
  <td data-value="0" class="pct low">0%</td>
136
136
  <td data-value="17" class="abs low">0/17</td>
137
137
  <td data-value="0" class="pct low">0%</td>
138
- <td data-value="62" class="abs low">0/62</td>
138
+ <td data-value="63" class="abs low">0/63</td>
139
139
  </tr>
140
140
 
141
141
  </tbody>
@@ -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 2024-01-23T12:19:37.435Z
149
+ at 2024-06-04T11:50:55.506Z
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 2024-01-23T12:19:37.435Z
130
+ at 2024-06-04T11:50:55.506Z
131
131
  </div>
132
132
  <script src="../../../prettify.js"></script>
133
133
  <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/67</span>
28
+ <span class='fraction'>0/68</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/62</span>
49
+ <span class='fraction'>0/63</span>
50
50
  </div>
51
51
 
52
52
 
@@ -214,7 +214,8 @@
214
214
  <a name='L149'></a><a href='#L149'>149</a>
215
215
  <a name='L150'></a><a href='#L150'>150</a>
216
216
  <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
218
219
  <span class="cline-any cline-no">&nbsp;</span>
219
220
  <span class="cline-any cline-neutral">&nbsp;</span>
220
221
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -338,6 +339,7 @@
338
339
  <span class="cline-any cline-no">&nbsp;</span>
339
340
  <span class="cline-any cline-neutral">&nbsp;</span>
340
341
  <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
341
343
  <span class="cline-any cline-neutral">&nbsp;</span>
342
344
  <span class="cline-any cline-neutral">&nbsp;</span>
343
345
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -489,6 +491,7 @@ const attachShadowNativeFn = <span class="cstat-no" title="statement not covered
489
491
  <span class="cstat-no" title="statement not covered" > return shadow</span>
490
492
  }
491
493
  &nbsp;
494
+ <span class="cstat-no" title="statement not covered" > this.app.nodes.clear()</span>
492
495
  // Can observe documentElement (&lt;html&gt;) here, because it is not supposed to be changing.
493
496
  // However, it is possible in some exotic cases and may cause an ignorance of the newly created &lt;html&gt;
494
497
  // In this case context.document have to be observed, but this will cause
@@ -523,7 +526,7 @@ const attachShadowNativeFn = <span class="cstat-no" title="statement not covered
523
526
  <div class='footer quiet pad2 space-top1 center small'>
524
527
  Code coverage generated by
525
528
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
526
- at 2024-01-23T12:19:37.435Z
529
+ at 2024-06-04T11:50:55.506Z
527
530
  </div>
528
531
  <script src="../../../prettify.js"></script>
529
532
  <script>
@@ -351,7 +351,7 @@ export const <span class="cstat-no" title="statement not covered" >stringWiper =
351
351
  <span class="cstat-no" title="statement not covered" > data = data.replace(/\d/g, '0')</span>
352
352
  }
353
353
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.options.obscureTextEmails) {</span>
354
- <span class="cstat-no" title="statement not covered" > data = data.replace(/^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,3}$/g, <span class="fstat-no" title="function not covered" >(e</span>mail) =&gt; {</span>
354
+ <span class="cstat-no" title="statement not covered" > data = data.replace(/^\w+([+.-]\w+)*@\w+([.-]\w+)*\.\w{2,3}$/g, <span class="fstat-no" title="function not covered" >(e</span>mail) =&gt; {</span>
355
355
  const [name, domain] = <span class="cstat-no" title="statement not covered" >email.split('@')</span>
356
356
  const [domainName, host] = <span class="cstat-no" title="statement not covered" >domain.split('.')</span>
357
357
  <span class="cstat-no" title="statement not covered" > return `${stars(name)}@${stars(domainName)}.${stars(host)}`</span>
@@ -388,7 +388,7 @@ export const <span class="cstat-no" title="statement not covered" >stringWiper =
388
388
  <div class='footer quiet pad2 space-top1 center small'>
389
389
  Code coverage generated by
390
390
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
391
- at 2024-01-23T12:19:37.435Z
391
+ at 2024-06-04T11:50:55.506Z
392
392
  </div>
393
393
  <script src="../../prettify.js"></script>
394
394
  <script>
@@ -433,7 +433,7 @@ interface UserInfo {
433
433
  userState: string
434
434
  }
435
435
  &nbsp;
436
- interface SessionInfo {
436
+ export interface SessionInfo {
437
437
  sessionID: string | undefined
438
438
  metadata: Record&lt;string, string&gt;
439
439
  userID: string | null
@@ -607,7 +607,7 @@ export type Options = {
607
607
  <div class='footer quiet pad2 space-top1 center small'>
608
608
  Code coverage generated by
609
609
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
610
- at 2024-01-23T12:19:37.435Z
610
+ at 2024-06-04T11:50:55.506Z
611
611
  </div>
612
612
  <script src="../../prettify.js"></script>
613
613
  <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 2024-01-23T12:19:37.435Z
238
+ at 2024-06-04T11:50:55.506Z
239
239
  </div>
240
240
  <script src="../../prettify.js"></script>
241
241
  <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/298</span>
28
+ <span class='fraction'>0/314</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/150</span>
35
+ <span class='fraction'>0/160</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/63</span>
42
+ <span class='fraction'>0/69</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/296</span>
49
+ <span class='fraction'>0/310</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,13 +84,13 @@
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="217" class="abs low">0/217</td>
87
+ <td data-value="220" class="abs low">0/220</td>
88
88
  <td data-value="0" class="pct low">0%</td>
89
- <td data-value="120" class="abs low">0/120</td>
89
+ <td data-value="121" class="abs low">0/121</td>
90
90
  <td data-value="0" class="pct low">0%</td>
91
- <td data-value="41" class="abs low">0/41</td>
91
+ <td data-value="42" class="abs low">0/42</td>
92
92
  <td data-value="0" class="pct low">0%</td>
93
- <td data-value="215" class="abs low">0/215</td>
93
+ <td data-value="218" class="abs low">0/218</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -99,13 +99,13 @@
99
99
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
100
100
  </td>
101
101
  <td data-value="0" class="pct low">0%</td>
102
- <td data-value="81" class="abs low">0/81</td>
102
+ <td data-value="94" class="abs low">0/94</td>
103
103
  <td data-value="0" class="pct low">0%</td>
104
- <td data-value="30" class="abs low">0/30</td>
104
+ <td data-value="39" class="abs low">0/39</td>
105
105
  <td data-value="0" class="pct low">0%</td>
106
- <td data-value="22" class="abs low">0/22</td>
106
+ <td data-value="27" class="abs low">0/27</td>
107
107
  <td data-value="0" class="pct low">0%</td>
108
- <td data-value="81" class="abs low">0/81</td>
108
+ <td data-value="92" class="abs low">0/92</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 2024-01-23T12:19:37.435Z
119
+ at 2024-06-04T11:50:55.506Z
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/217</span>
28
+ <span class='fraction'>0/220</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/120</span>
35
+ <span class='fraction'>0/121</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/41</span>
42
+ <span class='fraction'>0/42</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/215</span>
49
+ <span class='fraction'>0/218</span>
50
50
  </div>
51
51
 
52
52
 
@@ -561,7 +561,13 @@
561
561
  <a name='L496'></a><a href='#L496'>496</a>
562
562
  <a name='L497'></a><a href='#L497'>497</a>
563
563
  <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
565
571
  <span class="cline-any cline-neutral">&nbsp;</span>
566
572
  <span class="cline-any cline-no">&nbsp;</span>
567
573
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -625,6 +631,7 @@
625
631
  <span class="cline-any cline-neutral">&nbsp;</span>
626
632
  <span class="cline-any cline-neutral">&nbsp;</span>
627
633
  <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-neutral">&nbsp;</span>
628
635
  <span class="cline-any cline-no">&nbsp;</span>
629
636
  <span class="cline-any cline-neutral">&nbsp;</span>
630
637
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -749,7 +756,6 @@
749
756
  <span class="cline-any cline-no">&nbsp;</span>
750
757
  <span class="cline-any cline-no">&nbsp;</span>
751
758
  <span class="cline-any cline-no">&nbsp;</span>
752
- <span class="cline-any cline-neutral">&nbsp;</span>
753
759
  <span class="cline-any cline-no">&nbsp;</span>
754
760
  <span class="cline-any cline-no">&nbsp;</span>
755
761
  <span class="cline-any cline-no">&nbsp;</span>
@@ -793,7 +799,6 @@
793
799
  <span class="cline-any cline-neutral">&nbsp;</span>
794
800
  <span class="cline-any cline-neutral">&nbsp;</span>
795
801
  <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-neutral">&nbsp;</span>
797
802
  <span class="cline-any cline-no">&nbsp;</span>
798
803
  <span class="cline-any cline-neutral">&nbsp;</span>
799
804
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -971,6 +976,13 @@
971
976
  <span class="cline-any cline-no">&nbsp;</span>
972
977
  <span class="cline-any cline-no">&nbsp;</span>
973
978
  <span class="cline-any cline-neutral">&nbsp;</span>
979
+ <span class="cline-any cline-no">&nbsp;</span>
980
+ <span class="cline-any cline-neutral">&nbsp;</span>
981
+ <span class="cline-any cline-neutral">&nbsp;</span>
982
+ <span class="cline-any cline-neutral">&nbsp;</span>
983
+ <span class="cline-any cline-no">&nbsp;</span>
984
+ <span class="cline-any cline-no">&nbsp;</span>
985
+ <span class="cline-any cline-neutral">&nbsp;</span>
974
986
  <span class="cline-any cline-neutral">&nbsp;</span>
975
987
  <span class="cline-any cline-neutral">&nbsp;</span>
976
988
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1100,6 +1112,7 @@ import type { Options as PerformanceOptions } from './modules/performance.js'
1100
1112
  import type { Options as TimingOptions } from './modules/timing.js'
1101
1113
  import type { Options as NetworkOptions } from './modules/network.js'
1102
1114
  import type { MouseHandlerOptions } from './modules/mouse.js'
1115
+ import type { SessionInfo } from './app/session.js'
1103
1116
  &nbsp;
1104
1117
  import type { StartOptions } from './app/index.js'
1105
1118
  //TODO: unique options init
@@ -1239,7 +1252,7 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
1239
1252
  <span class="cstat-no" title="statement not covered" > Tabs(app)</span>
1240
1253
  ;(<span class="cstat-no" title="statement not covered" >window as any).__OPENREPLAY__ = this</span>
1241
1254
  &nbsp;
1242
- <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>
1255
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.flags &amp;&amp; options.flags.onFlagsLoad) {</span>
1243
1256
  <span class="cstat-no" title="statement not covered" > this.onFlagsLoad(options.flags.onFlagsLoad)</span>
1244
1257
  }
1245
1258
  const wOpen = <span class="cstat-no" title="statement not covered" >window.open</span>
@@ -1247,7 +1260,6 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
1247
1260
  <span class="cstat-no" title="statement not covered" > app.attachStartCallback(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1248
1261
  const tabId = <span class="cstat-no" title="statement not covered" >app.getTabId()</span>
1249
1262
  const sessStorage = <span class="cstat-no" title="statement not covered" >app.sessionStorage ?? window.sessionStorage</span>
1250
- // @ts-ignore ?
1251
1263
  <span class="cstat-no" title="statement not covered" > window.open = <span class="fstat-no" title="function not covered" >function (.</span>..args) {</span>
1252
1264
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.autoResetOnWindowOpen) {</span>
1253
1265
  <span class="cstat-no" title="statement not covered" > app.resetNextPageSession(true)</span>
@@ -1255,9 +1267,9 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
1255
1267
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.resetTabOnWindowOpen) {</span>
1256
1268
  <span class="cstat-no" title="statement not covered" > sessStorage.removeItem(options.session_tabid_key || '__openreplay_tabid')</span>
1257
1269
  }
1258
- <span class="cstat-no" title="statement not covered" > wOpen.call(window, ...args)</span>
1259
1270
  <span class="cstat-no" title="statement not covered" > app.resetNextPageSession(false)</span>
1260
1271
  <span class="cstat-no" title="statement not covered" > sessStorage.setItem(options.session_tabid_key || '__openreplay_tabid', tabId)</span>
1272
+ <span class="cstat-no" title="statement not covered" > return wOpen.call(window, ...args)</span>
1261
1273
  }
1262
1274
  })
1263
1275
  <span class="cstat-no" title="statement not covered" > app.attachStopCallback(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
@@ -1285,8 +1297,7 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
1285
1297
  trackerVersion: 'TRACKER_VERSION',
1286
1298
  projectKey: this.options.projectKey,
1287
1299
  doNotTrack,
1288
- reason,
1289
- missingApi,
1300
+ reason: missingApi.length ? `missing api: ${missingApi.join(',')}` : reason,
1290
1301
  }),
1291
1302
  )
1292
1303
  }
@@ -1412,7 +1423,7 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
1412
1423
  * Uploads the stored session buffer to backend
1413
1424
  * @returns promise that resolves once messages are loaded, it has to be awaited
1414
1425
  * so the session can be uploaded properly
1415
- * @resolve {boolean} - if messages were loaded successfully
1426
+ * @resolve - if messages were loaded into service worker successfully
1416
1427
  * @reject {string} - error message
1417
1428
  * */
1418
1429
  <span class="fstat-no" title="function not covered" > uploadOfflineRecording(</span>) {
@@ -1444,6 +1455,13 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
1444
1455
  <span class="cstat-no" title="statement not covered" > return this.app.getSessionToken()</span>
1445
1456
  }
1446
1457
  &nbsp;
1458
+ <span class="fstat-no" title="function not covered" > getSessionInfo(</span>): SessionInfo | null {
1459
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.app === null) {</span>
1460
+ <span class="cstat-no" title="statement not covered" > return null</span>
1461
+ }
1462
+ <span class="cstat-no" title="statement not covered" > return this.app.session.getInfo()</span>
1463
+ }
1464
+ &nbsp;
1447
1465
  <span class="fstat-no" title="function not covered" > getSessionID(</span>): string | null | undefined {
1448
1466
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.app === null) {</span>
1449
1467
  <span class="cstat-no" title="statement not covered" > return null</span>
@@ -1564,7 +1582,7 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
1564
1582
  <div class='footer quiet pad2 space-top1 center small'>
1565
1583
  Code coverage generated by
1566
1584
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1567
- at 2024-01-23T12:19:37.435Z
1585
+ at 2024-06-04T11:50:55.506Z
1568
1586
  </div>
1569
1587
  <script src="../prettify.js"></script>
1570
1588
  <script>
@@ -25,14 +25,14 @@
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/53</span>
28
+ <span class='fraction'>0/55</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/23</span>
35
+ <span class='fraction'>0/24</span>
36
36
  </div>
37
37
 
38
38
 
@@ -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/53</span>
49
+ <span class='fraction'>0/55</span>
50
50
  </div>
51
51
 
52
52
 
@@ -165,7 +165,10 @@
165
165
  <a name='L100'></a><a href='#L100'>100</a>
166
166
  <a name='L101'></a><a href='#L101'>101</a>
167
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-neutral">&nbsp;</span>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
169
172
  <span class="cline-any cline-no">&nbsp;</span>
170
173
  <span class="cline-any cline-neutral">&nbsp;</span>
171
174
  <span class="cline-any cline-no">&nbsp;</span>
@@ -235,6 +238,9 @@
235
238
  <span class="cline-any cline-neutral">&nbsp;</span>
236
239
  <span class="cline-any cline-no">&nbsp;</span>
237
240
  <span class="cline-any cline-no">&nbsp;</span>
241
+ <span class="cline-any cline-no">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-no">&nbsp;</span>
238
244
  <span class="cline-any cline-neutral">&nbsp;</span>
239
245
  <span class="cline-any cline-neutral">&nbsp;</span>
240
246
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -290,7 +296,7 @@ const getContentType = <span class="cstat-no" title="statement not covered" ><sp
290
296
  <span class="fstat-no" title="function not covered" > constructor(</span>
291
297
  private readonly <span class="cstat-no" title="statement not covered" >ignoredHeaders: boolean | string[],</span>
292
298
  private readonly <span class="cstat-no" title="statement not covered" >setSessionTokenHeader: (cb: (name: string, value: string) =&gt; void) =&gt; void,</span>
293
- private readonly <span class="cstat-no" title="statement not covered" >sanitize: (data: RequestResponseData) =&gt; RequestResponseData,</span>
299
+ private readonly <span class="cstat-no" title="statement not covered" >sanitize: (data: RequestResponseData) =&gt; RequestResponseData | null,</span>
294
300
  private readonly <span class="cstat-no" title="statement not covered" >sendMessage: (item: NetworkRequest) =&gt; void,</span>
295
301
  private readonly <span class="cstat-no" title="statement not covered" >isServiceUrl: (url: string) =&gt; boolean,</span>
296
302
  ) {}
@@ -335,7 +341,10 @@ const getContentType = <span class="cstat-no" title="statement not covered" ><sp
335
341
  <span class="cstat-no" title="statement not covered" > item.statusText = 'Unknown'</span>
336
342
  }
337
343
  &nbsp;
338
- <span class="cstat-no" title="statement not covered" > this.sendMessage(item.getMessage())</span>
344
+ const msg = <span class="cstat-no" title="statement not covered" >item.getMessage()</span>
345
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (msg) {</span>
346
+ <span class="cstat-no" title="statement not covered" > this.sendMessage(msg)</span>
347
+ }
339
348
  <span class="cstat-no" title="statement not covered" > return isSuccess</span>
340
349
  }
341
350
  }
@@ -350,7 +359,7 @@ const getContentType = <span class="cstat-no" title="statement not covered" ><sp
350
359
  public <span class="fstat-no" title="function not covered" >static </span>create(
351
360
  ignoredHeaders: boolean | string[],
352
361
  setSessionTokenHeader: (cb: (name: string, value: string) =&gt; void) =&gt; void,
353
- sanitize: (data: RequestResponseData) =&gt; RequestResponseData,
362
+ sanitize: (data: RequestResponseData) =&gt; RequestResponseData | null,
354
363
  sendMessage: (item: NetworkRequest) =&gt; void,
355
364
  isServiceUrl: (url: string) =&gt; boolean,
356
365
  ) {
@@ -376,7 +385,7 @@ const getContentType = <span class="cstat-no" title="statement not covered" ><sp
376
385
  <div class='footer quiet pad2 space-top1 center small'>
377
386
  Code coverage generated by
378
387
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
379
- at 2024-01-23T12:19:37.435Z
388
+ at 2024-06-04T11:50:55.506Z
380
389
  </div>
381
390
  <script src="../../../prettify.js"></script>
382
391
  <script>