@openreplay/tracker 13.0.0 → 13.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/bun.lockb +0 -0
  3. package/cjs/app/canvas.d.ts +4 -1
  4. package/cjs/app/canvas.js +28 -13
  5. package/cjs/app/index.d.ts +23 -0
  6. package/cjs/app/index.js +23 -4
  7. package/cjs/index.js +1 -1
  8. package/coverage/clover.xml +1054 -964
  9. package/coverage/coverage-final.json +21 -21
  10. package/coverage/lcov-report/index.html +43 -43
  11. package/coverage/lcov-report/main/app/canvas.ts.html +224 -47
  12. package/coverage/lcov-report/main/app/guards.ts.html +26 -26
  13. package/coverage/lcov-report/main/app/index.html +42 -42
  14. package/coverage/lcov-report/main/app/index.ts.html +157 -37
  15. package/coverage/lcov-report/main/app/logger.ts.html +1 -1
  16. package/coverage/lcov-report/main/app/messages.gen.ts.html +244 -154
  17. package/coverage/lcov-report/main/app/nodes.ts.html +7 -4
  18. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
  19. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
  20. package/coverage/lcov-report/main/app/observer/index.html +5 -5
  21. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
  22. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +7 -4
  23. package/coverage/lcov-report/main/app/sanitizer.ts.html +2 -2
  24. package/coverage/lcov-report/main/app/session.ts.html +2 -2
  25. package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
  26. package/coverage/lcov-report/main/index.html +13 -13
  27. package/coverage/lcov-report/main/index.ts.html +32 -14
  28. package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +17 -8
  29. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +40 -13
  30. package/coverage/lcov-report/main/modules/Network/index.html +21 -21
  31. package/coverage/lcov-report/main/modules/Network/index.ts.html +2 -2
  32. package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +12 -6
  33. package/coverage/lcov-report/main/modules/Network/utils.ts.html +17 -8
  34. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +39 -12
  35. package/coverage/lcov-report/main/modules/attributeSender.ts.html +1 -1
  36. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
  37. package/coverage/lcov-report/main/modules/conditionsManager.ts.html +4 -22
  38. package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
  39. package/coverage/lcov-report/main/modules/console.ts.html +1 -1
  40. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +3 -3
  41. package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
  42. package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
  43. package/coverage/lcov-report/main/modules/featureFlags.ts.html +1 -1
  44. package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
  45. package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
  46. package/coverage/lcov-report/main/modules/img.ts.html +4 -4
  47. package/coverage/lcov-report/main/modules/index.html +24 -24
  48. package/coverage/lcov-report/main/modules/input.ts.html +1 -1
  49. package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
  50. package/coverage/lcov-report/main/modules/network.ts.html +2 -2
  51. package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
  52. package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
  53. package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
  54. package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
  55. package/coverage/lcov-report/main/modules/tagWatcher.ts.html +95 -92
  56. package/coverage/lcov-report/main/modules/timing.ts.html +1 -1
  57. package/coverage/lcov-report/main/modules/userTesting/SignalManager.ts.html +1 -1
  58. package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +1 -1
  59. package/coverage/lcov-report/main/modules/userTesting/index.html +1 -1
  60. package/coverage/lcov-report/main/modules/userTesting/index.ts.html +1 -1
  61. package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +1 -1
  62. package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +1 -1
  63. package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +1 -1
  64. package/coverage/lcov-report/main/modules/viewport.ts.html +4 -4
  65. package/coverage/lcov-report/main/utils.ts.html +181 -31
  66. package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
  67. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +31 -7
  68. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
  69. package/coverage/lcov-report/webworker/QueueSender.ts.html +48 -18
  70. package/coverage/lcov-report/webworker/index.html +14 -14
  71. package/coverage/lcov-report/webworker/index.ts.html +51 -21
  72. package/coverage/lcov.info +1882 -1653
  73. package/lib/app/canvas.d.ts +4 -1
  74. package/lib/app/canvas.js +28 -13
  75. package/lib/app/index.d.ts +23 -0
  76. package/lib/app/index.js +23 -4
  77. package/lib/common/tsconfig.tsbuildinfo +1 -1
  78. package/lib/index.js +1 -1
  79. package/package.json +1 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>38/40</span>
