@openreplay/tracker 9.0.12 → 10.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 (110) hide show
  1. package/.nvmrc +1 -0
  2. package/CHANGELOG.md +15 -0
  3. package/README.md +4 -0
  4. package/bun.lockb +0 -0
  5. package/cjs/app/index.js +14 -11
  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 +3 -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 +7 -4
  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 +5 -4
  27. package/cjs/utils.d.ts +16 -0
  28. package/cjs/utils.js +53 -1
  29. package/coverage/clover.xml +829 -1064
  30. package/coverage/coverage-final.json +17 -21
  31. package/coverage/lcov-report/index.html +40 -55
  32. package/coverage/lcov-report/main/app/guards.ts.html +1 -1
  33. package/coverage/lcov-report/main/app/index.html +23 -23
  34. package/coverage/lcov-report/main/app/index.ts.html +212 -29
  35. package/coverage/lcov-report/main/app/logger.ts.html +2 -2
  36. package/coverage/lcov-report/main/app/messages.gen.ts.html +144 -144
  37. package/coverage/lcov-report/main/app/nodes.ts.html +13 -7
  38. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
  39. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
  40. package/coverage/lcov-report/main/app/observer/index.html +1 -1
  41. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
  42. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
  43. package/coverage/lcov-report/main/app/sanitizer.ts.html +12 -3
  44. package/coverage/lcov-report/main/app/session.ts.html +30 -9
  45. package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
  46. package/coverage/lcov-report/main/index.html +21 -21
  47. package/coverage/lcov-report/main/index.ts.html +26 -26
  48. package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +19 -19
  49. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +102 -96
  50. package/coverage/lcov-report/main/modules/Network/index.html +65 -65
  51. package/coverage/lcov-report/main/modules/Network/index.ts.html +33 -33
  52. package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +71 -71
  53. package/coverage/lcov-report/main/modules/Network/utils.ts.html +34 -34
  54. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +13 -13
  55. package/coverage/lcov-report/main/modules/attributeSender.ts.html +13 -4
  56. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
  57. package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
  58. package/coverage/lcov-report/main/modules/console.ts.html +1 -1
  59. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +42 -30
  60. package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
  61. package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
  62. package/coverage/lcov-report/main/modules/featureFlags.ts.html +1 -1
  63. package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
  64. package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
  65. package/coverage/lcov-report/main/modules/img.ts.html +23 -20
  66. package/coverage/lcov-report/main/modules/index.html +13 -13
  67. package/coverage/lcov-report/main/modules/input.ts.html +1 -1
  68. package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
  69. package/coverage/lcov-report/main/modules/network.ts.html +2 -2
  70. package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
  71. package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
  72. package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
  73. package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
  74. package/coverage/lcov-report/main/modules/timing.ts.html +42 -6
  75. package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
  76. package/coverage/lcov-report/main/utils.ts.html +255 -39
  77. package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
  78. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +1 -1
  79. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
  80. package/coverage/lcov-report/webworker/QueueSender.ts.html +1 -1
  81. package/coverage/lcov-report/webworker/index.html +1 -1
  82. package/coverage/lcov-report/webworker/index.ts.html +1 -1
  83. package/coverage/lcov.info +1376 -1729
  84. package/lib/app/index.js +15 -12
  85. package/lib/app/logger.d.ts +1 -1
  86. package/lib/app/messages.gen.d.ts +2 -1
  87. package/lib/app/messages.gen.js +16 -2
  88. package/lib/app/nodes.js +4 -3
  89. package/lib/app/observer/observer.js +2 -1
  90. package/lib/common/messages.gen.d.ts +17 -4
  91. package/lib/common/tsconfig.tsbuildinfo +1 -1
  92. package/lib/index.js +1 -1
  93. package/lib/modules/Network/beaconProxy.d.ts +16 -0
  94. package/lib/modules/Network/beaconProxy.js +77 -0
  95. package/lib/modules/Network/fetchProxy.d.ts +0 -1
  96. package/lib/modules/Network/fetchProxy.js +3 -1
  97. package/lib/modules/Network/index.js +5 -0
  98. package/lib/modules/Network/networkMessage.d.ts +1 -1
  99. package/lib/modules/Network/networkMessage.js +7 -4
  100. package/lib/modules/Network/xhrProxy.d.ts +0 -9
  101. package/lib/modules/Network/xhrProxy.js +0 -1
  102. package/lib/modules/axiosSpy.js +1 -1
  103. package/lib/modules/constructedStyleSheets.js +25 -21
  104. package/lib/modules/featureFlags.js +0 -1
  105. package/lib/modules/img.js +3 -3
  106. package/lib/modules/network.js +5 -4
  107. package/lib/utils.d.ts +16 -0
  108. package/lib/utils.js +47 -0
  109. package/package.json +13 -13
  110. package/rollup.config.js +4 -4
