@openreplay/tracker 9.0.11 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/.nvmrc +1 -0
  2. package/CHANGELOG.md +7 -0
  3. package/README.md +4 -0
  4. package/bun.lockb +0 -0
  5. package/cjs/app/index.js +15 -12
  6. package/cjs/app/logger.d.ts +1 -1
  7. package/cjs/app/messages.gen.d.ts +2 -1
  8. package/cjs/app/messages.gen.js +20 -5
  9. package/cjs/app/nodes.js +4 -3
  10. package/cjs/app/observer/observer.js +2 -1
  11. package/cjs/common/messages.gen.d.ts +17 -4
  12. package/cjs/index.js +1 -1
  13. package/cjs/modules/Network/beaconProxy.d.ts +16 -0
  14. package/cjs/modules/Network/beaconProxy.js +82 -0
  15. package/cjs/modules/Network/fetchProxy.d.ts +0 -1
  16. package/cjs/modules/Network/fetchProxy.js +0 -1
  17. package/cjs/modules/Network/index.js +5 -0
  18. package/cjs/modules/Network/networkMessage.d.ts +1 -1
  19. package/cjs/modules/Network/networkMessage.js +1 -1
  20. package/cjs/modules/Network/xhrProxy.d.ts +0 -9
  21. package/cjs/modules/Network/xhrProxy.js +0 -1
  22. package/cjs/modules/axiosSpy.js +1 -1
  23. package/cjs/modules/constructedStyleSheets.js +25 -21
  24. package/cjs/modules/featureFlags.js +0 -1
  25. package/cjs/modules/img.js +2 -2
  26. package/cjs/modules/network.js +3 -2
  27. package/cjs/modules/timing.js +5 -0
  28. package/cjs/utils.d.ts +16 -0
  29. package/cjs/utils.js +53 -1
  30. package/coverage/clover.xml +533 -772
  31. package/coverage/coverage-final.json +8 -12
  32. package/coverage/lcov-report/index.html +27 -42
  33. package/coverage/lcov-report/main/app/guards.ts.html +1 -1
  34. package/coverage/lcov-report/main/app/index.html +14 -14
  35. package/coverage/lcov-report/main/app/index.ts.html +196 -28
  36. package/coverage/lcov-report/main/app/logger.ts.html +1 -1
  37. package/coverage/lcov-report/main/app/messages.gen.ts.html +1 -1
  38. package/coverage/lcov-report/main/app/nodes.ts.html +13 -7
  39. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
  40. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
  41. package/coverage/lcov-report/main/app/observer/index.html +1 -1
  42. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
  43. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
  44. package/coverage/lcov-report/main/app/sanitizer.ts.html +1 -1
  45. package/coverage/lcov-report/main/app/session.ts.html +20 -8
  46. package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
  47. package/coverage/lcov-report/main/index.html +23 -23
  48. package/coverage/lcov-report/main/index.ts.html +26 -26
  49. package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +1 -1
  50. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +1 -1
  51. package/coverage/lcov-report/main/modules/Network/index.html +1 -1
  52. package/coverage/lcov-report/main/modules/Network/index.ts.html +1 -1
  53. package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +1 -1
  54. package/coverage/lcov-report/main/modules/Network/utils.ts.html +1 -1
  55. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +1 -1
  56. package/coverage/lcov-report/main/modules/attributeSender.ts.html +1 -1
  57. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
  58. package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
  59. package/coverage/lcov-report/main/modules/console.ts.html +1 -1
  60. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +42 -30
  61. package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
  62. package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
  63. package/coverage/lcov-report/main/modules/featureFlags.ts.html +1 -1
  64. package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
  65. package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
  66. package/coverage/lcov-report/main/modules/img.ts.html +23 -20
  67. package/coverage/lcov-report/main/modules/index.html +12 -12
  68. package/coverage/lcov-report/main/modules/input.ts.html +1 -1
  69. package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
  70. package/coverage/lcov-report/main/modules/network.ts.html +1 -1
  71. package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
  72. package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
  73. package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
  74. package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
  75. package/coverage/lcov-report/main/modules/timing.ts.html +30 -6
  76. package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
  77. package/coverage/lcov-report/main/utils.ts.html +269 -44
  78. package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
  79. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +1 -1
  80. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
  81. package/coverage/lcov-report/webworker/QueueSender.ts.html +1 -1
  82. package/coverage/lcov-report/webworker/index.html +1 -1
  83. package/coverage/lcov-report/webworker/index.ts.html +1 -1
  84. package/coverage/lcov.info +920 -1285
  85. package/lib/app/index.js +16 -13
  86. package/lib/app/logger.d.ts +1 -1
  87. package/lib/app/messages.gen.d.ts +2 -1
  88. package/lib/app/messages.gen.js +16 -2
  89. package/lib/app/nodes.js +4 -3
  90. package/lib/app/observer/observer.js +2 -1
  91. package/lib/common/messages.gen.d.ts +17 -4
  92. package/lib/common/tsconfig.tsbuildinfo +1 -1
  93. package/lib/index.js +1 -1
  94. package/lib/modules/Network/beaconProxy.d.ts +16 -0
  95. package/lib/modules/Network/beaconProxy.js +77 -0
  96. package/lib/modules/Network/fetchProxy.d.ts +0 -1
  97. package/lib/modules/Network/fetchProxy.js +0 -1
  98. package/lib/modules/Network/index.js +5 -0
  99. package/lib/modules/Network/networkMessage.d.ts +1 -1
  100. package/lib/modules/Network/networkMessage.js +1 -1
  101. package/lib/modules/Network/xhrProxy.d.ts +0 -9
  102. package/lib/modules/Network/xhrProxy.js +0 -1
  103. package/lib/modules/axiosSpy.js +1 -1
  104. package/lib/modules/constructedStyleSheets.js +25 -21
  105. package/lib/modules/featureFlags.js +0 -1
  106. package/lib/modules/img.js +3 -3
  107. package/lib/modules/network.js +3 -2
  108. package/lib/modules/timing.js +5 -0
  109. package/lib/utils.d.ts +16 -0
  110. package/lib/utils.js +47 -0
  111. package/package.json +13 -13
  112. package/rollup.config.js +4 -4
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
26
+ <span class="strong">46.25% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/51</span>
28
+ <span class='fraction'>37/80</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">30% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/24</span>
35
+ <span class='fraction'>9/30</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
40
+ <span class="strong">13.63% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/14</span>
42
+ <span class='fraction'>3/22</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
47
+ <span class="strong">46.25% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/51</span>
49
+ <span class='fraction'>37/80</span>
50
50
  </div>
