@dintero/checkout-web-sdk 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/.github/workflows/release.yml +1 -2
  2. package/CHANGELOG.md +25 -1
  3. package/README.md +26 -4
  4. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/base.css +0 -0
  5. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/block-navigation.js +0 -0
  6. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/checkout.ts.html +9 -3
  7. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/createIframeAsync.ts.html +15 -15
  8. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/favicon.png +0 -0
  9. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/index.html +30 -30
  10. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/index.ts.html +203 -38
  11. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/prettify.css +0 -0
  12. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/prettify.js +0 -0
  13. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/sort-arrow-sprite.png +0 -0
  14. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/sorter.js +0 -0
  15. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/subscribe.ts.html +34 -34
  16. package/coverage/{Chrome Headless 80.0.3987.0 (Linux x86_64) → Chrome Headless 99.0.4844.0 (Linux x86_64)}/html/url.ts.html +1 -1
  17. package/dist/declarations/src/checkout.d.ts +75 -73
  18. package/dist/declarations/src/createIframeAsync.d.ts +10 -10
  19. package/dist/declarations/src/index.d.ts +43 -43
  20. package/dist/declarations/src/subscribe.d.ts +41 -41
  21. package/dist/declarations/src/url.d.ts +16 -16
  22. package/dist/dintero-checkout-web-sdk.cjs.dev.js +57 -10
  23. package/dist/dintero-checkout-web-sdk.cjs.prod.js +57 -10
  24. package/dist/dintero-checkout-web-sdk.esm.js +57 -10
  25. package/dist/dintero-checkout-web-sdk.umd.min.js +1 -1
  26. package/dist/dintero-checkout-web-sdk.umd.min.js.map +1 -1
  27. package/package.json +6 -6
  28. package/dist/declarations/package.d.ts +0 -52
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.2% </span>
26
+ <span class="strong">96.59% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>65/69</span>
28
+ <span class='fraction'>85/88</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">83.33% </span>
33
+ <span class="strong">82.5% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>30/36</span>
35
+ <span class='fraction'>33/40</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">78.95% </span>
40
+ <span class="strong">92.86% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>15/19</span>
42
+ <span class='fraction'>26/28</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.33% </span>
47
+ <span class="strong">96.1% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>56/60</span>
49
+ <span class='fraction'>74/77</span>
50
50
  </div>
51
51
 
52
52
 
@@ -398,7 +398,62 @@
398
398
  <a name='L339'></a><a href='#L339'>339</a>
399
399
  <a name='L340'></a><a href='#L340'>340</a>
400
400
  <a name='L341'></a><a href='#L341'>341</a>
