@openreplay/tracker 7.0.3 → 8.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 (94) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/cjs/app/index.d.ts +10 -0
  3. package/cjs/app/index.js +56 -5
  4. package/cjs/app/messages.gen.d.ts +2 -0
  5. package/cjs/app/messages.gen.js +15 -1
  6. package/cjs/app/observer/observer.js +2 -2
  7. package/cjs/app/sanitizer.d.ts +1 -0
  8. package/cjs/app/sanitizer.js +6 -4
  9. package/cjs/app/session.d.ts +4 -0
  10. package/cjs/app/session.js +18 -0
  11. package/cjs/common/interaction.d.ts +1 -0
  12. package/cjs/common/messages.gen.d.ts +12 -2
  13. package/cjs/index.d.ts +1 -0
  14. package/cjs/index.js +9 -1
  15. package/cjs/modules/attributeSender.d.ts +14 -0
  16. package/cjs/modules/attributeSender.js +44 -0
  17. package/cjs/modules/img.js +4 -4
  18. package/cjs/modules/tabs.d.ts +2 -0
  19. package/cjs/modules/tabs.js +13 -0
  20. package/cjs/utils.d.ts +1 -1
  21. package/cjs/utils.js +13 -11
  22. package/coverage/clover.xml +683 -620
  23. package/coverage/coverage-final.json +13 -12
  24. package/coverage/lcov-report/index.html +47 -47
  25. package/coverage/lcov-report/main/app/guards.ts.html +42 -42
  26. package/coverage/lcov-report/main/app/index.html +34 -34
  27. package/coverage/lcov-report/main/app/index.ts.html +62 -8
  28. package/coverage/lcov-report/main/app/logger.ts.html +1 -1
  29. package/coverage/lcov-report/main/app/messages.gen.ts.html +1 -1
  30. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
  31. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
  32. package/coverage/lcov-report/main/app/observer/index.html +1 -1
  33. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
  34. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
  35. package/coverage/lcov-report/main/app/sanitizer.ts.html +98 -98
  36. package/coverage/lcov-report/main/app/session.ts.html +1 -1
  37. package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
  38. package/coverage/lcov-report/main/index.html +24 -24
  39. package/coverage/lcov-report/main/index.ts.html +126 -6
  40. package/coverage/lcov-report/main/modules/attributeSender.ts.html +217 -0
  41. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
  42. package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
  43. package/coverage/lcov-report/main/modules/console.ts.html +1 -1
  44. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +1 -1
  45. package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
  46. package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
  47. package/coverage/lcov-report/main/{app/nodes.ts.html → modules/featureFlags.ts.html} +124 -127
  48. package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
  49. package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
  50. package/coverage/lcov-report/main/modules/img.ts.html +6 -6
  51. package/coverage/lcov-report/main/modules/index.html +38 -8
  52. package/coverage/lcov-report/main/modules/input.ts.html +1 -1
  53. package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
  54. package/coverage/lcov-report/main/modules/network.ts.html +1 -1
  55. package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
  56. package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
  57. package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
  58. package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
  59. package/coverage/lcov-report/main/modules/timing.ts.html +1 -1
  60. package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
  61. package/coverage/lcov-report/main/utils.ts.html +112 -112
  62. package/coverage/lcov-report/webworker/BatchWriter.ts.html +125 -176
  63. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +88 -88
  64. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +110 -110
  65. package/coverage/lcov-report/webworker/QueueSender.ts.html +140 -110
  66. package/coverage/lcov-report/webworker/index.html +56 -71
  67. package/coverage/lcov-report/webworker/index.ts.html +34 -10
  68. package/coverage/lcov.info +1232 -1092
  69. package/lib/app/index.d.ts +10 -0
  70. package/lib/app/index.js +57 -6
  71. package/lib/app/messages.gen.d.ts +2 -0
  72. package/lib/app/messages.gen.js +12 -0
  73. package/lib/app/observer/observer.js +3 -3
  74. package/lib/app/sanitizer.d.ts +1 -0
  75. package/lib/app/sanitizer.js +4 -3
  76. package/lib/app/session.d.ts +4 -0
  77. package/lib/app/session.js +18 -0
  78. package/lib/common/interaction.d.ts +1 -0
  79. package/lib/common/messages.gen.d.ts +12 -2
  80. package/lib/common/tsconfig.tsbuildinfo +1 -1
  81. package/lib/index.d.ts +1 -0
  82. package/lib/index.js +9 -1
  83. package/lib/modules/attributeSender.d.ts +14 -0
  84. package/lib/modules/attributeSender.js +39 -0
  85. package/lib/modules/img.js +5 -5
  86. package/lib/modules/tabs.d.ts +2 -0
  87. package/lib/modules/tabs.js +10 -0
  88. package/lib/utils.d.ts +1 -1
  89. package/lib/utils.js +11 -9
  90. package/package.json +5 -2
  91. package/coverage/lcov-report/main/app/observer/observer.ts.html +0 -1282
  92. package/coverage/lcov-report/main/vendors/finder/finder.ts.html +0 -1381
  93. package/coverage/lcov-report/main/vendors/finder/index.html +0 -116
  94. package/coverage/lcov-report/webworker/StringDictionary.ts.html +0 -124
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">75.8% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>47/62</span>
28
+ <span class='fraction'>0/64</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">70.83% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>17/24</span>
35
+ <span class='fraction'>0/25</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">61.53% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>8/13</span>
42
+ <span class='fraction'>0/14</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">76.66% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>46/60</span>
49
+ <span class='fraction'>0/63</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -193,61 +193,77 @@
193
193
  <a name='L128'></a><a href='#L128'>128</a>