51
51
 
52
52
 
@@ -170,31 +170,148 @@
170
170
  <a name='L105'></a><a href='#L105'>105</a>
171
171
  <a name='L106'></a><a href='#L106'>106</a>
172
172
  <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
174
249
  <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-yes">1x</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-yes">1x</span>
253
+ <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-yes">1x</span>
255
+ <span class="cline-any cline-neutral">&nbsp;</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-yes">1x</span>
260
+ <span class="cline-any cline-yes">1x</span>
175
261
  <span class="cline-any cline-no">&nbsp;</span>
176
262
  <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-yes">1x</span>
177
264
  <span class="cline-any cline-no">&nbsp;</span>
178
265
  <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-yes">1x</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-no">&nbsp;</span>
179
269
  <span class="cline-any cline-no">&nbsp;</span>
180
270
  <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-yes">1x</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-no">&nbsp;</span>
274
+ <span class="cline-any cline-no">&nbsp;</span>
181
275
  <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-yes">1x</span>
277
+ <span class="cline-any cline-no">&nbsp;</span>
182
278
  <span class="cline-any cline-neutral">&nbsp;</span>
183
279
  <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-yes">1x</span>
184
282
  <span class="cline-any cline-no">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-yes">1x</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-yes">1x</span>
290
+ <span class="cline-any cline-yes">1x</span>
185
291
  <span class="cline-any cline-no">&nbsp;</span>
186
292
  <span class="cline-any cline-no">&nbsp;</span>
187
293
  <span class="cline-any cline-neutral">&nbsp;</span>
