@openreplay/tracker 8.0.0 → 8.0.1-beta14

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 (100) hide show
  1. package/cjs/app/index.d.ts +4 -1
  2. package/cjs/app/index.js +18 -2
  3. package/cjs/app/session.d.ts +10 -0
  4. package/cjs/app/session.js +3 -0
  5. package/cjs/index.d.ts +11 -0
  6. package/cjs/index.js +28 -1
  7. package/cjs/modules/Network/fetchProxy.d.ts +34 -0
  8. package/cjs/modules/Network/fetchProxy.js +240 -0
  9. package/cjs/modules/Network/index.d.ts +3 -0
  10. package/cjs/modules/Network/index.js +9 -0
  11. package/cjs/modules/Network/networkMessage.d.ts +49 -0
  12. package/cjs/modules/Network/networkMessage.js +82 -0
  13. package/cjs/modules/Network/types.d.ts +13 -0
  14. package/cjs/modules/Network/types.js +3 -0
  15. package/cjs/modules/Network/utils.d.ts +11 -0
  16. package/cjs/modules/Network/utils.js +213 -0
  17. package/cjs/modules/Network/xhrProxy.d.ts +47 -0
  18. package/cjs/modules/Network/xhrProxy.js +209 -0
  19. package/cjs/modules/console.js +21 -13
  20. package/cjs/modules/featureFlags.d.ts +25 -0
  21. package/cjs/modules/featureFlags.js +100 -0
  22. package/cjs/modules/network.d.ts +3 -4
  23. package/cjs/modules/network.js +13 -3
  24. package/coverage/clover.xml +898 -449
  25. package/coverage/coverage-final.json +13 -8
  26. package/coverage/lcov-report/index.html +50 -35
  27. package/coverage/lcov-report/main/app/guards.ts.html +1 -1
  28. package/coverage/lcov-report/main/app/index.html +21 -21
  29. package/coverage/lcov-report/main/app/index.ts.html +46 -4
  30. package/coverage/lcov-report/main/app/logger.ts.html +1 -1
  31. package/coverage/lcov-report/main/app/messages.gen.ts.html +146 -146
  32. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
  33. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
  34. package/coverage/lcov-report/main/app/observer/index.html +1 -1
  35. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
  36. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
  37. package/coverage/lcov-report/main/app/sanitizer.ts.html +1 -1
  38. package/coverage/lcov-report/main/app/session.ts.html +47 -5
  39. package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
  40. package/coverage/lcov-report/main/index.html +20 -20
  41. package/coverage/lcov-report/main/index.ts.html +38 -26
  42. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +949 -0
  43. package/coverage/lcov-report/main/modules/Network/index.html +176 -0
  44. package/coverage/lcov-report/main/modules/Network/index.ts.html +169 -0
  45. package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +382 -0
  46. package/coverage/lcov-report/main/modules/Network/utils.ts.html +700 -0
  47. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +823 -0
  48. package/coverage/lcov-report/main/modules/attributeSender.ts.html +1 -1
  49. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
  50. package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
  51. package/coverage/lcov-report/main/modules/console.ts.html +174 -147
  52. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +1 -1
  53. package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
  54. package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
  55. package/coverage/lcov-report/main/modules/featureFlags.ts.html +102 -51
  56. package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
  57. package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
  58. package/coverage/lcov-report/main/modules/img.ts.html +1 -1
  59. package/coverage/lcov-report/main/modules/index.html +33 -33
  60. package/coverage/lcov-report/main/modules/input.ts.html +1 -1
  61. package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
  62. package/coverage/lcov-report/main/modules/network.ts.html +70 -70
  63. package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
  64. package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
  65. package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
  66. package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
  67. package/coverage/lcov-report/main/modules/timing.ts.html +1 -1
  68. package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
  69. package/coverage/lcov-report/main/utils.ts.html +45 -45
  70. package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
  71. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +1 -1
  72. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
  73. package/coverage/lcov-report/webworker/QueueSender.ts.html +1 -1
  74. package/coverage/lcov-report/webworker/index.html +1 -1
  75. package/coverage/lcov-report/webworker/index.ts.html +1 -1
  76. package/coverage/lcov.info +1558 -726
  77. package/lib/app/index.d.ts +4 -1
  78. package/lib/app/index.js +18 -2
  79. package/lib/app/session.d.ts +10 -0
  80. package/lib/app/session.js +3 -0
  81. package/lib/index.d.ts +11 -0
  82. package/lib/index.js +28 -1
  83. package/lib/modules/Network/fetchProxy.d.ts +34 -0
  84. package/lib/modules/Network/fetchProxy.js +234 -0
  85. package/lib/modules/Network/index.d.ts +3 -0
  86. package/lib/modules/Network/index.js +6 -0
  87. package/lib/modules/Network/networkMessage.d.ts +49 -0
  88. package/lib/modules/Network/networkMessage.js +78 -0
  89. package/lib/modules/Network/types.d.ts +13 -0
  90. package/lib/modules/Network/types.js +2 -0
  91. package/lib/modules/Network/utils.d.ts +11 -0
  92. package/lib/modules/Network/utils.js +201 -0
  93. package/lib/modules/Network/xhrProxy.d.ts +47 -0
  94. package/lib/modules/Network/xhrProxy.js +204 -0
  95. package/lib/modules/console.js +21 -13
  96. package/lib/modules/featureFlags.d.ts +25 -0
  97. package/lib/modules/featureFlags.js +97 -0
  98. package/lib/modules/network.d.ts +3 -4
  99. package/lib/modules/network.js +13 -3
  100. 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">34.37% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>11/32</span>
