@saasquatch/squatch-js 2.6.0-3 → 2.6.0-5

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 (37) hide show
  1. package/.github/workflows/static.yml +89 -0
  2. package/coverage/clover.xml +843 -3
  3. package/coverage/coverage-final.json +20 -1
  4. package/coverage/lcov-report/DeclarativeWidget.ts.html +790 -0
  5. package/coverage/lcov-report/Widgets.ts.html +1105 -0
  6. package/coverage/lcov-report/api/AnalyticsApi.ts.html +22 -22
  7. package/coverage/lcov-report/api/EventsApi.ts.html +352 -0
  8. package/coverage/lcov-report/api/WidgetApi.ts.html +84 -57
  9. package/coverage/lcov-report/api/graphql.ts.html +1 -1
  10. package/coverage/lcov-report/squatch.ts.html +721 -0
  11. package/coverage/lcov-report/utils/cookieUtils.ts.html +1 -1
  12. package/coverage/lcov-report/utils/decodeUserJwt.ts.html +1 -1
  13. package/coverage/lcov-report/utils/domready.ts.html +1 -1
  14. package/coverage/lcov-report/utils/io.ts.html +7 -7
  15. package/coverage/lcov-report/utils/utmUtils.ts.html +22 -22
  16. package/coverage/lcov-report/utils/validate.ts.html +41 -41
  17. package/coverage/lcov-report/validate.ts.html +1 -1
  18. package/coverage/lcov-report/widgets/EmbedWidget.ts.html +24 -3
  19. package/coverage/lcov-report/widgets/PopupWidget.ts.html +17 -2
  20. package/coverage/lcov-report/widgets/Widget.ts.html +1 -1
  21. package/coverage/lcov-report/widgets/Widgets.ts.html +110 -68
  22. package/coverage/lcov-report/widgets/declarative/DeclarativeWidget.ts.html +368 -74
  23. package/coverage/lcov-report/widgets/declarative/DeclarativeWidgets.ts.html +388 -0
  24. package/coverage/lcov.info +1561 -0
  25. package/dist/api/WidgetApi.d.ts +2 -2
  26. package/dist/squatch.d.ts +28 -1
  27. package/dist/squatch.esm.js +205 -47
  28. package/dist/squatch.esm.js.map +1 -1
  29. package/dist/squatch.js +205 -47
  30. package/dist/squatch.js.map +1 -1
  31. package/dist/squatch.min.js +1 -1
  32. package/dist/widgets/EmbedWidget.d.ts +8 -0
  33. package/dist/widgets/PopupWidget.d.ts +6 -1
  34. package/dist/widgets/Widgets.d.ts +15 -2
  35. package/dist/widgets/declarative/DeclarativeWidget.d.ts +66 -2
  36. package/dist/widgets/declarative/DeclarativeWidgets.d.ts +22 -0
  37. package/package.json +2 -2
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.09% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>91/101</span>
28
+ <span class='fraction'>100/100</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">71.05% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>27/38</span>
35
+ <span class='fraction'>36/36</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">81.81% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>9/11</span>
42
+ <span class='fraction'>11/11</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">89.79% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>88/98</span>
49
+ <span class='fraction'>97/97</span>
50
50
  </div>
51
51
 
52
52
 
@@ -388,8 +388,22 @@
388
388
  <a name='L323'></a><a href='#L323'>323</a>
389
389
  <a name='L324'></a><a href='#L324'>324</a>
390
390
  <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
392
- <span class="cline-any cline-yes">1x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
406
+ <span class="cline-any cline-yes">4x</span>
393
407
  <span class="cline-any cline-neutral">&nbsp;</span>
394
408
  <span class="cline-any cline-neutral">&nbsp;</span>
395
409
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -398,24 +412,29 @@
398
412
  <span class="cline-any cline-neutral">&nbsp;</span>
399
413
  <span class="cline-any cline-neutral">&nbsp;</span>
400
414
  <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-yes">1x</span>
415
+ <span class="cline-any cline-yes">4x</span>
402
416
  <span class="cline-any cline-neutral">&nbsp;</span>
403
417
  <span class="cline-any cline-neutral">&nbsp;</span>
404
418
  <span class="cline-any cline-neutral">&nbsp;</span>
405
419
  <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-yes">1x</span>
407
- <span class="cline-any cline-yes">1x</span>
420
+ <span class="cline-any cline-yes">4x</span>
421
+ <span class="cline-any cline-yes">4x</span>
408
422
  <span class="cline-any cline-neutral">&nbsp;</span>
