@openreplay/tracker 11.0.2 → 11.0.3

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 (78) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/cjs/app/canvas.js +4 -6
  3. package/cjs/app/index.js +7 -6
  4. package/cjs/app/observer/iframe_observer.js +1 -1
  5. package/cjs/app/observer/shadow_root_observer.js +1 -1
  6. package/cjs/index.js +1 -1
  7. package/cjs/modules/Network/xhrProxy.js +1 -1
  8. package/coverage/clover.xml +267 -220
  9. package/coverage/coverage-final.json +2 -2
  10. package/coverage/lcov-report/index.html +22 -22
  11. package/coverage/lcov-report/main/app/canvas.ts.html +1 -1
  12. package/coverage/lcov-report/main/app/guards.ts.html +1 -1
  13. package/coverage/lcov-report/main/app/index.html +7 -7
  14. package/coverage/lcov-report/main/app/index.ts.html +17 -11
  15. package/coverage/lcov-report/main/app/logger.ts.html +1 -1
  16. package/coverage/lcov-report/main/app/messages.gen.ts.html +1 -1
  17. package/coverage/lcov-report/main/app/nodes.ts.html +1 -1
  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 +1 -1
  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 +1 -1
  23. package/coverage/lcov-report/main/app/sanitizer.ts.html +1 -1
  24. package/coverage/lcov-report/main/app/session.ts.html +1 -1
  25. package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
  26. package/coverage/lcov-report/main/index.html +1 -1
  27. package/coverage/lcov-report/main/index.ts.html +1 -1
  28. package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +1 -1
  29. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +1 -1
  30. package/coverage/lcov-report/main/modules/Network/index.html +1 -1
  31. package/coverage/lcov-report/main/modules/Network/index.ts.html +1 -1
  32. package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +1 -1
  33. package/coverage/lcov-report/main/modules/Network/utils.ts.html +1 -1
  34. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +1 -1
  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 +680 -179
  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 +1 -1
  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 +1 -1
  47. package/coverage/lcov-report/main/modules/index.html +20 -20
  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 +1 -1
  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/timing.ts.html +1 -1
  56. package/coverage/lcov-report/main/modules/userTesting/SignalManager.ts.html +1 -1
  57. package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +1 -1
  58. package/coverage/lcov-report/main/modules/userTesting/index.html +1 -1
  59. package/coverage/lcov-report/main/modules/userTesting/index.ts.html +1 -1
  60. package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +1 -1
  61. package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +1 -1
  62. package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +1 -1
  63. package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
  64. package/coverage/lcov-report/main/utils.ts.html +1 -1
  65. package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
  66. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +1 -1
  67. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
  68. package/coverage/lcov-report/webworker/QueueSender.ts.html +1 -1
  69. package/coverage/lcov-report/webworker/index.html +1 -1
  70. package/coverage/lcov-report/webworker/index.ts.html +1 -1
  71. package/coverage/lcov.info +502 -421
  72. package/lib/app/canvas.js +4 -6
  73. package/lib/app/index.js +7 -6
  74. package/lib/app/observer/iframe_observer.js +1 -1
  75. package/lib/app/observer/shadow_root_observer.js +1 -1
  76. package/lib/index.js +1 -1
  77. package/lib/modules/Network/xhrProxy.js +1 -1
  78. 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">74.1% </span>
26
+ <span class="strong">7.59% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>83/112</span>
28
+ <span class='fraction'>12/158</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">71.42% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>30/42</span>
35
+ <span class='fraction'>0/60</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
40
+ <span class="strong">4.08% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>28/42</span>
42
+ <span class='fraction'>2/49</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">76% </span>
47
+ <span class="strong">8.21% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>76/100</span>
49
+ <span class='fraction'>12/146</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 medium'></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>
@@ -301,7 +301,177 @@
301
301
  <a name='L236'></a><a href='#L236'>236</a>
302
302
  <a name='L237'></a><a href='#L237'>237</a>
303
303
  <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-neutral">&nbsp;</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
475
  <span class="cline-any cline-neutral">&nbsp;</span>
306
476
  <span class="cline-any cline-neutral">&nbsp;</span>
307
477
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -312,105 +482,152 @@
312
482
  <span class="cline-any cline-neutral">&nbsp;</span>
313
483
  <span class="cline-any cline-neutral">&nbsp;</span>
314
484
  <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-yes">1x</span>
316
- <span class="cline-any cline-yes">11x</span>
317
- <span class="cline-any cline-yes">11x</span>
318
485
  <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-yes">11x</span>
320
486
  <span class="cline-any cline-neutral">&nbsp;</span>
321
487
  <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-yes">6x</span>
323
488
  <span class="cline-any cline-neutral">&nbsp;</span>
324
489
  <span class="cline-any cline-neutral">&nbsp;</span>
325
490
  <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">1x</span>
327
- <span class="cline-any cline-yes">1x</span>
328
491
  <span class="cline-any cline-neutral">&nbsp;</span>
329
492
  <span class="cline-any cline-neutral">&nbsp;</span>
330
493
  <span class="cline-any cline-neutral">&nbsp;</span>
331
494
  <span class="cline-any cline-neutral">&nbsp;</span>
332
495
  <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-yes">1x</span>
333
501
  <span class="cline-any cline-yes">1x</span>
334
502
  <span class="cline-any cline-yes">1x</span>
335
503
  <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-yes">1x</span>
506
+ <span class="cline-any cline-yes">1x</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-neutral">&nbsp;</span>
509
+ <span class="cline-any cline-neutral">&nbsp;</span>
510
+ <span class="cline-any cline-no">&nbsp;</span>
511
+ <span class="cline-any cline-neutral">&nbsp;</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-no">&nbsp;</span>
336
515
  <span class="cline-any cline-no">&nbsp;</span>
337
516
  <span class="cline-any cline-neutral">&nbsp;</span>
338
517
  <span class="cline-any cline-neutral">&nbsp;</span>
339
518
  <span class="cline-any cline-neutral">&nbsp;</span>
340
519
  <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-yes">9x</span>
342
- <span class="cline-any cline-yes">8x</span>
343
- <span class="cline-any cline-yes">8x</span>
344
- <span class="cline-any cline-yes">8x</span>
345
520
  <span class="cline-any cline-neutral">&nbsp;</span>
346
521
  <span class="cline-any cline-no">&nbsp;</span>
522
+ <span class="cline-any cline-no">&nbsp;</span>
523
+ <span class="cline-any cline-no">&nbsp;</span>
524
+ <span class="cline-any cline-no">&nbsp;</span>
525
+ <span class="cline-any cline-no">&nbsp;</span>
526
+ <span class="cline-any cline-no">&nbsp;</span>
527
+ <span class="cline-any cline-no">&nbsp;</span>
347
528
  <span class="cline-any cline-neutral">&nbsp;</span>
348
529
  <span class="cline-any cline-neutral">&nbsp;</span>
349
530
  <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-no">&nbsp;</span>
532
+ <span class="cline-any cline-no">&nbsp;</span>
533
+ <span class="cline-any cline-no">&nbsp;</span>
534
+ <span class="cline-any cline-no">&nbsp;</span>
535
+ <span class="cline-any cline-no">&nbsp;</span>
536
+ <span class="cline-any cline-no">&nbsp;</span>
537
+ <span class="cline-any cline-no">&nbsp;</span>
538
+ <span class="cline-any cline-no">&nbsp;</span>
350
539
  <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-yes">6x</span>
