@fat-zebra/sdk 1.5.5 → 1.5.7-beta.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 (116) hide show
  1. package/.idea/fatzebra-js.iml +12 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/prettier.xml +6 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/dist/applepay/applepay.d.ts +22 -7
  6. package/dist/applepay/applepay.js +99 -21
  7. package/dist/applepay/applepaymanager.d.ts +28 -0
  8. package/dist/applepay/applepaymanager.js +115 -0
  9. package/dist/applepay/clients/apple-pay-client.d.ts +9 -5
  10. package/dist/applepay/clients/apple-pay-client.js +10 -4
  11. package/dist/applepay/clients/paynow-client.d.ts +4 -2
  12. package/dist/applepay/clients/paynow-client.js +2 -7
  13. package/dist/applepay/types.d.ts +15 -0
  14. package/dist/applepay/types.js +1 -0
  15. package/dist/click_to_pay/index.d.ts +1 -0
  16. package/dist/click_to_pay/index.js +42 -6
  17. package/dist/click_to_pay/types.d.ts +12 -2
  18. package/dist/fatzebra.css +91 -0
  19. package/dist/hpp/hpp.d.ts +4 -0
  20. package/dist/hpp/hpp.js +26 -5
  21. package/dist/local/fatzebra.js +19684 -0
  22. package/dist/local/fatzebra.js.map +1 -1
  23. package/dist/main.d.ts +2 -0
  24. package/dist/main.js +24 -2
  25. package/dist/production/fatzebra.css +91 -0
  26. package/dist/production/fatzebra.js +2 -0
  27. package/dist/react/ApplePay.d.ts +9 -0
  28. package/dist/react/ApplePay.js +11 -0
  29. package/dist/react/ApplePayButton.d.ts +8 -0
  30. package/dist/react/ApplePayButton.js +18 -0
  31. package/dist/react/{url.d.ts → applePayUrl.d.ts} +2 -2
  32. package/dist/react/applePayUrl.js +19 -0
  33. package/dist/react/index.d.ts +2 -1
  34. package/dist/react/index.js +2 -1
  35. package/dist/react/useFatZebra.js +8 -57
  36. package/dist/react/useMessage.d.ts +10 -0
  37. package/dist/react/useMessage.js +70 -0
  38. package/dist/sandbox/fatzebra.css +91 -0
  39. package/dist/sandbox/fatzebra.js +2 -0
  40. package/dist/sandbox/fatzebra.js.LICENSE.txt +1 -0
  41. package/dist/sca/cardinal.d.ts +2 -11
  42. package/dist/sca/cardinal.js +4 -10
  43. package/dist/sca/index.d.ts +11 -1
  44. package/dist/sca/index.js +3 -38
  45. package/dist/sca/scenarios/enrollment.js +12 -0
  46. package/dist/sca/types/cardinal_types.d.ts +61 -0
  47. package/dist/sca/types/cardinal_types.js +11 -0
  48. package/dist/sca/types.d.ts +4 -1
  49. package/dist/sca/types.js +1 -0
  50. package/dist/sca/utility/index.d.ts +7 -0
  51. package/dist/sca/utility/index.js +39 -0
  52. package/dist/shared/bridge-client.d.ts +5 -1
  53. package/dist/shared/bridge-client.js +19 -1
  54. package/dist/shared/env.development.d.ts +3 -3
  55. package/dist/shared/env.development.js +3 -3
  56. package/dist/shared/envs/local.d.ts +3 -3
  57. package/dist/shared/envs/local.js +3 -3
  58. package/dist/shared/event-manager.d.ts +1 -1
  59. package/dist/shared/post-message-client.d.ts +2 -0
  60. package/dist/shared/post-message-client.js +1 -1
  61. package/dist/shared/types.d.ts +28 -13
  62. package/dist/shared/types.js +11 -1
  63. package/dist/src/applepay/applepaymanager.js +279 -0
  64. package/dist/src/applepay/applepaymanager.js.map +1 -0
  65. package/dist/src/react/ApplePayButton.js +56 -0
  66. package/dist/src/react/ApplePayButton.js.map +1 -0
  67. package/dist/src/react/{url.js → applePayUrl.js} +7 -21
  68. package/dist/src/react/applePayUrl.js.map +1 -0
  69. package/dist/src/react/applePayUrl.test.js +57 -0
  70. package/dist/src/react/applePayUrl.test.js.map +1 -0
  71. package/dist/src/react/useFatZebra.js +7 -56
  72. package/dist/src/react/useFatZebra.js.map +1 -1
  73. package/dist/src/react/useMessage.js +140 -0
  74. package/dist/src/react/useMessage.js.map +1 -0
  75. package/dist/src/react/useMessage.test.js +222 -0
  76. package/dist/src/react/useMessage.test.js.map +1 -0
  77. package/dist/src/validation/validators/apple-pay-load-params-button-validator.js +19 -0
  78. package/dist/src/validation/validators/apple-pay-load-params-button-validator.js.map +1 -0
  79. package/dist/staging/fatzebra.css +91 -0
  80. package/dist/staging/fatzebra.js +19684 -0
  81. package/dist/staging/fatzebra.js.map +1 -0
  82. package/dist/staging/index.html +247 -0
  83. package/dist/validation/schemas/applepay/load-params.json +31 -0
  84. package/dist/validation/schemas/applepay/options.json +115 -0
  85. package/dist/validation/schemas/applepay/payment-intent.json +42 -0
  86. package/dist/validation/schemas/click-to-pay/options.json +33 -3
  87. package/dist/validation/validators/apple-pay-load-params-button-validator.d.ts +3 -0
  88. package/dist/validation/validators/apple-pay-load-params-button-validator.js +12 -0
  89. package/dist/version.d.ts +1 -1
  90. package/dist/version.js +1 -1
  91. package/package.json +4 -3
  92. package/tsconfig.json +1 -1
  93. package/dist/paypal/paypal-button.d.ts +0 -31
  94. package/dist/paypal/paypal-button.js +0 -199
  95. package/dist/paypal/paypal-checkout.d.ts +0 -21
  96. package/dist/paypal/paypal-checkout.js +0 -100
  97. package/dist/paypal/types.d.ts +0 -188
  98. package/dist/paypal/types.js +0 -5
  99. package/dist/paypal/validation.d.ts +0 -4
  100. package/dist/paypal/validation.js +0 -65
  101. package/dist/react/url.js +0 -33
  102. package/dist/src/paypal/paypal-button.js +0 -311
  103. package/dist/src/paypal/paypal-button.js.map +0 -1
  104. package/dist/src/paypal/paypal-button.test.js +0 -41
  105. package/dist/src/paypal/paypal-button.test.js.map +0 -1
  106. package/dist/src/paypal/paypal-checkout.js +0 -111
  107. package/dist/src/paypal/paypal-checkout.js.map +0 -1
  108. package/dist/src/paypal/paypal-checkout.test.js +0 -167
  109. package/dist/src/paypal/paypal-checkout.test.js.map +0 -1
  110. package/dist/src/paypal/types.js +0 -9
  111. package/dist/src/paypal/types.js.map +0 -1
  112. package/dist/src/paypal/validation.js +0 -73
  113. package/dist/src/paypal/validation.js.map +0 -1
  114. package/dist/src/react/url.js.map +0 -1
  115. package/dist/src/react/url.test.js +0 -88
  116. package/dist/src/react/url.test.js.map +0 -1