401
- <a name='L342'></a><a href='#L342'>342</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
401
+ <a name='L342'></a><a href='#L342'>342</a>
402
+ <a name='L343'></a><a href='#L343'>343</a>
403
+ <a name='L344'></a><a href='#L344'>344</a>
404
+ <a name='L345'></a><a href='#L345'>345</a>
405
+ <a name='L346'></a><a href='#L346'>346</a>
406
+ <a name='L347'></a><a href='#L347'>347</a>
407
+ <a name='L348'></a><a href='#L348'>348</a>
408
+ <a name='L349'></a><a href='#L349'>349</a>
409
+ <a name='L350'></a><a href='#L350'>350</a>
410
+ <a name='L351'></a><a href='#L351'>351</a>
411
+ <a name='L352'></a><a href='#L352'>352</a>
412
+ <a name='L353'></a><a href='#L353'>353</a>
413
+ <a name='L354'></a><a href='#L354'>354</a>
414
+ <a name='L355'></a><a href='#L355'>355</a>
415
+ <a name='L356'></a><a href='#L356'>356</a>
416
+ <a name='L357'></a><a href='#L357'>357</a>
417
+ <a name='L358'></a><a href='#L358'>358</a>
418
+ <a name='L359'></a><a href='#L359'>359</a>
419
+ <a name='L360'></a><a href='#L360'>360</a>
420
+ <a name='L361'></a><a href='#L361'>361</a>
421
+ <a name='L362'></a><a href='#L362'>362</a>
422
+ <a name='L363'></a><a href='#L363'>363</a>
423
+ <a name='L364'></a><a href='#L364'>364</a>
424
+ <a name='L365'></a><a href='#L365'>365</a>
425
+ <a name='L366'></a><a href='#L366'>366</a>
426
+ <a name='L367'></a><a href='#L367'>367</a>
427
+ <a name='L368'></a><a href='#L368'>368</a>
428
+ <a name='L369'></a><a href='#L369'>369</a>
429
+ <a name='L370'></a><a href='#L370'>370</a>
430
+ <a name='L371'></a><a href='#L371'>371</a>
431
+ <a name='L372'></a><a href='#L372'>372</a>
432
+ <a name='L373'></a><a href='#L373'>373</a>
433
+ <a name='L374'></a><a href='#L374'>374</a>
434
+ <a name='L375'></a><a href='#L375'>375</a>
435
+ <a name='L376'></a><a href='#L376'>376</a>
436
+ <a name='L377'></a><a href='#L377'>377</a>
437
+ <a name='L378'></a><a href='#L378'>378</a>
438
+ <a name='L379'></a><a href='#L379'>379</a>
439
+ <a name='L380'></a><a href='#L380'>380</a>
440
+ <a name='L381'></a><a href='#L381'>381</a>
441
+ <a name='L382'></a><a href='#L382'>382</a>
442
+ <a name='L383'></a><a href='#L383'>383</a>
443
+ <a name='L384'></a><a href='#L384'>384</a>
444
+ <a name='L385'></a><a href='#L385'>385</a>
445
+ <a name='L386'></a><a href='#L386'>386</a>
446
+ <a name='L387'></a><a href='#L387'>387</a>
447
+ <a name='L388'></a><a href='#L388'>388</a>
448
+ <a name='L389'></a><a href='#L389'>389</a>
449
+ <a name='L390'></a><a href='#L390'>390</a>
450
+ <a name='L391'></a><a href='#L391'>391</a>
451
+ <a name='L392'></a><a href='#L392'>392</a>
452
+ <a name='L393'></a><a href='#L393'>393</a>
453
+ <a name='L394'></a><a href='#L394'>394</a>
454
+ <a name='L395'></a><a href='#L395'>395</a>
455
+ <a name='L396'></a><a href='#L396'>396</a>
456
+ <a name='L397'></a><a href='#L397'>397</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
402
457
  <span class="cline-any cline-neutral">&nbsp;</span>
403
458
  <span class="cline-any cline-yes">1x</span>
404
459
  <span class="cline-any cline-yes">1x</span>
@@ -417,6 +472,7 @@
417
472
  <span class="cline-any cline-neutral">&nbsp;</span>
418
473
  <span class="cline-any cline-neutral">&nbsp;</span>
419
474
  <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
476
  <span class="cline-any cline-yes">1x</span>
421
477
  <span class="cline-any cline-yes">1x</span>
422
478
  <span class="cline-any cline-yes">1x</span>
@@ -499,6 +555,7 @@
499
555
  <span class="cline-any cline-neutral">&nbsp;</span>
500
556
  <span class="cline-any cline-neutral">&nbsp;</span>
501
557
  <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
559
  <span class="cline-any cline-yes">1x</span>
503
560
  <span class="cline-any cline-yes">3x</span>
504
561
  <span class="cline-any cline-yes">3x</span>
@@ -555,11 +612,13 @@
555
612
  <span class="cline-any cline-neutral">&nbsp;</span>
556
613
  <span class="cline-any cline-neutral">&nbsp;</span>
557
614
  <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
616
  <span class="cline-any cline-yes">1x</span>
559
- <span class="cline-any cline-yes">26x</span>
617
+ <span class="cline-any cline-yes">30x</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
619
  <span class="cline-any cline-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-yes">30x</span>