352
540
  <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-yes">6x</span>
354
541
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">1x</span>
356
- <span class="cline-any cline-yes">1x</span>
542
+ <span class="cline-any cline-no">&nbsp;</span>
543
+ <span class="cline-any cline-no">&nbsp;</span>
544
+ <span class="cline-any cline-no">&nbsp;</span>
545
+ <span class="cline-any cline-no">&nbsp;</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span>
547
+ <span class="cline-any cline-no">&nbsp;</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-neutral">&nbsp;</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-no">&nbsp;</span>
553
+ <span class="cline-any cline-neutral">&nbsp;</span>
554
+ <span class="cline-any cline-no">&nbsp;</span>
555
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
557
  <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-yes">1x</span>
359
- <span class="cline-any cline-yes">1x</span>
360
558
  <span class="cline-any cline-neutral">&nbsp;</span>
361
559
  <span class="cline-any cline-yes">1x</span>
362
560
  <span class="cline-any cline-yes">1x</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
561
  <span class="cline-any cline-yes">1x</span>
365
562
  <span class="cline-any cline-yes">1x</span>
366
563
  <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-yes">2x</span>
368
- <span class="cline-any cline-yes">2x</span>
564
+ <span class="cline-any cline-no">&nbsp;</span>
565
+ <span class="cline-any cline-neutral">&nbsp;</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
568
  <span class="cline-any cline-neutral">&nbsp;</span>
370
569
  <span class="cline-any cline-no">&nbsp;</span>
371
570
  <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-no">&nbsp;</span>
372
572
  <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-no">&nbsp;</span>
574
+ <span class="cline-any cline-no">&nbsp;</span>
373
575
  <span class="cline-any cline-neutral">&nbsp;</span>
576
+ <span class="cline-any cline-no">&nbsp;</span>
577
+ <span class="cline-any cline-no">&nbsp;</span>
374
578
  <span class="cline-any cline-neutral">&nbsp;</span>
375
579
  <span class="cline-any cline-no">&nbsp;</span>
376
580
  <span class="cline-any cline-no">&nbsp;</span>
377
581
  <span class="cline-any cline-neutral">&nbsp;</span>
378
582
  <span class="cline-any cline-no">&nbsp;</span>
379
583
  <span class="cline-any cline-no">&nbsp;</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
585
  <span class="cline-any cline-no">&nbsp;</span>
381
586
  <span class="cline-any cline-no">&nbsp;</span>
587
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
588
  <span class="cline-any cline-no">&nbsp;</span>
383
589
  <span class="cline-any cline-neutral">&nbsp;</span>
384
590
  <span class="cline-any cline-neutral">&nbsp;</span>
385
591
  <span class="cline-any cline-neutral">&nbsp;</span>
386
592
  <span class="cline-any cline-neutral">&nbsp;</span>
593
+ <span class="cline-any cline-no">&nbsp;</span>
594
+ <span class="cline-any cline-no">&nbsp;</span>
595
+ <span class="cline-any cline-neutral">&nbsp;</span>
596
+ <span class="cline-any cline-no">&nbsp;</span>
597
+ <span class="cline-any cline-no">&nbsp;</span>
598
+ <span class="cline-any cline-no">&nbsp;</span>
599
+ <span class="cline-any cline-no">&nbsp;</span>
600
+ <span class="cline-any cline-no">&nbsp;</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
603
  <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-yes">11x</span>
389
604
  <span class="cline-any cline-neutral">&nbsp;</span>
390
605
  <span class="cline-any cline-neutral">&nbsp;</span>
391
606
  <span class="cline-any cline-yes">1x</span>
392
- <span class="cline-any cline-yes">6x</span>
393
- <span class="cline-any cline-yes">6x</span>
394
- <span class="cline-any cline-yes">1x</span>
395
607
  <span class="cline-any cline-neutral">&nbsp;</span>
396
608
  <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-no">&nbsp;</span>
610
+ <span class="cline-any cline-no">&nbsp;</span>
611
+ <span class="cline-any cline-no">&nbsp;</span>
612
+ <span class="cline-any cline-no">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-no">&nbsp;</span>
616
+ <span class="cline-any cline-no">&nbsp;</span>
617
+ <span class="cline-any cline-no">&nbsp;</span>
397
618
  <span class="cline-any cline-neutral">&nbsp;</span>
398
619
  <span class="cline-any cline-neutral">&nbsp;</span>
399
620
  <span class="cline-any cline-neutral">&nbsp;</span>
400
621
  <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-yes">2x</span>
402
- <span class="cline-any cline-yes">4x</span>
403
622
  <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-yes">2x</span>
405
- <span class="cline-any cline-yes">2x</span>
406
623
  <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-yes">4x</span>
624
+ <span class="cline-any cline-no">&nbsp;</span>
625
+ <span class="cline-any cline-no">&nbsp;</span>
408
626
  <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-yes">2x</span>
410
- <span class="cline-any cline-yes">2x</span>
627
+ <span class="cline-any cline-no">&nbsp;</span>
628
+ <span class="cline-any cline-no">&nbsp;</span>
411
629
  <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-yes">2x</span>
413
- <span class="cline-any cline-yes">2x</span>
630
+ <span class="cline-any cline-no">&nbsp;</span>
414
631
  <span class="cline-any cline-neutral">&nbsp;</span>
415
632
  <span class="cline-any cline-no">&nbsp;</span>
416
633
  <span class="cline-any cline-no">&nbsp;</span>
@@ -419,77 +636,78 @@
419
636
  <span class="cline-any cline-no">&nbsp;</span>
420
637
  <span class="cline-any cline-neutral">&nbsp;</span>
421
638
  <span class="cline-any cline-no">&nbsp;</span>
639
+ <span class="cline-any cline-no">&nbsp;</span>
422
640
  <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-yes">4x</span>
641
+ <span class="cline-any cline-no">&nbsp;</span>
642
+ <span class="cline-any cline-no">&nbsp;</span>
424
643
  <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-yes">4x</span>
426
- <span class="cline-any cline-yes">2x</span>
644
+ <span class="cline-any cline-no">&nbsp;</span>
427
645
  <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-no">&nbsp;</span>
428
647
  <span class="cline-any cline-neutral">&nbsp;</span>
648
+ <span class="cline-any cline-no">&nbsp;</span>
649
+ <span class="cline-any cline-no">&nbsp;</span>
429
650
  <span class="cline-any cline-neutral">&nbsp;</span>
430
651
  <span class="cline-any cline-neutral">&nbsp;</span>
431
652
  <span class="cline-any cline-neutral">&nbsp;</span>
432
653
  <span class="cline-any cline-neutral">&nbsp;</span>
433
654
  <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-yes">1x</span>
435
- <span class="cline-any cline-yes">1x</span>
436
- <span class="cline-any cline-yes">1x</span>
437
- <span class="cline-any cline-yes">1x</span>
438
- <span class="cline-any cline-yes">1x</span>
439
- <span class="cline-any cline-yes">1x</span>
440
655
  <span class="cline-any cline-neutral">&nbsp;</span>
