@openreplay/tracker 9.0.12 → 9.0.13
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.
- package/cjs/app/index.js +1 -1
- package/cjs/index.js +1 -1
- package/cjs/modules/Network/fetchProxy.d.ts +1 -1
- package/cjs/modules/Network/fetchProxy.js +2 -0
- package/coverage/clover.xml +829 -1064
- package/coverage/coverage-final.json +17 -21
- package/coverage/lcov-report/index.html +40 -55
- package/coverage/lcov-report/main/app/guards.ts.html +1 -1
- package/coverage/lcov-report/main/app/index.html +23 -23
- package/coverage/lcov-report/main/app/index.ts.html +212 -29
- package/coverage/lcov-report/main/app/logger.ts.html +2 -2
- package/coverage/lcov-report/main/app/messages.gen.ts.html +144 -144
- package/coverage/lcov-report/main/app/nodes.ts.html +13 -7
- package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/index.html +1 -1
- package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/sanitizer.ts.html +12 -3
- package/coverage/lcov-report/main/app/session.ts.html +30 -9
- package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
- package/coverage/lcov-report/main/index.html +21 -21
- package/coverage/lcov-report/main/index.ts.html +26 -26
- package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +19 -19
- package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +102 -96
- package/coverage/lcov-report/main/modules/Network/index.html +65 -65
- package/coverage/lcov-report/main/modules/Network/index.ts.html +33 -33
- package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +71 -71
- package/coverage/lcov-report/main/modules/Network/utils.ts.html +34 -34
- package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +13 -13
- package/coverage/lcov-report/main/modules/attributeSender.ts.html +13 -4
- package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
- package/coverage/lcov-report/main/modules/console.ts.html +1 -1
- package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +42 -30
- package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
- package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
- package/coverage/lcov-report/main/modules/featureFlags.ts.html +1 -1
- package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
- package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
- package/coverage/lcov-report/main/modules/img.ts.html +23 -20
- package/coverage/lcov-report/main/modules/index.html +13 -13
- package/coverage/lcov-report/main/modules/input.ts.html +1 -1
- package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
- package/coverage/lcov-report/main/modules/network.ts.html +2 -2
- package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
- package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
- package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
- package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
- package/coverage/lcov-report/main/modules/timing.ts.html +42 -6
- package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
- package/coverage/lcov-report/main/utils.ts.html +255 -39
- package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
- package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +1 -1
- package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
- package/coverage/lcov-report/webworker/QueueSender.ts.html +1 -1
- package/coverage/lcov-report/webworker/index.html +1 -1
- package/coverage/lcov-report/webworker/index.ts.html +1 -1
- package/coverage/lcov.info +1376 -1729
- package/lib/app/index.js +1 -1
- package/lib/index.js +1 -1
- package/lib/modules/Network/fetchProxy.d.ts +1 -1
- package/lib/modules/Network/fetchProxy.js +2 -0
- package/package.json +1 -1
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">11.32% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">26.08% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">11.32% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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"> </span>
|
|
169
|
-
<span class="cline-any cline-
|
|
169
|
+
<span class="cline-any cline-yes">1x</span>
|
|
170
170
|
<span class="cline-any cline-neutral"> </span>
|
|
171
|
-
<span class="cline-any cline-
|
|
171
|
+
<span class="cline-any cline-yes">1x</span>
|
|
172
172
|
<span class="cline-any cline-neutral"> </span>
|
|
173
173
|
<span class="cline-any cline-neutral"> </span>
|
|
174
|
-
<span class="cline-any cline-
|
|
174
|
+
<span class="cline-any cline-yes">1x</span>
|
|
175
175
|
<span class="cline-any cline-no"> </span>
|
|
176
176
|
<span class="cline-any cline-no"> </span>
|
|
177
177
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
<span class="cline-any cline-no"> </span>
|
|
185
185
|
<span class="cline-any cline-neutral"> </span>
|
|
186
186
|
<span class="cline-any cline-neutral"> </span>
|
|
187
|
-
<span class="cline-any cline-
|
|
187
|
+
<span class="cline-any cline-yes">1x</span>
|
|
188
188
|
<span class="cline-any cline-neutral"> </span>
|
|
189
189
|
<span class="cline-any cline-no"> </span>
|
|
190
190
|
<span class="cline-any cline-no"> </span>
|
|
@@ -238,8 +238,8 @@
|
|
|
238
238
|
<span class="cline-any cline-neutral"> </span>
|
|
239
239
|
<span class="cline-any cline-neutral"> </span>
|
|
240
240
|
<span class="cline-any cline-neutral"> </span>
|
|
241
|
-
<span class="cline-any cline-
|
|
242
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
244
244
|
<span class="cline-any cline-neutral"> </span>
|
|
245
245
|
<span class="cline-any cline-no"> </span>
|
|
@@ -268,12 +268,12 @@
|
|
|
268
268
|
<span class="cline-any cline-neutral"> </span>
|
|
269
269
|
<span class="cline-any cline-neutral"> </span>
|
|
270
270
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { NetworkRequest } from '../../../common/messages.gen.js'
|
|
271
|
-
|
|
271
|
+
import NetworkMessage from './networkMessage.js'
|
|
272
272
|
import { RequestResponseData } from './types.js'
|
|
273
|
-
|
|
273
|
+
import { genStringBody, getURL } from './utils.js'
|
|
274
274
|
|
|
275
275
|
// https://fetch.spec.whatwg.org/#concept-bodyinit-extract
|
|
276
|
-
const getContentType = <span class="
|
|
276
|
+
const getContentType = <span class="fstat-no" title="function not covered" >(d</span>ata?: BodyInit) => {
|
|
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
|
|
|
289
|
-
|
|
289
|
+
export class BeaconProxyHandler<T extends typeof navigator.sendBeacon> implements ProxyHandler<T> {
|
|
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) => void) => void,</span>
|
|
@@ -340,8 +340,8 @@ const getContentType = <span class="cstat-no" title="statement not covered" ><sp
|
|
|
340
340
|
}
|
|
341
341
|
}
|
|
342
342
|
|
|
343
|
-
|
|
344
|
-
public static <span class="
|
|
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
|
|
|
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-
|
|
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">
|
|
26
|
+
<span class="strong">27.51% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">27.95% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">20% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">27.89% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
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"> </span>
|
|
381
383
|
<span class="cline-any cline-neutral"> </span>
|
|
382
384
|
<span class="cline-any cline-neutral"> </span>
|
|
383
385
|
<span class="cline-any cline-neutral"> </span>
|
|
384
386
|
<span class="cline-any cline-neutral"> </span>
|
|
385
387
|
<span class="cline-any cline-neutral"> </span>
|
|
386
388
|
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-
|
|
388
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
390
392
|
<span class="cline-any cline-neutral"> </span>
|
|
391
393
|
<span class="cline-any cline-neutral"> </span>
|
|
392
|
-
<span class="cline-any cline-
|
|
394
|
+
<span class="cline-any cline-yes">1x</span>
|
|
393
395
|
<span class="cline-any cline-neutral"> </span>
|
|
394
396
|
<span class="cline-any cline-neutral"> </span>
|
|
395
397
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -497,33 +499,35 @@
|
|
|
497
499
|
<span class="cline-any cline-neutral"> </span>
|
|
498
500
|
<span class="cline-any cline-neutral"> </span>
|
|
499
501
|
<span class="cline-any cline-neutral"> </span>
|
|
500
|
-
<span class="cline-any cline-
|
|
502
|
+
<span class="cline-any cline-yes">1x</span>
|
|
501
503
|
<span class="cline-any cline-neutral"> </span>
|
|
502
|
-
<span class="cline-any cline-
|
|
503
|
-
<span class="cline-any cline-
|
|
504
|
-
<span class="cline-any cline-
|
|
505
|
-
<span class="cline-any cline-
|
|
506
|
-
<span class="cline-any cline-
|
|
507
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
509
511
|
<span class="cline-any cline-neutral"> </span>
|
|
510
512
|
<span class="cline-any cline-neutral"> </span>
|
|
511
|
-
<span class="cline-any cline-
|
|
512
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
516
|
+
<span class="cline-any cline-yes">1x</span>
|
|
514
517
|
<span class="cline-any cline-neutral"> </span>
|
|
515
|
-
<span class="cline-any cline-no"> </span>
|
|
516
518
|
<span class="cline-any cline-neutral"> </span>
|
|
519
|
+
<span class="cline-any cline-yes">1x</span>
|
|
517
520
|
<span class="cline-any cline-neutral"> </span>
|
|
518
521
|
<span class="cline-any cline-neutral"> </span>
|
|
519
|
-
<span class="cline-any cline-
|
|
522
|
+
<span class="cline-any cline-neutral"> </span>
|
|
523
|
+
<span class="cline-any cline-yes">1x</span>
|
|
520
524
|
<span class="cline-any cline-no"> </span>
|
|
521
525
|
<span class="cline-any cline-neutral"> </span>
|
|
522
526
|
<span class="cline-any cline-neutral"> </span>
|
|
523
|
-
<span class="cline-any cline-
|
|
524
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
526
|
-
<span class="cline-any cline-
|
|
530
|
+
<span class="cline-any cline-yes">1x</span>
|
|
527
531
|
<span class="cline-any cline-no"> </span>
|
|
528
532
|
<span class="cline-any cline-no"> </span>
|
|
529
533
|
<span class="cline-any cline-no"> </span>
|
|
@@ -546,7 +550,7 @@
|
|
|
546
550
|
<span class="cline-any cline-neutral"> </span>
|
|
547
551
|
<span class="cline-any cline-neutral"> </span>
|
|
548
552
|
<span class="cline-any cline-neutral"> </span>
|
|
549
|
-
<span class="cline-any cline-
|
|
553
|
+
<span class="cline-any cline-yes">1x</span>
|
|
550
554
|
<span class="cline-any cline-neutral"> </span>
|
|
551
555
|
<span class="cline-any cline-neutral"> </span>
|
|
552
556
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -558,15 +562,15 @@
|
|
|
558
562
|
<span class="cline-any cline-neutral"> </span>
|
|
559
563
|
<span class="cline-any cline-neutral"> </span>
|
|
560
564
|
<span class="cline-any cline-neutral"> </span>
|
|
561
|
-
<span class="cline-any cline-
|
|
562
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
564
568
|
<span class="cline-any cline-neutral"> </span>
|
|
565
|
-
<span class="cline-any cline-
|
|
569
|
+
<span class="cline-any cline-yes">1x</span>
|
|
566
570
|
<span class="cline-any cline-neutral"> </span>
|
|
567
|
-
<span class="cline-any cline-
|
|
568
|
-
<span class="cline-any cline-
|
|
569
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
571
575
|
<span class="cline-any cline-neutral"> </span>
|
|
572
576
|
<span class="cline-any cline-no"> </span>
|
|
@@ -574,30 +578,30 @@
|
|
|
574
578
|
<span class="cline-any cline-no"> </span>
|
|
575
579
|
<span class="cline-any cline-neutral"> </span>
|
|
576
580
|
<span class="cline-any cline-neutral"> </span>
|
|
577
|
-
<span class="cline-any cline-
|
|
578
|
-
<span class="cline-any cline-
|
|
579
|
-
<span class="cline-any cline-
|
|
580
|
-
<span class="cline-any cline-
|
|
581
|
-
<span class="cline-any cline-
|
|
582
|
-
<span class="cline-any cline-
|
|
583
|
-
<span class="cline-any cline-
|
|
584
|
-
<span class="cline-any cline-
|
|
585
|
-
<span class="cline-any cline-
|
|
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"> </span>
|
|
587
|
-
<span class="cline-any cline-
|
|
591
|
+
<span class="cline-any cline-yes">1x</span>
|
|
588
592
|
<span class="cline-any cline-neutral"> </span>
|
|
589
593
|
<span class="cline-any cline-neutral"> </span>
|
|
590
|
-
<span class="cline-any cline-
|
|
594
|
+
<span class="cline-any cline-yes">1x</span>
|
|
591
595
|
<span class="cline-any cline-no"> </span>
|
|
592
596
|
<span class="cline-any cline-no"> </span>
|
|
593
597
|
<span class="cline-any cline-no"> </span>
|
|
594
598
|
<span class="cline-any cline-neutral"> </span>
|
|
595
599
|
<span class="cline-any cline-neutral"> </span>
|
|
596
|
-
<span class="cline-any cline-
|
|
600
|
+
<span class="cline-any cline-yes">1x</span>
|
|
597
601
|
<span class="cline-any cline-neutral"> </span>
|
|
598
602
|
<span class="cline-any cline-neutral"> </span>
|
|
599
603
|
<span class="cline-any cline-neutral"> </span>
|
|
600
|
-
<span class="cline-any cline-
|
|
604
|
+
<span class="cline-any cline-yes">1x</span>
|
|
601
605
|
<span class="cline-any cline-no"> </span>
|
|
602
606
|
<span class="cline-any cline-no"> </span>
|
|
603
607
|
<span class="cline-any cline-no"> </span>
|
|
@@ -605,7 +609,7 @@
|
|
|
605
609
|
<span class="cline-any cline-neutral"> </span>
|
|
606
610
|
<span class="cline-any cline-neutral"> </span>
|
|
607
611
|
<span class="cline-any cline-neutral"> </span>
|
|
608
|
-
<span class="cline-any cline-
|
|
612
|
+
<span class="cline-any cline-yes">1x</span>
|
|
609
613
|
<span class="cline-any cline-no"> </span>
|
|
610
614
|
<span class="cline-any cline-neutral"> </span>
|
|
611
615
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -669,7 +673,7 @@
|
|
|
669
673
|
<span class="cline-any cline-neutral"> </span>
|
|
670
674
|
<span class="cline-any cline-neutral"> </span>
|
|
671
675
|
<span class="cline-any cline-neutral"> </span>
|
|
672
|
-
<span class="cline-any cline-
|
|
676
|
+
<span class="cline-any cline-yes">1x</span>
|
|
673
677
|
<span class="cline-any cline-neutral"> </span>
|
|
674
678
|
<span class="cline-any cline-neutral"> </span>
|
|
675
679
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -678,7 +682,7 @@
|
|
|
678
682
|
<span class="cline-any cline-neutral"> </span>
|
|
679
683
|
<span class="cline-any cline-neutral"> </span>
|
|
680
684
|
<span class="cline-any cline-neutral"> </span>
|
|
681
|
-
<span class="cline-any cline-
|
|
685
|
+
<span class="cline-any cline-yes">1x</span>
|
|
682
686
|
<span class="cline-any cline-neutral"> </span>
|
|
683
687
|
<span class="cline-any cline-neutral"> </span>
|
|
684
688
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -698,12 +702,12 @@
|
|
|
698
702
|
* we can intercept the network requests
|
|
699
703
|
* in not-so-hacky way
|
|
700
704
|
* */
|
|
701
|
-
|
|
702
|
-
|
|
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
|
|
|
706
|
-
|
|
710
|
+
export class ResponseProxyHandler<T extends Response> implements ProxyHandler<T> {
|
|
707
711
|
public resp: Response
|
|
708
712
|
public item: NetworkMessage
|
|
709
713
|
|
|
@@ -811,33 +815,35 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
|
|
|
811
815
|
}
|
|
812
816
|
}
|
|
813
817
|
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
private readonly
|
|
817
|
-
private readonly
|
|
818
|
-
private readonly
|
|
819
|
-
private readonly
|
|
820
|
-
private readonly
|
|
821
|
-
private readonly
|
|
818
|
+
export class FetchProxyHandler<T extends typeof fetch> implements ProxyHandler<T> {
|
|
819
|
+
constructor(
|
|
820
|
+
private readonly ignoredHeaders: boolean | string[],
|
|
821
|
+
private readonly setSessionTokenHeader: (cb: (name: string, value: string) => void) => void,
|
|
822
|
+
private readonly sanitize: (data: RequestResponseData) => RequestResponseData,
|
|
823
|
+
private readonly sendMessage: (item: NetworkRequest) => void,
|
|
824
|
+
private readonly isServiceUrl: (url: string) => boolean,
|
|
825
|
+
private readonly tokenUrlMatcher?: (url: string) => boolean,
|
|
822
826
|
) {}
|
|
823
827
|
|
|
824
|
-
public
|
|
825
|
-
const input =
|
|
826
|
-
const init =
|
|
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 && !input) <span class="cstat-no" title="statement not covered" >return <ReturnType<T>>target.apply(window, argsList)</span>
|
|
827
833
|
|
|
828
834
|
const isORUrl =
|
|
829
|
-
|
|
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
|
|
|
833
|
-
|
|
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
|
|
|
837
|
-
const item =
|
|
838
|
-
|
|
843
|
+
const item = new NetworkMessage(this.ignoredHeaders, this.setSessionTokenHeader, this.sanitize)
|
|
844
|
+
this.beforeFetch(item, input as RequestInfo, init)
|
|
839
845
|
|
|
840
|
-
|
|
846
|
+
this.setSessionTokenHeader(<span class="fstat-no" title="function not covered" >(n</span>ame, value) => {
|
|
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
|
-
|
|
869
|
+
return (<ReturnType<T>>target.apply(window, argsList))
|
|
864
870
|
.then(this.afterFetch(item))
|
|
865
871
|
.catch(<span class="fstat-no" title="function not covered" >(e</span>) => {
|
|
866
872
|
// mock finally
|
|
@@ -870,48 +876,48 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
|
|
|
870
876
|
})
|
|
871
877
|
}
|
|
872
878
|
|
|
873
|
-
protected
|
|
879
|
+
protected beforeFetch(item: NetworkMessage, input: RequestInfo, init?: RequestInit) {
|
|
874
880
|
let url: URL,
|
|
875
|
-
method =
|
|
876
|
-
requestHeader: HeadersInit =
|
|
881
|
+
method = 'GET',
|
|
882
|
+
requestHeader: HeadersInit = {}
|
|
877
883
|
|
|
878
884
|
// handle `input` content
|
|
879
|
-
|
|
885
|
+
if (typeof input === 'string') {
|
|
880
886
|
// when `input` is a string
|
|
881
|
-
<span class="
|
|
882
|
-
|
|
883
|
-
<span class="
|
|
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
|
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
897
|
+
item.method = <NetworkMessage['method']>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
|
-
|
|
907
|
+
item.startTime = performance.now()
|
|
902
908
|
}
|
|
903
909
|
|
|
904
|
-
<span class="
|
|
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 <Headers>requestHeader) {</span>
|
|
907
913
|
<span class="cstat-no" title="statement not covered" > item.requestHeader[key] = value</span>
|
|
908
914
|
}
|
|
909
915
|
} else {
|
|
910
|
-
|
|
916
|
+
item.requestHeader = requestHeader
|
|
911
917
|
}
|
|
912
918
|
|
|
913
919
|
// save GET data
|
|
914
|
-
|
|
920
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (url.search && <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
|
|
|
921
927
|
// save POST data
|
|
922
|
-
<span class="
|
|
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
|
|
|
986
|
-
|
|
987
|
-
public
|
|
992
|
+
export default class FetchProxy {
|
|
993
|
+
public static create(
|
|
988
994
|
ignoredHeaders: boolean | string[],
|
|
989
995
|
setSessionTokenHeader: (cb: (name: string, value: string) => void) => void,
|
|
990
996
|
sanitize: (data: RequestResponseData) => RequestResponseData,
|
|
@@ -992,7 +998,7 @@ import { NetworkRequest } from '../../../common/messages.gen.js'
|
|
|
992
998
|
isServiceUrl: (url: string) => boolean,
|
|
993
999
|
tokenUrlMatcher?: (url: string) => boolean,
|
|
994
1000
|
) {
|
|
995
|
-
|
|
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-
|
|
1021
|
+
at 2023-11-03T09:39:08.430Z
|
|
1016
1022
|
</div>
|
|
1017
1023
|
<script src="../../../prettify.js"></script>
|
|
1018
1024
|
<script>
|