561
621
  <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-yes">26x</span>
563
622
  <span class="cline-any cline-neutral">&nbsp;</span>
564
623
  <span class="cline-any cline-neutral">&nbsp;</span>
565
624
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -574,10 +633,10 @@
574
633
  <span class="cline-any cline-neutral">&nbsp;</span>
575
634
  <span class="cline-any cline-neutral">&nbsp;</span>
576
635
  <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-yes">26x</span>
636
+ <span class="cline-any cline-yes">30x</span>
578
637
  <span class="cline-any cline-neutral">&nbsp;</span>
579
638
  <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-yes">26x</span>
639
+ <span class="cline-any cline-yes">30x</span>
581
640
  <span class="cline-any cline-neutral">&nbsp;</span>
582
641
  <span class="cline-any cline-neutral">&nbsp;</span>
583
642
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -592,32 +651,83 @@
592
651
  <span class="cline-any cline-neutral">&nbsp;</span>
593
652
  <span class="cline-any cline-neutral">&nbsp;</span>
594
653
  <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-yes">26x</span>
654
+ <span class="cline-any cline-yes">30x</span>
596
655
  <span class="cline-any cline-yes">3x</span>
597
- <span class="cline-any cline-yes">21x</span>
656
+ <span class="cline-any cline-yes">24x</span>
598
657
  <span class="cline-any cline-yes">3x</span>
599
658
  <span class="cline-any cline-yes">2x</span>
600
659
  <span class="cline-any cline-neutral">&nbsp;</span>
601
660
  <span class="cline-any cline-neutral">&nbsp;</span>
602
661
  <span class="cline-any cline-neutral">&nbsp;</span>
603
662
  <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-yes">26x</span>
605
- <span class="cline-any cline-no">&nbsp;</span>
606
663
  <span class="cline-any cline-neutral">&nbsp;</span>
607
664
  <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-yes">26x</span>
665
+ <span class="cline-any cline-neutral">&nbsp;</span>
666
+ <span class="cline-any cline-neutral">&nbsp;</span>
667
+ <span class="cline-any cline-yes">30x</span>
668
+ <span class="cline-any cline-yes">4x</span>
609
669
  <span class="cline-any cline-no">&nbsp;</span>
610
670
  <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-yes">4x</span>
672
+ <span class="cline-any cline-yes">4x</span>
673
+ <span class="cline-any cline-yes">4x</span>
674
+ <span class="cline-any cline-neutral">&nbsp;</span>
675
+ <span class="cline-any cline-neutral">&nbsp;</span>
676
+ <span class="cline-any cline-neutral">&nbsp;</span>
677
+ <span class="cline-any cline-yes">4x</span>
678
+ <span class="cline-any cline-yes">2x</span>
679
+ <span class="cline-any cline-neutral">&nbsp;</span>
680
+ <span class="cline-any cline-neutral">&nbsp;</span>
681
+ <span class="cline-any cline-neutral">&nbsp;</span>
682
+ <span class="cline-any cline-neutral">&nbsp;</span>
683
+ <span class="cline-any cline-yes">4x</span>
684
+ <span class="cline-any cline-neutral">&nbsp;</span>
685
+ <span class="cline-any cline-neutral">&nbsp;</span>
686
+ <span class="cline-any cline-neutral">&nbsp;</span>
687
+ <span class="cline-any cline-yes">4x</span>
688
+ <span class="cline-any cline-yes">2x</span>
689
+ <span class="cline-any cline-neutral">&nbsp;</span>
690
+ <span class="cline-any cline-neutral">&nbsp;</span>
691
+ <span class="cline-any cline-neutral">&nbsp;</span>
692
+ <span class="cline-any cline-neutral">&nbsp;</span>
693
+ <span class="cline-any cline-yes">4x</span>
694
+ <span class="cline-any cline-neutral">&nbsp;</span>
695
+ <span class="cline-any cline-neutral">&nbsp;</span>
696
+ <span class="cline-any cline-neutral">&nbsp;</span>
697
+ <span class="cline-any cline-yes">30x</span>
698
+ <span class="cline-any cline-yes">2x</span>
699
+ <span class="cline-any cline-yes">2x</span>
700
+ <span class="cline-any cline-neutral">&nbsp;</span>
701
+ <span class="cline-any cline-neutral">&nbsp;</span>
702
+ <span class="cline-any cline-neutral">&nbsp;</span>
703
+ <span class="cline-any cline-neutral">&nbsp;</span>
611
704
  <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-yes">26x</span>