28
+ <span class='fraction'>0/48</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/11</span>
35
+ <span class='fraction'>0/9</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">41.66% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/12</span>
42
+ <span class='fraction'>0/17</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">29.62% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>8/27</span>
49
+ <span class='fraction'>0/40</span>
50
50
  </div>
51
51
 
52
52
 
@@ -156,7 +156,24 @@
156
156
  <a name='L91'></a><a href='#L91'>91</a>
157
157
  <a name='L92'></a><a href='#L92'>92</a>
158
158
  <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
160
177
  <span class="cline-any cline-neutral">&nbsp;</span>
161
178
  <span class="cline-any cline-neutral">&nbsp;</span>
162
179
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -170,12 +187,18 @@
170
187
  <span class="cline-any cline-neutral">&nbsp;</span>
171
188
  <span class="cline-any cline-neutral">&nbsp;</span>
172
189
  <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-yes">1x</span>
190
+ <span class="cline-any cline-no">&nbsp;</span>
174
191
  <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-yes">1x</span>
192
+ <span class="cline-any cline-no">&nbsp;</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-no">&nbsp;</span>
196
+ <span class="cline-any cline-no">&nbsp;</span>
197
+ <span class="cline-any cline-no">&nbsp;</span>
198
+ <span class="cline-any cline-no">&nbsp;</span>
199
+ <span class="cline-any cline-no">&nbsp;</span>
176
200
  <span class="cline-any cline-neutral">&nbsp;</span>
177
201
  <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-yes">1x</span>
179
202
  <span class="cline-any cline-neutral">&nbsp;</span>
180
203
  <span class="cline-any cline-neutral">&nbsp;</span>
181
204
  <span class="cline-any cline-no">&nbsp;</span>
@@ -187,12 +210,21 @@
187
210
  <span class="cline-any cline-neutral">&nbsp;</span>
188
211
  <span class="cline-any cline-neutral">&nbsp;</span>
189
212
  <span class="cline-any cline-no">&nbsp;</span>
190
- <span class="cline-any cline-no">&nbsp;</span>
191
213
  <span class="cline-any cline-neutral">&nbsp;</span>
192
214
  <span class="cline-any cline-neutral">&nbsp;</span>