28
+ <span class='fraction'>0/41</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">85.71% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/14</span>
35
+ <span class='fraction'>0/14</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">92.3% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>12/13</span>
42
+ <span class='fraction'>0/13</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>38/40</span>
49
+ <span class='fraction'>0/41</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -146,32 +146,33 @@
146
146
  <a name='L81'></a><a href='#L81'>81</a>
147
147
  <a name='L82'></a><a href='#L82'>82</a>
148
148
  <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
150
151
  <span class="cline-any cline-neutral">&nbsp;</span>
151
152
  <span class="cline-any cline-neutral">&nbsp;</span>
152
- <span class="cline-any cline-yes">5x</span>
153
- <span class="cline-any cline-yes">5x</span>
153
+ <span class="cline-any cline-no">&nbsp;</span>
154
+ <span class="cline-any cline-no">&nbsp;</span>
154
155
  <span class="cline-any cline-neutral">&nbsp;</span>
155
156
  <span class="cline-any cline-neutral">&nbsp;</span>
156
157
  <span class="cline-any cline-neutral">&nbsp;</span>
157
- <span class="cline-any cline-yes">5x</span>
158
- <span class="cline-any cline-yes">5x</span>
159
- <span class="cline-any cline-yes">5x</span>
158
+ <span class="cline-any cline-no">&nbsp;</span>
159
+ <span class="cline-any cline-no">&nbsp;</span>
160
+ <span class="cline-any cline-no">&nbsp;</span>
160
161
  <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-yes">5x</span>
162
+ <span class="cline-any cline-no">&nbsp;</span>
162
163
  <span class="cline-any cline-neutral">&nbsp;</span>
163
164
  <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-yes">5x</span>
165
- <span class="cline-any cline-yes">5x</span>
166
- <span class="cline-any cline-yes">1x</span>
167
- <span class="cline-any cline-yes">1x</span>
168
- <span class="cline-any cline-yes">1x</span>
165
+ <span class="cline-any cline-no">&nbsp;</span>
166
+ <span class="cline-any cline-no">&nbsp;</span>
167
+ <span class="cline-any cline-no">&nbsp;</span>
168
+ <span class="cline-any cline-no">&nbsp;</span>
169
+ <span class="cline-any cline-no">&nbsp;</span>
169
170
  <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-yes">1x</span>
171
- <span class="cline-any cline-yes">1x</span>
172
- <span class="cline-any cline-yes">1x</span>
171
+ <span class="cline-any cline-no">&nbsp;</span>
172
+ <span class="cline-any cline-no">&nbsp;</span>
173
+ <span class="cline-any cline-no">&nbsp;</span>
173
174
  <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-yes">1x</span>
175
+ <span class="cline-any cline-no">&nbsp;</span>
175
176
  <span class="cline-any cline-neutral">&nbsp;</span>
176
177
  <span class="cline-any cline-neutral">&nbsp;</span>
177
178
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -179,139 +180,141 @@
179
180
  <span class="cline-any cline-neutral">&nbsp;</span>
180
181
  <span class="cline-any cline-neutral">&nbsp;</span>
181
182
  <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-yes">1x</span>
183
+ <span class="cline-any cline-no">&nbsp;</span>
183
184
  <span class="cline-any cline-neutral">&nbsp;</span>
184
185
  <span class="cline-any cline-neutral">&nbsp;</span>
185
186
  <span class="cline-any cline-neutral">&nbsp;</span>
186
187
  <span class="cline-any cline-neutral">&nbsp;</span>
187
188
  <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-yes">1x</span>
189
+ <span class="cline-any cline-no">&nbsp;</span>
189
190
  <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-yes">1x</span>
191
- <span class="cline-any cline-yes">1x</span>
192
- <span class="cline-any cline-yes">1x</span>
191
+ <span class="cline-any cline-no">&nbsp;</span>
192
+ <span class="cline-any cline-no">&nbsp;</span>
193
+ <span class="cline-any cline-no">&nbsp;</span>
194
+ <span class="cline-any cline-no">&nbsp;</span>
193
195
  <span class="cline-any cline-neutral">&nbsp;</span>
194
196
  <span class="cline-any cline-neutral">&nbsp;</span>
195
197
  <span class="cline-any cline-no">&nbsp;</span>
196
198
  <span class="cline-any cline-neutral">&nbsp;</span>
197
199
  <span class="cline-any cline-neutral">&nbsp;</span>