194
194
  <a name='L129'></a><a href='#L129'>129</a>
195
195
  <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
197
- <span class="cline-any cline-yes">1x</span>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
207
+ <span class="cline-any cline-no">&nbsp;</span>
198
208
  <span class="cline-any cline-neutral">&nbsp;</span>
199
- <span class="cline-any cline-yes">1x</span>
200
- <span class="cline-any cline-yes">7x</span>
201
- <span class="cline-any cline-yes">7x</span>
202
- <span class="cline-any cline-yes">7x</span>
209
+ <span class="cline-any cline-no">&nbsp;</span>
210
+ <span class="cline-any cline-no">&nbsp;</span>
211
+ <span class="cline-any cline-no">&nbsp;</span>
212
+ <span class="cline-any cline-no">&nbsp;</span>
203
213
  <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-yes">7x</span>
205
- <span class="cline-any cline-yes">7x</span>
214
+ <span class="cline-any cline-no">&nbsp;</span>
206
215
  <span class="cline-any cline-neutral">&nbsp;</span>
207
216
  <span class="cline-any cline-neutral">&nbsp;</span>
208
217
  <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-yes">7x</span>
210
- <span class="cline-any cline-yes">7x</span>
211
- <span class="cline-any cline-yes">7x</span>
212
- <span class="cline-any cline-yes">7x</span>
213
- <span class="cline-any cline-yes">7x</span>
214
218
  <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-yes">7x</span>
216
- <span class="cline-any cline-yes">7x</span>
217
219
  <span class="cline-any cline-neutral">&nbsp;</span>
218
220
  <span class="cline-any cline-neutral">&nbsp;</span>
221
+ <span class="cline-any cline-no">&nbsp;</span>
222
+ <span class="cline-any cline-no">&nbsp;</span>
223
+ <span class="cline-any cline-no">&nbsp;</span>
224
+ <span class="cline-any cline-no">&nbsp;</span>
225
+ <span class="cline-any cline-no">&nbsp;</span>
219
226
  <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">6x</span>
221
- <span class="cline-any cline-yes">6x</span>
227
+ <span class="cline-any cline-no">&nbsp;</span>
228
+ <span class="cline-any cline-no">&nbsp;</span>
229
+ <span class="cline-any cline-no">&nbsp;</span>
222
230
  <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-yes">6x</span>
231
+ <span class="cline-any cline-no">&nbsp;</span>
224
232
  <span class="cline-any cline-neutral">&nbsp;</span>
225
233
  <span class="cline-any cline-neutral">&nbsp;</span>
226
234
  <span class="cline-any cline-neutral">&nbsp;</span>
227
235
  <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-yes">7x</span>
229
- <span class="cline-any cline-yes">4x</span>
236
+ <span class="cline-any cline-no">&nbsp;</span>
237
+ <span class="cline-any cline-no">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-no">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
243
  <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-yes">3x</span>
232
- <span class="cline-any cline-yes">3x</span>
233
- <span class="cline-any cline-yes">1x</span>
244
+ <span class="cline-any cline-no">&nbsp;</span>
245
+ <span class="cline-any cline-no">&nbsp;</span>
234
246
  <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-yes">2x</span>
