@openreplay/tracker 7.0.3 → 7.0.4

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 (66) hide show
  1. package/cjs/app/index.d.ts +1 -0
  2. package/cjs/app/index.js +4 -2
  3. package/cjs/common/interaction.d.ts +1 -0
  4. package/cjs/index.js +1 -1
  5. package/coverage/clover.xml +1412 -900
  6. package/coverage/coverage-final.json +22 -16
  7. package/coverage/lcov-report/index.html +58 -43
  8. package/coverage/lcov-report/main/app/guards.ts.html +42 -42
  9. package/coverage/lcov-report/main/app/index.html +46 -46
  10. package/coverage/lcov-report/main/app/index.ts.html +104 -8
  11. package/coverage/lcov-report/main/app/logger.ts.html +1 -1
  12. package/coverage/lcov-report/main/app/messages.gen.ts.html +146 -146
  13. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
  14. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
  15. package/coverage/lcov-report/main/app/observer/index.html +1 -1
  16. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
  17. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
  18. package/coverage/lcov-report/main/app/sanitizer.ts.html +98 -98
  19. package/coverage/lcov-report/main/app/session.ts.html +47 -5
  20. package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
  21. package/coverage/lcov-report/main/index.html +24 -24
  22. package/coverage/lcov-report/main/index.ts.html +138 -6
  23. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +949 -0
  24. package/coverage/lcov-report/main/{vendors/finder → modules/Network}/index.html +72 -12
  25. package/coverage/lcov-report/main/modules/Network/index.ts.html +169 -0
  26. package/coverage/lcov-report/main/{app/nodes.ts.html → modules/Network/networkMessage.ts.html} +130 -115
  27. package/coverage/lcov-report/main/modules/Network/utils.ts.html +700 -0
  28. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +823 -0
  29. package/coverage/lcov-report/main/modules/attributeSender.ts.html +217 -0
  30. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
  31. package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
  32. package/coverage/lcov-report/main/modules/console.ts.html +174 -147
  33. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +1 -1
  34. package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
  35. package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
  36. package/coverage/lcov-report/main/modules/featureFlags.ts.html +415 -0
  37. package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
  38. package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
  39. package/coverage/lcov-report/main/modules/img.ts.html +6 -6
  40. package/coverage/lcov-report/main/modules/index.html +54 -24
  41. package/coverage/lcov-report/main/modules/input.ts.html +1 -1
  42. package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
  43. package/coverage/lcov-report/main/modules/network.ts.html +70 -70
  44. package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
  45. package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
  46. package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
  47. package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
  48. package/coverage/lcov-report/main/modules/timing.ts.html +1 -1
  49. package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
  50. package/coverage/lcov-report/main/utils.ts.html +97 -97
  51. package/coverage/lcov-report/webworker/BatchWriter.ts.html +125 -176
  52. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +88 -88
  53. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +110 -110
  54. package/coverage/lcov-report/webworker/QueueSender.ts.html +140 -110
  55. package/coverage/lcov-report/webworker/index.html +56 -71
  56. package/coverage/lcov-report/webworker/index.ts.html +34 -10
  57. package/coverage/lcov.info +2525 -1553
  58. package/lib/app/index.d.ts +1 -0
  59. package/lib/app/index.js +4 -2
  60. package/lib/common/interaction.d.ts +1 -0
  61. package/lib/common/tsconfig.tsbuildinfo +1 -1
  62. package/lib/index.js +1 -1
  63. package/package.json +1 -1
  64. package/coverage/lcov-report/main/app/observer/observer.ts.html +0 -1282
  65. package/coverage/lcov-report/main/vendors/finder/finder.ts.html +0 -1381
  66. package/coverage/lcov-report/webworker/StringDictionary.ts.html +0 -124
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/269</span>
28
+ <span class='fraction'>0/277</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
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/53</span>
42
+ <span class='fraction'>0/56</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/258</span>
49
+ <span class='fraction'>0/266</span>
50
50
  </div>
51
51
 
52
52
 
@@ -719,7 +719,40 @@
719
719
  <a name='L654'></a><a href='#L654'>654</a>
720
720
  <a name='L655'></a><a href='#L655'>655</a>
721
721
  <a name='L656'></a><a href='#L656'>656</a>