198
200
  <span class="cline-any cline-neutral">&nbsp;</span>
199
- <span class="cline-any cline-yes">9x</span>
200
- <span class="cline-any cline-yes">9x</span>
201
- <span class="cline-any cline-yes">9x</span>
202
- <span class="cline-any cline-yes">10x</span>
203
- <span class="cline-any cline-yes">2x</span>
204
- <span class="cline-any cline-yes">2x</span>
205
- <span class="cline-any cline-yes">2x</span>
201
+ <span class="cline-any cline-no">&nbsp;</span>
202
+ <span class="cline-any cline-no">&nbsp;</span>
203
+ <span class="cline-any cline-no">&nbsp;</span>
204
+ <span class="cline-any cline-no">&nbsp;</span>
205
+ <span class="cline-any cline-no">&nbsp;</span>
206
+ <span class="cline-any cline-no">&nbsp;</span>
207
+ <span class="cline-any cline-no">&nbsp;</span>
206
208
  <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-yes">2x</span>
208
- <span class="cline-any cline-yes">2x</span>
209
+ <span class="cline-any cline-no">&nbsp;</span>
210
+ <span class="cline-any cline-no">&nbsp;</span>
209
211
  <span class="cline-any cline-neutral">&nbsp;</span>
210
212
  <span class="cline-any cline-neutral">&nbsp;</span>
211
213
  <span class="cline-any cline-neutral">&nbsp;</span>
212
214
  <span class="cline-any cline-neutral">&nbsp;</span>
213
215
  <span class="cline-any cline-neutral">&nbsp;</span>
214
216
  <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-yes">1x</span>
217
+ <span class="cline-any cline-no">&nbsp;</span>
216
218
  <span class="cline-any cline-no">&nbsp;</span>
217
219
  <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-yes">1x</span>
220
+ <span class="cline-any cline-no">&nbsp;</span>
219
221
  <span class="cline-any cline-neutral">&nbsp;</span>
220
222
  <span class="cline-any cline-neutral">&nbsp;</span>
221
223
  <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-yes">1x</span>
223
- <span class="cline-any cline-yes">2x</span>
224
+ <span class="cline-any cline-no">&nbsp;</span>
225
+ <span class="cline-any cline-no">&nbsp;</span>
224
226
  <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-yes">1x</span>
226
- <span class="cline-any cline-yes">1x</span>
227
- <span class="cline-any cline-yes">1x</span>
227
+ <span class="cline-any cline-no">&nbsp;</span>
228
+ <span class="cline-any cline-no">&nbsp;</span>
229
+ <span class="cline-any cline-no">&nbsp;</span>
228
230
  <span class="cline-any cline-neutral">&nbsp;</span>
229
231
  <span class="cline-any cline-neutral">&nbsp;</span>
230
232
  <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-yes">1x</span>
232
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const WATCHED_TAGS_KEY = '__or__watched_tags__'
233
+ <span class="cline-any cline-no">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const <span class="cstat-no" title="statement not covered" >WATCHED_TAGS_KEY = '__or__watched_tags__'</span>
233
235
  &nbsp;