@@ -23,16 +23,16 @@
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">11.32% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/53</span>
28
+ <span class='fraction'>6/53</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">26.08% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/23</span>
35
+ <span class='fraction'>6/23</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
47
+ <span class="strong">11.32% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/53</span>
49
+ <span class='fraction'>6/53</span>
50
50
  </div>
51
51
 
52
52
 
@@ -166,12 +166,12 @@
166
166
  <a name='L101'></a><a href='#L101'>101</a>
167
167
  <a name='L102'></a><a href='#L102'>102</a>
168
168
  <a name='L103'></a><a href='#L103'>103</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-no">&nbsp;</span>
169
+ <span class="cline-any cline-yes">1x</span>
170
170
  <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-no">&nbsp;</span>
171
+ <span class="cline-any cline-yes">1x</span>
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
173
  <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-no">&nbsp;</span>
174
+ <span class="cline-any cline-yes">1x</span>
175
175
  <span class="cline-any cline-no">&nbsp;</span>
176
176
  <span class="cline-any cline-no">&nbsp;</span>
177
177
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -184,7 +184,7 @@
184
184
  <span class="cline-any cline-no">&nbsp;</span>
185
185
  <span class="cline-any cline-neutral">&nbsp;</span>
186
186
  <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-no">&nbsp;</span>
187
+ <span class="cline-any cline-yes">1x</span>
188
188
  <span class="cline-any cline-neutral">&nbsp;</span>
189
189
  <span class="cline-any cline-no">&nbsp;</span>
190
190
  <span class="cline-any cline-no">&nbsp;</span>
@@ -238,8 +238,8 @@
238
238
  <span class="cline-any cline-neutral">&nbsp;</span>
239
239
  <span class="cline-any cline-neutral">&nbsp;</span>
240
240
  <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-no">&nbsp;</span>
242
- <span class="cline-any cline-no">&nbsp;</span>
241
+ <span class="cline-any cline-yes">1x</span>
242
+ <span class="cline-any cline-yes">1x</span>
243
243
  <span class="cline-any cline-neutral">&nbsp;</span>
244
244
  <span class="cline-any cline-neutral">&nbsp;</span>
245
245
  <span class="cline-any cline-no">&nbsp;</span>
@@ -268,12 +268,12 @@
268
268
  <span class="cline-any cline-neutral">&nbsp;</span>
269
269
  <span class="cline-any cline-neutral">&nbsp;</span>
270
270
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { NetworkRequest } from '../../../common/messages.gen.js'
271
- <span class="cstat-no" title="statement not covered" >import NetworkMessage from './networkMessage.js'</span>
271
+ import NetworkMessage from './networkMessage.js'
272
272
  import { RequestResponseData } from './types.js'
273
- <span class="cstat-no" title="statement not covered" >import { genStringBody, getURL } from './utils.js'</span>
273
+ import { genStringBody, getURL } from './utils.js'
274
274
  &nbsp;
275
275
  // https://fetch.spec.whatwg.org/#concept-bodyinit-extract