247
+ <span class="cline-any cline-no">&nbsp;</span>
248
+ <span class="cline-any cline-no">&nbsp;</span>
249
+ <span class="cline-any cline-no">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-no">&nbsp;</span>
236
252
  <span class="cline-any cline-neutral">&nbsp;</span>
237
253
  <span class="cline-any cline-neutral">&nbsp;</span>
238
254
  <span class="cline-any cline-neutral">&nbsp;</span>
239
255
  <span class="cline-any cline-neutral">&nbsp;</span>
240
256
  <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-yes">9x</span>
242
- <span class="cline-any cline-yes">9x</span>
243
- <span class="cline-any cline-yes">1x</span>
244
- <span class="cline-any cline-yes">1x</span>
257
+ <span class="cline-any cline-no">&nbsp;</span>
258
+ <span class="cline-any cline-no">&nbsp;</span>
259
+ <span class="cline-any cline-no">&nbsp;</span>
260
+ <span class="cline-any cline-no">&nbsp;</span>
245
261
  <span class="cline-any cline-no">&nbsp;</span>
246
262
  <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-yes">1x</span>
263
+ <span class="cline-any cline-no">&nbsp;</span>
248
264
  <span class="cline-any cline-neutral">&nbsp;</span>
249
265
  <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-yes">8x</span>
266
+ <span class="cline-any cline-no">&nbsp;</span>
251
267
  <span class="cline-any cline-neutral">&nbsp;</span>
252
268
  <span class="cline-any cline-neutral">&nbsp;</span>
253
269
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -263,46 +279,46 @@
263
279
  <span class="cline-any cline-neutral">&nbsp;</span>
264
280
  <span class="cline-any cline-neutral">&nbsp;</span>
265
281
  <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-yes">4x</span>
282
+ <span class="cline-any cline-no">&nbsp;</span>
267
283
  <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-yes">4x</span>
284
+ <span class="cline-any cline-no">&nbsp;</span>
269
285
  <span class="cline-any cline-neutral">&nbsp;</span>
270
286
  <span class="cline-any cline-neutral">&nbsp;</span>
271
287
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">4x</span>
273
- <span class="cline-any cline-yes">1x</span>
288
+ <span class="cline-any cline-no">&nbsp;</span>
289
+ <span class="cline-any cline-no">&nbsp;</span>
274
290
  <span class="cline-any cline-neutral">&nbsp;</span>
275
291
  <span class="cline-any cline-neutral">&nbsp;</span>
276
292
  <span class="cline-any cline-neutral">&nbsp;</span>
277
293
  <span class="cline-any cline-neutral">&nbsp;</span>
278
294
  <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-yes">4x</span>
295
+ <span class="cline-any cline-no">&nbsp;</span>
280
296
  <span class="cline-any cline-no">&nbsp;</span>
281
297
  <span class="cline-any cline-no">&nbsp;</span>
282
298
  <span class="cline-any cline-neutral">&nbsp;</span>
283
299
  <span class="cline-any cline-no">&nbsp;</span>
284
300
  <span class="cline-any cline-neutral">&nbsp;</span>
285
301
  <span class="cline-any cline-neutral">&nbsp;</span>
286
- <span class="cline-any cline-yes">4x</span>
302
+ <span class="cline-any cline-no">&nbsp;</span>
287
303
  <span class="cline-any cline-neutral">&nbsp;</span>
288
304
  <span class="cline-any cline-neutral">&nbsp;</span>
289
305
  <span class="cline-any cline-neutral">&nbsp;</span>
290
306
  <span class="cline-any cline-neutral">&nbsp;</span>
291
307
  <span class="cline-any cline-neutral">&nbsp;</span>
292
308
  <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-yes">4x</span>
309
+ <span class="cline-any cline-no">&nbsp;</span>
294
310
  <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-yes">1x</span>
296
- <span class="cline-any cline-yes">1x</span>
297
- <span class="cline-any cline-yes">1x</span>
298
- <span class="cline-any cline-yes">3x</span>
311
+ <span class="cline-any cline-no">&nbsp;</span>
312
+ <span class="cline-any cline-no">&nbsp;</span>
313
+ <span class="cline-any cline-no">&nbsp;</span>
314
+ <span class="cline-any cline-no">&nbsp;</span>
299
315
  <span class="cline-any cline-no">&nbsp;</span>