722
- <a name='L657'></a><a href='#L657'>657</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
722
+ <a name='L657'></a><a href='#L657'>657</a>
723
+ <a name='L658'></a><a href='#L658'>658</a>
724
+ <a name='L659'></a><a href='#L659'>659</a>
725
+ <a name='L660'></a><a href='#L660'>660</a>
726
+ <a name='L661'></a><a href='#L661'>661</a>
727
+ <a name='L662'></a><a href='#L662'>662</a>
728
+ <a name='L663'></a><a href='#L663'>663</a>
729
+ <a name='L664'></a><a href='#L664'>664</a>
730
+ <a name='L665'></a><a href='#L665'>665</a>
731
+ <a name='L666'></a><a href='#L666'>666</a>
732
+ <a name='L667'></a><a href='#L667'>667</a>
733
+ <a name='L668'></a><a href='#L668'>668</a>
734
+ <a name='L669'></a><a href='#L669'>669</a>
735
+ <a name='L670'></a><a href='#L670'>670</a>
736
+ <a name='L671'></a><a href='#L671'>671</a>
737
+ <a name='L672'></a><a href='#L672'>672</a>
738
+ <a name='L673'></a><a href='#L673'>673</a>
739
+ <a name='L674'></a><a href='#L674'>674</a>
740
+ <a name='L675'></a><a href='#L675'>675</a>
741
+ <a name='L676'></a><a href='#L676'>676</a>
742
+ <a name='L677'></a><a href='#L677'>677</a>
743
+ <a name='L678'></a><a href='#L678'>678</a>
744
+ <a name='L679'></a><a href='#L679'>679</a>
745
+ <a name='L680'></a><a href='#L680'>680</a>
746
+ <a name='L681'></a><a href='#L681'>681</a>
747
+ <a name='L682'></a><a href='#L682'>682</a>
748
+ <a name='L683'></a><a href='#L683'>683</a>
749
+ <a name='L684'></a><a href='#L684'>684</a>
750
+ <a name='L685'></a><a href='#L685'>685</a>
751
+ <a name='L686'></a><a href='#L686'>686</a>
752
+ <a name='L687'></a><a href='#L687'>687</a>
753
+ <a name='L688'></a><a href='#L688'>688</a>
754
+ <a name='L689'></a><a href='#L689'>689</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
755
+ <span class="cline-any cline-no">&nbsp;</span>
723
756
  <span class="cline-any cline-no">&nbsp;</span>
724
757
  <span class="cline-any cline-no">&nbsp;</span>
725
758
  <span class="cline-any cline-no">&nbsp;</span>
@@ -730,7 +763,6 @@
730
763
  <span class="cline-any cline-no">&nbsp;</span>
731
764
  <span class="cline-any cline-no">&nbsp;</span>
732
765
  <span class="cline-any cline-no">&nbsp;</span>
733
- <span class="cline-any cline-neutral">&nbsp;</span>
734
766
  <span class="cline-any cline-neutral">&nbsp;</span>
735
767
  <span class="cline-any cline-neutral">&nbsp;</span>
736
768
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -837,6 +869,8 @@
837
869
  <span class="cline-any cline-no">&nbsp;</span>
838
870
  <span class="cline-any cline-neutral">&nbsp;</span>
839
871
  <span class="cline-any cline-no">&nbsp;</span>
872
+ <span class="cline-any cline-neutral">&nbsp;</span>
873
+ <span class="cline-any cline-no">&nbsp;</span>
840
874
  <span class="cline-any cline-no">&nbsp;</span>
841
875
  <span class="cline-any cline-no">&nbsp;</span>
842
876
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -845,6 +879,7 @@
845
879
  <span class="cline-any cline-neutral">&nbsp;</span>
846
880
  <span class="cline-any cline-neutral">&nbsp;</span>
847
881
  <span class="cline-any cline-neutral">&nbsp;</span>
882
+ <span class="cline-any cline-neutral">&nbsp;</span>
848
883
  <span class="cline-any cline-no">&nbsp;</span>
849
884
  <span class="cline-any cline-no">&nbsp;</span>
850
885
  <span class="cline-any cline-no">&nbsp;</span>
@@ -881,6 +916,7 @@
881
916
  <span class="cline-any cline-no">&nbsp;</span>