276
- const getContentType = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(d</span>ata?: BodyInit) =&gt; {</span>
276
+ const getContentType = <span class="fstat-no" title="function not covered" >(d</span>ata?: BodyInit) =&gt; {
277
277
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (data instanceof Blob) {</span>
278
278
  <span class="cstat-no" title="statement not covered" > return data.type</span>
279
279
  }
@@ -286,7 +286,7 @@ const getContentType = <span class="cstat-no" title="statement not covered" ><sp
286
286
  <span class="cstat-no" title="statement not covered" > return 'text/plain;charset=UTF-8'</span>
287
287
  }
288
288
  &nbsp;
289
- <span class="cstat-no" title="statement not covered" >export class B</span>eaconProxyHandler&lt;T extends typeof navigator.sendBeacon&gt; implements ProxyHandler&lt;T&gt; {
289
+ export class BeaconProxyHandler&lt;T extends typeof navigator.sendBeacon&gt; implements ProxyHandler&lt;T&gt; {
290
290
  <span class="fstat-no" title="function not covered" > constructor(</span>
291
291
  private readonly <span class="cstat-no" title="statement not covered" >ignoredHeaders: boolean | string[],</span>
292
292
  private readonly <span class="cstat-no" title="statement not covered" >setSessionTokenHeader: (cb: (name: string, value: string) =&gt; void) =&gt; void,</span>
@@ -340,8 +340,8 @@ const getContentType = <span class="cstat-no" title="statement not covered" ><sp
340
340
  }
341
341
  }
342
342
  &nbsp;
343
- <span class="cstat-no" title="statement not covered" >export default class B</span>eaconProxy {
344
- public static <span class="cstat-no" title="statement not covered" >origSendBeacon = window?.navigator?.sendBeacon</span>
343
+ export default class BeaconProxy {
344
+ public static origSendBeacon = window<span class="branch-0 cbranch-no" title="branch not covered" >?.n</span>avigator<span class="branch-0 cbranch-no" title="branch not covered" >?.s</span>endBeacon
345
345
  &nbsp;
346
346
  public <span class="fstat-no" title="function not covered" >static </span>hasSendBeacon() {
347
347
  <span class="cstat-no" title="statement not covered" > return !!BeaconProxy.origSendBeacon</span>
@@ -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-11-03T09:39:08.430Z
380
380
  </div>
381
381
  <script src="../../../prettify.js"></script>
382
382
  <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">27.51% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/147</span>
28
+ <span class='fraction'>41/149</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">27.95% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/86</span>
35
+ <span class='fraction'>26/93</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">20% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/20</span>
42
+ <span class='fraction'>4/20</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">27.89% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/146</span>
49
+ <span class='fraction'>41/147</span>
50
50
  </div>
51
51
 
52
52
 
@@ -377,19 +377,21 @@
377
377
  <a name='L312'></a><a href='#L312'>312</a>
378
378
  <a name='L313'></a><a href='#L313'>313</a>
379
379
  <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
381
383
  <span class="cline-any cline-neutral">&nbsp;</span>
382
384
  <span class="cline-any cline-neutral">&nbsp;</span>
383
385
  <span class="cline-any cline-neutral">&nbsp;</span>
384
386
  <span class="cline-any cline-neutral">&nbsp;</span>
385
387
  <span class="cline-any cline-neutral">&nbsp;</span>
386
388
  <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-no">&nbsp;</span>
388
- <span class="cline-any cline-no">&nbsp;</span>
389
+ <span class="cline-any cline-yes">1x</span>
390
+ <span class="cline-any cline-yes">1x</span>
389
391
  <span class="cline-any cline-neutral">&nbsp;</span>
390
392
  <span class="cline-any cline-neutral">&nbsp;</span>
391
393
  <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-no">&nbsp;</span>
394
+ <span class="cline-any cline-yes">1x</span>
393
395
  <span class="cline-any cline-neutral">&nbsp;</span>
394
396
  <span class="cline-any cline-neutral">&nbsp;</span>
395
397
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -497,33 +499,35 @@
497
499
  <span class="cline-any cline-neutral">&nbsp;</span>
498
500
  <span class="cline-any cline-neutral">&nbsp;</span>
499
501
  <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-no">&nbsp;</span>
502
+ <span class="cline-any cline-yes">1x</span>
501
503
  <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-no">&nbsp;</span>
503
- <span class="cline-any cline-no">&nbsp;</span>
504
- <span class="cline-any cline-no">&nbsp;</span>
505
- <span class="cline-any cline-no">&nbsp;</span>
506
- <span class="cline-any cline-no">&nbsp;</span>
507
- <span class="cline-any cline-no">&nbsp;</span>
504
+ <span class="cline-any cline-yes">1x</span>
505
+ <span class="cline-any cline-yes">1x</span>
506
+ <span class="cline-any cline-yes">1x</span>
507
+ <span class="cline-any cline-yes">1x</span>
508
+ <span class="cline-any cline-yes">1x</span>
509
+ <span class="cline-any cline-yes">1x</span>
508
510
  <span class="cline-any cline-neutral">&nbsp;</span>
509
511
  <span class="cline-any cline-neutral">&nbsp;</span>
510
512
  <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-no">&nbsp;</span>
512
- <span class="cline-any cline-no">&nbsp;</span>
513
+ <span class="cline-any cline-yes">1x</span>
514
+ <span class="cline-any cline-yes">1x</span>
513
515
  <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-yes">1x</span>
514
517
  <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-no">&nbsp;</span>
516
518
  <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-yes">1x</span>
517
520
  <span class="cline-any cline-neutral">&nbsp;</span>
518
521
  <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-no">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-yes">1x</span>
520
524
  <span class="cline-any cline-no">&nbsp;</span>
521
525
  <span class="cline-any cline-neutral">&nbsp;</span>
522
526
  <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-no">&nbsp;</span>
524
- <span class="cline-any cline-no">&nbsp;</span>
527
+ <span class="cline-any cline-yes">1x</span>
528
+ <span class="cline-any cline-yes">1x</span>
525
529
  <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-no">&nbsp;</span>
530
+ <span class="cline-any cline-yes">1x</span>
527
531
  <span class="cline-any cline-no">&nbsp;</span>
528
532
  <span class="cline-any cline-no">&nbsp;</span>
529
533
  <span class="cline-any cline-no">&nbsp;</span>
@@ -546,7 +550,7 @@
546
550
  <span class="cline-any cline-neutral">&nbsp;</span>
547
551
  <span class="cline-any cline-neutral">&nbsp;</span>
548
552
  <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-no">&nbsp;</span>
553
+ <span class="cline-any cline-yes">1x</span>
550
554
  <span class="cline-any cline-neutral">&nbsp;</span>
551
555
  <span class="cline-any cline-neutral">&nbsp;</span>
552
556
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -558,15 +562,15 @@
558
562
  <span class="cline-any cline-neutral">&nbsp;</span>
559
563
  <span class="cline-any cline-neutral">&nbsp;</span>
560
564
  <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-no">&nbsp;</span>
562
- <span class="cline-any cline-no">&nbsp;</span>
565
+ <span class="cline-any cline-yes">1x</span>
566
+ <span class="cline-any cline-yes">1x</span>
563
567
  <span class="cline-any cline-neutral">&nbsp;</span>
564
568
  <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-no">&nbsp;</span>
569
+ <span class="cline-any cline-yes">1x</span>
566
570
  <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-no">&nbsp;</span>
568
- <span class="cline-any cline-no">&nbsp;</span>
569
- <span class="cline-any cline-no">&nbsp;</span>
571
+ <span class="cline-any cline-yes">1x</span>
572
+ <span class="cline-any cline-yes">1x</span>
573
+ <span class="cline-any cline-yes">1x</span>
570
574
  <span class="cline-any cline-neutral">&nbsp;</span>
571
575
  <span class="cline-any cline-neutral">&nbsp;</span>
572
576
  <span class="cline-any cline-no">&nbsp;</span>
@@ -574,30 +578,30 @@
574
578
  <span class="cline-any cline-no">&nbsp;</span>
575
579
  <span class="cline-any cline-neutral">&nbsp;</span>
576
580
  <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-no">&nbsp;</span>
578
- <span class="cline-any cline-no">&nbsp;</span>
579
- <span class="cline-any cline-no">&nbsp;</span>
580
- <span class="cline-any cline-no">&nbsp;</span>
581
- <span class="cline-any cline-no">&nbsp;</span>
582
- <span class="cline-any cline-no">&nbsp;</span>
583
- <span class="cline-any cline-no">&nbsp;</span>
584
- <span class="cline-any cline-no">&nbsp;</span>
585
- <span class="cline-any cline-no">&nbsp;</span>
581
+ <span class="cline-any cline-yes">1x</span>
582
+ <span class="cline-any cline-yes">1x</span>
583
+ <span class="cline-any cline-yes">1x</span>
584
+ <span class="cline-any cline-yes">1x</span>
585
+ <span class="cline-any cline-yes">1x</span>
586
+ <span class="cline-any cline-yes">1x</span>
587
+ <span class="cline-any cline-yes">1x</span>
588
+ <span class="cline-any cline-yes">1x</span>
589
+ <span class="cline-any cline-yes">1x</span>
586
590
  <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-no">&nbsp;</span>
591
+ <span class="cline-any cline-yes">1x</span>
588
592
  <span class="cline-any cline-neutral">&nbsp;</span>
589
593
  <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-no">&nbsp;</span>
594
+ <span class="cline-any cline-yes">1x</span>
591
595
  <span class="cline-any cline-no">&nbsp;</span>
592
596
  <span class="cline-any cline-no">&nbsp;</span>
593
597
  <span class="cline-any cline-no">&nbsp;</span>
594
598
  <span class="cline-any cline-neutral">&nbsp;</span>
595
599
  <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-no">&nbsp;</span>
600
+ <span class="cline-any cline-yes">1x</span>
597
601
  <span class="cline-any cline-neutral">&nbsp;</span>
598
602
  <span class="cline-any cline-neutral">&nbsp;</span>
599
603
  <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-no">&nbsp;</span>
604
+ <span class="cline-any cline-yes">1x</span>
601
605
  <span class="cline-any cline-no">&nbsp;</span>
602
606
  <span class="cline-any cline-no">&nbsp;</span>
603
607
  <span class="cline-any cline-no">&nbsp;</span>
@@ -605,7 +609,7 @@
605
609
  <span class="cline-any cline-neutral">&nbsp;</span>
606
610
  <span class="cline-any cline-neutral">&nbsp;</span>
607
611
  <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
612
+ <span class="cline-any cline-yes">1x</span>
609
613
  <span class="cline-any cline-no">&nbsp;</span>
610
614
  <span class="cline-any cline-neutral">&nbsp;</span>
611
615
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -669,7 +673,7 @@
669
673
  <span class="cline-any cline-neutral">&nbsp;</span>
670
674
  <span class="cline-any cline-neutral">&nbsp;</span>
671
675
  <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-no">&nbsp;</span>
676
+ <span class="cline-any cline-yes">1x</span>
673
677
  <span class="cline-any cline-neutral">&nbsp;</span>
674
678
  <span class="cline-any cline-neutral">&nbsp;</span>
675
679
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -678,7 +682,7 @@
678
682
  <span class="cline-any cline-neutral">&nbsp;</span>
679
683
  <span class="cline-any cline-neutral">&nbsp;</span>
680
684
  <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-no">&nbsp;</span>
685
+ <span class="cline-any cline-yes">1x</span>
682
686
  <span class="cline-any cline-neutral">&nbsp;</span>
683
687
  <span class="cline-any cline-neutral">&nbsp;</span>
684
688
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -698,12 +702,12 @@
698
702
  * we can intercept the network requests
699
703
  * in not-so-hacky way
700
704
  * */
701
- <span class="cstat-no" title="statement not covered" >import NetworkMessage, { RequestState } from './networkMessage.js'</span>
702
- <span class="cstat-no" title="statement not covered" >import { formatByteSize, genStringBody, getStringResponseByType, getURL } from './utils.js'</span>
705
+ import NetworkMessage, { RequestState } from './networkMessage.js'
706
+ import { formatByteSize, genStringBody, getStringResponseByType, getURL } from './utils.js'
703
707
  import { RequestResponseData } from './types.js'
704
708
  import { NetworkRequest } from '../../../common/messages.gen.js'
705
709
  &nbsp;
706
- <span class="cstat-no" title="statement not covered" >export class R</span>esponseProxyHandler&lt;T extends Response&gt; implements ProxyHandler&lt;T&gt; {
710
+ export class ResponseProxyHandler&lt;T extends Response&gt; implements ProxyHandler&lt;T&gt; {
707
711
  public resp: Response
708
712
  public item: NetworkMessage
709
713
  &nbsp;
@@ -811,33 +815,35 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
811
815
  }
812
816
  }
813
817
  &nbsp;
814
- <span class="cstat-no" title="statement not covered" >export class F</span>etchProxyHandler&lt;T extends typeof fetch&gt; implements ProxyHandler&lt;T&gt; {
815
- <span class="fstat-no" title="function not covered" > constructor(</span>
816
- private readonly <span class="cstat-no" title="statement not covered" >ignoredHeaders: boolean | string[],</span>
817
- private readonly <span class="cstat-no" title="statement not covered" >setSessionTokenHeader: (cb: (name: string, value: string) =&gt; void) =&gt; void,</span>
818
- private readonly <span class="cstat-no" title="statement not covered" >sanitize: (data: RequestResponseData) =&gt; RequestResponseData,</span>
819
- private readonly <span class="cstat-no" title="statement not covered" >sendMessage: (item: NetworkRequest) =&gt; void,</span>
820
- private readonly <span class="cstat-no" title="statement not covered" >isServiceUrl: (url: string) =&gt; boolean,</span>
821
- private readonly <span class="cstat-no" title="statement not covered" >tokenUrlMatcher?: (url: string) =&gt; boolean,</span>
818
+ export class FetchProxyHandler&lt;T extends typeof fetch&gt; implements ProxyHandler&lt;T&gt; {
819
+ constructor(
820
+ private readonly ignoredHeaders: boolean | string[],
821
+ private readonly setSessionTokenHeader: (cb: (name: string, value: string) =&gt; void) =&gt; void,
822
+ private readonly sanitize: (data: RequestResponseData) =&gt; RequestResponseData,
823
+ private readonly sendMessage: (item: NetworkRequest) =&gt; void,
824
+ private readonly isServiceUrl: (url: string) =&gt; boolean,
825
+ private readonly tokenUrlMatcher?: (url: string) =&gt; boolean,
822
826
  ) {}
823
827
  &nbsp;
824
- public <span class="fstat-no" title="function not covered" >apply(</span>target: T, _: typeof window, argsList: [RequestInfo | URL, RequestInit]) {
825
- const input = <span class="cstat-no" title="statement not covered" >argsList[0]</span>
826
- const init = <span class="cstat-no" title="statement not covered" >argsList[1]</span>
828
+ public apply(target: T, _: typeof window, argsList: [RequestInfo | URL, RequestInit]) {
829
+ const input = argsList[0]
830
+ const init = argsList[1]
831
+ // @ts-ignore
832
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!input<span class="branch-0 cbranch-no" title="branch not covered" >?.u</span>rl &amp;&amp; !input) <span class="cstat-no" title="statement not covered" >return &lt;ReturnType&lt;T&gt;&gt;target.apply(window, argsList)</span>
827
833
  &nbsp;
828
834
  const isORUrl =
829
- <span class="cstat-no" title="statement not covered" > input instanceof URL || typeof input === 'string'</span>
835
+ input instanceof URL || typeof input === 'string'
830
836
  ? this.isServiceUrl(String(input))
831
- : this.isServiceUrl(String(input.url))
837
+ : <span class="branch-1 cbranch-no" title="branch not covered" >this.isServiceUrl(String(input.url))</span>
832
838
  &nbsp;
833
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isORUrl) {</span>
839
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (isORUrl) {
834
840
  <span class="cstat-no" title="statement not covered" > return target.apply(window, argsList)</span>
835
841
  }
836
842
  &nbsp;
837
- const item = <span class="cstat-no" title="statement not covered" >new NetworkMessage(this.ignoredHeaders, this.setSessionTokenHeader, this.sanitize)</span>
838
- <span class="cstat-no" title="statement not covered" > this.beforeFetch(item, input as RequestInfo, init)</span>
843
+ const item = new NetworkMessage(this.ignoredHeaders, this.setSessionTokenHeader, this.sanitize)
844
+ this.beforeFetch(item, input as RequestInfo, init)
839
845
  &nbsp;
840
- <span class="cstat-no" title="statement not covered" > this.setSessionTokenHeader(<span class="fstat-no" title="function not covered" >(n</span>ame, value) =&gt; {</span>
846
+ this.setSessionTokenHeader(<span class="fstat-no" title="function not covered" >(n</span>ame, value) =&gt; {
841
847
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.tokenUrlMatcher !== undefined) {</span>
842
848
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.tokenUrlMatcher(item.url)) {</span>
843
849
  <span class="cstat-no" title="statement not covered" > return</span>
@@ -860,7 +866,7 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
860
866
  }
861
867
  }
862
868
  })
863
- <span class="cstat-no" title="statement not covered" > return (&lt;ReturnType&lt;T&gt;&gt;target.apply(window, argsList))</span>
869
+ return (&lt;ReturnType&lt;T&gt;&gt;target.apply(window, argsList))
864
870
  .then(this.afterFetch(item))
865
871
  .catch(<span class="fstat-no" title="function not covered" >(e</span>) =&gt; {
866
872
  // mock finally
@@ -870,48 +876,48 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
870
876
  })
871
877
  }
872
878
  &nbsp;
873
- protected <span class="fstat-no" title="function not covered" >beforeFetch(</span>item: NetworkMessage, input: RequestInfo, init?: RequestInit) {
879
+ protected beforeFetch(item: NetworkMessage, input: RequestInfo, init?: RequestInit) {
874
880
  let url: URL,
875
- method = <span class="cstat-no" title="statement not covered" >'GET',</span>
876
- requestHeader: HeadersInit = <span class="cstat-no" title="statement not covered" >{}</span>
881
+ method = 'GET',
882
+ requestHeader: HeadersInit = {}
877
883
  &nbsp;
878
884
  // handle `input` content
879
- <span class="cstat-no" title="statement not covered" > if (typeof input === 'string') {</span>
885
+ if (typeof input === 'string') {
880
886
  // when `input` is a string
881
- <span class="cstat-no" title="statement not covered" > method = init?.method || 'GET'</span>
882
- <span class="cstat-no" title="statement not covered" > url = getURL(input)</span>
883
- <span class="cstat-no" title="statement not covered" > requestHeader = init?.headers || {}</span>
884
- } else {
887
+ method = init<span class="branch-0 cbranch-no" title="branch not covered" >?.m</span>ethod || 'GET'
888
+ url = getURL(input)
889
+ requestHeader = init<span class="branch-0 cbranch-no" title="branch not covered" >?.h</span>eaders || <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
890
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
885
891
  // when `input` is a `Request` object
886
892
  <span class="cstat-no" title="statement not covered" > method = input.method || 'GET'</span>
887
893
  <span class="cstat-no" title="statement not covered" > url = getURL(input.url)</span>
888
894
  <span class="cstat-no" title="statement not covered" > requestHeader = input.headers</span>
889
895
  }
890
896
  &nbsp;
891
- <span class="cstat-no" title="statement not covered" > item.method = &lt;NetworkMessage['method']&gt;method</span>
892
- <span class="cstat-no" title="statement not covered" > item.requestType = 'fetch'</span>
893
- <span class="cstat-no" title="statement not covered" > item.requestHeader = requestHeader</span>
894
- <span class="cstat-no" title="statement not covered" > item.url = url.toString()</span>
895
- <span class="cstat-no" title="statement not covered" > item.name = (url.pathname.split('/').pop() || '') + url.search</span>
896
- <span class="cstat-no" title="statement not covered" > item.status = 0</span>
897
- <span class="cstat-no" title="statement not covered" > item.statusText = 'Pending'</span>
898
- <span class="cstat-no" title="statement not covered" > item.readyState = 1</span>
899
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!item.startTime) {</span>
897
+ item.method = &lt;NetworkMessage['method']&gt;method
898
+ item.requestType = 'fetch'
899
+ item.requestHeader = requestHeader
900
+ item.url = url.toString()
901
+ item.name = (url.pathname.split('/').pop() || '') + url.search
902
+ item.status = 0
903
+ item.statusText = 'Pending'
904
+ item.readyState = 1
905
+ if (!item.startTime) {
900
906
  // UNSENT
901
- <span class="cstat-no" title="statement not covered" > item.startTime = performance.now()</span>
907
+ item.startTime = performance.now()
902
908
  }
903
909
  &nbsp;
904
- <span class="cstat-no" title="statement not covered" > if (Object.prototype.toString.call(requestHeader) === '[object Headers]') {</span>
910
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (Object.prototype.toString.call(requestHeader) === '[object Headers]') {
905
911
  <span class="cstat-no" title="statement not covered" > item.requestHeader = {}</span>
906
912
  <span class="cstat-no" title="statement not covered" > for (const [key, value] of &lt;Headers&gt;requestHeader) {</span>
907
913
  <span class="cstat-no" title="statement not covered" > item.requestHeader[key] = value</span>
908
914
  }
909
915
  } else {
910
- <span class="cstat-no" title="statement not covered" > item.requestHeader = requestHeader</span>
916
+ item.requestHeader = requestHeader
911
917
  }
912
918
  &nbsp;
913
919
  // save GET data
914
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (url.search &amp;&amp; url.searchParams) {</span>
920
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (url.search &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >url.searchParams)</span> {
915
921
  <span class="cstat-no" title="statement not covered" > item.getData = {}</span>
916
922
  <span class="cstat-no" title="statement not covered" > for (const [key, value] of url.searchParams) {</span>
917
923
  <span class="cstat-no" title="statement not covered" > item.getData[key] = value</span>
@@ -919,7 +925,7 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
919
925
  }
920
926
  &nbsp;
921
927
  // save POST data
922
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (init?.body) {</span>
928
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (init<span class="branch-0 cbranch-no" title="branch not covered" >?.b</span>ody) {
923
929
  <span class="cstat-no" title="statement not covered" > item.requestData = genStringBody(init.body)</span>
924
930
  }
925
931
  }
@@ -983,8 +989,8 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
983
989
  }
984
990
  }
985
991
  &nbsp;
986
- <span class="cstat-no" title="statement not covered" >export default class F</span>etchProxy {
987
- public <span class="fstat-no" title="function not covered" >static </span>create(
992
+ export default class FetchProxy {
993
+ public static create(
988
994
  ignoredHeaders: boolean | string[],
989
995
  setSessionTokenHeader: (cb: (name: string, value: string) =&gt; void) =&gt; void,
990
996
  sanitize: (data: RequestResponseData) =&gt; RequestResponseData,
@@ -992,7 +998,7 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
992
998
  isServiceUrl: (url: string) =&gt; boolean,
993
999
  tokenUrlMatcher?: (url: string) =&gt; boolean,
994
1000
  ) {
995
- <span class="cstat-no" title="statement not covered" > return new Proxy(</span>
1001
+ return new Proxy(
996
1002
  fetch,
997
1003
  new FetchProxyHandler(
998
1004
  ignoredHeaders,
@@ -1012,7 +1018,7 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
1012
1018
  <div class='footer quiet pad2 space-top1 center small'>
1013
1019
  Code coverage generated by
1014
1020
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1015
- at 2023-10-17T13:37:58.420Z
1021
+ at 2023-11-03T09:39:08.430Z
1016
1022
  </div>
1017
1023
  <script src="../../../prettify.js"></script>
1018
1024
  <script>