705
+ <span class="cline-any cline-yes">30x</span>
706
+ <span class="cline-any cline-yes">2x</span>
707
+ <span class="cline-any cline-yes">2x</span>
708
+ <span class="cline-any cline-neutral">&nbsp;</span>
709
+ <span class="cline-any cline-neutral">&nbsp;</span>
710
+ <span class="cline-any cline-neutral">&nbsp;</span>
711
+ <span class="cline-any cline-neutral">&nbsp;</span>
712
+ <span class="cline-any cline-neutral">&nbsp;</span>
713
+ <span class="cline-any cline-yes">30x</span>
613
714
  <span class="cline-any cline-no">&nbsp;</span>
614
715
  <span class="cline-any cline-neutral">&nbsp;</span>
615
716
  <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-yes">26x</span>
717
+ <span class="cline-any cline-yes">30x</span>
617
718
  <span class="cline-any cline-no">&nbsp;</span>
618
719
  <span class="cline-any cline-neutral">&nbsp;</span>
619
720
  <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-yes">26x</span>
721
+ <span class="cline-any cline-yes">30x</span>
722
+ <span class="cline-any cline-neutral">&nbsp;</span>
723
+ <span class="cline-any cline-neutral">&nbsp;</span>
724
+ <span class="cline-any cline-neutral">&nbsp;</span>
725
+ <span class="cline-any cline-yes">2x</span>
726
+ <span class="cline-any cline-yes">1x</span>
727
+ <span class="cline-any cline-neutral">&nbsp;</span>
728
+ <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-neutral">&nbsp;</span>
730
+ <span class="cline-any cline-yes">30x</span>
621
731
  <span class="cline-any cline-neutral">&nbsp;</span>
622
732
  <span class="cline-any cline-neutral">&nbsp;</span>
623
733
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -627,7 +737,7 @@
627
737
  <span class="cline-any cline-neutral">&nbsp;</span>
628
738
  <span class="cline-any cline-neutral">&nbsp;</span>
629
739
  <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-yes">26x</span>
740
+ <span class="cline-any cline-yes">30x</span>
631
741
  <span class="cline-any cline-neutral">&nbsp;</span>
632
742
  <span class="cline-any cline-neutral">&nbsp;</span>
633
743
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -638,7 +748,7 @@
638
748
  <span class="cline-any cline-neutral">&nbsp;</span>
639
749
  <span class="cline-any cline-neutral">&nbsp;</span>
640
750
  <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-yes">26x</span>
751
+ <span class="cline-any cline-yes">30x</span>
642
752
  <span class="cline-any cline-neutral">&nbsp;</span>
643
753
  <span class="cline-any cline-neutral">&nbsp;</span>
644
754
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -707,9 +817,9 @@
707
817
  <span class="cline-any cline-neutral">&nbsp;</span>
708
818
  <span class="cline-any cline-neutral">&nbsp;</span>
709
819
  <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-yes">338x</span>
711
- <span class="cline-any cline-yes">338x</span>
712
- <span class="cline-any cline-yes">194x</span>
820
+ <span class="cline-any cline-yes">390x</span>
821
+ <span class="cline-any cline-yes">390x</span>
822
+ <span class="cline-any cline-yes">251x</span>
713
823
  <span class="cline-any cline-neutral">&nbsp;</span>