882
917
  <span class="cline-any cline-no">&nbsp;</span>
883
918
  <span class="cline-any cline-no">&nbsp;</span>
919
+ <span class="cline-any cline-no">&nbsp;</span>
884
920
  <span class="cline-any cline-neutral">&nbsp;</span>
885
921
  <span class="cline-any cline-no">&nbsp;</span>
886
922
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1170,6 +1206,14 @@
1170
1206
  <span class="cline-any cline-neutral">&nbsp;</span>
1171
1207
  <span class="cline-any cline-neutral">&nbsp;</span>
1172
1208
  <span class="cline-any cline-no">&nbsp;</span>
1209
+ <span class="cline-any cline-neutral">&nbsp;</span>
1210
+ <span class="cline-any cline-neutral">&nbsp;</span>
1211
+ <span class="cline-any cline-neutral">&nbsp;</span>
1212
+ <span class="cline-any cline-no">&nbsp;</span>
1213
+ <span class="cline-any cline-neutral">&nbsp;</span>
1214
+ <span class="cline-any cline-neutral">&nbsp;</span>
1215
+ <span class="cline-any cline-neutral">&nbsp;</span>
1216
+ <span class="cline-any cline-no">&nbsp;</span>
1173
1217
  <span class="cline-any cline-no">&nbsp;</span>
1174
1218
  <span class="cline-any cline-neutral">&nbsp;</span>
1175
1219
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1266,7 +1310,14 @@
1266
1310
  <span class="cline-any cline-neutral">&nbsp;</span>
1267
1311
  <span class="cline-any cline-neutral">&nbsp;</span>
1268
1312
  <span class="cline-any cline-neutral">&nbsp;</span>
1313
+ <span class="cline-any cline-neutral">&nbsp;</span>
1314
+ <span class="cline-any cline-neutral">&nbsp;</span>
1315
+ <span class="cline-any cline-neutral">&nbsp;</span>
1316
+ <span class="cline-any cline-neutral">&nbsp;</span>
1317
+ <span class="cline-any cline-neutral">&nbsp;</span>
1318
+ <span class="cline-any cline-neutral">&nbsp;</span>
1269
1319
  <span class="cline-any cline-no">&nbsp;</span>
1320
+ <span class="cline-any cline-neutral">&nbsp;</span>
1270
1321
  <span class="cline-any cline-no">&nbsp;</span>
1271
1322
  <span class="cline-any cline-neutral">&nbsp;</span>
1272
1323
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1284,6 +1335,14 @@
1284
1335
  <span class="cline-any cline-neutral">&nbsp;</span>
1285
1336
  <span class="cline-any cline-neutral">&nbsp;</span>
1286
1337
  <span class="cline-any cline-neutral">&nbsp;</span>
1338
+ <span class="cline-any cline-neutral">&nbsp;</span>
1339
+ <span class="cline-any cline-neutral">&nbsp;</span>
1340
+ <span class="cline-any cline-neutral">&nbsp;</span>
1341
+ <span class="cline-any cline-no">&nbsp;</span>
1342
+ <span class="cline-any cline-neutral">&nbsp;</span>
1343
+ <span class="cline-any cline-neutral">&nbsp;</span>
1344
+ <span class="cline-any cline-neutral">&nbsp;</span>
1345
+ <span class="cline-any cline-neutral">&nbsp;</span>
1287
1346
  <span class="cline-any cline-no">&nbsp;</span>
1288
1347
  <span class="cline-any cline-no">&nbsp;</span>
1289
1348
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1358,6 +1417,11 @@
1358
1417
  <span class="cline-any cline-neutral">&nbsp;</span>
1359
1418
  <span class="cline-any cline-neutral">&nbsp;</span>
1360
1419
  <span class="cline-any cline-neutral">&nbsp;</span>
1420
+ <span class="cline-any cline-neutral">&nbsp;</span>
1421
+ <span class="cline-any cline-no">&nbsp;</span>
1422
+ <span class="cline-any cline-neutral">&nbsp;</span>
1423
+ <span class="cline-any cline-neutral">&nbsp;</span>
1424
+ <span class="cline-any cline-no">&nbsp;</span>
1361
1425
  <span class="cline-any cline-no">&nbsp;</span>