441
656
  <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-no">&nbsp;</span>
658
+ <span class="cline-any cline-no">&nbsp;</span>
659
+ <span class="cline-any cline-no">&nbsp;</span>
660
+ <span class="cline-any cline-no">&nbsp;</span>
661
+ <span class="cline-any cline-no">&nbsp;</span>
662
+ <span class="cline-any cline-no">&nbsp;</span>
442
663
  <span class="cline-any cline-neutral">&nbsp;</span>
443
664
  <span class="cline-any cline-neutral">&nbsp;</span>
444
665
  <span class="cline-any cline-neutral">&nbsp;</span>
445
666
  <span class="cline-any cline-neutral">&nbsp;</span>
446
667
  <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-yes">1x</span>
448
- <span class="cline-any cline-yes">1x</span>
449
668
  <span class="cline-any cline-neutral">&nbsp;</span>
450
- <span class="cline-any cline-yes">1x</span>
451
- <span class="cline-any cline-yes">1x</span>
669
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
+ <span class="cline-any cline-no">&nbsp;</span>
671
+ <span class="cline-any cline-no">&nbsp;</span>
672
+ <span class="cline-any cline-no">&nbsp;</span>
452
673
  <span class="cline-any cline-no">&nbsp;</span>
453
674
  <span class="cline-any cline-no">&nbsp;</span>
454
675
  <span class="cline-any cline-no">&nbsp;</span>
455
676
  <span class="cline-any cline-neutral">&nbsp;</span>
456
677
  <span class="cline-any cline-neutral">&nbsp;</span>
457
678
  <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-yes">1x</span>
459
- <span class="cline-any cline-yes">1x</span>
460
- <span class="cline-any cline-yes">1x</span>
461
- <span class="cline-any cline-yes">1x</span>
462
- <span class="cline-any cline-yes">1x</span>
463
- <span class="cline-any cline-yes">1x</span>
464
679
  <span class="cline-any cline-neutral">&nbsp;</span>
465
680
  <span class="cline-any cline-neutral">&nbsp;</span>
466
681
  <span class="cline-any cline-neutral">&nbsp;</span>
467
682
  <span class="cline-any cline-neutral">&nbsp;</span>
683
+ <span class="cline-any cline-no">&nbsp;</span>
684
+ <span class="cline-any cline-no">&nbsp;</span>
685
+ <span class="cline-any cline-no">&nbsp;</span>
686
+ <span class="cline-any cline-no">&nbsp;</span>
687
+ <span class="cline-any cline-no">&nbsp;</span>
688
+ <span class="cline-any cline-no">&nbsp;</span>
468
689
  <span class="cline-any cline-neutral">&nbsp;</span>
469
690
  <span class="cline-any cline-neutral">&nbsp;</span>
470
691
  <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-yes">1x</span>
472
- <span class="cline-any cline-yes">1x</span>
473
- <span class="cline-any cline-yes">1x</span>
474
- <span class="cline-any cline-yes">1x</span>
475
- <span class="cline-any cline-yes">1x</span>
476
- <span class="cline-any cline-yes">1x</span>
477
692
  <span class="cline-any cline-neutral">&nbsp;</span>
478
693
  <span class="cline-any cline-neutral">&nbsp;</span>
479
694
  <span class="cline-any cline-neutral">&nbsp;</span>
480
695
  <span class="cline-any cline-neutral">&nbsp;</span>
696
+ <span class="cline-any cline-no">&nbsp;</span>
697
+ <span class="cline-any cline-no">&nbsp;</span>
698
+ <span class="cline-any cline-no">&nbsp;</span>
699
+ <span class="cline-any cline-neutral">&nbsp;</span>
700
+ <span class="cline-any cline-no">&nbsp;</span>
701
+ <span class="cline-any cline-no">&nbsp;</span>
702
+ <span class="cline-any cline-no">&nbsp;</span>
703
+ <span class="cline-any cline-no">&nbsp;</span>
704
+ <span class="cline-any cline-no">&nbsp;</span>
705
+ <span class="cline-any cline-neutral">&nbsp;</span>
706
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
707
  <span class="cline-any cline-neutral">&nbsp;</span>
482
708
  <span class="cline-any cline-neutral">&nbsp;</span>
483
709
  <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-yes">1x</span>
485
- <span class="cline-any cline-yes">1x</span>
486
- <span class="cline-any cline-yes">1x</span>
487
710
  <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-yes">1x</span>
489
- <span class="cline-any cline-yes">1x</span>
490
- <span class="cline-any cline-yes">1x</span>
491
- <span class="cline-any cline-yes">1x</span>
492
- <span class="cline-any cline-yes">1x</span>
493
711
  <span class="cline-any cline-neutral">&nbsp;</span>
494
712
  <span class="cline-any cline-neutral">&nbsp;</span>
495
713
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -529,14 +747,130 @@
529
747
  <span class="cline-any cline-neutral">&nbsp;</span>
530
748
  <span class="cline-any cline-neutral">&nbsp;</span>
531
749
  <span class="cline-any cline-yes">1x</span>
532
- <span class="cline-any cline-yes">5x</span>
533
750
  <span class="cline-any cline-no">&nbsp;</span>
751
+ <span class="cline-any cline-no">&nbsp;</span>
752
+ <span class="cline-any cline-no">&nbsp;</span>
753
+ <span class="cline-any cline-no">&nbsp;</span>
754
+ <span class="cline-any cline-no">&nbsp;</span>
755
+ <span class="cline-any cline-no">&nbsp;</span>
756
+ <span class="cline-any cline-no">&nbsp;</span>
757
+ <span class="cline-any cline-no">&nbsp;</span>
758
+ <span class="cline-any cline-no">&nbsp;</span>
759
+ <span class="cline-any cline-no">&nbsp;</span>
760
+ <span class="cline-any cline-no">&nbsp;</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
763
  <span class="cline-any cline-yes">1x</span>
535
764
  <span class="cline-any cline-no">&nbsp;</span>