409
423
  <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-yes">1x</span>
424
+ <span class="cline-any cline-yes">4x</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
426
  <span class="cline-any cline-neutral">&nbsp;</span>
412
427
  <span class="cline-any cline-neutral">&nbsp;</span>
413
428
  <span class="cline-any cline-neutral">&nbsp;</span>
414
429
  <span class="cline-any cline-neutral">&nbsp;</span>
415
430
  <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-yes">4x</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
416
436
  <span class="cline-any cline-neutral">&nbsp;</span>
417
437
  <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-yes">1x</span>
419
438
  <span class="cline-any cline-neutral">&nbsp;</span>
420
439
  <span class="cline-any cline-neutral">&nbsp;</span>
421
440
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -438,11 +457,6 @@
438
457
  <span class="cline-any cline-neutral">&nbsp;</span>
439
458
  <span class="cline-any cline-neutral">&nbsp;</span>
440
459
  <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-yes">32x</span>
442
- <span class="cline-any cline-yes">32x</span>
443
- <span class="cline-any cline-yes">32x</span>
444
- <span class="cline-any cline-yes">32x</span>
445
- <span class="cline-any cline-yes">32x</span>
446
460
  <span class="cline-any cline-neutral">&nbsp;</span>
447
461
  <span class="cline-any cline-neutral">&nbsp;</span>
448
462
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -454,6 +468,21 @@
454
468
  <span class="cline-any cline-neutral">&nbsp;</span>
455
469
  <span class="cline-any cline-neutral">&nbsp;</span>
456
470
  <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-yes">68x</span>
472
+ <span class="cline-any cline-yes">67x</span>
473
+ <span class="cline-any cline-yes">67x</span>
474
+ <span class="cline-any cline-yes">67x</span>
475
+ <span class="cline-any cline-yes">67x</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-neutral">&nbsp;</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
486
  <span class="cline-any cline-neutral">&nbsp;</span>
458
487
  <span class="cline-any cline-neutral">&nbsp;</span>
459
488
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -580,14 +609,14 @@
580
609
  <span class="cline-any cline-neutral">&nbsp;</span>
581
610
  <span class="cline-any cline-neutral">&nbsp;</span>
582
611
  <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-yes">13x</span>
584
- <span class="cline-any cline-yes">13x</span>
612
+ <span class="cline-any cline-yes">18x</span>
613
+ <span class="cline-any cline-yes">18x</span>
585
614
  <span class="cline-any cline-neutral">&nbsp;</span>
586
615
  <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-yes">12x</span>
588
- <span class="cline-any cline-yes">12x</span>
616
+ <span class="cline-any cline-yes">17x</span>
617
+ <span class="cline-any cline-yes">17x</span>
589
618
  <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-yes">12x</span>
619
+ <span class="cline-any cline-yes">17x</span>
591
620
  <span class="cline-any cline-neutral">&nbsp;</span>
592
621
  <span class="cline-any cline-neutral">&nbsp;</span>
593
622
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -596,40 +625,38 @@
596
625
  <span class="cline-any cline-neutral">&nbsp;</span>
597
626
  <span class="cline-any cline-neutral">&nbsp;</span>
598
627
  <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-yes">12x</span>
628
+ <span class="cline-any cline-yes">17x</span>
600
629
  <span class="cline-any cline-yes">4x</span>
601
630
  <span class="cline-any cline-yes">4x</span>
602
631
  <span class="cline-any cline-yes">3x</span>
603
- <span class="cline-any cline-yes">3x</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
632
  <span class="cline-any cline-neutral">&nbsp;</span>
606
633
  <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-yes">1x</span>
608
- <span class="cline-any cline-yes">1x</span>
609
- <span class="cline-any cline-yes">1x</span>
610
634
  <span class="cline-any cline-neutral">&nbsp;</span>
611
635
  <span class="cline-any cline-yes">2x</span>
636
+ <span class="cline-any cline-yes">2x</span>
612
637
  <span class="cline-any cline-neutral">&nbsp;</span>
638
+ <span class="cline-any cline-yes">1x</span>
613
639
  <span class="cline-any cline-neutral">&nbsp;</span>
614
640
  <span class="cline-any cline-neutral">&nbsp;</span>
615
641
  <span class="cline-any cline-neutral">&nbsp;</span>
616
642
  <span class="cline-any cline-neutral">&nbsp;</span>
617
643
  <span class="cline-any cline-neutral">&nbsp;</span>