714
824
  <span class="cline-any cline-neutral">&nbsp;</span>
715
825
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -722,9 +832,9 @@
722
832
  <span class="cline-any cline-neutral">&nbsp;</span>
723
833
  <span class="cline-any cline-neutral">&nbsp;</span>
724
834
  <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-yes">52x</span>
835
+ <span class="cline-any cline-yes">60x</span>
726
836
  <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-yes">26x</span>
837
+ <span class="cline-any cline-yes">30x</span>
728
838
  <span class="cline-any cline-neutral">&nbsp;</span>
729
839
  <span class="cline-any cline-neutral">&nbsp;</span>
730
840
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -757,6 +867,7 @@ import {
757
867
  ActivePaymentProductType,
758
868
  ValidateSession,
759
869
  SessionValidationCallback,
870
+ SessionEvent
760
871
  } from "./checkout";
761
872
  import { getSessionUrl, windowLocationAssign } from "./url";
762
873
  import { createIframeAsync } from "./createIframeAsync";
@@ -777,8 +888,8 @@ export interface DinteroCheckoutInstance {
777
888
  destroy: () =&gt; void;
778
889
  iframe: HTMLIFrameElement;
779
890
  language: string;
780
- lockSession: () =&gt; void;
781
- refreshSession: () =&gt; void;
891
+ lockSession: () =&gt; Promise&lt;SessionEvent&gt;;
892
+ refreshSession: () =&gt; Promise&lt;SessionEvent&gt;;
782
893
  setActivePaymentProductType: (paymentProductType: string) =&gt; void;
783
894
  submitValidationResult: (result: SessionValidationCallback) =&gt; void;
784
895
  }
@@ -820,7 +931,8 @@ export interface DinteroEmbedCheckoutOptions extends DinteroCheckoutOptions {
820
931
  ) =&gt; void;
821
932
  onSessionLocked?: (
822
933
  event: SessionLocked,
823
- checkout: DinteroCheckoutInstance
934
+ checkout: DinteroCheckoutInstance,
935
+ callback: () =&gt; void,
824
936
  ) =&gt; void;
825
937
  onSessionLockFailed?: (
826
938
  event: SessionLockFailed,
@@ -893,6 +1005,7 @@ const handleWithResult = (
893
1005
  };
894
1006
  };
895
1007
  &nbsp;
1008
+ &nbsp;
896
1009
  /**
897
1010
  * Show a dintero payment session in an embedded iframe.
898
1011
  */
@@ -915,6 +1028,7 @@ export const embed = async (
915
1028
  onActivePaymentType,
916
1029
  onValidateSession,
917
1030
  } = options;
1031
+ let checkout: DinteroCheckoutInstance | undefined;
918
1032
  const subscriptions: Subscription[] = [];
919
1033
  &nbsp;
920
1034
  // Create iframe
@@ -942,12 +1056,54 @@ export const embed = async (
942
1056
  }
943
1057
  };
944
1058
  &nbsp;