1362
1426
  <span class="cline-any cline-no">&nbsp;</span>
1363
1427
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1386,7 +1450,7 @@
1386
1450
  <span class="cstat-no" title="statement not covered" >import Session from './session.js'</span>
1387
1451
  <span class="cstat-no" title="statement not covered" >import { gzip } from 'fflate'</span>
1388
1452
  <span class="cstat-no" title="statement not covered" >import { deviceMemory, jsHeapSizeLimit } from '../modules/performance.js'</span>
1389
- &nbsp;
1453
+ <span class="cstat-no" title="statement not covered" >import AttributeSender from '../modules/attributeSender.js'</span>
1390
1454
  import type { Options as ObserverOptions } from './observer/top_observer.js'
1391
1455
  import type { Options as SanitizerOptions } from './sanitizer.js'
1392
1456
  import type { Options as LoggerOptions } from './logger.js'
@@ -1486,15 +1550,18 @@ export const <span class="cstat-no" title="statement not covered" >DEFAULT_INGES
1486
1550
  private readonly <span class="cstat-no" title="statement not covered" >startCallbacks: Array&lt;StartCallback&gt; = []</span>
1487
1551
  private readonly <span class="cstat-no" title="statement not covered" >stopCallbacks: Array&lt;() =&gt; any&gt; = []</span>
1488
1552
  private readonly <span class="cstat-no" title="statement not covered" >commitCallbacks: Array&lt;CommitCallback&gt; = []</span>
1489
- private readonly options: AppOptions
1553
+ public readonly options: AppOptions
1490
1554
  public readonly networkOptions?: NetworkOptions
1491
1555
  private readonly revID: string
1492
1556
  private <span class="cstat-no" title="statement not covered" >activityState: ActivityState = ActivityState.NotActive</span>
1493
1557
  private readonly <span class="cstat-no" title="statement not covered" >version = 'TRACKER_VERSION' /</span>/ TODO: version compatability check inside each plugin.
1494
1558
  private readonly worker?: TypedWorker
1559
+ private <span class="cstat-no" title="statement not covered" >featureFlags: string[] = []</span>
1560
+ &nbsp;
1495
1561
  private <span class="cstat-no" title="statement not covered" >compressionThreshold = 24 * 1000</span>
1496
1562
  private <span class="cstat-no" title="statement not covered" >restartAttempts = 0</span>
1497
1563
  private readonly <span class="cstat-no" title="statement not covered" >bc: BroadcastChannel = new BroadcastChannel('rick')</span>
1564
+ public attributeSender: AttributeSender
1498
1565
  &nbsp;