193
215
  <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-no">&nbsp;</span>
217
+ <span class="cline-any cline-no">&nbsp;</span>
218
+ <span class="cline-any cline-no">&nbsp;</span>
219
+ <span class="cline-any cline-no">&nbsp;</span>
220
+ <span class="cline-any cline-no">&nbsp;</span>
221
+ <span class="cline-any cline-no">&nbsp;</span>
222
+ <span class="cline-any cline-no">&nbsp;</span>
194
223
  <span class="cline-any cline-neutral">&nbsp;</span>
195
224
  <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-no">&nbsp;</span>
226
+ <span class="cline-any cline-no">&nbsp;</span>
227
+ <span class="cline-any cline-no">&nbsp;</span>
196
228
  <span class="cline-any cline-neutral">&nbsp;</span>
197
229
  <span class="cline-any cline-neutral">&nbsp;</span>
198
230
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -226,6 +258,7 @@
226
258
  <span class="cline-any cline-no">&nbsp;</span>
227
259
  <span class="cline-any cline-no">&nbsp;</span>
228
260
  <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
262
  <span class="cline-any cline-no">&nbsp;</span>
230
263
  <span class="cline-any cline-no">&nbsp;</span>
231
264
  <span class="cline-any cline-no">&nbsp;</span>
@@ -242,11 +275,12 @@
242
275
  <span class="cline-any cline-neutral">&nbsp;</span>
243
276
  <span class="cline-any cline-neutral">&nbsp;</span>
244
277
  <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-yes">1x</span>
246
- <span class="cline-any cline-yes">1x</span>
247
- <span class="cline-any cline-yes">1x</span>
248
- <span class="cline-any cline-yes">2x</span>
249
- <span class="cline-any cline-yes">5x</span>
278
+ <span class="cline-any cline-no">&nbsp;</span>
279
+ <span class="cline-any cline-no">&nbsp;</span>
280
+ <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-no">&nbsp;</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-no">&nbsp;</span>
250
284
  <span class="cline-any cline-neutral">&nbsp;</span>
251
285
  <span class="cline-any cline-neutral">&nbsp;</span>
252
286
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import App from '../app/index.js'
@@ -258,46 +292,61 @@ export interface IFeatureFlag {
258
292
  payload: string
259
293
  }
260
294
  &nbsp;