945
- const lockSession = <span class="fstat-no" title="function not covered" >() =&gt; {</span>
946
- <span class="cstat-no" title="statement not covered" > postSessionLock(iframe, sid);</span>
1059
+ /**
1060
+ * Turn an action into a promise by specifying resolve and
1061
+ * reject events.
1062
+ */
1063
+ const promisifyAction = (action:()=&gt; void, resolveEvent:CheckoutEvents, rejectEvent:CheckoutEvents) =&gt; {
1064
+ <span class="missing-if-branch" title="if path not taken" >I</span>if(!checkout){
1065
+ <span class="cstat-no" title="statement not covered" > throw new Error("Unable to create action promise: checkout is undefined");</span>
1066
+ }
1067
+ return new Promise&lt;SessionEvent&gt;((resolve, reject)=&gt; {
1068
+ const eventSubscriptions:Subscription[] = [];
1069
+ eventSubscriptions.push(subscribe({
1070
+ sid,
1071
+ endpoint,
1072
+ handler: (sessionEvent) =&gt; {
1073
+ eventSubscriptions.forEach((sub)=&gt; sub.unsubscribe());
1074
+ resolve(sessionEvent);
1075
+ },
1076
+ eventTypes: [resolveEvent],
1077
+ checkout,
1078
+ }));
1079
+ eventSubscriptions.push(subscribe({
1080
+ sid,
1081
+ endpoint,
1082
+ handler: () =&gt; {
1083
+ eventSubscriptions.forEach((sub)=&gt; sub.unsubscribe());
1084
+ reject(`Received unexpected event: ${rejectEvent}`);
1085
+ },
1086
+ eventTypes: [rejectEvent],
1087
+ checkout,
1088
+ }));
1089
+ action();
1090
+ });
1091
+ }
1092
+ &nbsp;
1093
+ const lockSession = () =&gt; {
1094
+ return promisifyAction(
1095
+ ()=&gt;{postSessionLock(iframe, sid)},
1096
+ CheckoutEvents.SessionLocked,
1097
+ CheckoutEvents.SessionLockFailed
1098
+ );
947
1099
  };
948
1100
  &nbsp;
949
- const refreshSession = <span class="fstat-no" title="function not covered" >() =&gt; {</span>
950
- <span class="cstat-no" title="statement not covered" > postSessionRefresh(iframe, sid);</span>
1101
+ const refreshSession = () =&gt; {
1102
+ return promisifyAction(
1103
+ ()=&gt;{postSessionRefresh(iframe, sid)},
1104
+ CheckoutEvents.SessionUpdated,
1105
+ CheckoutEvents.SessionNotFound
1106
+ );
951
1107
  };
952
1108
  &nbsp;
953
1109
  const setActivePaymentProductType = <span class="fstat-no" title="function not covered" >(p</span>aymentProductType?:string) =&gt; {
@@ -966,9 +1122,18 @@ export const embed = async (
966
1122
  onValidateSession(event, checkout, submitValidationResult);
967
1123
  }
968
1124
  }
1125
+ &nbsp;
1126
+ const wrappedOnSessionLocked = (
1127
+ event: SessionLocked,
1128
+ checkout: DinteroCheckoutInstance,
1129
+ ) =&gt; {
1130
+ if (onSessionLocked) {
1131
+ onSessionLocked(event, checkout, refreshSession);
1132
+ }
1133
+ }
969
1134
  &nbsp;
970
1135
  // Create checkout object that wraps the destroy function.
971
- const checkout: DinteroCheckoutInstance = {
1136
+ checkout = {
972
1137
  destroy,
973
1138
  iframe,
974
1139
  language,
@@ -1029,7 +1194,7 @@ export const embed = async (
1029
1194
  eventTypes: [CheckoutEvents.SessionNotFound],
1030
1195
  },
1031
1196
  {
1032
- handler: onSessionLocked as SubscriptionHandler | undefined,
1197
+ handler: wrappedOnSessionLocked as SubscriptionHandler | undefined,
1033
1198
  eventTypes: [CheckoutEvents.SessionLocked],
1034
1199
  },
1035
1200
  {
@@ -1087,7 +1252,7 @@ export const redirect = (options: DinteroCheckoutOptions) =&gt; {
1087
1252
  <div class='footer quiet pad2 space-top1 center small'>
1088
1253
  Code coverage generated by
1089
1254
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1090
- at Mon Feb 14 2022 14:16:49 GMT+0000 (Coordinated Universal Time)
1255
+ at Mon Mar 21 2022 13:44:46 GMT+0000 (Coordinated Universal Time)
1091
1256
  </div>
1092
1257
  </div>
1093
1258
  <script src="prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">76.47% </span>
26
+ <span class="strong">88.24% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>26/34</span>
28
+ <span class='fraction'>30/34</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">62.5% </span>
33
+ <span class="strong">70.83% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>15/24</span>
35
+ <span class='fraction'>17/24</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50% </span>
40
+ <span class="strong">75% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/8</span>
42
+ <span class='fraction'>6/8</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">72.41% </span>
47
+ <span class="strong">86.21% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>21/29</span>
49
+ <span class='fraction'>25/29</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line medium'></div>
58
+ <div class='status-line high'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -213,7 +213,7 @@
213
213
  <span class="cline-any cline-neutral">&nbsp;</span>
214
214
  <span class="cline-any cline-neutral">&nbsp;</span>
215
215
  <span class="cline-any cline-yes">1x</span>
216
- <span class="cline-any cline-yes">22x</span>
216
+ <span class="cline-any cline-yes">27x</span>
217
217
  <span class="cline-any cline-yes">1x</span>
218
218
  <span class="cline-any cline-neutral">&nbsp;</span>
219
219
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -225,8 +225,8 @@
225
225
  <span class="cline-any cline-neutral">&nbsp;</span>
226
226
  <span class="cline-any cline-neutral">&nbsp;</span>
227
227
  <span class="cline-any cline-yes">1x</span>
228
- <span class="cline-any cline-no">&nbsp;</span>
229
- <span class="cline-any cline-no">&nbsp;</span>
228
+ <span class="cline-any cline-yes">2x</span>
229
+ <span class="cline-any cline-yes">2x</span>
230
230
  <span class="cline-any cline-neutral">&nbsp;</span>
231
231
  <span class="cline-any cline-neutral">&nbsp;</span>
232
232
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -243,8 +243,8 @@
243
243
  <span class="cline-any cline-neutral">&nbsp;</span>
244
244
  <span class="cline-any cline-neutral">&nbsp;</span>
245
245
  <span class="cline-any cline-yes">1x</span>
246
- <span class="cline-any cline-no">&nbsp;</span>
247
- <span class="cline-any cline-no">&nbsp;</span>
246
+ <span class="cline-any cline-yes">2x</span>
247
+ <span class="cline-any cline-yes">2x</span>
248
248
  <span class="cline-any cline-neutral">&nbsp;</span>
249
249
  <span class="cline-any cline-neutral">&nbsp;</span>
250
250
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -265,37 +265,37 @@
265
265
  <span class="cline-any cline-neutral">&nbsp;</span>
266
266
  <span class="cline-any cline-neutral">&nbsp;</span>
267
267
  <span class="cline-any cline-yes">1x</span>
268
- <span class="cline-any cline-yes">970x</span>
268
+ <span class="cline-any cline-yes">1295x</span>
269
269
  <span class="cline-any cline-neutral">&nbsp;</span>
270
270
  <span class="cline-any cline-neutral">&nbsp;</span>
271
271
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">194x</span>
273
- <span class="cline-any cline-yes">2447x</span>
274
- <span class="cline-any cline-yes">2447x</span>
275
- <span class="cline-any cline-yes">2447x</span>
272
+ <span class="cline-any cline-yes">259x</span>
273
+ <span class="cline-any cline-yes">3679x</span>
274
+ <span class="cline-any cline-yes">3679x</span>
275
+ <span class="cline-any cline-yes">3679x</span>
276
276
  <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-yes">2447x</span>
278
- <span class="cline-any cline-yes">2447x</span>
277
+ <span class="cline-any cline-yes">3679x</span>
278
+ <span class="cline-any cline-yes">3679x</span>
279
279
  <span class="cline-any cline-neutral">&nbsp;</span>
280
280
  <span class="cline-any cline-neutral">&nbsp;</span>
281
281
  <span class="cline-any cline-neutral">&nbsp;</span>
282
282
  <span class="cline-any cline-neutral">&nbsp;</span>
283
283
  <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-yes">22x</span>
285
- <span class="cline-any cline-yes">22x</span>
284
+ <span class="cline-any cline-yes">27x</span>
285
+ <span class="cline-any cline-yes">27x</span>
286
286
  <span class="cline-any cline-neutral">&nbsp;</span>
287
287
  <span class="cline-any cline-neutral">&nbsp;</span>
288
288
  <span class="cline-any cline-neutral">&nbsp;</span>
289
289
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">194x</span>
290
+ <span class="cline-any cline-yes">259x</span>
291
291
  <span class="cline-any cline-neutral">&nbsp;</span>
292
292
  <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-yes">194x</span>
294
- <span class="cline-any cline-yes">21x</span>
293
+ <span class="cline-any cline-yes">259x</span>
294
+ <span class="cline-any cline-yes">32x</span>
295
295
  <span class="cline-any cline-neutral">&nbsp;</span>
296
296
  <span class="cline-any cline-neutral">&nbsp;</span>
297
297
  <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-yes">194x</span>
298
+ <span class="cline-any cline-yes">259x</span>
299
299
  <span class="cline-any cline-neutral">&nbsp;</span>
300
300
  <span class="cline-any cline-neutral">&nbsp;</span>
301
301
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -345,9 +345,9 @@ const postAck = (iframe: HTMLIFrameElement, event: MessageEvent) =&gt; {
345
345
  /**
346
346
  * Post a SessionLock-event to the checkout iframe.
347
347
  */
348
- export const postSessionLock = <span class="fstat-no" title="function not covered" >(i</span>frame: HTMLIFrameElement, sid: string) =&gt; {
349
- <span class="cstat-no" title="statement not covered" > if (iframe.contentWindow) {</span>
350
- <span class="cstat-no" title="statement not covered" > iframe.contentWindow.postMessage({ type: "LockSession", sid }, "*");</span>
348
+ export const postSessionLock = (iframe: HTMLIFrameElement, sid: string) =&gt; {
349
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (iframe.contentWindow) {
350
+ iframe.contentWindow.postMessage({ type: "LockSession", sid }, "*");
351
351
  }
352
352
  };
353
353
  &nbsp;
@@ -363,9 +363,9 @@ export const postValidationResult = <span class="fstat-no" title="function not c
363
363
  /**
364
364
  * Post RefreshSession-event to the checkout iframe.
365
365
  */
366
- export const postSessionRefresh = <span class="fstat-no" title="function not covered" >(i</span>frame: HTMLIFrameElement, sid: string) =&gt; {
367
- <span class="cstat-no" title="statement not covered" > if (iframe.contentWindow) {</span>
368
- <span class="cstat-no" title="statement not covered" > iframe.contentWindow.postMessage({ type: "RefreshSession", sid }, "*");</span>
366
+ export const postSessionRefresh = (iframe: HTMLIFrameElement, sid: string) =&gt; {
367
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (iframe.contentWindow) {
368
+ iframe.contentWindow.postMessage({ type: "RefreshSession", sid }, "*");
369
369
  }
370
370
  };
371
371
  &nbsp;
@@ -427,7 +427,7 @@ export const subscribe = (options: SubscriptionOptions): Subscription =&gt; {
427
427
  <div class='footer quiet pad2 space-top1 center small'>
428
428
  Code coverage generated by
429
429
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
430
- at Mon Feb 14 2022 14:16:49 GMT+0000 (Coordinated Universal Time)
430
+ at Mon Mar 21 2022 13:44:46 GMT+0000 (Coordinated Universal Time)
431
431
  </div>
432
432
  </div>
433
433
  <script src="prettify.js"></script>
@@ -169,7 +169,7 @@ export const getSessionUrl = (options: SessionUrlOptions): string =&gt; {
169
169
  <div class='footer quiet pad2 space-top1 center small'>
170
170
  Code coverage generated by
171
171
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
172
- at Mon Feb 14 2022 14:16:49 GMT+0000 (Coordinated Universal Time)
172
+ at Mon Mar 21 2022 13:44:46 GMT+0000 (Coordinated Universal Time)
173
173
  </div>
174
174
  </div>
175
175
  <script src="prettify.js"></script>