234
236
  class TagWatcher {
235
- intervals: Record&lt;string, ReturnType&lt;typeof setInterval&gt;&gt; = {}
236
- tags: { id: number; selector: string }[] = []
237
+ <span class="cstat-no" title="statement not covered" > intervals: Record&lt;string, ReturnType&lt;typeof setInterval&gt;&gt; = {}</span>
238
+ <span class="cstat-no" title="statement not covered" > tags: { id: number; selector: string }[] = []</span>
237
239
  observer: IntersectionObserver
238
240
  &nbsp;
239
- constructor(
240
- private readonly sessionStorage: Storage,
241
- private readonly errLog: (args: any[]) =&gt; void,
242
- private readonly onTag: (tag: number) =&gt; void,
241
+ <span class="fstat-no" title="function not covered" > constructor(</span>
242
+ private readonly <span class="cstat-no" title="statement not covered" >sessionStorage: Storage,</span>
243
+ private readonly <span class="cstat-no" title="statement not covered" >errLog: (args: any[]) =&gt; void,</span>
244
+ private readonly <span class="cstat-no" title="statement not covered" >onTag: (tag: number) =&gt; void,</span>
243
245
  ) {
244
- const tags: { id: number; selector: string }[] = JSON.parse(
246
+ const tags: { id: number; selector: string }[] = <span class="cstat-no" title="statement not covered" >JSON.parse(</span>
245
247
  sessionStorage.getItem(WATCHED_TAGS_KEY) ?? '[]',
246
248
  )
247
- this.setTags(tags)
248
- this.observer = new IntersectionObserver((entries) =&gt; {
249
- entries.forEach((entry) =&gt; {
250
- if (entry.isIntersecting) {
251
- if (entry.target) {
249
+ <span class="cstat-no" title="statement not covered" > this.setTags(tags)</span>
250
+ <span class="cstat-no" title="statement not covered" > this.observer = new IntersectionObserver(<span class="fstat-no" title="function not covered" >(e</span>ntries) =&gt; {</span>
251
+ <span class="cstat-no" title="statement not covered" > entries.forEach(<span class="fstat-no" title="function not covered" >(e</span>ntry) =&gt; {</span>
252
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (entry.isIntersecting) {</span>
253
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (entry.target) {</span>
252
254
  // @ts-ignore
253
- const tag = entry.target.__or_watcher_tagname as number
254
- if (tag) {
255
- this.onTagRendered(tag)
255
+ const tag = <span class="cstat-no" title="statement not covered" >entry.target.__or_watcher_tagname as number</span>
256
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (tag) {</span>
257
+ <span class="cstat-no" title="statement not covered" > this.onTagRendered(tag)</span>
256
258
  }
257
- this.observer.unobserve(entry.target)
259
+ <span class="cstat-no" title="statement not covered" > this.observer.unobserve(entry.target)</span>
258
260
  }
259
261
  }
260
262
  })
261
263
  })
262
264
  }
263
265
  &nbsp;
264
- async fetchTags(ingest: string, token: string) {
265
- return fetch(`${ingest}/v1/web/tags`, {
266
+ async <span class="fstat-no" title="function not covered" >fetchTags(</span>ingest: string, token: string) {
267
+ <span class="cstat-no" title="statement not covered" > return fetch(`${ingest}/v1/web/tags`, {</span>
266
268
  method: 'GET',
267
269
  headers: {
268
270
  Authorization: `Bearer ${token}`,
269
271
  },
270
272
  })
271
- .then((r) =&gt; r.json())
272
- .then(({ tags }: { tags: { id: number; selector: string }[] }) =&gt; {
273
- if (tags &amp;&amp; tags.length) {
274
- this.setTags(tags)
275
- this.sessionStorage.setItem(WATCHED_TAGS_KEY, JSON.stringify(tags) || <span class="branch-1 cbranch-no" title="branch not covered" >'')</span>
273
+ .then(<span class="fstat-no" title="function not covered" >(r</span>) =&gt; <span class="cstat-no" title="statement not covered" >r.json())</span>
274
+ .then(<span class="fstat-no" title="function not covered" >({</span> tags }: { tags: { id: number; selector: string }[] }) =&gt; {
275
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (tags &amp;&amp; tags.length) {</span>
276
+ <span class="cstat-no" title="statement not covered" > this.setTags(tags)</span>
277
+ const tagString = <span class="cstat-no" title="statement not covered" >JSON.stringify(tags)</span>
278
+ <span class="cstat-no" title="statement not covered" > this.sessionStorage.setItem(WATCHED_TAGS_KEY, tagString || '')</span>
276
279
  }
277
280
  })
278
281
  .catch(<span class="fstat-no" title="function not covered" >(e</span>) =&gt; <span class="cstat-no" title="statement not covered" >this.errLog(e))</span>
279
282
  }
280
283
  &nbsp;
281
- setTags(tags: { id: number; selector: string }[]) {
282
- this.tags = tags
283
- this.intervals = {}
284
- tags.forEach((tag) =&gt; {
285
- this.intervals[tag.id] = setInterval(() =&gt; {
286
- const possibleEls = document.querySelectorAll(tag.selector)
287
- if (possibleEls.length &gt; 0) {
288
- const el = possibleEls[0]
284
+ <span class="fstat-no" title="function not covered" > setTags(</span>tags: { id: number; selector: string }[]) {
285
+ <span class="cstat-no" title="statement not covered" > this.tags = tags</span>
286
+ <span class="cstat-no" title="statement not covered" > this.intervals = {}</span>
287
+ <span class="cstat-no" title="statement not covered" > tags.forEach(<span class="fstat-no" title="function not covered" >(t</span>ag) =&gt; {</span>
288
+ <span class="cstat-no" title="statement not covered" > this.intervals[tag.id] = setInterval(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
289
+ const possibleEls = <span class="cstat-no" title="statement not covered" >document.querySelectorAll(tag.selector)</span>
290
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (possibleEls.length &gt; 0) {</span>
291
+ const el = <span class="cstat-no" title="statement not covered" >possibleEls[0]</span>
289
292
  // @ts-ignore
290
- el.__or_watcher_tagname = tag.id
291
- this.observer.observe(el)
293
+ <span class="cstat-no" title="statement not covered" > el.__or_watcher_tagname = tag.id</span>
294
+ <span class="cstat-no" title="statement not covered" > this.observer.observe(el)</span>
292
295
  }
293
296
  }, 500)
294
297
  })
295
298
  }
296
299
  &nbsp;
297
- onTagRendered(tagId: number) {
298
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this.intervals[tagId]) {
300
+ <span class="fstat-no" title="function not covered" > onTagRendered(</span>tagId: number) {
301
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.intervals[tagId]) {</span>
299
302
  <span class="cstat-no" title="statement not covered" > clearInterval(this.intervals[tagId])</span>
300
303
  }
301
- this.onTag(tagId)
304
+ <span class="cstat-no" title="statement not covered" > this.onTag(tagId)</span>
302
305
  }
303
306
  &nbsp;
304
- clear() {
305
- this.tags.forEach((tag) =&gt; {
306
- clearInterval(this.intervals[tag.id])
307
+ <span class="fstat-no" title="function not covered" > clear(</span>) {
308
+ <span class="cstat-no" title="statement not covered" > this.tags.forEach(<span class="fstat-no" title="function not covered" >(t</span>ag) =&gt; {</span>
309
+ <span class="cstat-no" title="statement not covered" > clearInterval(this.intervals[tag.id])</span>
307
310
  })
308
- this.tags = []
309
- this.intervals = {}
310
- this.observer.disconnect()
311
+ <span class="cstat-no" title="statement not covered" > this.tags = []</span>
312
+ <span class="cstat-no" title="statement not covered" > this.intervals = {}</span>
313
+ <span class="cstat-no" title="statement not covered" > this.observer.disconnect()</span>
311
314
  }
312
315
  }
313
316
  &nbsp;
314
- export default TagWatcher
317
+ <span class="cstat-no" title="statement not covered" >export default TagWatcher</span>
315
318
  &nbsp;</pre></td></tr></table></pre>
316
319
 
317
320
  <div class='push'></div><!-- for sticky footer -->
@@ -319,7 +322,7 @@ export default TagWatcher
319
322
  <div class='footer quiet pad2 space-top1 center small'>
320
323
  Code coverage generated by
321
324
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
322
- at 2024-01-23T12:19:37.435Z
325
+ at 2024-06-04T11:50:55.506Z
323
326
  </div>
324
327
  <script src="../../prettify.js"></script>
325
328
  <script>
@@ -862,7 +862,7 @@ export interface Options {
862
862
  <div class='footer quiet pad2 space-top1 center small'>
863
863
  Code coverage generated by
864
864
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
865
- at 2024-01-23T12:19:37.435Z
865
+ at 2024-06-04T11:50:55.506Z
866
866
  </div>
867
867
  <script src="../../prettify.js"></script>
868
868
  <script>
@@ -355,7 +355,7 @@
355
355
  <div class='footer quiet pad2 space-top1 center small'>
356
356
  Code coverage generated by
357
357
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
358
- at 2024-01-23T12:19:37.435Z
358
+ at 2024-06-04T11:50:55.506Z
359
359
  </div>
360
360
  <script src="../../../prettify.js"></script>
361
361
  <script>
@@ -205,7 +205,7 @@
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
208
- at 2024-01-23T12:19:37.435Z
208
+ at 2024-06-04T11:50:55.506Z
209
209
  </div>
210
210
  <script src="../../../prettify.js"></script>
211
211
  <script>
@@ -176,7 +176,7 @@
176
176
  <div class='footer quiet pad2 space-top1 center small'>
177
177
  Code coverage generated by
178
178
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
179
- at 2024-01-23T12:19:37.435Z
179
+ at 2024-06-04T11:50:55.506Z
180
180
  </div>
181
181
  <script src="../../../prettify.js"></script>
182
182
  <script>
@@ -1894,7 +1894,7 @@ interface Test {
1894
1894
  <div class='footer quiet pad2 space-top1 center small'>
1895
1895
  Code coverage generated by
1896
1896
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1897
- at 2024-01-23T12:19:37.435Z
1897
+ at 2024-06-04T11:50:55.506Z
1898
1898
  </div>
1899
1899
  <script src="../../../prettify.js"></script>
1900
1900
  <script>
@@ -415,7 +415,7 @@ export const <span class="cstat-no" title="statement not covered" >Quality = {</
415
415
  <div class='footer quiet pad2 space-top1 center small'>
416
416
  Code coverage generated by
417
417
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
418
- at 2024-01-23T12:19:37.435Z
418
+ at 2024-06-04T11:50:55.506Z
419
419
  </div>
420
420
  <script src="../../../prettify.js"></script>
421
421
  <script>
@@ -922,7 +922,7 @@ export const <span class="cstat-no" title="statement not covered" >spinnerStyles
922
922
  <div class='footer quiet pad2 space-top1 center small'>
923
923
  Code coverage generated by
924
924
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
925
- at 2024-01-23T12:19:37.435Z
925
+ at 2024-06-04T11:50:55.506Z
926
926
  </div>
927
927
  <script src="../../../prettify.js"></script>
928
928
  <script>
@@ -349,7 +349,7 @@ export const <span class="cstat-no" title="statement not covered" >TEST_ID = 'or
349
349
  <div class='footer quiet pad2 space-top1 center small'>
350
350
  Code coverage generated by
351
351
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
352
- at 2024-01-23T12:19:37.435Z
352
+ at 2024-06-04T11:50:55.506Z
353
353
  </div>
354
354
  <script src="../../../prettify.js"></script>
355
355
  <script>
@@ -178,7 +178,7 @@
178
178
  <span class="cstat-no" title="statement not covered" >import { SetPageLocation, SetViewportSize, SetPageVisibility } from '../app/messages.gen.js'</span>
179
179
  &nbsp;
180
180
  <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export default function (a</span></span>pp: App): void {
181
- let url: string, width: number, height: number
181
+ let url: string | null, width: number, height: number
182
182
  let navigationStart: number
183
183
  let referrer = <span class="cstat-no" title="statement not covered" >document.referrer</span>
184
184
  &nbsp;
@@ -186,7 +186,7 @@
186
186
  const { URL } = <span class="cstat-no" title="statement not covered" >document</span>
187
187
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (URL !== url) {</span>
188
188
  <span class="cstat-no" title="statement not covered" > url = URL</span>
189
- <span class="cstat-no" title="statement not covered" > app.send(SetPageLocation(url, referrer, navigationStart))</span>
189
+ <span class="cstat-no" title="statement not covered" > app.send(SetPageLocation(url, referrer, navigationStart, document.title))</span>
190
190
  <span class="cstat-no" title="statement not covered" > navigationStart = 0</span>
191
191
  <span class="cstat-no" title="statement not covered" > referrer = url</span>
192
192
  }
@@ -207,7 +207,7 @@
207
207
  : app.safe(<span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >app.send(SetPageVisibility(document.hidden)))</span>
208
208
  &nbsp;
209
209
  <span class="cstat-no" title="statement not covered" > app.attachStartCallback(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
210
- <span class="cstat-no" title="statement not covered" > url = ''</span>
210
+ <span class="cstat-no" title="statement not covered" > url = null</span>
211
211
  <span class="cstat-no" title="statement not covered" > navigationStart = getTimeOrigin()</span>
212
212
  <span class="cstat-no" title="statement not covered" > width = height = -1</span>
213
213
  <span class="cstat-no" title="statement not covered" > sendSetPageLocation()</span>
@@ -235,7 +235,7 @@
235
235
  <div class='footer quiet pad2 space-top1 center small'>
236
236
  Code coverage generated by
237
237
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
238
- at 2024-01-23T12:19:37.435Z
238
+ at 2024-06-04T11:50:55.506Z
239
239
  </div>
240
240
  <script src="../../prettify.js"></script>
241
241
  <script>