765
+ <span class="cline-any cline-neutral">&nbsp;</span>
766
+ <span class="cline-any cline-neutral">&nbsp;</span>
767
+ <span class="cline-any cline-neutral">&nbsp;</span>
768
+ <span class="cline-any cline-neutral">&nbsp;</span>
769
+ <span class="cline-any cline-neutral">&nbsp;</span>
770
+ <span class="cline-any cline-neutral">&nbsp;</span>
771
+ <span class="cline-any cline-neutral">&nbsp;</span>
772
+ <span class="cline-any cline-neutral">&nbsp;</span>
773
+ <span class="cline-any cline-neutral">&nbsp;</span>
774
+ <span class="cline-any cline-no">&nbsp;</span>
775
+ <span class="cline-any cline-no">&nbsp;</span>
776
+ <span class="cline-any cline-neutral">&nbsp;</span>
777
+ <span class="cline-any cline-no">&nbsp;</span>
778
+ <span class="cline-any cline-neutral">&nbsp;</span>
779
+ <span class="cline-any cline-neutral">&nbsp;</span>
780
+ <span class="cline-any cline-no">&nbsp;</span>
781
+ <span class="cline-any cline-neutral">&nbsp;</span>
782
+ <span class="cline-any cline-neutral">&nbsp;</span>
783
+ <span class="cline-any cline-neutral">&nbsp;</span>
784
+ <span class="cline-any cline-neutral">&nbsp;</span>
785
+ <span class="cline-any cline-neutral">&nbsp;</span>
786
+ <span class="cline-any cline-no">&nbsp;</span>
787
+ <span class="cline-any cline-neutral">&nbsp;</span>
788
+ <span class="cline-any cline-no">&nbsp;</span>
789
+ <span class="cline-any cline-neutral">&nbsp;</span>
790
+ <span class="cline-any cline-neutral">&nbsp;</span>
791
+ <span class="cline-any cline-neutral">&nbsp;</span>
792
+ <span class="cline-any cline-neutral">&nbsp;</span>
793
+ <span class="cline-any cline-neutral">&nbsp;</span>
794
+ <span class="cline-any cline-no">&nbsp;</span>
795
+ <span class="cline-any cline-neutral">&nbsp;</span>
796
+ <span class="cline-any cline-no">&nbsp;</span>
797
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
799
+ <span class="cline-any cline-neutral">&nbsp;</span>
800
+ <span class="cline-any cline-neutral">&nbsp;</span>
801
+ <span class="cline-any cline-neutral">&nbsp;</span>
802
+ <span class="cline-any cline-neutral">&nbsp;</span>
803
+ <span class="cline-any cline-no">&nbsp;</span>
804
+ <span class="cline-any cline-neutral">&nbsp;</span>
805
+ <span class="cline-any cline-no">&nbsp;</span>
806
+ <span class="cline-any cline-neutral">&nbsp;</span>
807
+ <span class="cline-any cline-neutral">&nbsp;</span>
808
+ <span class="cline-any cline-neutral">&nbsp;</span>
809
+ <span class="cline-any cline-neutral">&nbsp;</span>
810
+ <span class="cline-any cline-neutral">&nbsp;</span>
811
+ <span class="cline-any cline-neutral">&nbsp;</span>
812
+ <span class="cline-any cline-no">&nbsp;</span>
813
+ <span class="cline-any cline-neutral">&nbsp;</span>
814
+ <span class="cline-any cline-no">&nbsp;</span>
815
+ <span class="cline-any cline-neutral">&nbsp;</span>
816
+ <span class="cline-any cline-neutral">&nbsp;</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-neutral">&nbsp;</span>
819
+ <span class="cline-any cline-neutral">&nbsp;</span>
820
+ <span class="cline-any cline-neutral">&nbsp;</span>
821
+ <span class="cline-any cline-neutral">&nbsp;</span>
822
+ <span class="cline-any cline-no">&nbsp;</span>
823
+ <span class="cline-any cline-neutral">&nbsp;</span>
824
+ <span class="cline-any cline-no">&nbsp;</span>
825
+ <span class="cline-any cline-neutral">&nbsp;</span>
826
+ <span class="cline-any cline-neutral">&nbsp;</span>
827
+ <span class="cline-any cline-neutral">&nbsp;</span>
828
+ <span class="cline-any cline-neutral">&nbsp;</span>
829
+ <span class="cline-any cline-neutral">&nbsp;</span>
830
+ <span class="cline-any cline-neutral">&nbsp;</span>
831
+ <span class="cline-any cline-no">&nbsp;</span>
832
+ <span class="cline-any cline-neutral">&nbsp;</span>
833
+ <span class="cline-any cline-no">&nbsp;</span>
834
+ <span class="cline-any cline-neutral">&nbsp;</span>
835
+ <span class="cline-any cline-neutral">&nbsp;</span>
836
+ <span class="cline-any cline-neutral">&nbsp;</span>
837
+ <span class="cline-any cline-neutral">&nbsp;</span>
838
+ <span class="cline-any cline-neutral">&nbsp;</span>
839
+ <span class="cline-any cline-no">&nbsp;</span>
840
+ <span class="cline-any cline-neutral">&nbsp;</span>
841
+ <span class="cline-any cline-no">&nbsp;</span>
842
+ <span class="cline-any cline-neutral">&nbsp;</span>
843
+ <span class="cline-any cline-neutral">&nbsp;</span>
844
+ <span class="cline-any cline-neutral">&nbsp;</span>
845
+ <span class="cline-any cline-neutral">&nbsp;</span>
846
+ <span class="cline-any cline-neutral">&nbsp;</span>
847
+ <span class="cline-any cline-no">&nbsp;</span>
848
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
849
  <span class="cline-any cline-no">&nbsp;</span>
850
+ <span class="cline-any cline-neutral">&nbsp;</span>
851
+ <span class="cline-any cline-neutral">&nbsp;</span>
852
+ <span class="cline-any cline-neutral">&nbsp;</span>
853
+ <span class="cline-any cline-neutral">&nbsp;</span>
854
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
855
  <span class="cline-any cline-no">&nbsp;</span>
856
+ <span class="cline-any cline-neutral">&nbsp;</span>
857
+ <span class="cline-any cline-no">&nbsp;</span>
858
+ <span class="cline-any cline-neutral">&nbsp;</span>
859
+ <span class="cline-any cline-neutral">&nbsp;</span>
860
+ <span class="cline-any cline-neutral">&nbsp;</span>
861
+ <span class="cline-any cline-neutral">&nbsp;</span>
862
+ <span class="cline-any cline-neutral">&nbsp;</span>
863
+ <span class="cline-any cline-no">&nbsp;</span>
864
+ <span class="cline-any cline-neutral">&nbsp;</span>
865
+ <span class="cline-any cline-no">&nbsp;</span>
866
+ <span class="cline-any cline-neutral">&nbsp;</span>
867
+ <span class="cline-any cline-neutral">&nbsp;</span>
868
+ <span class="cline-any cline-neutral">&nbsp;</span>
869
+ <span class="cline-any cline-neutral">&nbsp;</span>
870
+ <span class="cline-any cline-neutral">&nbsp;</span>
538
871
  <span class="cline-any cline-no">&nbsp;</span>
539
- <span class="cline-any cline-yes">2x</span>
872
+ <span class="cline-any cline-neutral">&nbsp;</span>
873
+ <span class="cline-any cline-neutral">&nbsp;</span>
540
874
  <span class="cline-any cline-no">&nbsp;</span>
541
875
  <span class="cline-any cline-neutral">&nbsp;</span>