188
294
  <span class="cline-any cline-no">&nbsp;</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
299
  <span class="cline-any cline-no">&nbsp;</span>
190
300
  <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-yes">1x</span>
303
+ <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-no">&nbsp;</span>
191
305
  <span class="cline-any cline-no">&nbsp;</span>
192
306
  <span class="cline-any cline-neutral">&nbsp;</span>
193
307
  <span class="cline-any cline-no">&nbsp;</span>
194
308
  <span class="cline-any cline-no">&nbsp;</span>
309
+ <span class="cline-any cline-no">&nbsp;</span>
195
310
  <span class="cline-any cline-neutral">&nbsp;</span>
196
311
  <span class="cline-any cline-no">&nbsp;</span>
197
312
  <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-yes">1x</span>
198
315
  <span class="cline-any cline-no">&nbsp;</span>
199
316
  <span class="cline-any cline-no">&nbsp;</span>
200
317
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -203,16 +320,19 @@
203
320
  <span class="cline-any cline-neutral">&nbsp;</span>
204
321
  <span class="cline-any cline-neutral">&nbsp;</span>
205
322
  <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
206
326
  <span class="cline-any cline-no">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
329
  <span class="cline-any cline-no">&nbsp;</span>
208
330
  <span class="cline-any cline-neutral">&nbsp;</span>
209
331
  <span class="cline-any cline-neutral">&nbsp;</span>
210
332
  <span class="cline-any cline-neutral">&nbsp;</span>
211
333
  <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-no">&nbsp;</span>
213
334
  <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-no">&nbsp;</span>
215
- <span class="cline-any cline-no">&nbsp;</span>
335
+ <span class="cline-any cline-yes">1x</span>
216
336
  <span class="cline-any cline-no">&nbsp;</span>
217
337
  <span class="cline-any cline-no">&nbsp;</span>
218
338
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -224,26 +344,52 @@
224
344
  <span class="cline-any cline-no">&nbsp;</span>
225
345
  <span class="cline-any cline-neutral">&nbsp;</span>
226
346
  <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-yes">1x</span>
227
348
  <span class="cline-any cline-no">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
228
351
  <span class="cline-any cline-no">&nbsp;</span>
229
352
  <span class="cline-any cline-no">&nbsp;</span>
230
353
  <span class="cline-any cline-no">&nbsp;</span>
231
354
  <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-no">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-yes">1x</span>
233
357
  <span class="cline-any cline-no">&nbsp;</span>
234
358
  <span class="cline-any cline-no">&nbsp;</span>
235
359
  <span class="cline-any cline-neutral">&nbsp;</span>
236
360
  <span class="cline-any cline-no">&nbsp;</span>
237
361
  <span class="cline-any cline-neutral">&nbsp;</span>
238
362
  <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-yes">1x</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
370
  <span class="cline-any cline-no">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-yes">1x</span>
240
377
  <span class="cline-any cline-no">&nbsp;</span>
241
378
  <span class="cline-any cline-no">&nbsp;</span>
242
379
  <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-yes">1x</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
387
  <span class="cline-any cline-no">&nbsp;</span>
244
388
  <span class="cline-any cline-no">&nbsp;</span>
245
389
  <span class="cline-any cline-neutral">&nbsp;</span>
246
390
  <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-yes">1x</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
393
  <span class="cline-any cline-neutral">&nbsp;</span>
248
394
  <span class="cline-any cline-neutral">&nbsp;</span>
249
395
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -257,69 +403,73 @@
257
403
  <span class="cline-any cline-neutral">&nbsp;</span>
258
404
  <span class="cline-any cline-neutral">&nbsp;</span>
259
405
  <span class="cline-any cline-neutral">&nbsp;</span>
260
- <span class="cline-any cline-no">&nbsp;</span>
261
- <span class="cline-any cline-no">&nbsp;</span>
262
- <span class="cline-any cline-no">&nbsp;</span>
263
406
  <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-no">&nbsp;</span>
265
407
  <span class="cline-any cline-neutral">&nbsp;</span>
266
408
  <span class="cline-any cline-neutral">&nbsp;</span>
267
409
  <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-yes">1x</span>