300
316
  <span class="cline-any cline-no">&nbsp;</span>
301
317
  <span class="cline-any cline-neutral">&nbsp;</span>
302
318
  <span class="cline-any cline-neutral">&nbsp;</span>
303
319
  <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-yes">3x</span>
305
- <span class="cline-any cline-yes">3x</span>
320
+ <span class="cline-any cline-no">&nbsp;</span>
321
+ <span class="cline-any cline-no">&nbsp;</span>
306
322
  <span class="cline-any cline-neutral">&nbsp;</span>
307
323
  <span class="cline-any cline-neutral">&nbsp;</span>
308
324
  <span class="cline-any cline-no">&nbsp;</span>
@@ -311,7 +327,7 @@
311
327
  <span class="cline-any cline-neutral">&nbsp;</span>
312
328
  <span class="cline-any cline-neutral">&nbsp;</span>
313
329
  <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-yes">1x</span>
330
+ <span class="cline-any cline-no">&nbsp;</span>
315
331
  <span class="cline-any cline-neutral">&nbsp;</span>
316
332
  <span class="cline-any cline-neutral">&nbsp;</span>
317
333
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -319,65 +335,75 @@
319
335
  <span class="cline-any cline-neutral">&nbsp;</span>
320
336
  <span class="cline-any cline-neutral">&nbsp;</span>
321
337
  <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-yes">2x</span>
323
- <span class="cline-any cline-yes">2x</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-no">&nbsp;</span>
340
+ <span class="cline-any cline-no">&nbsp;</span>
341
+ <span class="cline-any cline-no">&nbsp;</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
344
  <span class="cline-any cline-neutral">&nbsp;</span>
325
345
  <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const INGEST_PATH = '/v1/web/i'
327
- const KEEPALIVE_SIZE_LIMIT = 64 &lt;&lt; 10 // 64 kB
346
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const INGEST_PATH = <span class="cstat-no" title="statement not covered" >'/v1/web/i'</span>
347
+ const KEEPALIVE_SIZE_LIMIT = <span class="cstat-no" title="statement not covered" >64 &lt;&lt; 10 </span>// 64 kB
328
348
  &nbsp;