618
644
  <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-yes">12x</span>
620
- <span class="cline-any cline-no">&nbsp;</span>
621
645
  <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-no">&nbsp;</span>
623
- <span class="cline-any cline-no">&nbsp;</span>
624
- <span class="cline-any cline-no">&nbsp;</span>
625
- <span class="cline-any cline-no">&nbsp;</span>
626
- <span class="cline-any cline-no">&nbsp;</span>
646
+ <span class="cline-any cline-yes">17x</span>
647
+ <span class="cline-any cline-yes">5x</span>
627
648
  <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-no">&nbsp;</span>
629
- <span class="cline-any cline-no">&nbsp;</span>
649
+ <span class="cline-any cline-yes">5x</span>
650
+ <span class="cline-any cline-yes">5x</span>
651
+ <span class="cline-any cline-yes">4x</span>
652
+ <span class="cline-any cline-yes">4x</span>
653
+ <span class="cline-any cline-yes">3x</span>
630
654
  <span class="cline-any cline-neutral">&nbsp;</span>
655
+ <span class="cline-any cline-yes">3x</span>
656
+ <span class="cline-any cline-yes">2x</span>
631
657
  <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-no">&nbsp;</span>
658
+ <span class="cline-any cline-neutral">&nbsp;</span>
659
+ <span class="cline-any cline-yes">1x</span>
633
660
  <span class="cline-any cline-neutral">&nbsp;</span>
634
661
  <span class="cline-any cline-neutral">&nbsp;</span>
635
662
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -640,19 +667,19 @@
640
667
  <span class="cline-any cline-neutral">&nbsp;</span>
641
668
  <span class="cline-any cline-neutral">&nbsp;</span>
642
669
  <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-yes">12x</span>
670
+ <span class="cline-any cline-yes">17x</span>
644
671
  <span class="cline-any cline-yes">2x</span>
645
- <span class="cline-any cline-yes">10x</span>
672
+ <span class="cline-any cline-yes">15x</span>
646
673
  <span class="cline-any cline-yes">5x</span>
647
674
  <span class="cline-any cline-yes">5x</span>
648
675
  <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-yes">5x</span>
650
- <span class="cline-any cline-yes">5x</span>
651
- <span class="cline-any cline-yes">5x</span>
652
- <span class="cline-any cline-yes">5x</span>
676
+ <span class="cline-any cline-yes">10x</span>
677
+ <span class="cline-any cline-yes">10x</span>
678
+ <span class="cline-any cline-yes">10x</span>
679
+ <span class="cline-any cline-yes">10x</span>
653
680
  <span class="cline-any cline-neutral">&nbsp;</span>
654
681
  <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-yes">12x</span>
682
+ <span class="cline-any cline-yes">17x</span>
656
683
  <span class="cline-any cline-neutral">&nbsp;</span>
657
684
  <span class="cline-any cline-neutral">&nbsp;</span>
658
685
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -710,7 +737,8 @@
710
737
  <span class="cline-any cline-neutral">&nbsp;</span>
711
738
  <span class="cline-any cline-neutral">&nbsp;</span>
712
739
  <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-no">&nbsp;</span>
740
+ <span class="cline-any cline-yes">3x</span>
741
+ <span class="cline-any cline-yes">3x</span>
714
742
  <span class="cline-any cline-neutral">&nbsp;</span>
715
743
  <span class="cline-any cline-neutral">&nbsp;</span>
716
744
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { debug } from "debug";
@@ -735,15 +763,31 @@ import Widget, { Params } from "./Widget";
735
763
  const _log = debug("squatch-js:widgets");
736
764
  &nbsp;
737
765
  /**
738
- *
739
766
  * `Widgets` is a factory for creating widgets. It's possible to build your own widgets using the
740
767
  * {@link WidgetApi} but most people will prefer to use these easy methods.
741
- *
768
+ * @class
742
769
  */
