@openreplay/tracker 9.0.13 → 9.0.14
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 +2 -2
- package/cjs/index.js +3 -2
- package/cjs/modules/mouse.js +1 -0
- package/cjs/modules/network.js +1 -0
- package/coverage/clover.xml +1802 -779
- package/coverage/coverage-final.json +27 -18
- package/coverage/lcov-report/index.html +60 -45
- package/coverage/lcov-report/main/app/canvas.ts.html +535 -0
- package/coverage/lcov-report/main/app/guards.ts.html +5 -2
- package/coverage/lcov-report/main/app/index.html +38 -23
- package/coverage/lcov-report/main/app/index.ts.html +1578 -108
- package/coverage/lcov-report/main/app/logger.ts.html +25 -91
- package/coverage/lcov-report/main/app/messages.gen.ts.html +263 -146
- package/coverage/lcov-report/main/app/nodes.ts.html +17 -5
- package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +2 -2
- 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 +2 -2
- package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/sanitizer.ts.html +1 -1
- package/coverage/lcov-report/main/app/session.ts.html +1 -1
- package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
- package/coverage/lcov-report/main/index.html +20 -20
- package/coverage/lcov-report/main/index.ts.html +464 -98
- package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +19 -19
- package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +114 -99
- package/coverage/lcov-report/main/modules/Network/index.html +66 -66
- package/coverage/lcov-report/main/modules/Network/index.ts.html +33 -33
- package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +82 -73
- package/coverage/lcov-report/main/modules/Network/utils.ts.html +34 -34
- package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +15 -15
- package/coverage/lcov-report/main/modules/attributeSender.ts.html +1 -1
- package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/conditionsManager.ts.html +1399 -0
- 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 +1 -1
- 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 +10 -7
- 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 +1 -1
- package/coverage/lcov-report/main/modules/index.html +42 -12
- 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/tagWatcher.ts.html +334 -0
- package/coverage/lcov-report/main/modules/timing.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/SignalManager.ts.html +370 -0
- package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +10 -22
- package/coverage/lcov-report/main/modules/userTesting/index.html +57 -27
- package/coverage/lcov-report/main/modules/userTesting/index.ts.html +814 -115
- package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +136 -67
- package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +111 -39
- package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +364 -0
- package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
- package/coverage/lcov-report/main/utils.ts.html +101 -59
- package/coverage/lcov-report/webworker/BatchWriter.ts.html +23 -5
- package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +41 -5
- package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
- package/coverage/lcov-report/webworker/QueueSender.ts.html +18 -6
- package/coverage/lcov-report/webworker/index.html +17 -17
- package/coverage/lcov-report/webworker/index.ts.html +24 -15
- package/coverage/lcov.info +3267 -1349
- package/lib/app/index.js +2 -2
- package/lib/common/tsconfig.tsbuildinfo +1 -1
- package/lib/index.js +3 -2
- package/lib/modules/mouse.js +1 -0
- package/lib/modules/network.js +1 -0
- package/package.json +1 -1
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">0% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/
|
|
28
|
+
<span class='fraction'>0/217</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/120</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">0% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/
|
|
42
|
+
<span class='fraction'>0/41</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">0% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/
|
|
49
|
+
<span class='fraction'>0/215</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -439,7 +439,129 @@
|
|
|
439
439
|
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
440
|
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
441
|
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
-
<a name='L377'></a><a href='#L377'>377</a
|
|
442
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
+
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
+
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
+
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
+
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
+
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
+
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
+
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
+
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
+
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
+
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
+
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
+
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
+
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
+
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
+
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
+
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
+
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
+
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
+
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
+
<a name='L445'></a><a href='#L445'>445</a>
|
|
511
|
+
<a name='L446'></a><a href='#L446'>446</a>
|
|
512
|
+
<a name='L447'></a><a href='#L447'>447</a>
|
|
513
|
+
<a name='L448'></a><a href='#L448'>448</a>
|
|
514
|
+
<a name='L449'></a><a href='#L449'>449</a>
|
|
515
|
+
<a name='L450'></a><a href='#L450'>450</a>
|
|
516
|
+
<a name='L451'></a><a href='#L451'>451</a>
|
|
517
|
+
<a name='L452'></a><a href='#L452'>452</a>
|
|
518
|
+
<a name='L453'></a><a href='#L453'>453</a>
|
|
519
|
+
<a name='L454'></a><a href='#L454'>454</a>
|
|
520
|
+
<a name='L455'></a><a href='#L455'>455</a>
|
|
521
|
+
<a name='L456'></a><a href='#L456'>456</a>
|
|
522
|
+
<a name='L457'></a><a href='#L457'>457</a>
|
|
523
|
+
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
|
+
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
|
+
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
+
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
+
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
+
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
+
<a name='L464'></a><a href='#L464'>464</a>
|
|
530
|
+
<a name='L465'></a><a href='#L465'>465</a>
|
|
531
|
+
<a name='L466'></a><a href='#L466'>466</a>
|
|
532
|
+
<a name='L467'></a><a href='#L467'>467</a>
|
|
533
|
+
<a name='L468'></a><a href='#L468'>468</a>
|
|
534
|
+
<a name='L469'></a><a href='#L469'>469</a>
|
|
535
|
+
<a name='L470'></a><a href='#L470'>470</a>
|
|
536
|
+
<a name='L471'></a><a href='#L471'>471</a>
|
|
537
|
+
<a name='L472'></a><a href='#L472'>472</a>
|
|
538
|
+
<a name='L473'></a><a href='#L473'>473</a>
|
|
539
|
+
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
|
+
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
|
+
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
+
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
+
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
+
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
+
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
+
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
+
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
+
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
+
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
+
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
+
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
+
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
+
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
+
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
+
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
+
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
+
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
+
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
+
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
+
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
+
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
+
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
+
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
+
<a name='L499'></a><a href='#L499'>499</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
443
565
|
<span class="cline-any cline-neutral"> </span>
|
|
444
566
|
<span class="cline-any cline-no"> </span>
|
|
445
567
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -469,7 +591,7 @@
|
|
|
469
591
|
<span class="cline-any cline-no"> </span>
|
|
470
592
|
<span class="cline-any cline-no"> </span>
|
|
471
593
|
<span class="cline-any cline-no"> </span>
|
|
472
|
-
<span class="cline-any cline-
|
|
594
|
+
<span class="cline-any cline-neutral"> </span>
|
|
473
595
|
<span class="cline-any cline-no"> </span>
|
|
474
596
|
<span class="cline-any cline-neutral"> </span>
|
|
475
597
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -502,6 +624,7 @@
|
|
|
502
624
|
<span class="cline-any cline-neutral"> </span>
|
|
503
625
|
<span class="cline-any cline-neutral"> </span>
|
|
504
626
|
<span class="cline-any cline-neutral"> </span>
|
|
627
|
+
<span class="cline-any cline-neutral"> </span>
|
|
505
628
|
<span class="cline-any cline-no"> </span>
|
|
506
629
|
<span class="cline-any cline-neutral"> </span>
|
|
507
630
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -536,6 +659,7 @@
|
|
|
536
659
|
<span class="cline-any cline-neutral"> </span>
|
|
537
660
|
<span class="cline-any cline-no"> </span>
|
|
538
661
|
<span class="cline-any cline-neutral"> </span>
|
|
662
|
+
<span class="cline-any cline-neutral"> </span>
|
|
539
663
|
<span class="cline-any cline-no"> </span>
|
|
540
664
|
<span class="cline-any cline-neutral"> </span>
|
|
541
665
|
<span class="cline-any cline-no"> </span>
|
|
@@ -552,12 +676,12 @@
|
|
|
552
676
|
<span class="cline-any cline-neutral"> </span>
|
|
553
677
|
<span class="cline-any cline-no"> </span>
|
|
554
678
|
<span class="cline-any cline-neutral"> </span>
|
|
555
|
-
<span class="cline-any cline-
|
|
679
|
+
<span class="cline-any cline-no"> </span>
|
|
680
|
+
<span class="cline-any cline-no"> </span>
|
|
556
681
|
<span class="cline-any cline-no"> </span>
|
|
557
682
|
<span class="cline-any cline-neutral"> </span>
|
|
558
683
|
<span class="cline-any cline-neutral"> </span>
|
|
559
684
|
<span class="cline-any cline-neutral"> </span>
|
|
560
|
-
<span class="cline-any cline-no"> </span>
|
|
561
685
|
<span class="cline-any cline-neutral"> </span>
|
|
562
686
|
<span class="cline-any cline-neutral"> </span>
|
|
563
687
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -565,13 +689,37 @@
|
|
|
565
689
|
<span class="cline-any cline-neutral"> </span>
|
|
566
690
|
<span class="cline-any cline-neutral"> </span>
|
|
567
691
|
<span class="cline-any cline-neutral"> </span>
|
|
692
|
+
<span class="cline-any cline-no"> </span>
|
|
693
|
+
<span class="cline-any cline-no"> </span>
|
|
568
694
|
<span class="cline-any cline-neutral"> </span>
|
|
695
|
+
<span class="cline-any cline-no"> </span>
|
|
696
|
+
<span class="cline-any cline-no"> </span>
|
|
697
|
+
<span class="cline-any cline-no"> </span>
|
|
698
|
+
<span class="cline-any cline-no"> </span>
|
|
699
|
+
<span class="cline-any cline-no"> </span>
|
|
569
700
|
<span class="cline-any cline-neutral"> </span>
|
|
701
|
+
<span class="cline-any cline-no"> </span>
|
|
702
|
+
<span class="cline-any cline-no"> </span>
|
|
703
|
+
<span class="cline-any cline-no"> </span>
|
|
704
|
+
<span class="cline-any cline-no"> </span>
|
|
570
705
|
<span class="cline-any cline-neutral"> </span>
|
|
571
706
|
<span class="cline-any cline-neutral"> </span>
|
|
572
707
|
<span class="cline-any cline-no"> </span>
|
|
573
708
|
<span class="cline-any cline-no"> </span>
|
|
574
709
|
<span class="cline-any cline-no"> </span>
|
|
710
|
+
<span class="cline-any cline-neutral"> </span>
|
|
711
|
+
<span class="cline-any cline-neutral"> </span>
|
|
712
|
+
<span class="cline-any cline-neutral"> </span>
|
|
713
|
+
<span class="cline-any cline-neutral"> </span>
|
|
714
|
+
<span class="cline-any cline-no"> </span>
|
|
715
|
+
<span class="cline-any cline-no"> </span>
|
|
716
|
+
<span class="cline-any cline-no"> </span>
|
|
717
|
+
<span class="cline-any cline-neutral"> </span>
|
|
718
|
+
<span class="cline-any cline-neutral"> </span>
|
|
719
|
+
<span class="cline-any cline-no"> </span>
|
|
720
|
+
<span class="cline-any cline-no"> </span>
|
|
721
|
+
<span class="cline-any cline-neutral"> </span>
|
|
722
|
+
<span class="cline-any cline-neutral"> </span>
|
|
575
723
|
<span class="cline-any cline-no"> </span>
|
|
576
724
|
<span class="cline-any cline-no"> </span>
|
|
577
725
|
<span class="cline-any cline-no"> </span>
|
|
@@ -589,12 +737,12 @@
|
|
|
589
737
|
<span class="cline-any cline-no"> </span>
|
|
590
738
|
<span class="cline-any cline-no"> </span>
|
|
591
739
|
<span class="cline-any cline-no"> </span>
|
|
592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
593
740
|
<span class="cline-any cline-no"> </span>
|
|
594
741
|
<span class="cline-any cline-no"> </span>
|
|
595
742
|
<span class="cline-any cline-no"> </span>
|
|
596
743
|
<span class="cline-any cline-neutral"> </span>
|
|
597
744
|
<span class="cline-any cline-no"> </span>
|
|
745
|
+
<span class="cline-any cline-no"> </span>
|
|
598
746
|
<span class="cline-any cline-neutral"> </span>
|
|
599
747
|
<span class="cline-any cline-no"> </span>
|
|
600
748
|
<span class="cline-any cline-no"> </span>
|
|
@@ -619,24 +767,47 @@
|
|
|
619
767
|
<span class="cline-any cline-neutral"> </span>
|
|
620
768
|
<span class="cline-any cline-neutral"> </span>
|
|
621
769
|
<span class="cline-any cline-neutral"> </span>
|
|
770
|
+
<span class="cline-any cline-neutral"> </span>
|
|
771
|
+
<span class="cline-any cline-no"> </span>
|
|
622
772
|
<span class="cline-any cline-no"> </span>
|
|
623
773
|
<span class="cline-any cline-neutral"> </span>
|
|
624
774
|
<span class="cline-any cline-neutral"> </span>
|
|
775
|
+
<span class="cline-any cline-neutral"> </span>
|
|
776
|
+
<span class="cline-any cline-neutral"> </span>
|
|
777
|
+
<span class="cline-any cline-neutral"> </span>
|
|
778
|
+
<span class="cline-any cline-neutral"> </span>
|
|
779
|
+
<span class="cline-any cline-neutral"> </span>
|
|
780
|
+
<span class="cline-any cline-no"> </span>
|
|
625
781
|
<span class="cline-any cline-no"> </span>
|
|
626
782
|
<span class="cline-any cline-no"> </span>
|
|
627
783
|
<span class="cline-any cline-no"> </span>
|
|
784
|
+
<span class="cline-any cline-no"> </span>
|
|
785
|
+
<span class="cline-any cline-no"> </span>
|
|
786
|
+
<span class="cline-any cline-neutral"> </span>
|
|
787
|
+
<span class="cline-any cline-neutral"> </span>
|
|
788
|
+
<span class="cline-any cline-neutral"> </span>
|
|
789
|
+
<span class="cline-any cline-neutral"> </span>
|
|
790
|
+
<span class="cline-any cline-neutral"> </span>
|
|
791
|
+
<span class="cline-any cline-neutral"> </span>
|
|
792
|
+
<span class="cline-any cline-neutral"> </span>
|
|
793
|
+
<span class="cline-any cline-neutral"> </span>
|
|
794
|
+
<span class="cline-any cline-neutral"> </span>
|
|
628
795
|
<span class="cline-any cline-neutral"> </span>
|
|
629
796
|
<span class="cline-any cline-neutral"> </span>
|
|
630
797
|
<span class="cline-any cline-no"> </span>
|
|
631
798
|
<span class="cline-any cline-neutral"> </span>
|
|
632
799
|
<span class="cline-any cline-neutral"> </span>
|
|
633
800
|
<span class="cline-any cline-neutral"> </span>
|
|
801
|
+
<span class="cline-any cline-no"> </span>
|
|
634
802
|
<span class="cline-any cline-neutral"> </span>
|
|
635
803
|
<span class="cline-any cline-neutral"> </span>
|
|
636
804
|
<span class="cline-any cline-neutral"> </span>
|
|
805
|
+
<span class="cline-any cline-no"> </span>
|
|
637
806
|
<span class="cline-any cline-neutral"> </span>
|
|
638
807
|
<span class="cline-any cline-neutral"> </span>
|
|
639
808
|
<span class="cline-any cline-neutral"> </span>
|
|
809
|
+
<span class="cline-any cline-no"> </span>
|
|
810
|
+
<span class="cline-any cline-neutral"> </span>
|
|
640
811
|
<span class="cline-any cline-neutral"> </span>
|
|
641
812
|
<span class="cline-any cline-neutral"> </span>
|
|
642
813
|
<span class="cline-any cline-no"> </span>
|
|
@@ -646,6 +817,9 @@
|
|
|
646
817
|
<span class="cline-any cline-no"> </span>
|
|
647
818
|
<span class="cline-any cline-neutral"> </span>
|
|
648
819
|
<span class="cline-any cline-neutral"> </span>
|
|
820
|
+
<span class="cline-any cline-no"> </span>
|
|
821
|
+
<span class="cline-any cline-no"> </span>
|
|
822
|
+
<span class="cline-any cline-no"> </span>
|
|
649
823
|
<span class="cline-any cline-neutral"> </span>
|
|
650
824
|
<span class="cline-any cline-no"> </span>
|
|
651
825
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -656,34 +830,97 @@
|
|
|
656
830
|
<span class="cline-any cline-neutral"> </span>
|
|
657
831
|
<span class="cline-any cline-neutral"> </span>
|
|
658
832
|
<span class="cline-any cline-no"> </span>
|
|
833
|
+
<span class="cline-any cline-no"> </span>
|
|
834
|
+
<span class="cline-any cline-neutral"> </span>
|
|
835
|
+
<span class="cline-any cline-no"> </span>
|
|
836
|
+
<span class="cline-any cline-neutral"> </span>
|
|
837
|
+
<span class="cline-any cline-neutral"> </span>
|
|
838
|
+
<span class="cline-any cline-neutral"> </span>
|
|
839
|
+
<span class="cline-any cline-neutral"> </span>
|
|
840
|
+
<span class="cline-any cline-neutral"> </span>
|
|
841
|
+
<span class="cline-any cline-neutral"> </span>
|
|
842
|
+
<span class="cline-any cline-neutral"> </span>
|
|
659
843
|
<span class="cline-any cline-neutral"> </span>
|
|
660
844
|
<span class="cline-any cline-neutral"> </span>
|
|
661
845
|
<span class="cline-any cline-neutral"> </span>
|
|
662
846
|
<span class="cline-any cline-no"> </span>
|
|
847
|
+
<span class="cline-any cline-no"> </span>
|
|
848
|
+
<span class="cline-any cline-neutral"> </span>
|
|
849
|
+
<span class="cline-any cline-no"> </span>
|
|
663
850
|
<span class="cline-any cline-neutral"> </span>
|
|
664
851
|
<span class="cline-any cline-neutral"> </span>
|
|
665
852
|
<span class="cline-any cline-neutral"> </span>
|
|
666
853
|
<span class="cline-any cline-no"> </span>
|
|
854
|
+
<span class="cline-any cline-no"> </span>
|
|
855
|
+
<span class="cline-any cline-no"> </span>
|
|
856
|
+
<span class="cline-any cline-neutral"> </span>
|
|
857
|
+
<span class="cline-any cline-no"> </span>
|
|
858
|
+
<span class="cline-any cline-neutral"> </span>
|
|
859
|
+
<span class="cline-any cline-no"> </span>
|
|
860
|
+
<span class="cline-any cline-neutral"> </span>
|
|
667
861
|
<span class="cline-any cline-neutral"> </span>
|
|
668
862
|
<span class="cline-any cline-neutral"> </span>
|
|
669
863
|
<span class="cline-any cline-neutral"> </span>
|
|
670
864
|
<span class="cline-any cline-no"> </span>
|
|
671
865
|
<span class="cline-any cline-no"> </span>
|
|
672
866
|
<span class="cline-any cline-neutral"> </span>
|
|
867
|
+
<span class="cline-any cline-neutral"> </span>
|
|
868
|
+
<span class="cline-any cline-no"> </span>
|
|
869
|
+
<span class="cline-any cline-neutral"> </span>
|
|
673
870
|
<span class="cline-any cline-no"> </span>
|
|
674
871
|
<span class="cline-any cline-neutral"> </span>
|
|
675
872
|
<span class="cline-any cline-neutral"> </span>
|
|
676
873
|
<span class="cline-any cline-neutral"> </span>
|
|
874
|
+
<span class="cline-any cline-neutral"> </span>
|
|
875
|
+
<span class="cline-any cline-neutral"> </span>
|
|
876
|
+
<span class="cline-any cline-neutral"> </span>
|
|
877
|
+
<span class="cline-any cline-neutral"> </span>
|
|
878
|
+
<span class="cline-any cline-no"> </span>
|
|
677
879
|
<span class="cline-any cline-no"> </span>
|
|
678
880
|
<span class="cline-any cline-no"> </span>
|
|
679
881
|
<span class="cline-any cline-neutral"> </span>
|
|
882
|
+
<span class="cline-any cline-no"> </span>
|
|
883
|
+
<span class="cline-any cline-neutral"> </span>
|
|
884
|
+
<span class="cline-any cline-no"> </span>
|
|
885
|
+
<span class="cline-any cline-neutral"> </span>
|
|
886
|
+
<span class="cline-any cline-neutral"> </span>
|
|
887
|
+
<span class="cline-any cline-neutral"> </span>
|
|
888
|
+
<span class="cline-any cline-neutral"> </span>
|
|
889
|
+
<span class="cline-any cline-neutral"> </span>
|
|
890
|
+
<span class="cline-any cline-neutral"> </span>
|
|
891
|
+
<span class="cline-any cline-neutral"> </span>
|
|
892
|
+
<span class="cline-any cline-neutral"> </span>
|
|
893
|
+
<span class="cline-any cline-neutral"> </span>
|
|
894
|
+
<span class="cline-any cline-neutral"> </span>
|
|
895
|
+
<span class="cline-any cline-neutral"> </span>
|
|
896
|
+
<span class="cline-any cline-neutral"> </span>
|
|
897
|
+
<span class="cline-any cline-neutral"> </span>
|
|
898
|
+
<span class="cline-any cline-neutral"> </span>
|
|
899
|
+
<span class="cline-any cline-neutral"> </span>
|
|
900
|
+
<span class="cline-any cline-neutral"> </span>
|
|
901
|
+
<span class="cline-any cline-neutral"> </span>
|
|
680
902
|
<span class="cline-any cline-neutral"> </span>
|
|
681
903
|
<span class="cline-any cline-no"> </span>
|
|
904
|
+
<span class="cline-any cline-no"> </span>
|
|
905
|
+
<span class="cline-any cline-no"> </span>
|
|
682
906
|
<span class="cline-any cline-neutral"> </span>
|
|
683
907
|
<span class="cline-any cline-no"> </span>
|
|
908
|
+
<span class="cline-any cline-neutral"> </span>
|
|
684
909
|
<span class="cline-any cline-no"> </span>
|
|
685
910
|
<span class="cline-any cline-neutral"> </span>
|
|
686
911
|
<span class="cline-any cline-neutral"> </span>
|
|
912
|
+
<span class="cline-any cline-neutral"> </span>
|
|
913
|
+
<span class="cline-any cline-neutral"> </span>
|
|
914
|
+
<span class="cline-any cline-neutral"> </span>
|
|
915
|
+
<span class="cline-any cline-neutral"> </span>
|
|
916
|
+
<span class="cline-any cline-neutral"> </span>
|
|
917
|
+
<span class="cline-any cline-neutral"> </span>
|
|
918
|
+
<span class="cline-any cline-neutral"> </span>
|
|
919
|
+
<span class="cline-any cline-neutral"> </span>
|
|
920
|
+
<span class="cline-any cline-neutral"> </span>
|
|
921
|
+
<span class="cline-any cline-no"> </span>
|
|
922
|
+
<span class="cline-any cline-no"> </span>
|
|
923
|
+
<span class="cline-any cline-neutral"> </span>
|
|
687
924
|
<span class="cline-any cline-no"> </span>
|
|
688
925
|
<span class="cline-any cline-neutral"> </span>
|
|
689
926
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -727,6 +964,13 @@
|
|
|
727
964
|
<span class="cline-any cline-no"> </span>
|
|
728
965
|
<span class="cline-any cline-no"> </span>
|
|
729
966
|
<span class="cline-any cline-neutral"> </span>
|
|
967
|
+
<span class="cline-any cline-no"> </span>
|
|
968
|
+
<span class="cline-any cline-neutral"> </span>
|
|
969
|
+
<span class="cline-any cline-neutral"> </span>
|
|
970
|
+
<span class="cline-any cline-neutral"> </span>
|
|
971
|
+
<span class="cline-any cline-no"> </span>
|
|
972
|
+
<span class="cline-any cline-no"> </span>
|
|
973
|
+
<span class="cline-any cline-neutral"> </span>
|
|
730
974
|
<span class="cline-any cline-neutral"> </span>
|
|
731
975
|
<span class="cline-any cline-neutral"> </span>
|
|
732
976
|
<span class="cline-any cline-no"> </span>
|
|
@@ -845,8 +1089,9 @@ export const <span class="cstat-no" title="statement not covered" >Messages = _M
|
|
|
845
1089
|
<span class="cstat-no" title="statement not covered" >import ConstructedStyleSheets from './modules/constructedStyleSheets.js'</span>
|
|
846
1090
|
<span class="cstat-no" title="statement not covered" >import Selection from './modules/selection.js'</span>
|
|
847
1091
|
<span class="cstat-no" title="statement not covered" >import Tabs from './modules/tabs.js'</span>
|
|
1092
|
+
|
|
848
1093
|
<span class="cstat-no" title="statement not covered" >import { IN_BROWSER, deprecationWarn, DOCS_HOST } from './utils.js'</span>
|
|
849
|
-
|
|
1094
|
+
import FeatureFlags, { IFeatureFlag } from './modules/featureFlags.js'
|
|
850
1095
|
import type { Options as AppOptions } from './app/index.js'
|
|
851
1096
|
import type { Options as ConsoleOptions } from './modules/console.js'
|
|
852
1097
|
import type { Options as ExceptionOptions } from './modules/exception.js'
|
|
@@ -912,6 +1157,7 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
|
|
|
912
1157
|
|
|
913
1158
|
<span class="cstat-no" title="statement not covered" >export default class A</span>PI {
|
|
914
1159
|
public featureFlags: FeatureFlags
|
|
1160
|
+
|
|
915
1161
|
private readonly <span class="cstat-no" title="statement not covered" >app: App | null = null</span>
|
|
916
1162
|
|
|
917
1163
|
<span class="fstat-no" title="function not covered" > constructor(private readonly <span class="cstat-no" title="statement not covered" >o</span>ptions: Options)</span> {
|
|
@@ -928,114 +1174,152 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
|
|
|
928
1174
|
)
|
|
929
1175
|
<span class="cstat-no" title="statement not covered" > return</span>
|
|
930
1176
|
}
|
|
931
|
-
const doNotTrack =
|
|
932
|
-
<span class="cstat-no" title="statement not covered" >
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
!('startsWith' in String.prototype) ||
|
|
944
|
-
!('Blob' in window) ||
|
|
945
|
-
!('Worker' in window)
|
|
946
|
-
? null
|
|
947
|
-
: new App(options.projectKey, options.sessionToken, options))
|
|
948
|
-
<span class="cstat-no" title="statement not covered" > if (app !== null) {</span>
|
|
949
|
-
<span class="cstat-no" title="statement not covered" > Viewport(app)</span>
|
|
950
|
-
<span class="cstat-no" title="statement not covered" > CSSRules(app)</span>
|
|
951
|
-
<span class="cstat-no" title="statement not covered" > ConstructedStyleSheets(app)</span>
|
|
952
|
-
<span class="cstat-no" title="statement not covered" > Connection(app)</span>
|
|
953
|
-
<span class="cstat-no" title="statement not covered" > Console(app, options)</span>
|
|
954
|
-
<span class="cstat-no" title="statement not covered" > Exception(app, options)</span>
|
|
955
|
-
<span class="cstat-no" title="statement not covered" > Img(app)</span>
|
|
956
|
-
<span class="cstat-no" title="statement not covered" > Input(app, options)</span>
|
|
957
|
-
<span class="cstat-no" title="statement not covered" > Mouse(app, options.mouse)</span>
|
|
958
|
-
<span class="cstat-no" title="statement not covered" > Timing(app, options)</span>
|
|
959
|
-
<span class="cstat-no" title="statement not covered" > Performance(app, options)</span>
|
|
960
|
-
<span class="cstat-no" title="statement not covered" > Scroll(app)</span>
|
|
961
|
-
<span class="cstat-no" title="statement not covered" > Focus(app)</span>
|
|
962
|
-
<span class="cstat-no" title="statement not covered" > Fonts(app)</span>
|
|
963
|
-
<span class="cstat-no" title="statement not covered" > Network(app, options.network)</span>
|
|
964
|
-
<span class="cstat-no" title="statement not covered" > Selection(app)</span>
|
|
965
|
-
<span class="cstat-no" title="statement not covered" > Tabs(app)</span>
|
|
966
|
-
<span class="cstat-no" title="statement not covered" > this.featureFlags = new FeatureFlags(app)</span>
|
|
967
|
-
;(<span class="cstat-no" title="statement not covered" >window as any).__OPENREPLAY__ = this</span>
|
|
1177
|
+
const doNotTrack = <span class="cstat-no" title="statement not covered" >this.checkDoNotTrack()</span>
|
|
1178
|
+
const failReason: string[] = <span class="cstat-no" title="statement not covered" >[]</span>
|
|
1179
|
+
const conditions: string[] = <span class="cstat-no" title="statement not covered" >[</span>
|
|
1180
|
+
'Map',
|
|
1181
|
+
'Set',
|
|
1182
|
+
'MutationObserver',
|
|
1183
|
+
'performance',
|
|
1184
|
+
'timing',
|
|
1185
|
+
'startsWith',
|
|
1186
|
+
'Blob',
|
|
1187
|
+
'Worker',
|
|
1188
|
+
]
|
|
968
1189
|
|
|
969
|
-
<span class="cstat-no" title="statement not covered" >
|
|
970
|
-
<span class="cstat-no" title="statement not covered" >
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
<span class="cstat-no" title="statement not covered" >
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
<span class="cstat-no" title="statement not covered" >
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
<span class="cstat-no" title="statement not covered" >
|
|
982
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.autoResetOnWindowOpen) {</span>
|
|
983
|
-
<span class="cstat-no" title="statement not covered" > app.resetNextPageSession(true)</span>
|
|
984
|
-
}
|
|
985
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.resetTabOnWindowOpen) {</span>
|
|
986
|
-
<span class="cstat-no" title="statement not covered" > sessStorage.removeItem(options.session_tabid_key || '__openreplay_tabid')</span>
|
|
987
|
-
}
|
|
988
|
-
<span class="cstat-no" title="statement not covered" > wOpen.call(window, ...args)</span>
|
|
989
|
-
<span class="cstat-no" title="statement not covered" > app.resetNextPageSession(false)</span>
|
|
990
|
-
<span class="cstat-no" title="statement not covered" > sessStorage.setItem(options.session_tabid_key || '__openreplay_tabid', tabId)</span>
|
|
1190
|
+
<span class="cstat-no" title="statement not covered" > if (doNotTrack) {</span>
|
|
1191
|
+
<span class="cstat-no" title="statement not covered" > failReason.push('doNotTrack')</span>
|
|
1192
|
+
} else {
|
|
1193
|
+
<span class="cstat-no" title="statement not covered" > for (const condition of conditions) {</span>
|
|
1194
|
+
<span class="cstat-no" title="statement not covered" > if (condition === 'timing') {</span>
|
|
1195
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if ('performance' in window && !(condition in performance)) {</span>
|
|
1196
|
+
<span class="cstat-no" title="statement not covered" > failReason.push(condition)</span>
|
|
1197
|
+
<span class="cstat-no" title="statement not covered" > break</span>
|
|
1198
|
+
}
|
|
1199
|
+
} else <span class="cstat-no" title="statement not covered" >if (condition === 'startsWith') {</span>
|
|
1200
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!(condition in String.prototype)) {</span>
|
|
1201
|
+
<span class="cstat-no" title="statement not covered" > failReason.push(condition)</span>
|
|
1202
|
+
<span class="cstat-no" title="statement not covered" > break</span>
|
|
991
1203
|
}
|
|
992
|
-
}
|
|
993
|
-
<span class="cstat-no" title="statement not covered" >
|
|
994
|
-
<span class="cstat-no" title="statement not covered" >
|
|
995
|
-
|
|
1204
|
+
} else {
|
|
1205
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!(condition in window)) {</span>
|
|
1206
|
+
<span class="cstat-no" title="statement not covered" > failReason.push(condition)</span>
|
|
1207
|
+
<span class="cstat-no" title="statement not covered" > break</span>
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
996
1210
|
}
|
|
997
|
-
}
|
|
998
|
-
<span class="cstat-no" title="statement not covered" >
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
const orig = <span class="cstat-no" title="statement not covered" >options.ingestPoint || DEFAULT_INGEST_POINT</span>
|
|
1003
|
-
<span class="cstat-no" title="statement not covered" > req.open('POST', orig + '/v1/web/not-started')</span>
|
|
1004
|
-
// no-cors issue only with text/plain or not-set Content-Type
|
|
1005
|
-
// req.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
|
|
1006
|
-
<span class="cstat-no" title="statement not covered" > req.send(</span>
|
|
1007
|
-
JSON.stringify({
|
|
1008
|
-
trackerVersion: 'TRACKER_VERSION',
|
|
1009
|
-
projectKey: options.projectKey,
|
|
1010
|
-
doNotTrack,
|
|
1011
|
-
// TODO: add precise reason (an exact API missing)
|
|
1012
|
-
}),
|
|
1211
|
+
}
|
|
1212
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (failReason.length > 0) {</span>
|
|
1213
|
+
const missingApi = <span class="cstat-no" title="statement not covered" >failReason.join(',')</span>
|
|
1214
|
+
<span class="cstat-no" title="statement not covered" > console.error(</span>
|
|
1215
|
+
`OpenReplay: browser doesn't support API required for tracking or doNotTrack is set to 1. Reason: ${missingApi}`,
|
|
1013
1216
|
)
|
|
1217
|
+
<span class="cstat-no" title="statement not covered" > this.signalStartIssue('missing_api', failReason)</span>
|
|
1218
|
+
<span class="cstat-no" title="statement not covered" > return</span>
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
const app = <span class="cstat-no" title="statement not covered" >new App(options.projectKey, options.sessionToken, options, this.signalStartIssue)</span>
|
|
1222
|
+
<span class="cstat-no" title="statement not covered" > this.app = app</span>
|
|
1223
|
+
<span class="cstat-no" title="statement not covered" > Viewport(app)</span>
|
|
1224
|
+
<span class="cstat-no" title="statement not covered" > CSSRules(app)</span>
|
|
1225
|
+
<span class="cstat-no" title="statement not covered" > ConstructedStyleSheets(app)</span>
|
|
1226
|
+
<span class="cstat-no" title="statement not covered" > Connection(app)</span>
|
|
1227
|
+
<span class="cstat-no" title="statement not covered" > Console(app, options)</span>
|
|
1228
|
+
<span class="cstat-no" title="statement not covered" > Exception(app, options)</span>
|
|
1229
|
+
<span class="cstat-no" title="statement not covered" > Img(app)</span>
|
|
1230
|
+
<span class="cstat-no" title="statement not covered" > Input(app, options)</span>
|
|
1231
|
+
<span class="cstat-no" title="statement not covered" > Mouse(app, options.mouse)</span>
|
|
1232
|
+
<span class="cstat-no" title="statement not covered" > Timing(app, options)</span>
|
|
1233
|
+
<span class="cstat-no" title="statement not covered" > Performance(app, options)</span>
|
|
1234
|
+
<span class="cstat-no" title="statement not covered" > Scroll(app)</span>
|
|
1235
|
+
<span class="cstat-no" title="statement not covered" > Focus(app)</span>
|
|
1236
|
+
<span class="cstat-no" title="statement not covered" > Fonts(app)</span>
|
|
1237
|
+
<span class="cstat-no" title="statement not covered" > Network(app, options.network)</span>
|
|
1238
|
+
<span class="cstat-no" title="statement not covered" > Selection(app)</span>
|
|
1239
|
+
<span class="cstat-no" title="statement not covered" > Tabs(app)</span>
|
|
1240
|
+
;(<span class="cstat-no" title="statement not covered" >window as any).__OPENREPLAY__ = this</span>
|
|
1241
|
+
|
|
1242
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.flags?.onFlagsLoad) {</span>
|
|
1243
|
+
<span class="cstat-no" title="statement not covered" > this.onFlagsLoad(options.flags.onFlagsLoad)</span>
|
|
1244
|
+
}
|
|
1245
|
+
const wOpen = <span class="cstat-no" title="statement not covered" >window.open</span>
|
|
1246
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.autoResetOnWindowOpen || options.resetTabOnWindowOpen) {</span>
|
|
1247
|
+
<span class="cstat-no" title="statement not covered" > app.attachStartCallback(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1248
|
+
const tabId = <span class="cstat-no" title="statement not covered" >app.getTabId()</span>
|
|
1249
|
+
const sessStorage = <span class="cstat-no" title="statement not covered" >app.sessionStorage ?? window.sessionStorage</span>
|
|
1250
|
+
// @ts-ignore ?
|
|
1251
|
+
<span class="cstat-no" title="statement not covered" > window.open = <span class="fstat-no" title="function not covered" >function (.</span>..args) {</span>
|
|
1252
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.autoResetOnWindowOpen) {</span>
|
|
1253
|
+
<span class="cstat-no" title="statement not covered" > app.resetNextPageSession(true)</span>
|
|
1254
|
+
}
|
|
1255
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (options.resetTabOnWindowOpen) {</span>
|
|
1256
|
+
<span class="cstat-no" title="statement not covered" > sessStorage.removeItem(options.session_tabid_key || '__openreplay_tabid')</span>
|
|
1257
|
+
}
|
|
1258
|
+
<span class="cstat-no" title="statement not covered" > wOpen.call(window, ...args)</span>
|
|
1259
|
+
<span class="cstat-no" title="statement not covered" > app.resetNextPageSession(false)</span>
|
|
1260
|
+
<span class="cstat-no" title="statement not covered" > sessStorage.setItem(options.session_tabid_key || '__openreplay_tabid', tabId)</span>
|
|
1261
|
+
}
|
|
1262
|
+
})
|
|
1263
|
+
<span class="cstat-no" title="statement not covered" > app.attachStopCallback(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1264
|
+
<span class="cstat-no" title="statement not covered" > window.open = wOpen</span>
|
|
1265
|
+
})
|
|
1014
1266
|
}
|
|
1015
1267
|
}
|
|
1016
1268
|
|
|
1269
|
+
<span class="cstat-no" title="statement not covered" > checkDoNotTrack = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1270
|
+
<span class="cstat-no" title="statement not covered" > return (</span>
|
|
1271
|
+
this.options.respectDoNotTrack &&
|
|
1272
|
+
(navigator.doNotTrack == '1' ||
|
|
1273
|
+
// @ts-ignore
|
|
1274
|
+
window.doNotTrack == '1')
|
|
1275
|
+
)
|
|
1276
|
+
}
|
|
1277
|
+
|
|
1278
|
+
<span class="cstat-no" title="statement not covered" > signalStartIssue = <span class="fstat-no" title="function not covered" >(r</span>eason: string, missingApi: string[]) => {</span>
|
|
1279
|
+
const doNotTrack = <span class="cstat-no" title="statement not covered" >this.checkDoNotTrack()</span>
|
|
1280
|
+
const req = <span class="cstat-no" title="statement not covered" >new XMLHttpRequest()</span>
|
|
1281
|
+
const orig = <span class="cstat-no" title="statement not covered" >this.options.ingestPoint || DEFAULT_INGEST_POINT</span>
|
|
1282
|
+
<span class="cstat-no" title="statement not covered" > req.open('POST', orig + '/v1/web/not-started')</span>
|
|
1283
|
+
<span class="cstat-no" title="statement not covered" > req.send(</span>
|
|
1284
|
+
JSON.stringify({
|
|
1285
|
+
trackerVersion: 'TRACKER_VERSION',
|
|
1286
|
+
projectKey: this.options.projectKey,
|
|
1287
|
+
doNotTrack,
|
|
1288
|
+
reason,
|
|
1289
|
+
missingApi,
|
|
1290
|
+
}),
|
|
1291
|
+
)
|
|
1292
|
+
}
|
|
1293
|
+
|
|
1017
1294
|
<span class="fstat-no" title="function not covered" > isFlagEnabled(</span>flagName: string): boolean {
|
|
1018
1295
|
<span class="cstat-no" title="statement not covered" > return this.featureFlags.isFlagEnabled(flagName)</span>
|
|
1019
1296
|
}
|
|
1020
1297
|
|
|
1021
1298
|
<span class="fstat-no" title="function not covered" > onFlagsLoad(</span>callback: (flags: IFeatureFlag[]) => void): void {
|
|
1022
|
-
<span class="cstat-no" title="statement not covered" > this.featureFlags.onFlagsLoad(callback)</span>
|
|
1299
|
+
<span class="cstat-no" title="statement not covered" > this.app?.featureFlags.onFlagsLoad(callback)</span>
|
|
1023
1300
|
}
|
|
1024
1301
|
|
|
1025
1302
|
<span class="fstat-no" title="function not covered" > clearPersistFlags(</span>) {
|
|
1026
|
-
<span class="cstat-no" title="statement not covered" > this.featureFlags.clearPersistFlags()</span>
|
|
1303
|
+
<span class="cstat-no" title="statement not covered" > this.app?.featureFlags.clearPersistFlags()</span>
|
|
1027
1304
|
}
|
|
1028
1305
|
|
|
1029
1306
|
<span class="fstat-no" title="function not covered" > reloadFlags(</span>) {
|
|
1030
|
-
<span class="cstat-no" title="statement not covered" > return this.featureFlags.reloadFlags()</span>
|
|
1307
|
+
<span class="cstat-no" title="statement not covered" > return this.app?.featureFlags.reloadFlags()</span>
|
|
1031
1308
|
}
|
|
1032
1309
|
|
|
1033
1310
|
<span class="fstat-no" title="function not covered" > getFeatureFlag(</span>flagName: string): IFeatureFlag | undefined {
|
|
1034
|
-
<span class="cstat-no" title="statement not covered" > return this.featureFlags.getFeatureFlag(flagName)</span>
|
|
1311
|
+
<span class="cstat-no" title="statement not covered" > return this.app?.featureFlags.getFeatureFlag(flagName)</span>
|
|
1035
1312
|
}
|
|
1036
1313
|
|
|
1037
1314
|
<span class="fstat-no" title="function not covered" > getAllFeatureFlags(</span>) {
|
|
1038
|
-
<span class="cstat-no" title="statement not covered" > return this.featureFlags.flags</span>
|
|
1315
|
+
<span class="cstat-no" title="statement not covered" > return this.app?.featureFlags.flags</span>
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
public <span class="cstat-no" title="statement not covered" >restartCanvasTracking = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1319
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.app === null) {</span>
|
|
1320
|
+
<span class="cstat-no" title="statement not covered" > return</span>
|
|
1321
|
+
}
|
|
1322
|
+
<span class="cstat-no" title="statement not covered" > this.app.restartCanvasTracking()</span>
|
|
1039
1323
|
}
|
|
1040
1324
|
|
|
1041
1325
|
<span class="fstat-no" title="function not covered" > use<</span>T>(fn: (app: App | null, options?: Options) => T): T {
|
|
@@ -1048,19 +1332,94 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
|
|
|
1048
1332
|
}
|
|
1049
1333
|
<span class="cstat-no" title="statement not covered" > return this.app.active()</span>
|
|
1050
1334
|
}
|
|
1335
|
+
|
|
1336
|
+
/**
|
|
1337
|
+
* Creates a named hook that expects event name, data string and msg direction (up/down),
|
|
1338
|
+
* it will skip any message bigger than 5 mb or event name bigger than 255 symbols
|
|
1339
|
+
* msg direction is "down" (incoming) by default
|
|
1340
|
+
*
|
|
1341
|
+
* @returns {(msgType: string, data: string, dir: 'up' | 'down') => void}
|
|
1342
|
+
* */
|
|
1343
|
+
<span class="fstat-no" title="function not covered" > trackWs(</span>channelName: string) {
|
|
1344
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.app === null) {</span>
|
|
1345
|
+
<span class="cstat-no" title="statement not covered" > return</span>
|
|
1346
|
+
}
|
|
1347
|
+
<span class="cstat-no" title="statement not covered" > return this.app.trackWs(channelName)</span>
|
|
1348
|
+
}
|
|
1051
1349
|
|
|
1052
1350
|
<span class="fstat-no" title="function not covered" > start(</span>startOpts?: Partial<StartOptions>): Promise<StartPromiseReturn> {
|
|
1351
|
+
<span class="cstat-no" title="statement not covered" > if (this.browserEnvCheck()) {</span>
|
|
1352
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.app === null) {</span>
|
|
1353
|
+
<span class="cstat-no" title="statement not covered" > return Promise.reject("Browser doesn't support required api, or doNotTrack is active.")</span>
|
|
1354
|
+
}
|
|
1355
|
+
<span class="cstat-no" title="statement not covered" > return this.app.start(startOpts)</span>
|
|
1356
|
+
} else {
|
|
1357
|
+
<span class="cstat-no" title="statement not covered" > return Promise.reject('Trying to start not in browser.')</span>
|
|
1358
|
+
}
|
|
1359
|
+
}
|
|
1360
|
+
|
|
1361
|
+
<span class="fstat-no" title="function not covered" > browserEnvCheck(</span>) {
|
|
1053
1362
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!IN_BROWSER) {</span>
|
|
1054
1363
|
<span class="cstat-no" title="statement not covered" > console.error(</span>
|
|
1055
1364
|
`OpenReplay: you are trying to start Tracker on a node.js environment. If you want to use OpenReplay with SSR, please, use componentDidMount or useEffect API for placing the \`tracker.start()\` line. Check documentation on ${DOCS_HOST}${DOCS_SETUP}`,
|
|
1056
1365
|
)
|
|
1366
|
+
<span class="cstat-no" title="statement not covered" > return false</span>
|
|
1367
|
+
}
|
|
1368
|
+
<span class="cstat-no" title="statement not covered" > return true</span>
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
/**
|
|
1372
|
+
* start buffering messages without starting the actual session, which gives user 30 seconds to "activate" and record
|
|
1373
|
+
* session by calling start() on conditional trigger and we will then send buffered batch, so it won't get lost
|
|
1374
|
+
* */
|
|
1375
|
+
<span class="fstat-no" title="function not covered" > coldStart(</span>startOpts?: Partial<StartOptions>, conditional?: boolean) {
|
|
1376
|
+
<span class="cstat-no" title="statement not covered" > if (this.browserEnvCheck()) {</span>
|
|
1377
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.app === null) {</span>
|
|
1378
|
+
<span class="cstat-no" title="statement not covered" > return Promise.reject('Tracker not initialized')</span>
|
|
1379
|
+
}
|
|
1380
|
+
<span class="cstat-no" title="statement not covered" > void this.app.coldStart(startOpts, conditional)</span>
|
|
1381
|
+
} else {
|
|
1057
1382
|
<span class="cstat-no" title="statement not covered" > return Promise.reject('Trying to start not in browser.')</span>
|
|
1058
1383
|
}
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
/**
|
|
1387
|
+
* Starts offline session recording. Keep in mind that only user device time will be used for timestamps.
|
|
1388
|
+
* (no backend delay sync)
|
|
1389
|
+
*
|
|
1390
|
+
* @param {Object} startOpts - options for session start, same as .start()
|
|
1391
|
+
* @param {Function} onSessionSent - callback that will be called once session is fully sent
|
|
1392
|
+
* @returns methods to manipulate buffer:
|
|
1393
|
+
*
|
|
1394
|
+
* saveBuffer - to save it in localStorage
|
|
1395
|
+
*
|
|
1396
|
+
* getBuffer - returns current buffer
|
|
1397
|
+
*
|
|
1398
|
+
* setBuffer - replaces current buffer with given
|
|
1399
|
+
* */
|
|
1400
|
+
<span class="fstat-no" title="function not covered" > startOfflineRecording(</span>startOpts: Partial<StartOptions>, onSessionSent: () => void) {
|
|
1401
|
+
<span class="cstat-no" title="statement not covered" > if (this.browserEnvCheck()) {</span>
|
|
1402
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.app === null) {</span>
|
|
1403
|
+
<span class="cstat-no" title="statement not covered" > return Promise.reject('Tracker not initialized')</span>
|
|
1404
|
+
}
|
|
1405
|
+
<span class="cstat-no" title="statement not covered" > return this.app.offlineRecording(startOpts, onSessionSent)</span>
|
|
1406
|
+
} else {
|
|
1407
|
+
<span class="cstat-no" title="statement not covered" > return Promise.reject('Trying to start not in browser.')</span>
|
|
1408
|
+
}
|
|
1409
|
+
}
|
|
1410
|
+
|
|
1411
|
+
/**
|
|
1412
|
+
* Uploads the stored session buffer to backend
|
|
1413
|
+
* @returns promise that resolves once messages are loaded, it has to be awaited
|
|
1414
|
+
* so the session can be uploaded properly
|
|
1415
|
+
* @resolve {boolean} - if messages were loaded successfully
|
|
1416
|
+
* @reject {string} - error message
|
|
1417
|
+
* */
|
|
1418
|
+
<span class="fstat-no" title="function not covered" > uploadOfflineRecording(</span>) {
|
|
1059
1419
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.app === null) {</span>
|
|
1060
|
-
<span class="cstat-no" title="statement not covered" > return
|
|
1420
|
+
<span class="cstat-no" title="statement not covered" > return</span>
|
|
1061
1421
|
}
|
|
1062
|
-
|
|
1063
|
-
<span class="cstat-no" title="statement not covered" > return this.app.start(startOpts)</span>
|
|
1422
|
+
<span class="cstat-no" title="statement not covered" > return this.app.uploadOfflineRecording()</span>
|
|
1064
1423
|
}
|
|
1065
1424
|
|
|
1066
1425
|
<span class="fstat-no" title="function not covered" > stop(</span>): string | undefined {
|
|
@@ -1099,6 +1458,13 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
|
|
|
1099
1458
|
<span class="cstat-no" title="statement not covered" > return this.app.getTabId()</span>
|
|
1100
1459
|
}
|
|
1101
1460
|
|
|
1461
|
+
<span class="fstat-no" title="function not covered" > getUxId(</span>) {
|
|
1462
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.app === null) {</span>
|
|
1463
|
+
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1464
|
+
}
|
|
1465
|
+
<span class="cstat-no" title="statement not covered" > return this.app.getUxtId()</span>
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1102
1468
|
<span class="fstat-no" title="function not covered" > sessionID(</span>): string | null | undefined {
|
|
1103
1469
|
<span class="cstat-no" title="statement not covered" > deprecationWarn("'sessionID' method", "'getSessionID' method", '/')</span>
|
|
1104
1470
|
<span class="cstat-no" title="statement not covered" > return this.getSessionID()</span>
|
|
@@ -1198,7 +1564,7 @@ function <span class="fstat-no" title="function not covered" >processOptions(</s
|
|
|
1198
1564
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1199
1565
|
Code coverage generated by
|
|
1200
1566
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1201
|
-
at
|
|
1567
|
+
at 2024-01-23T12:19:37.435Z
|
|
1202
1568
|
</div>
|
|
1203
1569
|
<script src="../prettify.js"></script>
|
|
1204
1570
|
<script>
|