329
- export default class QueueSender {
330
- private attemptsCount = 0
331
- private busy = false
332
- private readonly queue: Array&lt;Uint8Array&gt; = []
349
+ <span class="cstat-no" title="statement not covered" >export default class Q</span>ueueSender {
350
+ private <span class="cstat-no" title="statement not covered" >attemptsCount = 0</span>
351
+ private <span class="cstat-no" title="statement not covered" >busy = false</span>
352
+ private readonly <span class="cstat-no" title="statement not covered" >queue: Array&lt;Uint8Array&gt; = []</span>
333
353
  private readonly ingestURL
334
- private token: string | null = null
335
- private isCompressing = false
354
+ private <span class="cstat-no" title="statement not covered" >token: string | null = null</span>
355
+ // its actually on #24
356
+ // eslint-disable-next-line
357
+ private isCompressing
336
358
  &nbsp;
337
- constructor(
359
+ <span class="fstat-no" title="function not covered" > constructor(</span>
338
360
  ingestBaseURL: string,
339
- private readonly onUnauthorised: () =&gt; any,
340
- private readonly onFailure: (reason: string) =&gt; any,
341
- private readonly MAX_ATTEMPTS_COUNT = <span class="branch-0 cbranch-no" title="branch not covered" >10,</span>
342
- private readonly ATTEMPT_TIMEOUT = <span class="branch-0 cbranch-no" title="branch not covered" >1000,</span>
343
- private readonly onCompress?: (batch: Uint8Array) =&gt; any,
361
+ private readonly <span class="cstat-no" title="statement not covered" >onUnauthorised: () =&gt; any,</span>
362
+ private readonly <span class="cstat-no" title="statement not covered" >onFailure: (reason: string) =&gt; any,</span>
363
+ private readonly <span class="cstat-no" title="statement not covered" >MAX_ATTEMPTS_COUNT = <span class="branch-0 cbranch-no" title="branch not covered" >1</span>0,</span>
364
+ private readonly <span class="cstat-no" title="statement not covered" >ATTEMPT_TIMEOUT = <span class="branch-0 cbranch-no" title="branch not covered" >1</span>000,</span>
365
+ private readonly <span class="cstat-no" title="statement not covered" >onCompress?: (batch: Uint8Array) =&gt; any,</span>
344
366
  ) {
345
- this.ingestURL = ingestBaseURL + INGEST_PATH
346
- if (onCompress !== undefined) this.isCompressing = true
367
+ <span class="cstat-no" title="statement not covered" > this.ingestURL = ingestBaseURL + INGEST_PATH</span>
368
+ <span class="cstat-no" title="statement not covered" > if (onCompress !== undefined) {</span>
369
+ <span class="cstat-no" title="statement not covered" > this.isCompressing = true</span>
370
+ } else {
371
+ <span class="cstat-no" title="statement not covered" > this.isCompressing = false</span>
372
+ }
347
373
  }
348
374
  &nbsp;
349
- authorise(token: string): void {
350
- this.token = token
351
- if (!this.busy) {
375
+ <span class="fstat-no" title="function not covered" > authorise(</span>token: string): void {
376
+ <span class="cstat-no" title="statement not covered" > this.token = token</span>
377
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.busy) {</span>
352
378
  // TODO: transparent busy/send logic
353
- this.sendNext()
379
+ <span class="cstat-no" title="statement not covered" > this.sendNext()</span>
354
380
  }
355
381
  }
356
382
  &nbsp;
357
- push(batch: Uint8Array): void {
358
- if (this.busy || !this.token) {
359
- this.queue.push(batch)
383
+ <span class="fstat-no" title="function not covered" > push(</span>batch: Uint8Array): void {
384
+ <span class="cstat-no" title="statement not covered" > if (this.busy || !this.token) {</span>
385
+ <span class="cstat-no" title="statement not covered" > this.queue.push(batch)</span>
360
386
  } else {
361
- this.busy = true
362
- if (this.isCompressing &amp;&amp; this.onCompress) {
363
- this.onCompress(batch)
387
+ <span class="cstat-no" title="statement not covered" > this.busy = true</span>
388
+ <span class="cstat-no" title="statement not covered" > if (this.isCompressing &amp;&amp; this.onCompress) {</span>
389
+ <span class="cstat-no" title="statement not covered" > this.onCompress(batch)</span>
364
390
  } else {
365
- this.sendBatch(batch)
391
+ <span class="cstat-no" title="statement not covered" > this.sendBatch(batch)</span>
366
392
  }
367
393
  }
368
394
  }
369
395
  &nbsp;
370
- private sendNext() {
371
- const nextBatch = this.queue.shift()
372
- if (nextBatch) {
373
- this.busy = true
374
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this.isCompressing &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >this.onCompress)</span> {
396
+ private <span class="fstat-no" title="function not covered" >sendNext(</span>) {
397
+ const nextBatch = <span class="cstat-no" title="statement not covered" >this.queue.shift()</span>
398
+ <span class="cstat-no" title="statement not covered" > if (nextBatch) {</span>
399
+ <span class="cstat-no" title="statement not covered" > this.busy = true</span>
400
+ <span class="cstat-no" title="statement not covered" > if (this.isCompressing &amp;&amp; this.onCompress) {</span>
375
401
  <span class="cstat-no" title="statement not covered" > this.onCompress(nextBatch)</span>
376
402
  } else {
377
- this.sendBatch(nextBatch)
403
+ <span class="cstat-no" title="statement not covered" > this.sendBatch(nextBatch)</span>
378
404
  }
379
405
  } else {
380
- this.busy = false
406
+ <span class="cstat-no" title="statement not covered" > this.busy = false</span>
381
407
  }
382
408
  }
383
409
  &nbsp;
@@ -392,47 +418,47 @@ export default class QueueSender {
392
418
  }
393
419
  &nbsp;
394
420
  // would be nice to use Beacon API, but it is not available in WebWorker
395
- private sendBatch(batch: Uint8Array, isCompressed?: boolean): void {
396
- this.busy = true
421
+ private <span class="fstat-no" title="function not covered" >sendBatch(</span>batch: Uint8Array, isCompressed?: boolean): void {
422
+ <span class="cstat-no" title="statement not covered" > this.busy = true</span>
397
423
  &nbsp;
398
- const headers = {
424
+ const headers = <span class="cstat-no" title="statement not covered" >{</span>
399
425
  Authorization: `Bearer ${this.token as string}`,
400
426
  } as Record&lt;string, string&gt;
401
427
  &nbsp;
402
- if (isCompressed) {
403
- headers['Content-Encoding'] = 'gzip'
428
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isCompressed) {</span>
429
+ <span class="cstat-no" title="statement not covered" > headers['Content-Encoding'] = 'gzip'</span>
404
430
  }
405
431
  &nbsp;
406
432
  /**
407
433
  * sometimes happen during assist connects for some reason
408
434
  * */
409
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this.token === null) {
435
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.token === null) {</span>
410
436
  <span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
411
437
  <span class="cstat-no" title="statement not covered" > this.sendBatch(batch, isCompressed)</span>
412
438
  }, 500)
413
439
  <span class="cstat-no" title="statement not covered" > return</span>
414
440
  }
415
441
  &nbsp;
416
- fetch(this.ingestURL, {
442
+ <span class="cstat-no" title="statement not covered" > fetch(this.ingestURL, {</span>
417
443
  body: batch,
418
444
  method: 'POST',
419
445
  headers,
420
446
  keepalive: batch.length &lt; KEEPALIVE_SIZE_LIMIT,
421
447
  })
422
- .then((r: Record&lt;string, any&gt;) =&gt; {
423
- if (r.status === 401) {
448
+ .then(<span class="fstat-no" title="function not covered" >(r</span>: Record&lt;string, any&gt;) =&gt; {
449
+ <span class="cstat-no" title="statement not covered" > if (r.status === 401) {</span>
424
450
  // TODO: continuous session ?
425
- this.busy = false
426
- this.onUnauthorised()
427
- return
428
- } else <span class="missing-if-branch" title="if path not taken" >I</span>if (r.status &gt;= 400) {
451
+ <span class="cstat-no" title="statement not covered" > this.busy = false</span>
452
+ <span class="cstat-no" title="statement not covered" > this.onUnauthorised()</span>
453
+ <span class="cstat-no" title="statement not covered" > return</span>
454
+ } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (r.status &gt;= 400) {</span>
429
455
  <span class="cstat-no" title="statement not covered" > this.retry(batch, isCompressed)</span>
430
456
  <span class="cstat-no" title="statement not covered" > return</span>
431
457
  }
432
458
  &nbsp;
433
459
  // Success
434
- this.attemptsCount = 0
435
- this.sendNext()
460
+ <span class="cstat-no" title="statement not covered" > this.attemptsCount = 0</span>
461
+ <span class="cstat-no" title="statement not covered" > this.sendNext()</span>
436
462
  })
437
463
  .catch(<span class="fstat-no" title="function not covered" >(e</span>: any) =&gt; {
438
464
  <span class="cstat-no" title="statement not covered" > console.warn('OpenReplay:', e)</span>
@@ -440,17 +466,21 @@ export default class QueueSender {
440
466
  })
441
467
  }
442
468
  &nbsp;
443
- sendCompressed(batch: Uint8Array) {
444
- this.sendBatch(batch, true)
469
+ <span class="fstat-no" title="function not covered" > sendCompressed(</span>batch: Uint8Array) {
470
+ <span class="cstat-no" title="statement not covered" > this.sendBatch(batch, true)</span>
445
471
  }
446
472
  &nbsp;
447
473
  <span class="fstat-no" title="function not covered" > sendUncompressed(</span>batch: Uint8Array) {
448
474
  <span class="cstat-no" title="statement not covered" > this.sendBatch(batch, false)</span>
449
475
  }
450
476
  &nbsp;
451
- clean() {
452
- this.queue.length = 0
453
- this.token = null
477
+ <span class="fstat-no" title="function not covered" > clean(</span>) {
478
+ // sending last batch and closing the shop
479
+ <span class="cstat-no" title="statement not covered" > this.sendNext()</span>
480
+ <span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
481
+ <span class="cstat-no" title="statement not covered" > this.token = null</span>
482
+ <span class="cstat-no" title="statement not covered" > this.queue.length = 0</span>
483
+ }, 10)
454
484
  }
455
485
  }
456
486
  &nbsp;</pre></td></tr></table></pre>
@@ -460,7 +490,7 @@ export default class QueueSender {
460
490
  <div class='footer quiet pad2 space-top1 center small'>
461
491
  Code coverage generated by
462
492
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
463
- at 2023-05-31T15:51:28.464Z
493
+ at 2023-06-15T15:49:15.198Z
464
494
  </div>
465
495
  <script src="../prettify.js"></script>
466
496
  <script>