743
770
  export default class Widgets {
771
+ /**
772
+ * Instance of {@link WidgetApi}
773
+ */
744
774
  api: WidgetApi;
775
+ &nbsp;
776
+ /**
777
+ * Tenant alias of SaaSquatch tenant.
778
+ */
745
779
  tenantAlias: string;
780
+ &nbsp;
781
+ /**
782
+ * SaaSquatch domain for API requests.
783
+ * @default "https://app.referralsaasquatch.com"
784
+ */
746
785
  domain: string;
786
+ &nbsp;
787
+ /**
788
+ * Hosted CDN for npm packages
789
+ * @default "https://fast.ssqt.io/npm"
790
+ */
747
791
  npmCdn: string;
748
792
  &nbsp;
749
793
  /**
@@ -768,7 +812,6 @@ export default class Widgets {
768
812
  this.domain = config.domain;
769
813
  this.npmCdn = config.npmCdn;
770
814
  this.api = new WidgetApi(config);
771
- // listens to a 'submit_email' event in the theme.
772
815
  }
773
816
  &nbsp;
774
817
  /**
@@ -924,12 +967,10 @@ export default class Widgets {
924
967
  if (opts.widgetUrlMappings) {
925
968
  opts.widgetUrlMappings.forEach((rule) =&gt; {
926
969
  if (Widgets._matchesUrl(rule.url)) {
927
- console.log({ response, rule });
928
970
  if (
929
971
  rule.widgetType !== "CONVERSION_WIDGET" ||
930
972
  response.user?.referredBy?.code
931
973
  ) {
932
- console.log("HERE");
933
974
  displayOnLoad = rule.displayOnLoad;
934
975
  _log(`Display ${rule.widgetType} on ${rule.url}`);
935
976
  } else {
@@ -941,20 +982,20 @@ export default class Widgets {
941
982
  });
942
983
  }
943
984
  &nbsp;
944
- <span class="missing-if-branch" title="if path not taken" >I</span>if (opts.fuelTankAutofillUrls) {
945
- <span class="cstat-no" title="statement not covered" > _log("We found a fuel tank autofill!");</span>
985
+ if (opts.fuelTankAutofillUrls) {
986
+ _log("We found a fuel tank autofill!");
946
987
  &nbsp;
947
- <span class="cstat-no" title="statement not covered" > opts.fuelTankAutofillUrls.forEach(<span class="fstat-no" title="function not covered" >({</span> url, formSelector }) =&gt; {</span>
948
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (Widgets._matchesUrl(url)) {</span>
949
- <span class="cstat-no" title="statement not covered" > _log("Fuel Tank URL matches");</span>
950
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (response.user?.referredBy &amp;&amp; response.user?.referredBy?.code) {</span>
951
- const formAutofill = <span class="cstat-no" title="statement not covered" >document.querySelector(formSelector);</span>
988
+ opts.fuelTankAutofillUrls.forEach(({ url, formSelector }) =&gt; {
989
+ if (Widgets._matchesUrl(url)) {
990
+ _log("Fuel Tank URL matches");
991
+ if (response.user?.referredBy?.code) {
992
+ const formAutofill = document.querySelector(formSelector);
952
993
  &nbsp;
953
- <span class="cstat-no" title="statement not covered" > if (formAutofill) {</span>
954
- <span class="cstat-no" title="statement not covered" > formAutofill.value =</span>
955
- response.user.referredBy.referredReward.fuelTankCode || "";
994
+ if (formAutofill) {
995
+ formAutofill.value =
996
+ response.user.referredBy.referredReward?.fuelTankCode || "";
956
997
  } else {
957
- <span class="cstat-no" title="statement not covered" > _log(</span>
998
+ _log(
958
999
  new Error(
959
1000
  `Element with id/class ${formSelector} was not found.`
960
1001
  )
@@ -1033,9 +1074,10 @@ export default class Widgets {
1033
1074
  * @param {string} rule A regular expression
1034
1075
  * @returns {boolean} true if rule matches Url, false otherwise
1035
1076
  */
1036
- private <span class="fstat-no" title="function not covered" >static </span>_matchesUrl(rule) {
1077
+ private static _matchesUrl(rule) {
1037
1078
  // If there were no matches, null is returned.
1038
- <span class="cstat-no" title="statement not covered" > return window.location.href.match(new RegExp(rule)) ? true : false;</span>
1079
+ console.log({ href: window.location.href });
1080
+ return window.location.href.match(new RegExp(rule)) ? true : false;
1039
1081
  }
1040
1082
  }
1041
1083
  &nbsp;</pre></td></tr></table></pre>
@@ -1045,7 +1087,7 @@ export default class Widgets {
1045
1087
  <div class='footer quiet pad2 space-top1 center small'>
1046
1088
  Code coverage generated by
1047
1089
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1048
- at 2023-07-19T17:47:30.555Z
1090
+ at 2023-07-21T16:40:43.990Z
1049
1091
  </div>
1050
1092
  <script src="../prettify.js"></script>
1051
1093
  <script>