542
876
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import Message, {
@@ -550,61 +884,112 @@
550
884
  import App, { StartOptions } from '../app/index.js'
551
885
  import { IFeatureFlag } from './featureFlags.js'
552
886
  &nbsp;
887
+ interface Filter {
888
+ filters: {
889
+ operator: string
890
+ value: string[]
891
+ type: string
892
+ source?: string
893
+ }[]
894
+ operator: string
895
+ value: string[]
896
+ type: string
897
+ source?: string
898
+ }
899
+ interface ApiResponse {
900
+ capture_rate: number
901
+ name: string
902
+ filters: Filter[]
903
+ }
904
+ &nbsp;
553
905
  export default class ConditionsManager {
554
906
  conditions: Condition[] = []
555
907
  hasStarted = false
556
908
  &nbsp;
557
- constructor(private readonly app: App, private readonly startParams: StartOptions) {}
909
+ constructor(
910
+ private readonly app: App,
911
+ private readonly startParams: StartOptions,
912
+ ) {}
558
913
  &nbsp;
559
- setConditions(conditions: Condition[]) {
560
- this.conditions = conditions
914
+ <span class="fstat-no" title="function not covered" > setConditions(</span>conditions: Condition[]) {
915
+ <span class="cstat-no" title="statement not covered" > this.conditions = conditions</span>
561
916
  }
562
917
  &nbsp;
563
- async fetchConditions(token: string) {
564
- try {
565
- const r = await fetch(`${this.app.options.ingestPoint}/v1/web/conditions`, {
918
+ async <span class="fstat-no" title="function not covered" >fetchConditions(</span>projectId: string, token: string) {
919
+ <span class="cstat-no" title="statement not covered" > try {</span>
920
+ const r = <span class="cstat-no" title="statement not covered" >await fetch(`${this.app.options.ingestPoint}/v1/web/conditions/${projectId}`, {</span>
566
921
  method: 'GET',
567
922
  headers: {
568
923
  Authorization: `Bearer ${token}`,
569
924
  },
570
925
  })
571
- const { conditions } = await r.json()
572
- this.conditions = conditions as Condition[]
926
+ const { conditions } = (<span class="cstat-no" title="statement not covered" >await r.json())</span> as { conditions: ApiResponse[] }
927
+ const mappedConditions: Condition[] = <span class="cstat-no" title="statement not covered" >[]</span>
928
+ const processFilter = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(f</span>ilter: Filter) =&gt; {</span>
929
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (filter.value.length) {</span>
930
+ const resultCondition = <span class="cstat-no" title="statement not covered" >mapCondition(filter)</span>
931
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (resultCondition.type) {</span>
932
+ <span class="cstat-no" title="statement not covered" > return resultCondition</span>
933
+ }
934
+ }
935
+ }
936
+ <span class="cstat-no" title="statement not covered" > conditions.forEach(<span class="fstat-no" title="function not covered" >(c</span>) =&gt; {</span>
937
+ const filters = <span class="cstat-no" title="statement not covered" >c.filters</span>
938
+ <span class="cstat-no" title="statement not covered" > filters.forEach(<span class="fstat-no" title="function not covered" >(f</span>ilter) =&gt; {</span>
939
+ <span class="cstat-no" title="statement not covered" > if (filter.type === 'fetch') {</span>
940
+ <span class="cstat-no" title="statement not covered" > filter.filters.forEach(<span class="fstat-no" title="function not covered" >(f</span>) =&gt; {</span>
941
+ const cond = <span class="cstat-no" title="statement not covered" >processFilter(f as unknown as Filter)</span>
942
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (cond) {</span>
943
+ <span class="cstat-no" title="statement not covered" > mappedConditions.push({ ...cond, name: c.name })</span>
944
+ }
945
+ })
946
+ } else {
947
+ const cond = <span class="cstat-no" title="statement not covered" >processFilter(filter)</span>
948
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (cond) {</span>
949
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (cond.type === 'session_duration') {</span>
950
+ <span class="cstat-no" title="statement not covered" > this.processDuration(cond.value[0], c.name)</span>
951
+ }
952
+ <span class="cstat-no" title="statement not covered" > mappedConditions.push({ ...cond, name: c.name })</span>
953
+ }
954
+ }
955
+ })
956
+ })
957
+ <span class="cstat-no" title="statement not covered" > this.conditions = mappedConditions</span>
573
958
  } catch (e) {
574
959
  <span class="cstat-no" title="statement not covered" > this.app.debug.error('Critical: cannot fetch start conditions')</span>
575
960
  }
576
961
  }
577
962
  &nbsp;
578
- trigger() {
579
- if (this.hasStarted) return
963
+ trigger(conditionName: string) {
964
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.hasStarted) <span class="cstat-no" title="statement not covered" >return</span>
580
965
  try {
581
966
  this.hasStarted = true
582
- void this.app.start(this.startParams)
967
+ void this.app.start(this.startParams, undefined, conditionName)
583
968
  } catch (e) {
584
969
  <span class="cstat-no" title="statement not covered" > this.app.debug.error(e)</span>
585
970
  }
586
971
  }
587
972
  &nbsp;
588
- processMessage(message: Message) {
589
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this.hasStarted) <span class="cstat-no" title="statement not covered" >return</span>
973
+ <span class="fstat-no" title="function not covered" > processMessage(</span>message: Message) {
974
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.hasStarted) <span class="cstat-no" title="statement not covered" >return</span></span>
590
975
  &nbsp;
591
- switch (message[0]) {
976
+ <span class="cstat-no" title="statement not covered" > switch (message[0]) {</span>
592
977
  case Type.JSException:
593
- this.jsExceptionEvent(message)
594
- break
978
+ <span class="cstat-no" title="statement not covered" > this.jsExceptionEvent(message)</span>
979
+ <span class="cstat-no" title="statement not covered" > break</span>
595
980
  case Type.CustomEvent:
596
- this.customEvent(message)
597
- break
981
+ <span class="cstat-no" title="statement not covered" > this.customEvent(message)</span>
982
+ <span class="cstat-no" title="statement not covered" > break</span>
598
983
  case Type.MouseClick:
599
- this.clickEvent(message)
600
- break
984
+ <span class="cstat-no" title="statement not covered" > this.clickEvent(message)</span>
985
+ <span class="cstat-no" title="statement not covered" > break</span>
601
986
  case Type.SetPageLocation:
602
- this.pageLocationEvent(message)
603
- break
987
+ <span class="cstat-no" title="statement not covered" > this.pageLocationEvent(message)</span>
988
+ <span class="cstat-no" title="statement not covered" > break</span>
604
989
  case Type.NetworkRequest:
605
- this.networkRequest(message)
606
- break
607
- <span class="branch-5 cbranch-no" title="branch not covered" > default:</span>
990
+ <span class="cstat-no" title="statement not covered" > this.networkRequest(message)</span>
991
+ <span class="cstat-no" title="statement not covered" > break</span>
992
+ default:
608
993
  <span class="cstat-no" title="statement not covered" > break</span>
609
994
  }
610
995
  }
@@ -616,8 +1001,8 @@ export default class ConditionsManager {
616
1001
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (flagConds.length) {</span>
617
1002
  <span class="cstat-no" title="statement not covered" > flagConds.forEach(<span class="fstat-no" title="function not covered" >(f</span>lagCond) =&gt; {</span>
618
1003
  const operator = <span class="cstat-no" title="statement not covered" >operators[flagCond.operator]</span>
619
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (operator &amp;&amp; flag.some(<span class="fstat-no" title="function not covered" >(f</span>) =&gt; <span class="cstat-no" title="statement not covered" >operator(f.key, flagCond.value))</span>) {</span>
620
- <span class="cstat-no" title="statement not covered" > this.trigger()</span>
1004
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (operator &amp;&amp; flag.find(<span class="fstat-no" title="function not covered" >(f</span>) =&gt; <span class="cstat-no" title="statement not covered" >operator(f.key, flagCond.value))</span>) {</span>
1005
+ <span class="cstat-no" title="statement not covered" > this.trigger(flagCond.name)</span>
621
1006
  }
622
1007
  })
623
1008
  }
@@ -625,109 +1010,103 @@ export default class ConditionsManager {
625
1010
  &nbsp;
626
1011
  durationInt: ReturnType&lt;typeof setInterval&gt; | null = null
627
1012
  &nbsp;
628
- processDuration(durationSeconds: number) {
629
- this.durationInt = setInterval(() =&gt; {
630
- const sessionLength = performance.now()
631
- if (sessionLength &gt; durationSeconds * 1000) {
632
- this.trigger()
1013
+ <span class="fstat-no" title="function not covered" > processDuration(</span>durationMs: number, condName: string) {
1014
+ <span class="cstat-no" title="statement not covered" > this.durationInt = setInterval(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1015
+ const sessionLength = <span class="cstat-no" title="statement not covered" >performance.now()</span>
1016
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (sessionLength &gt; durationMs) {</span>
1017
+ <span class="cstat-no" title="statement not covered" > this.trigger(condName)</span>
633
1018
  }
634
1019
  }, 1000)
1020
+ <span class="cstat-no" title="statement not covered" > this.app.attachStopCallback(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1021
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.durationInt) {</span>
1022
+ <span class="cstat-no" title="statement not covered" > clearInterval(this.durationInt)</span>
1023
+ }
1024
+ })
635
1025
  }
636
1026
  &nbsp;
637
- networkRequest(message: NetworkRequest) {
1027
+ <span class="fstat-no" title="function not covered" > networkRequest(</span>message: NetworkRequest) {
638
1028
  // method - 2, url - 3, status - 6, duration - 8
639
- const reqConds = this.conditions.filter(
640
- (c) =&gt; c.type === 'network_request',
1029
+ const reqConds = <span class="cstat-no" title="statement not covered" >this.conditions.filter(</span>
1030
+ <span class="fstat-no" title="function not covered" > (c</span>) =&gt; <span class="cstat-no" title="statement not covered" >c.type === 'network_request',</span>
641
1031
  ) as NetworkRequestCondition[]
642
- if (reqConds.length) {
643
- reqConds.forEach((reqCond) =&gt; {
1032
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (reqConds.length) {</span>
1033
+ <span class="cstat-no" title="statement not covered" > reqConds.forEach(<span class="fstat-no" title="function not covered" >(r</span>eqCond) =&gt; {</span>
644
1034
  let value
645
- switch (reqCond.key) {
1035
+ <span class="cstat-no" title="statement not covered" > switch (reqCond.key) {</span>
646
1036
  case 'url':
647
- value = message[3]
648
- break
1037
+ <span class="cstat-no" title="statement not covered" > value = message[3]</span>
1038
+ <span class="cstat-no" title="statement not covered" > break</span>
649
1039
  case 'status':
650
- value = message[6]
651
- break
652
- <span class="branch-2 cbranch-no" title="branch not covered" > case 'method':</span>
1040
+ <span class="cstat-no" title="statement not covered" > value = message[6]</span>
1041
+ <span class="cstat-no" title="statement not covered" > break</span>
1042
+ case 'method':
653
1043
  <span class="cstat-no" title="statement not covered" > value = message[2]</span>
654
1044
  <span class="cstat-no" title="statement not covered" > break</span>
655
- <span class="branch-3 cbranch-no" title="branch not covered" > case 'duration':</span>
1045
+ case 'duration':
656
1046
  <span class="cstat-no" title="statement not covered" > value = message[8]</span>
657
1047
  <span class="cstat-no" title="statement not covered" > break</span>
658
- <span class="branch-4 cbranch-no" title="branch not covered" > default:</span>
1048
+ default:
659
1049
  <span class="cstat-no" title="statement not covered" > break</span>
660
1050
  }
661
- const operator = operators[reqCond.operator] as (a: string, b: string[]) =&gt; boolean
1051
+ const operator = <span class="cstat-no" title="statement not covered" >operators[reqCond.operator] as (a: string, b: string[]) =&gt; boolean</span>
662
1052
  // @ts-ignore
663
- if (operator &amp;&amp; operator(value, reqCond.value)) {
664
- this.trigger()
1053
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (operator &amp;&amp; operator(value, reqCond.value)) {</span>
1054
+ <span class="cstat-no" title="statement not covered" > this.trigger(reqCond.name)</span>
665
1055
  }
666
1056
  })
667
1057
  }
668
1058
  }
669
1059
  &nbsp;
670
- customEvent(message: CustomEvent) {
1060
+ <span class="fstat-no" title="function not covered" > customEvent(</span>message: CustomEvent) {
671
1061
  // name - 1
672
- const evConds = this.conditions.filter((c) =&gt; c.type === 'custom_event') as CommonCondition[]
673
- if (evConds.length) {
674
- evConds.forEach((evCond) =&gt; {
675
- const operator = operators[evCond.operator] as (a: string, b: string[]) =&gt; boolean
676
- if (operator &amp;&amp; operator(message[1], evCond.value)) {
677
- this.trigger()
1062
+ const evConds = <span class="cstat-no" title="statement not covered" >this.conditions.filter(<span class="fstat-no" title="function not covered" >(c</span>) =&gt; <span class="cstat-no" title="statement not covered" >c.type === 'custom_event')</span> as CommonCondition[]</span>
1063
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (evConds.length) {</span>
1064
+ <span class="cstat-no" title="statement not covered" > evConds.forEach(<span class="fstat-no" title="function not covered" >(e</span>vCond) =&gt; {</span>
1065
+ const operator = <span class="cstat-no" title="statement not covered" >operators[evCond.operator] as (a: string, b: string[]) =&gt; boolean</span>
1066
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (operator &amp;&amp; operator(message[1], evCond.value)) {</span>
1067
+ <span class="cstat-no" title="statement not covered" > this.trigger(evCond.name)</span>
678
1068
  }
679
1069
  })
680
1070
  }
681
1071
  }
682
1072
  &nbsp;
683
- clickEvent(message: MouseClick) {
1073
+ <span class="fstat-no" title="function not covered" > clickEvent(</span>message: MouseClick) {
684
1074
  // label - 3, selector - 4
685
- const selectorConds = this.conditions.filter(
686
- (c) =&gt; c.type === 'click_selector',
687
- ) as CommonCondition[]
688
- if (selectorConds) {
689
- selectorConds.forEach(<span class="fstat-no" title="function not covered" >(s</span>electorCond) =&gt; {
690
- const operator = <span class="cstat-no" title="statement not covered" >operators[selectorCond.operator] as (a: string, b: string[]) =&gt; boolean</span>
691
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (operator &amp;&amp; operator(message[4], selectorCond.value)) {</span>
692
- <span class="cstat-no" title="statement not covered" > this.trigger()</span>
693
- }
694
- })
695
- }
696
- const labelConds = this.conditions.filter((c) =&gt; c.type === 'click_label') as CommonCondition[]
697
- if (labelConds) {
698
- labelConds.forEach((labelCond) =&gt; {
699
- const operator = operators[labelCond.operator] as (a: string, b: string[]) =&gt; boolean
700
- if (operator &amp;&amp; operator(message[3], labelCond.value)) {
701
- this.trigger()
1075
+ const clickCond = <span class="cstat-no" title="statement not covered" >this.conditions.filter(<span class="fstat-no" title="function not covered" >(c</span>) =&gt; <span class="cstat-no" title="statement not covered" >c.type === 'click')</span> as CommonCondition[]</span>
1076
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (clickCond.length) {</span>
1077
+ <span class="cstat-no" title="statement not covered" > clickCond.forEach(<span class="fstat-no" title="function not covered" >(c</span>lick) =&gt; {</span>
1078
+ const operator = <span class="cstat-no" title="statement not covered" >operators[click.operator] as (a: string, b: string[]) =&gt; boolean</span>
1079
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (operator &amp;&amp; (operator(message[3], click.value) || operator(message[4], click.value))) {</span>
1080
+ <span class="cstat-no" title="statement not covered" > this.trigger(click.name)</span>
702
1081
  }
703
1082
  })
704
1083
  }
705
1084
  }
706
1085
  &nbsp;
707
- pageLocationEvent(message: SetPageLocation) {
1086
+ <span class="fstat-no" title="function not covered" > pageLocationEvent(</span>message: SetPageLocation) {
708
1087
  // url - 1
709
- const urlConds = this.conditions.filter((c) =&gt; c.type === 'visited_url') as CommonCondition[]
710
- if (urlConds) {
711
- urlConds.forEach((urlCond) =&gt; {
712
- const operator = operators[urlCond.operator] as (a: string, b: string[]) =&gt; boolean
713
- if (operator &amp;&amp; operator(message[1], urlCond.value)) {
714
- this.trigger()
1088
+ const urlConds = <span class="cstat-no" title="statement not covered" >this.conditions.filter(<span class="fstat-no" title="function not covered" >(c</span>) =&gt; <span class="cstat-no" title="statement not covered" >c.type === 'visited_url')</span> as CommonCondition[]</span>
1089
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (urlConds) {</span>
1090
+ <span class="cstat-no" title="statement not covered" > urlConds.forEach(<span class="fstat-no" title="function not covered" >(u</span>rlCond) =&gt; {</span>
1091
+ const operator = <span class="cstat-no" title="statement not covered" >operators[urlCond.operator] as (a: string, b: string[]) =&gt; boolean</span>
1092
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (operator &amp;&amp; operator(message[1], urlCond.value)) {</span>
1093
+ <span class="cstat-no" title="statement not covered" > this.trigger(urlCond.name)</span>
715
1094
  }
716
1095
  })
717
1096
  }
718
1097
  }
719
1098
  &nbsp;
720
- jsExceptionEvent(message: JSException) {
1099
+ <span class="fstat-no" title="function not covered" > jsExceptionEvent(</span>message: JSException) {
721
1100
  // name - 1, message - 2, payload - 3
722
- const testedValues = [message[1], message[2], message[3]]
723
- const exceptionConds = this.conditions.filter(
724
- (c) =&gt; c.type === 'exception',
1101
+ const testedValues = <span class="cstat-no" title="statement not covered" >[message[1], message[2], message[3]]</span>
1102
+ const exceptionConds = <span class="cstat-no" title="statement not covered" >this.conditions.filter(</span>
1103
+ <span class="fstat-no" title="function not covered" > (c</span>) =&gt; <span class="cstat-no" title="statement not covered" >c.type === 'exception',</span>
725
1104
  ) as ExceptionCondition[]
726
- if (exceptionConds) {
727
- exceptionConds.forEach((exceptionCond) =&gt; {
728
- const operator = operators[exceptionCond.operator]
729
- if (operator &amp;&amp; testedValues.some((val) =&gt; operator(val, exceptionCond.value))) {
730
- this.trigger()
1105
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (exceptionConds) {</span>
1106
+ <span class="cstat-no" title="statement not covered" > exceptionConds.forEach(<span class="fstat-no" title="function not covered" >(e</span>xceptionCond) =&gt; {</span>
1107
+ const operator = <span class="cstat-no" title="statement not covered" >operators[exceptionCond.operator]</span>
1108
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (operator &amp;&amp; testedValues.some(<span class="fstat-no" title="function not covered" >(v</span>al) =&gt; <span class="cstat-no" title="statement not covered" >operator(val, exceptionCond.value))</span>) {</span>
1109
+ <span class="cstat-no" title="statement not covered" > this.trigger(exceptionCond.name)</span>
731
1110
  }
732
1111
  })
733
1112
  }
@@ -735,29 +1114,35 @@ export default class ConditionsManager {
735
1114
  }
736
1115
  // duration,
737
1116
  type CommonCondition = {
738
- type: 'visited_url' | 'click_label' | 'click_selector' | 'custom_event'
739
- operator: keyof typeof operators
740
- value: string[]
741
- }
742
- type NetworkRequestCondition = {
743
- type: 'network_request'
744
- key: 'url' | 'status' | 'method' | 'duration'
1117
+ type: 'visited_url' | 'click' | 'custom_event'
745
1118
  operator: keyof typeof operators
746
1119
  value: string[]
1120
+ name: string
747
1121
  }
1122
+ &nbsp;
748
1123
  type ExceptionCondition = {
749
1124
  type: 'exception'
750
1125
  operator: 'contains' | 'startsWith' | 'endsWith'
751
1126
  value: string[]
1127
+ name: string
752
1128
  }
753
1129
  type FeatureFlagCondition = {
754
1130
  type: 'feature_flag'
755
1131
  operator: 'is'
756
1132
  value: string[]
1133
+ name: string
757
1134
  }
758
1135
  type SessionDurationCondition = {
759
1136
  type: 'session_duration'
760
1137
  value: number[]
1138
+ name: string
1139
+ }
1140
+ type NetworkRequestCondition = {
1141
+ type: 'network_request'
1142
+ key: 'url' | 'status' | 'method' | 'duration'
1143
+ operator: keyof typeof operators
1144
+ value: string[]
1145
+ name: string
761
1146
  }
762
1147
  type Condition =
763
1148
  | CommonCondition
@@ -767,16 +1152,132 @@ type Condition =
767
1152
  | NetworkRequestCondition
768
1153
  &nbsp;
769
1154
  const operators = {
770
- is: (val: string, target: string[]) =&gt; target.includes(val),
1155
+ is: <span class="fstat-no" title="function not covered" >(v</span>al: string, target: string[]) =&gt; <span class="cstat-no" title="statement not covered" >target.includes(val),</span>
1156
+ isAny: <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >true,</span>
771
1157
  isNot: <span class="fstat-no" title="function not covered" >(v</span>al: string, target: string[]) =&gt; <span class="cstat-no" title="statement not covered" >!target.includes(val),</span>
772
- contains: (val: string, target: string[]) =&gt; target.some((t) =&gt; val.includes(t)),
1158
+ contains: <span class="fstat-no" title="function not covered" >(v</span>al: string, target: string[]) =&gt; <span class="cstat-no" title="statement not covered" >target.some(<span class="fstat-no" title="function not covered" >(t</span>) =&gt; <span class="cstat-no" title="statement not covered" >val.includes(t))</span>,</span>
773
1159
  notContains: <span class="fstat-no" title="function not covered" >(v</span>al: string, target: string[]) =&gt; <span class="cstat-no" title="statement not covered" >!target.some(<span class="fstat-no" title="function not covered" >(t</span>) =&gt; <span class="cstat-no" title="statement not covered" >val.includes(t))</span>,</span>
774
1160
  startsWith: <span class="fstat-no" title="function not covered" >(v</span>al: string, target: string[]) =&gt; <span class="cstat-no" title="statement not covered" >target.some(<span class="fstat-no" title="function not covered" >(t</span>) =&gt; <span class="cstat-no" title="statement not covered" >val.startsWith(t))</span>,</span>
775
1161
  endsWith: <span class="fstat-no" title="function not covered" >(v</span>al: string, target: string[]) =&gt; <span class="cstat-no" title="statement not covered" >target.some(<span class="fstat-no" title="function not covered" >(t</span>) =&gt; <span class="cstat-no" title="statement not covered" >val.endsWith(t))</span>,</span>
776
- isFailed: <span class="fstat-no" title="function not covered" >(v</span>al: number) =&gt; <span class="cstat-no" title="statement not covered" >val &gt;= 400,</span>
777
- greaterThan: (val: number, target: number) =&gt; val &gt; target,
1162
+ greaterThan: <span class="fstat-no" title="function not covered" >(v</span>al: number, target: number) =&gt; <span class="cstat-no" title="statement not covered" >val &gt; target,</span>
1163
+ greaterOrEqual: <span class="fstat-no" title="function not covered" >(v</span>al: number, target: number) =&gt; <span class="cstat-no" title="statement not covered" >val &gt;= target,</span>
1164
+ lessOrEqual: <span class="fstat-no" title="function not covered" >(v</span>al: number, target: number) =&gt; <span class="cstat-no" title="statement not covered" >val &lt;= target,</span>
778
1165
  lessThan: <span class="fstat-no" title="function not covered" >(v</span>al: number, target: number) =&gt; <span class="cstat-no" title="statement not covered" >val &lt; target,</span>
779
1166
  }
1167
+ &nbsp;
1168
+ const mapCondition = <span class="fstat-no" title="function not covered" >(c</span>ondition: Filter): Condition =&gt; {
1169
+ const opMap = <span class="cstat-no" title="statement not covered" >{</span>
1170
+ on: 'is',
1171
+ notOn: 'isNot',
1172
+ '\u003e': 'greaterThan',
1173
+ '\u003c': 'lessThan',
1174
+ '\u003d': 'is',
1175
+ '\u003c=': 'lessOrEqual',
1176
+ '\u003e=': 'greaterOrEqual',
1177
+ }
1178
+ &nbsp;
1179
+ const mapOperator = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(o</span>perator: string) =&gt; {</span>
1180
+ const keys = <span class="cstat-no" title="statement not covered" >Object.keys(opMap)</span>
1181
+ // @ts-ignore
1182
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (keys.includes(operator)) <span class="cstat-no" title="statement not covered" >return opMap[operator]</span></span>
1183
+ }
1184
+ &nbsp;
1185
+ let con = <span class="cstat-no" title="statement not covered" >{</span>
1186
+ type: '',
1187
+ operator: '',
1188
+ value: condition.value,
1189
+ key: '',
1190
+ }
1191
+ <span class="cstat-no" title="statement not covered" > switch (condition.type) {</span>
1192
+ case 'click':
1193
+ <span class="cstat-no" title="statement not covered" > con = {</span>
1194
+ type: 'click',
1195
+ operator: mapOperator(condition.operator),
1196
+ value: condition.value,
1197
+ key: '',
1198
+ }
1199
+ <span class="cstat-no" title="statement not covered" > break</span>
1200
+ case 'location':
1201
+ <span class="cstat-no" title="statement not covered" > con = {</span>
1202
+ type: 'visited_url',
1203
+ // @ts-ignore
1204
+ operator: condition.operator,
1205
+ value: condition.value,
1206
+ key: '',
1207
+ }
1208
+ <span class="cstat-no" title="statement not covered" > break</span>
1209
+ case 'custom':
1210
+ <span class="cstat-no" title="statement not covered" > con = {</span>
1211
+ type: 'custom_event',
1212
+ // @ts-ignore
1213
+ operator: condition.operator,
1214
+ value: condition.value,
1215
+ key: '',
1216
+ }
1217
+ <span class="cstat-no" title="statement not covered" > break</span>
1218
+ case 'metadata':
1219
+ <span class="cstat-no" title="statement not covered" > con = {</span>
1220
+ // @ts-ignore
1221
+ type: condition.source === 'featureFlag' ? 'feature_flag' : condition.type,
1222
+ // @ts-ignore
1223
+ operator: condition.operator,
1224
+ value: condition.value,
1225
+ key: '',
1226
+ }
1227
+ <span class="cstat-no" title="statement not covered" > break</span>
1228
+ case 'error':
1229
+ <span class="cstat-no" title="statement not covered" > con = {</span>
1230
+ type: 'exception',
1231
+ // @ts-ignore
1232
+ operator: condition.operator,
1233
+ value: condition.value,
1234
+ key: '',
1235
+ }
1236
+ <span class="cstat-no" title="statement not covered" > break</span>
1237
+ case 'duration':
1238
+ <span class="cstat-no" title="statement not covered" > con = {</span>
1239
+ type: 'session_duration',
1240
+ // @ts-ignore
1241
+ value: condition.value[0],
1242
+ key: '',
1243
+ }
1244
+ <span class="cstat-no" title="statement not covered" > break</span>
1245
+ case 'fetchUrl':
1246
+ <span class="cstat-no" title="statement not covered" > con = {</span>
1247
+ type: 'network_request',
1248
+ key: 'url',
1249
+ operator: condition.operator,
1250
+ value: condition.value,
1251
+ }
1252
+ <span class="cstat-no" title="statement not covered" > break</span>
1253
+ case 'fetchStatusCode':
1254
+ <span class="cstat-no" title="statement not covered" > con = {</span>
1255
+ type: 'network_request',
1256
+ key: 'status',
1257
+ operator: mapOperator(condition.operator),
1258
+ value: condition.value,
1259
+ }
1260
+ <span class="cstat-no" title="statement not covered" > break</span>
1261
+ case 'fetchMethod':
1262
+ <span class="cstat-no" title="statement not covered" > con = {</span>
1263
+ type: 'network_request',
1264
+ key: 'method',
1265
+ operator: mapOperator(condition.operator),
1266
+ value: condition.value,
1267
+ }
1268
+ <span class="cstat-no" title="statement not covered" > break</span>
1269
+ case 'fetchDuration':
1270
+ <span class="cstat-no" title="statement not covered" > con = {</span>
1271
+ type: 'network_request',
1272
+ key: 'duration',
1273
+ operator: mapOperator(condition.operator),
1274
+ value: condition.value,
1275
+ }
1276
+ <span class="cstat-no" title="statement not covered" > break</span>
1277
+ }
1278
+ // @ts-ignore
1279
+ <span class="cstat-no" title="statement not covered" > return con</span>
1280
+ }
780
1281
  &nbsp;</pre></td></tr></table></pre>
781
1282
 
782
1283
  <div class='push'></div><!-- for sticky footer -->
@@ -784,7 +1285,7 @@ const operators = {
784
1285
  <div class='footer quiet pad2 space-top1 center small'>
785
1286
  Code coverage generated by
786
1287
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
787
- at 2023-12-15T15:55:44.965Z
1288
+ at 2023-12-21T16:07:43.444Z
788
1289
  </div>
789
1290
  <script src="../../prettify.js"></script>
790
1291
  <script>