261
- export interface PersistFlagsData {
295
+ export interface FetchPersistFlagsData {
262
296
  key: string
263
297
  value: string | boolean
264
298
  }
265
299
  &nbsp;
266
- export default class FeatureFlags {
267
- flags: Record&lt;string, any&gt;
268
- storageKey = '__openreplay_flags'
269
- onFlagsCb: (flags: Record&lt;string, any&gt;) =&gt; void
300
+ <span class="cstat-no" title="statement not covered" >export default class F</span>eatureFlags {
301
+ flags: IFeatureFlag[]
302
+ <span class="cstat-no" title="statement not covered" > storageKey = '__openreplay_flags'</span>
303
+ onFlagsCb: (flags: IFeatureFlag[]) =&gt; void
270
304
  &nbsp;
271
- constructor(private readonly app: App) {}
305
+ <span class="fstat-no" title="function not covered" > constructor(private readonly <span class="cstat-no" title="statement not covered" >a</span>pp: App)</span> {
306
+ const persistFlags = <span class="cstat-no" title="statement not covered" >this.app.sessionStorage.getItem(this.storageKey)</span>
307
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (persistFlags) {</span>
308
+ const persistFlagsStrArr = <span class="cstat-no" title="statement not covered" >persistFlags.split(';').filter(Boolean)</span>
309
+ <span class="cstat-no" title="statement not covered" > this.flags = persistFlagsStrArr.map(<span class="fstat-no" title="function not covered" >(f</span>lag) =&gt; <span class="cstat-no" title="statement not covered" >JSON.parse(flag))</span></span>
310
+ }
311
+ }
312
+ &nbsp;
313
+ <span class="fstat-no" title="function not covered" > getFeatureFlag(</span>flagName: string): IFeatureFlag | undefined {
314
+ <span class="cstat-no" title="statement not covered" > return this.flags.find(<span class="fstat-no" title="function not covered" >(f</span>lag) =&gt; <span class="cstat-no" title="statement not covered" >flag.key === flagName)</span></span>
315
+ }
272
316
  &nbsp;
273
317
  <span class="fstat-no" title="function not covered" > isFlagEnabled(</span>flagName: string): boolean {
274
- <span class="cstat-no" title="statement not covered" > return this.flags[flagName] &amp;&amp; this.flags[flagName].enabled</span>
318
+ <span class="cstat-no" title="statement not covered" > return this.flags.findIndex(<span class="fstat-no" title="function not covered" >(f</span>lag) =&gt; <span class="cstat-no" title="statement not covered" >flag.key === flagName)</span> !== -1</span>
275
319
  }
276
320
  &nbsp;
277
321
  <span class="fstat-no" title="function not covered" > onFlagsLoad(</span>cb: (flags: IFeatureFlag[]) =&gt; void) {
278
- <span class="cstat-no" title="statement not covered" > return (this.onFlagsCb = cb)</span>
322
+ <span class="cstat-no" title="statement not covered" > this.onFlagsCb = cb</span>
279
323
  }
280
324
  &nbsp;
281
325
  async <span class="fstat-no" title="function not covered" >reloadFlags(</span>) {
326
+ const persistFlagsStr = <span class="cstat-no" title="statement not covered" >this.app.sessionStorage.getItem(this.storageKey)</span>
327
+ const persistFlags: Record&lt;string, FetchPersistFlagsData&gt; = <span class="cstat-no" title="statement not covered" >{}</span>
328
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (persistFlagsStr) {</span>
329
+ const persistArray = <span class="cstat-no" title="statement not covered" >persistFlagsStr.split(';').filter(Boolean)</span>
330
+ <span class="cstat-no" title="statement not covered" > persistArray.forEach(<span class="fstat-no" title="function not covered" >(f</span>lag) =&gt; {</span>
331
+ const flagObj = <span class="cstat-no" title="statement not covered" >JSON.parse(flag)</span>
332
+ <span class="cstat-no" title="statement not covered" > persistFlags[flagObj.key] = { key: flagObj.key, value: flagObj.value }</span>
333
+ })
334
+ }
282
335
  const sessionInfo = <span class="cstat-no" title="statement not covered" >this.app.session.getInfo()</span>
336
+ const userInfo = <span class="cstat-no" title="statement not covered" >this.app.session.userInfo</span>
283
337
  const requestObject = <span class="cstat-no" title="statement not covered" >{</span>
284
338
  projectID: sessionInfo.projectID,
285
339
  userID: sessionInfo.userID,
286
340
  metadata: sessionInfo.metadata,
287
341
  referrer: document.referrer,
288
- featureFlags: this.flags,
289
342
  // todo: get from backend
290
- os: 'test',
291
- osVersion: 'test',
292
- device: 'test',
293
- country: 'test',
294
- state: 'test',
295
- city: 'test',
296
- ua: 'test',
297
- browser: 'test',
298
- browserVersion: 'test',
299
- deviceType: 'test',
300
- persistFlags: this.app.localStorage.getItem(this.storageKey) || [],
343
+ os: userInfo.userOS,
344
+ device: userInfo.userDevice,
345
+ country: userInfo.userCountry,
346
+ state: userInfo.userState,
347
+ city: userInfo.userCity,
348
+ browser: userInfo.userBrowser,
349
+ persistFlags: persistFlags,
301
350
  }
302
351
  &nbsp;
303
352
  const resp = <span class="cstat-no" title="statement not covered" >await fetch(this.app.options.ingestPoint + '/v1/web/feature-flags', {</span>
@@ -315,31 +364,33 @@ export default class FeatureFlags {
315
364
  }
316
365
  &nbsp;
317
366
  <span class="fstat-no" title="function not covered" > handleFlags(</span>flags: IFeatureFlag[]) {
318
- const persistFlags: PersistFlagsData[] = <span class="cstat-no" title="statement not covered" >[]</span>
319
- <span class="cstat-no" title="statement not covered" > Object.values(flags).forEach(<span class="fstat-no" title="function not covered" >(f</span>lag) =&gt; {</span>
320
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (flag.is_persist) <span class="cstat-no" title="statement not covered" >persistFlags.push({ key: flag.key, value: flag.value })</span></span>
367
+ const persistFlags: IFeatureFlag[] = <span class="cstat-no" title="statement not covered" >[]</span>
368
+ <span class="cstat-no" title="statement not covered" > flags.forEach(<span class="fstat-no" title="function not covered" >(f</span>lag) =&gt; {</span>
369
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (flag.is_persist) <span class="cstat-no" title="statement not covered" >persistFlags.push(flag)</span></span>
321
370
  })
371
+ &nbsp;
322
372
  let str = <span class="cstat-no" title="statement not covered" >''</span>
323
- const uniqueFlags = <span class="cstat-no" title="statement not covered" >this.diffPersist(persistFlags)</span>
324
- <span class="cstat-no" title="statement not covered" > uniqueFlags.forEach(<span class="fstat-no" title="function not covered" >(f</span>lag) =&gt; {</span>
373
+ const uniquePersistFlags = <span class="cstat-no" title="statement not covered" >this.diffPersist(persistFlags)</span>
374
+ <span class="cstat-no" title="statement not covered" > uniquePersistFlags.forEach(<span class="fstat-no" title="function not covered" >(f</span>lag) =&gt; {</span>
325
375
  <span class="cstat-no" title="statement not covered" > str += `${JSON.stringify(flag)};`</span>
326
376
  })
327
377
  &nbsp;
328
- <span class="cstat-no" title="statement not covered" > this.app.localStorage.setItem(this.storageKey, str)</span>
378
+ <span class="cstat-no" title="statement not covered" > this.app.sessionStorage.setItem(this.storageKey, str)</span>
329
379
  <span class="cstat-no" title="statement not covered" > this.flags = flags</span>
330
380
  <span class="cstat-no" title="statement not covered" > return this.onFlagsCb?.(flags)</span>
331
381
  }
332
382
  &nbsp;
333
383
  <span class="fstat-no" title="function not covered" > clearPersistFlags(</span>) {
334
- <span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(this.storageKey)</span>
384
+ <span class="cstat-no" title="statement not covered" > this.app.sessionStorage.removeItem(this.storageKey)</span>
335
385
  }
336
386
  &nbsp;
337
- diffPersist(flags: PersistFlagsData[]) {
338
- const persistFlags = this.app.localStorage.getItem(this.storageKey)
339
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!persistFlags) <span class="cstat-no" title="statement not covered" >return flags</span>
340
- const persistFlagsStrArr = persistFlags.split(';')
341
- const persistFlagsArr = persistFlagsStrArr.map((flag) =&gt; JSON.parse(flag))
342
- return flags.filter((flag) =&gt; persistFlagsArr.findIndex((pf) =&gt; pf.key === flag.key) === -1)
387
+ <span class="fstat-no" title="function not covered" > diffPersist(</span>flags: IFeatureFlag[]) {
388
+ const persistFlags = <span class="cstat-no" title="statement not covered" >this.app.sessionStorage.getItem(this.storageKey)</span>
389
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!persistFlags) <span class="cstat-no" title="statement not covered" >return flags</span></span>
390
+ const persistFlagsStrArr = <span class="cstat-no" title="statement not covered" >persistFlags.split(';').filter(Boolean)</span>
391
+ const persistFlagsArr = <span class="cstat-no" title="statement not covered" >persistFlagsStrArr.map(<span class="fstat-no" title="function not covered" >(f</span>lag) =&gt; <span class="cstat-no" title="statement not covered" >JSON.parse(flag))</span></span>
392
+ &nbsp;
393
+ <span class="cstat-no" title="statement not covered" > return flags.filter(<span class="fstat-no" title="function not covered" >(f</span>lag) =&gt; <span class="cstat-no" title="statement not covered" >persistFlagsArr.findIndex(<span class="fstat-no" title="function not covered" >(p</span>f) =&gt; <span class="cstat-no" title="statement not covered" >pf.key === flag.key)</span> === -1)</span></span>
343
394
  }
344
395
  }
345
396
  &nbsp;</pre></td></tr></table></pre>
@@ -349,7 +400,7 @@ export default class FeatureFlags {
349
400
  <div class='footer quiet pad2 space-top1 center small'>
350
401
  Code coverage generated by
351
402
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
352
- at 2023-06-15T15:49:15.198Z
403
+ at 2023-06-28T09:57:19.259Z
353
404
  </div>
354
405
  <script src="../../prettify.js"></script>
355
406
  <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 2023-06-15T15:49:15.198Z
208
+ at 2023-06-28T09:57:19.259Z
209
209
  </div>
210
210
  <script src="../../prettify.js"></script>
211
211
  <script>
@@ -274,7 +274,7 @@ type FFData = [string, string, string]
274
274
  <div class='footer quiet pad2 space-top1 center small'>
275
275
  Code coverage generated by
276
276
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
277
- at 2023-06-15T15:49:15.198Z
277
+ at 2023-06-28T09:57:19.259Z
278
278
  </div>
279
279
  <script src="../../prettify.js"></script>
280
280
  <script>
@@ -418,7 +418,7 @@ const PLACEHOLDER_SRC = <span class="cstat-no" title="statement not covered" >'h
418
418
  <div class='footer quiet pad2 space-top1 center small'>
419
419
  Code coverage generated by
420
420
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
421
- at 2023-06-15T15:49:15.198Z
421
+ at 2023-06-28T09:57:19.259Z
422
422
  </div>
423
423
  <script src="../../prettify.js"></script>
424
424
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">0.99% </span>
26
+ <span class="strong">5.82% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>11/1109</span>
28
+ <span class='fraction'>66/1134</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">2.97% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/568</span>
35
+ <span class='fraction'>17/572</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">2.4% </span>
40
+ <span class="strong">5.58% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/208</span>
42
+ <span class='fraction'>12/215</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">0.74% </span>
47
+ <span class="strong">5.94% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>8/1072</span>
49
+ <span class='fraction'>65/1094</span>
50
50
  </div>
51
51
 
52
52
 
@@ -124,18 +124,18 @@
124
124
  </tr>
125
125
 
126
126
  <tr>
127
- <td class="file low" data-value="console.ts"><a href="console.ts.html">console.ts</a></td>
128
- <td data-value="0" class="pic low">
129
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
127
+ <td class="file high" data-value="console.ts"><a href="console.ts.html">console.ts</a></td>
128
+ <td data-value="81.48" class="pic high">
129
+ <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
130
130
  </td>
131
- <td data-value="0" class="pct low">0%</td>
132
- <td data-value="78" class="abs low">0/78</td>
133
- <td data-value="0" class="pct low">0%</td>
134
- <td data-value="31" class="abs low">0/31</td>
135
- <td data-value="0" class="pct low">0%</td>
136
- <td data-value="15" class="abs low">0/15</td>
137
- <td data-value="0" class="pct low">0%</td>
138
- <td data-value="74" class="abs low">0/74</td>
131
+ <td data-value="81.48" class="pct high">81.48%</td>
132
+ <td data-value="81" class="abs high">66/81</td>
133
+ <td data-value="53.12" class="pct medium">53.12%</td>
134
+ <td data-value="32" class="abs medium">17/32</td>
135
+ <td data-value="80" class="pct high">80%</td>
136
+ <td data-value="15" class="abs high">12/15</td>
137
+ <td data-value="84.41" class="pct high">84.41%</td>
138
+ <td data-value="77" class="abs high">65/77</td>
139
139
  </tr>
140
140
 
141
141
  <tr>
@@ -185,17 +185,17 @@
185
185
 
186
186
  <tr>
187
187
  <td class="file low" data-value="featureFlags.ts"><a href="featureFlags.ts.html">featureFlags.ts</a></td>
188
- <td data-value="34.37" class="pic low">
189
- <div class="chart"><div class="cover-fill" style="width: 34%"></div><div class="cover-empty" style="width: 66%"></div></div>
188
+ <td data-value="0" class="pic low">
189
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
190
190
  </td>
191
- <td data-value="34.37" class="pct low">34.37%</td>
192
- <td data-value="32" class="abs low">11/32</td>
193
191
  <td data-value="0" class="pct low">0%</td>
194
- <td data-value="11" class="abs low">0/11</td>
195
- <td data-value="41.66" class="pct low">41.66%</td>
196
- <td data-value="12" class="abs low">5/12</td>
197
- <td data-value="29.62" class="pct low">29.62%</td>
198
- <td data-value="27" class="abs low">8/27</td>
192
+ <td data-value="48" class="abs low">0/48</td>
193
+ <td data-value="0" class="pct low">0%</td>
194
+ <td data-value="9" class="abs low">0/9</td>
195
+ <td data-value="0" class="pct low">0%</td>
196
+ <td data-value="17" class="abs low">0/17</td>
197
+ <td data-value="0" class="pct low">0%</td>
198
+ <td data-value="40" class="abs low">0/40</td>
199
199
  </tr>
200
200
 
201
201
  <tr>
@@ -279,13 +279,13 @@
279
279
  <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
280
280
  </td>
281
281
  <td data-value="0" class="pct low">0%</td>
282
- <td data-value="121" class="abs low">0/121</td>
282
+ <td data-value="127" class="abs low">0/127</td>
283
283
  <td data-value="0" class="pct low">0%</td>
284
- <td data-value="49" class="abs low">0/49</td>
284
+ <td data-value="54" class="abs low">0/54</td>
285
285
  <td data-value="0" class="pct low">0%</td>
286
- <td data-value="25" class="abs low">0/25</td>
286
+ <td data-value="27" class="abs low">0/27</td>
287
287
  <td data-value="0" class="pct low">0%</td>
288
- <td data-value="118" class="abs low">0/118</td>
288
+ <td data-value="124" class="abs low">0/124</td>
289
289
  </tr>
290
290
 
291
291
  <tr>
@@ -386,7 +386,7 @@
386
386
  <div class='footer quiet pad2 space-top1 center small'>
387
387
  Code coverage generated by
388
388
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
389
- at 2023-06-15T15:49:15.198Z
389
+ at 2023-06-28T09:57:19.259Z
390
390
  </div>
391
391
  <script src="../../prettify.js"></script>
392
392
  <script>
@@ -796,7 +796,7 @@ export interface Options {
796
796
  <div class='footer quiet pad2 space-top1 center small'>
797
797
  Code coverage generated by
798
798
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
799
- at 2023-06-15T15:49:15.198Z
799
+ at 2023-06-28T09:57:19.259Z
800
800
  </div>
801
801
  <script src="../../prettify.js"></script>
802
802
  <script>
@@ -811,7 +811,7 @@ export interface MouseHandlerOptions {
811
811
  <div class='footer quiet pad2 space-top1 center small'>
812
812
  Code coverage generated by
813
813
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
814
- at 2023-06-15T15:49:15.198Z
814
+ at 2023-06-28T09:57:19.259Z
815
815
  </div>
816
816
  <script src="../../prettify.js"></script>
817
817
  <script>