411
+ <span class="cline-any cline-yes">2x</span>
412
+ <span class="cline-any cline-yes">2x</span>
413
+ <span class="cline-any cline-yes">1x</span>
268
414
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-no">&nbsp;</span>
415
+ <span class="cline-any cline-yes">1x</span>
416
+ <span class="cline-any cline-yes">1x</span>
417
+ <span class="cline-any cline-yes">1x</span>
270
418
  <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-yes">1x</span>
420
+ <span class="cline-any cline-yes">1x</span>
421
+ <span class="cline-any cline-yes">1x</span>
422
+ <span class="cline-any cline-yes">1x</span>
271
423
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-no">&nbsp;</span>
273
- <span class="cline-any cline-no">&nbsp;</span>
424
+ <span class="cline-any cline-yes">1x</span>
425
+ <span class="cline-any cline-yes">1x</span>
426
+ <span class="cline-any cline-yes">1x</span>
274
427
  <span class="cline-any cline-neutral">&nbsp;</span>
275
428
  <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-no">&nbsp;</span>
277
- <span class="cline-any cline-no">&nbsp;</span>
278
- <span class="cline-any cline-no">&nbsp;</span>
279
429
  <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const DEPRECATED_ATTRS = <span class="cstat-no" title="statement not covered" >{ htmlmasked: 'hidden', masked: 'obscured' }</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const DEPRECATED_ATTRS = { htmlmasked: 'hidden', masked: 'obscured' }
281
431
  &nbsp;
282
- export const <span class="cstat-no" title="statement not covered" >IN_BROWSER = !(typeof window === 'undefined')</span>
432
+ export const IN_BROWSER = !(typeof window === 'undefined')
283
433
  &nbsp;
284
- export const <span class="cstat-no" title="statement not covered" >IS_FIREFOX = IN_BROWSER &amp;&amp; navigator.userAgent.match(/firefox|fxios/i)</span>
434
+ export const IS_FIREFOX = IN_BROWSER &amp;&amp; navigator.userAgent.match(/firefox|fxios/i)
285
435
  &nbsp;
286
- export const <span class="cstat-no" title="statement not covered" >MAX_STR_LEN = 1e5</span>
436
+ export const MAX_STR_LEN = 1e5
287
437
  &nbsp;
288
438
  // Buggy to use `performance.timeOrigin || performance.timing.navigationStart`
289
439
  // https://github.com/mdn/content/issues/4713
290
440
  // Maybe move to timer/ticker