1499
1566
  <span class="fstat-no" title="function not covered" > constructor(p</span>rojectKey: string, sessionToken: string | undefined, options: Partial&lt;Options&gt;) {
1500
1567
  // if (options.onStart !== undefined) {
@@ -1535,6 +1602,7 @@ export const <span class="cstat-no" title="statement not covered" >DEFAULT_INGES
1535
1602
  <span class="cstat-no" title="statement not covered" > this.debug = new Logger(this.options.__debug__)</span>
1536
1603
  <span class="cstat-no" title="statement not covered" > this.notify = new Logger(this.options.verbose ? LogLevel.Warnings : LogLevel.Silent)</span>
1537
1604
  <span class="cstat-no" title="statement not covered" > this.session = new Session(this, this.options)</span>
1605
+ <span class="cstat-no" title="statement not covered" > this.attributeSender = new AttributeSender(this)</span>
1538
1606
  <span class="cstat-no" title="statement not covered" > this.session.attachUpdateCallback(<span class="fstat-no" title="function not covered" >({</span> userID, metadata }) =&gt; {</span>
1539
1607
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (userID != null) {</span>
1540
1608
  // TODO: nullable userID
@@ -1824,6 +1892,14 @@ export const <span class="cstat-no" title="statement not covered" >DEFAULT_INGES
1824
1892
  <span class="cstat-no" title="statement not covered" > return this.activityState === ActivityState.Active</span>
1825
1893
  }
1826
1894
  &nbsp;
1895
+ <span class="fstat-no" title="function not covered" > isFeatureActive(</span>feature: string): boolean {
1896
+ <span class="cstat-no" title="statement not covered" > return this.featureFlags.includes(feature)</span>
1897
+ }
1898
+ &nbsp;
1899
+ <span class="fstat-no" title="function not covered" > getFeatureFlags(</span>): string[] {
1900
+ <span class="cstat-no" title="statement not covered" > return this.featureFlags</span>
1901
+ }
1902
+ &nbsp;
1827
1903
  <span class="fstat-no" title="function not covered" > resetNextPageSession(</span>flag: boolean) {
1828
1904
  <span class="cstat-no" title="statement not covered" > if (flag) {</span>
1829
1905
  <span class="cstat-no" title="statement not covered" > this.sessionStorage.setItem(this.options.session_reset_key, 't')</span>
@@ -1922,7 +1998,14 @@ export const <span class="cstat-no" title="statement not covered" >DEFAULT_INGES
1922
1998
  delay, // derived from token
1923
1999
  sessionID, // derived from token
1924
2000
  startTimestamp, // real startTS (server time), derived from sessionID
2001
+ userBrowser,
2002
+ userCity,
2003
+ userCountry,
2004
+ userDevice,
2005
+ userOS,
2006
+ userState,
1925
2007
  } = <span class="cstat-no" title="statement not covered" >r</span>
2008
+ // TODO: insert feature flags here
1926
2009
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
1927
2010
  typeof token !== 'string' ||
1928
2011
  typeof userUUID !== 'string' ||
@@ -1935,6 +2018,14 @@ export const <span class="cstat-no" title="statement not covered" >DEFAULT_INGES
1935
2018
  }
1936
2019
  <span class="cstat-no" title="statement not covered" > this.delay = delay</span>
1937
2020
  <span class="cstat-no" title="statement not covered" > this.session.setSessionToken(token)</span>
2021
+ <span class="cstat-no" title="statement not covered" > this.session.setUserInfo({</span>
2022
+ userBrowser,
2023
+ userCity,
2024
+ userCountry,
2025
+ userDevice,
2026
+ userOS,
2027
+ userState,
2028
+ })
1938
2029
  <span class="cstat-no" title="statement not covered" > this.session.assign({</span>
1939
2030
  sessionID,
1940
2031
  timestamp: startTimestamp || timestamp,
@@ -2013,9 +2104,14 @@ export const <span class="cstat-no" title="statement not covered" >DEFAULT_INGES
2013
2104
  })
2014
2105
  }
2015
2106
  }
2107
+ &nbsp;
2108
+ <span class="fstat-no" title="function not covered" > getTabId(</span>) {
2109
+ <span class="cstat-no" title="statement not covered" > return this.session.getTabId()</span>
2110
+ }
2016
2111
  <span class="fstat-no" title="function not covered" > stop(</span>stopWorker = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span>: void {
2017
2112
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.activityState !== ActivityState.NotActive) {</span>
2018
2113
  <span class="cstat-no" title="statement not covered" > try {</span>
2114
+ <span class="cstat-no" title="statement not covered" > this.attributeSender.clear()</span>
2019
2115
  <span class="cstat-no" title="statement not covered" > this.sanitizer.clear()</span>
2020
2116
  <span class="cstat-no" title="statement not covered" > this.observer.disconnect()</span>
2021
2117
  <span class="cstat-no" title="statement not covered" > this.nodes.clear()</span>
@@ -2038,7 +2134,7 @@ export const <span class="cstat-no" title="statement not covered" >DEFAULT_INGES
2038
2134
  <div class='footer quiet pad2 space-top1 center small'>
2039
2135
  Code coverage generated by
2040
2136
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2041
- at 2023-05-31T15:51:28.464Z
2137
+ at 2023-06-28T10:44:28.733Z
2042
2138
  </div>
2043
2139
  <script src="../../prettify.js"></script>
2044
2140
  <script>
@@ -262,7 +262,7 @@ export type Options = true | _Options | LogLevel
262
262
  <div class='footer quiet pad2 space-top1 center small'>
263
263
  Code coverage generated by
264
264
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
265
- at 2023-05-31T15:51:28.464Z
265
+ at 2023-06-28T10:44:28.733Z
266
266
  </div>
267
267
  <script src="../../prettify.js"></script>
268
268
  <script>