@@ -0,0 +1,91 @@
1
+ .checkout-button-wrapper {
2
+ display: flex;
3
+ justify-content: center;
4
+ align-items: center;
5
+ height: 200px;
6
+ }
7
+
8
+ .iframe-checkout {
9
+ flex: 1;
10
+ border: none;
11
+ width: 100%;
12
+ height: 100%;
13
+ min-height: 0;
14
+ overflow: auto;
15
+ -webkit-overflow-scrolling: touch;
16
+ }
17
+
18
+ .iframe-foreground,
19
+ .iframe-background {
20
+ top: 0;
21
+ left: 0;
22
+ right: 0;
23
+ bottom: 0;
24
+ flex-direction: column;
25
+ }
26
+
27
+ .iframe-foreground,
28
+ .iframe-background {
29
+ position: fixed;
30
+ }
31
+
32
+ .iframe-foreground {
33
+ z-index: -1;
34
+ }
35
+
36
+ .iframe-background {
37
+ background: rgba(0, 0, 0, 0.5);
38
+ }
39
+
40
+ .iframe-foreground {
41
+ flex-grow: 1;
42
+ top: auto;
43
+ width: 100%;
44
+ max-width: 480px;
45
+ height: 80vh;
46
+ background-color: #ffffff;
47
+ border-radius: 25px 25px 0 0;
48
+ }
49
+
50
+ .slide-in .iframe-foreground {
51
+ transform: translateY(100vh);
52
+ transition: transform 0.4s ease, z-index 0.3s ease 0.4s;
53
+ z-index: -1;
54
+ }
55
+
56
+ .slide-in .iframe-background {
57
+ opacity: 0;
58
+ z-index: -1;
59
+ transition: opacity 0.3s ease, z-index 0.3s ease 0.3s;
60
+ }
61
+
62
+ .slide-in.show .iframe-foreground {
63
+ transform: none;
64
+ transition: transform 0.4s ease;
65
+ z-index: 100;
66
+ }
67
+
68
+ .slide-in.show .iframe-background {
69
+ opacity: 1;
70
+ z-index: 0;
71
+ transition: opacity 0.3s ease;
72
+ }
73
+
74
+ @media only screen and (min-width: 480px) {
75
+ .iframe-foreground {
76
+ margin: 0 auto;
77
+ }
78
+ }
79
+
80
+ @media only screen and (min-width: 768px) {
81
+ .iframe-foreground {
82
+ margin: 0;
83
+ width: 400px;
84
+ height: 100vh;
85
+ left: 0;
86
+ }
87
+
88
+ .slide-in .iframe-foreground {
89
+ transform: translateX(-400px);
90
+ }
91
+ }
package/dist/hpp/hpp.d.ts CHANGED
@@ -46,7 +46,11 @@ declare class Hpp {
46
46
  private postMessageClient;
47
47
  private test;
48
48
  private hppOptions;
49
+ private headlessLoaded;
50
+ private headlessPreviouslyLoaded;
51
+ private iframeLoaded;
49
52
  constructor(config: HppModuleConfig);
53
+ setListenersAndEmitReady(): void;
50
54
  load(config: HppLoadParams): void;
51
55
  purchase(): void;
52
56
  getPayNowUrl(options?: {
package/dist/hpp/hpp.js CHANGED
@@ -17,24 +17,45 @@ class Hpp {
17
17
  this.sca = config.sca;
18
18
  this.test = config.test;
19
19
  this.version = config.version || 2;
20
+ this.headlessLoaded = false;
21
+ this.headlessPreviouslyLoaded = false;
22
+ this.iframeLoaded = false;
20
23
  this.postMessageClient = new PostMessageClient({
21
24
  channel: 'sca',
22
25
  target: this.iframe
23
26
  });
24
27
  }
28
+ setListenersAndEmitReady() {
29
+ if (this.headlessLoaded && this.iframeLoaded) {
30
+ // initial headless load
31
+ this.setCrossFramesEventListeners();
32
+ this.setPublicEventListeners();
33
+ emit(PublicEvent.HPP_READY);
34
+ }
35
+ else if (this.headlessPreviouslyLoaded && this.iframeLoaded) {
36
+ // subsequent iframe loads after headless has been previously loaded
37
+ // this caters for the SPA scenario
38
+ emit(PublicEvent.HPP_READY);
39
+ }
40
+ }
25
41
  load(config) {
26
42
  this.hppOptions = config.options;
27
- this.headless = bridge.load(process.env.PAYNOW_BRIDGE_URL);
43
+ const { el, isExisting } = bridge.load2(process.env.PAYNOW_BRIDGE_URL);
44
+ this.headless = el;
45
+ this.headlessPreviouslyLoaded = isExisting;
28
46
  this.iframe = document.createElement('iframe');
29
47
  document.getElementById(config.containerId).appendChild(this.iframe);
30
48
  this.headless.onload = () => {
31
- this.iframe.onload = () => {
32
- this.setCrossFramesEventListeners();
33
- this.setPublicEventListeners();
34
- };
49
+ this.headlessLoaded = true;
50
+ this.setListenersAndEmitReady();
51
+ };
52
+ this.iframe.onload = () => {
53
+ this.iframeLoaded = true;
54
+ this.setListenersAndEmitReady();
35
55
  };
36
56
  const payNowUrl = this.getPayNowUrl(config.options);
37
57
  this.iframe.setAttribute("src", payNowUrl);
58
+ this.iframe.setAttribute('allow', 'payment');
38
59
  }
39
60
  purchase() {
40
61
  const message = {