291
- let timeOrigin: number = <span class="cstat-no" title="statement not covered" >IN_BROWSER ? Date.now() - performance.now() : 0</span>
292
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >a</span>djustTimeOrigin(</span>) {
441
+ let timeOrigin: number = IN_BROWSER ? Date.now() - performance.now() : <span class="branch-1 cbranch-no" title="branch not covered" >0</span>
442
+ export function <span class="fstat-no" title="function not covered" >adjustTimeOrigin(</span>) {
293
443
  <span class="cstat-no" title="statement not covered" > timeOrigin = Date.now() - performance.now()</span>
294
444
  }
295
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >g</span>etTimeOrigin(</span>) {
445
+ export function <span class="fstat-no" title="function not covered" >getTimeOrigin(</span>) {
296
446
  <span class="cstat-no" title="statement not covered" > return timeOrigin</span>
297
447
  }
298
- export const <span class="cstat-no" title="statement not covered" >now: () =&gt; number =</span>
448
+ export const now: () =&gt; number =
299
449
  IN_BROWSER &amp;&amp; !!performance.now
300
450
  ? <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >Math.round(performance.now() + timeOrigin)</span>
301
- : <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >Date.now()</span>
451
+ : <span class="fstat-no" title="function not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >Date.now()</span></span>
302
452
  &nbsp;
303
- export const <span class="cstat-no" title="statement not covered" >stars: (str: string) =&gt; string =</span>
453
+ export const stars: (str: string) =&gt; string =
304
454
  'repeat' in String.prototype
305
455
  ? <span class="fstat-no" title="function not covered" >(s</span>tr: string): string =&gt; <span class="cstat-no" title="statement not covered" >'*'.repeat(str.length)</span>
306
- : <span class="fstat-no" title="function not covered" >(s</span>tr: string): string =&gt; <span class="cstat-no" title="statement not covered" >str.replace(/./g, '*')</span>
456
+ : <span class="fstat-no" title="function not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >(s</span>tr: string): string =&gt; <span class="cstat-no" title="statement not covered" >str.replace(/./g, '*')</span></span>
307
457
  &nbsp;
308
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >n</span>ormSpaces(</span>str: string): string {
458
+ export function <span class="fstat-no" title="function not covered" >normSpaces(</span>str: string): string {
309
459
  <span class="cstat-no" title="statement not covered" > return str.trim().replace(/\s+/g, ' ')</span>
310
460
  }
311
461
  &nbsp;
312
462
  // isAbsoluteUrl regexp: /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url)
313
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >i</span>sURL(</span>s: string): boolean {
463
+ export function <span class="fstat-no" title="function not covered" >isURL(</span>s: string): boolean {
314
464
  <span class="cstat-no" title="statement not covered" > return s.startsWith('https://') || s.startsWith('http://')</span>
315
465
  }
316
466
  &nbsp;
317
467
  // TODO: JOIN IT WITH LOGGER somehow (use logging decorators?); Don't forget about index.js loggin when there is no logger instance.
318
468
  &nbsp;
319
- export const <span class="cstat-no" title="statement not covered" >DOCS_HOST = 'https://docs.openreplay.com'</span>
469
+ export const DOCS_HOST = 'https://docs.openreplay.com'
320
470
  &nbsp;
321
- const warnedFeatures: { [key: string]: boolean } = <span class="cstat-no" title="statement not covered" >{}</span>
322
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >d</span>eprecationWarn(</span>nameOfFeature: string, useInstead: string, docsPath = <span class="branch-0 cbranch-no" title="branch not covered" >'/')</span>: void {
471
+ const warnedFeatures: { [key: string]: boolean } = {}
472
+ export function <span class="fstat-no" title="function not covered" >deprecationWarn(</span>nameOfFeature: string, useInstead: string, docsPath = <span class="branch-0 cbranch-no" title="branch not covered" >'/')</span>: void {
323
473
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (warnedFeatures[nameOfFeature]) {</span>
324
474
  <span class="cstat-no" title="statement not covered" > return</span>
325
475
  }
@@ -331,7 +481,7 @@ const warnedFeatures: { [key: string]: boolean } = <span class="cstat-no" title=
331
481
  <span class="cstat-no" title="statement not covered" > warnedFeatures[nameOfFeature] = true</span>
332
482
  }
333
483
  &nbsp;
334
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >g</span>etLabelAttribute(</span>e: Element): string | null {
484
+ export function <span class="fstat-no" title="function not covered" >getLabelAttribute(</span>e: Element): string | null {
335
485
  let value = <span class="cstat-no" title="statement not covered" >e.getAttribute('data-openreplay-label')</span>
336
486
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (value !== null) {</span>
337
487
  <span class="cstat-no" title="statement not covered" > return value</span>
@@ -343,7 +493,7 @@ const warnedFeatures: { [key: string]: boolean } = <span class="cstat-no" title=
343
493
  <span class="cstat-no" title="statement not covered" > return value</span>
344
494
  }
345
495
  &nbsp;
346
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >h</span>asOpenreplayAttribute(</span>e: Element, attr: string): boolean {
496
+ export function <span class="fstat-no" title="function not covered" >hasOpenreplayAttribute(</span>e: Element, attr: string): boolean {
347
497
  const newName = <span class="cstat-no" title="statement not covered" >`data-openreplay-${attr}`</span>
348
498
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (e.hasAttribute(newName)) {</span>
349
499
  // @ts-ignore
@@ -364,7 +514,7 @@ const warnedFeatures: { [key: string]: boolean } = <span class="cstat-no" title=
364
514
  /**
365
515
  * checks if iframe is accessible
366
516
  **/
367
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >c</span>anAccessIframe(</span>iframe: HTMLIFrameElement) {
517
+ export function <span class="fstat-no" title="function not covered" >canAccessIframe(</span>iframe: HTMLIFrameElement) {
368
518
  <span class="cstat-no" title="statement not covered" > try {</span>
369
519
  <span class="cstat-no" title="statement not covered" > return Boolean(iframe.contentDocument)</span>
370
520
  } catch (e) {
@@ -376,7 +526,7 @@ function <span class="fstat-no" title="function not covered" >dec2hex(</span>dec
376
526
  <span class="cstat-no" title="statement not covered" > return dec.toString(16).padStart(2, '0')</span>
377
527
  }
378
528
  &nbsp;
379
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >g</span>enerateRandomId(</span>len?: number) {
529
+ export function <span class="fstat-no" title="function not covered" >generateRandomId(</span>len?: number) {
380
530
  const arr: Uint8Array = <span class="cstat-no" title="statement not covered" >new Uint8Array((len || 40) / 2)</span>
381
531
  // msCrypto = IE11
382
532
  // @ts-ignore
@@ -384,6 +534,81 @@ function <span class="fstat-no" title="function not covered" >dec2hex(</span>dec
384
534
  <span class="cstat-no" title="statement not covered" > safeCrypto.getRandomValues(arr)</span>
385
535
  <span class="cstat-no" title="statement not covered" > return Array.from(arr, dec2hex).join('')</span>
386
536
  }
537
+ &nbsp;
538
+ export function <span class="fstat-no" title="function not covered" >inIframe(</span>) {
539
+ <span class="cstat-no" title="statement not covered" > try {</span>
540
+ <span class="cstat-no" title="statement not covered" > return window.self !== window.top</span>
541
+ } catch (e) {
542
+ <span class="cstat-no" title="statement not covered" > return true</span>
543
+ }
544
+ }
545
+ &nbsp;
546
+ /**
547
+ * Because angular devs decided that its a good idea to override a browser apis
548
+ * we need to use this to achieve safe behavior
549
+ * */
550
+ export function <span class="fstat-no" title="function not covered" >ngSafeBrowserMethod(</span>method: string): string {
551
+ // @ts-ignore
552
+ <span class="cstat-no" title="statement not covered" > return window.Zone &amp;&amp; '__symbol__' in window.Zone</span>
553
+ ? // @ts-ignore
554
+ window['Zone']['__symbol__'](method)
555
+ : method
556
+ }
557
+ &nbsp;
558
+ export function <span class="fstat-no" title="function not covered" >createMutationObserver(</span>cb: MutationCallback) {
559
+ const mObserver = <span class="cstat-no" title="statement not covered" >ngSafeBrowserMethod('MutationObserver') as 'MutationObserver'</span>
560
+ <span class="cstat-no" title="statement not covered" > return new window[mObserver](cb)</span>
561
+ }
562
+ &nbsp;
563
+ export function <span class="fstat-no" title="function not covered" >createEventListener(</span>
564
+ target: EventTarget,
565
+ event: string,
566
+ cb: EventListenerOrEventListenerObject,
567
+ capture?: boolean,
568
+ ) {
569
+ const safeAddEventListener = <span class="cstat-no" title="statement not covered" >ngSafeBrowserMethod('addEventListener') as 'addEventListener'</span>
570
+ <span class="cstat-no" title="statement not covered" > target[safeAddEventListener](event, cb, capture)</span>
571
+ }
572
+ &nbsp;
573
+ export function <span class="fstat-no" title="function not covered" >deleteEventListener(</span>
574
+ target: EventTarget,
575
+ event: string,
576
+ cb: EventListenerOrEventListenerObject,
577
+ capture?: boolean,
578
+ ) {
579
+ const safeRemoveEventListener = <span class="cstat-no" title="statement not covered" >ngSafeBrowserMethod(</span>
580
+ 'removeEventListener',
581
+ ) as 'removeEventListener'
582
+ <span class="cstat-no" title="statement not covered" > target[safeRemoveEventListener](event, cb, capture)</span>
583
+ }
584
+ &nbsp;
585
+ /**
586
+ * This is a brief polyfill that suits our needs
587
+ * I took inspiration from Microsoft Clarity polyfill on this one
588
+ * then adapted it a little bit
589
+ *
590
+ * I'm very grateful for their bright idea
591
+ * */
592
+ export function requestIdleCb(callback: () =&gt; void) {
593
+ const taskTimeout = 3000
594
+ if (window.requestIdleCallback) {
595
+ return window.requestIdleCallback(callback, { timeout: taskTimeout })
596
+ } else {
597
+ const channel = new MessageChannel()
598
+ const incoming = channel.port1
599
+ const outgoing = channel.port2
600
+ &nbsp;
601
+ console.log('requestIdleCb')
602
+ incoming.onmessage = (): void =&gt; {
603
+ console.log('calling')
604
+ callback()
605
+ }
606
+ requestAnimationFrame((): void =&gt; {
607
+ console.log('posting')
608
+ outgoing.postMessage(1)
609
+ })
610
+ }
611
+ }
387
612
  &nbsp;</pre></td></tr></table></pre>
388
613
 
389
614
  <div class='push'></div><!-- for sticky footer -->
@@ -391,7 +616,7 @@ function <span class="fstat-no" title="function not covered" >dec2hex(</span>dec
391
616
  <div class='footer quiet pad2 space-top1 center small'>
392
617
  Code coverage generated by
393
618
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
394
- at 2023-10-17T13:37:58.420Z
619
+ at 2023-10-24T10:53:06.602Z
395
620
  </div>
396
621
  <script src="../prettify.js"></script>
397
622
  <script>
@@ -466,7 +466,7 @@ const MAX_M_SIZE = <span class="cstat-no" title="statement not covered" >(1 &lt;
466
466
  <div class='footer quiet pad2 space-top1 center small'>
467
467
  Code coverage generated by
468
468
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
469
- at 2023-10-17T13:37:58.420Z
469
+ at 2023-10-24T10:53:06.602Z
470
470
  </div>
471
471
  <script src="../prettify.js"></script>
472
472
  <script>
@@ -946,7 +946,7 @@ import Message from '../common/messages.gen.js'
946
946
  <div class='footer quiet pad2 space-top1 center small'>
947
947
  Code coverage generated by
948
948
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
949
- at 2023-10-17T13:37:58.420Z
949
+ at 2023-10-24T10:53:06.602Z
950
950
  </div>
951
951
  <script src="../prettify.js"></script>
952
952
  <script>
@@ -421,7 +421,7 @@ const textEncoder: { encode(str: string): Uint8Array } =
421
421
  <div class='footer quiet pad2 space-top1 center small'>
422
422
  Code coverage generated by
423
423
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
424
- at 2023-10-17T13:37:58.420Z
424
+ at 2023-10-24T10:53:06.602Z
425
425
  </div>
426
426
  <script src="../prettify.js"></script>
427
427
  <script>
@@ -490,7 +490,7 @@ const KEEPALIVE_SIZE_LIMIT = <span class="cstat-no" title="statement not covered
490
490
  <div class='footer quiet pad2 space-top1 center small'>
491
491
  Code coverage generated by
492
492
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
493
- at 2023-10-17T13:37:58.420Z
493
+ at 2023-10-24T10:53:06.602Z
494
494
  </div>
495
495
  <script src="../prettify.js"></script>
496
496
  <script>
@@ -161,7 +161,7 @@
161
161
  <div class='footer quiet pad2 space-top1 center small'>
162
162
  Code coverage generated by
163
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
164
- at 2023-10-17T13:37:58.420Z
164
+ at 2023-10-24T10:53:06.602Z
165
165
  </div>
166
166
  <script src="../prettify.js"></script>
167
167
  <script>
@@ -613,7 +613,7 @@ let restartTimeoutID: ReturnType&lt;typeof setTimeout&gt;
613
613
  <div class='footer quiet pad2 space-top1 center small'>
614
614
  Code coverage generated by
615
615
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
616
- at 2023-10-17T13:37:58.420Z
616
+ at 2023-10-24T10:53:06.602Z
617
617
  </div>
618
618
  <script src="../prettify.js"></script>
619
619
  <script>