@fat-zebra/sdk 1.5.3-beta.3 → 1.5.5-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 (192) hide show
  1. package/README.dev.md +22 -0
  2. package/deploy-menu.png +0 -0
  3. package/dist/applepay/applepay.d.ts +22 -7
  4. package/dist/applepay/applepay.js +89 -21
  5. package/dist/applepay/applepaymanager.d.ts +28 -0
  6. package/dist/applepay/applepaymanager.js +115 -0
  7. package/dist/applepay/clients/apple-pay-client.d.ts +9 -5
  8. package/dist/applepay/clients/apple-pay-client.js +9 -3
  9. package/dist/applepay/clients/paynow-client.d.ts +4 -2
  10. package/dist/applepay/clients/paynow-client.js +2 -7
  11. package/dist/applepay/types.d.ts +15 -0
  12. package/dist/applepay/types.js +1 -0
  13. package/dist/click_to_pay/index.js +12 -0
  14. package/dist/click_to_pay/types.d.ts +11 -2
  15. package/dist/local/fatzebra.js +585 -11
  16. package/dist/local/fatzebra.js.map +1 -1
  17. package/dist/main.d.ts +2 -0
  18. package/dist/main.js +24 -2
  19. package/dist/production/fatzebra.css +91 -0
  20. package/dist/production/fatzebra.js +2 -0
  21. package/dist/production/fatzebra.js.LICENSE.txt +1 -0
  22. package/dist/react/ApplePayButton.d.ts +8 -0
  23. package/dist/react/ApplePayButton.js +18 -0
  24. package/dist/react/applePayUrl.js +0 -16
  25. package/dist/react/index.d.ts +2 -1
  26. package/dist/react/index.js +2 -1
  27. package/dist/react/useFatZebra.js +8 -57
  28. package/dist/react/useMessage.d.ts +10 -0
  29. package/dist/react/useMessage.js +70 -0
  30. package/dist/sandbox/fatzebra.css +91 -0
  31. package/dist/sandbox/fatzebra.js +2 -0
  32. package/dist/sandbox/fatzebra.js.LICENSE.txt +1 -0
  33. package/dist/scripts/release-package.js +324 -0
  34. package/dist/scripts/release-package.js.map +1 -0
  35. package/dist/shared/env.development.d.ts +3 -3
  36. package/dist/shared/env.development.js +3 -3
  37. package/dist/shared/envs/local.d.ts +3 -3
  38. package/dist/shared/envs/local.js +3 -3
  39. package/dist/shared/post-message-client.d.ts +2 -0
  40. package/dist/shared/post-message-client.js +1 -1
  41. package/dist/shared/types.d.ts +14 -2
  42. package/dist/shared/types.js +2 -0
  43. package/dist/src/applepay/applepay.js +198 -0
  44. package/dist/src/applepay/applepay.js.map +1 -0
  45. package/dist/src/applepay/applepaymanager.js +279 -0
  46. package/dist/src/applepay/applepaymanager.js.map +1 -0
  47. package/dist/src/applepay/clients/apple-pay-client.js +66 -0
  48. package/dist/src/applepay/clients/apple-pay-client.js.map +1 -0
  49. package/dist/src/applepay/clients/paynow-client.js +96 -0
  50. package/dist/src/applepay/clients/paynow-client.js.map +1 -0
  51. package/dist/src/applepay/index.js +6 -0
  52. package/dist/src/applepay/index.js.map +1 -0
  53. package/dist/src/click_to_pay/clicktopay.test.js +131 -0
  54. package/dist/src/click_to_pay/clicktopay.test.js.map +1 -0
  55. package/dist/src/click_to_pay/index.js +135 -0
  56. package/dist/src/click_to_pay/index.js.map +1 -0
  57. package/dist/src/click_to_pay/types.js +3 -0
  58. package/dist/src/click_to_pay/types.js.map +1 -0
  59. package/dist/src/hpp/hpp.js +230 -0
  60. package/dist/src/hpp/hpp.js.map +1 -0
  61. package/dist/src/hpp/hpp.test.js +137 -0
  62. package/dist/src/hpp/hpp.test.js.map +1 -0
  63. package/dist/src/hpp/index.js +6 -0
  64. package/dist/src/hpp/index.js.map +1 -0
  65. package/dist/src/index.js +15 -0
  66. package/dist/src/index.js.map +1 -0
  67. package/dist/src/main.js +229 -0
  68. package/dist/src/main.js.map +1 -0
  69. package/dist/src/main.test.js +236 -0
  70. package/dist/src/main.test.js.map +1 -0
  71. package/dist/src/react/ApplePayButton.js +56 -0
  72. package/dist/src/react/ApplePayButton.js.map +1 -0
  73. package/dist/src/react/VerifyCard.js +29 -0
  74. package/dist/src/react/VerifyCard.js.map +1 -0
  75. package/dist/src/react/VerifyExistingCard.js +30 -0
  76. package/dist/src/react/VerifyExistingCard.js.map +1 -0
  77. package/dist/src/react/applePayUrl.js +46 -0
  78. package/dist/src/react/applePayUrl.js.map +1 -0
  79. package/dist/src/react/applePayUrl.test.js +57 -0
  80. package/dist/src/react/applePayUrl.test.js.map +1 -0
  81. package/dist/src/react/index.js +13 -0
  82. package/dist/src/react/index.js.map +1 -0
  83. package/dist/src/react/paymentUrl.js +60 -0
  84. package/dist/src/react/paymentUrl.js.map +1 -0
  85. package/dist/src/react/paymentUrl.test.js +88 -0
  86. package/dist/src/react/paymentUrl.test.js.map +1 -0
  87. package/dist/src/react/submitForm.js +13 -0
  88. package/dist/src/react/submitForm.js.map +1 -0
  89. package/dist/src/react/useFatZebra.js +70 -0
  90. package/dist/src/react/useFatZebra.js.map +1 -0
  91. package/dist/src/react/useMessage.js +140 -0
  92. package/dist/src/react/useMessage.js.map +1 -0
  93. package/dist/src/react/useMessage.test.js +222 -0
  94. package/dist/src/react/useMessage.test.js.map +1 -0
  95. package/dist/src/react/verifyUrl.js +49 -0
  96. package/dist/src/react/verifyUrl.js.map +1 -0
  97. package/dist/src/sca/cardinal.js +145 -0
  98. package/dist/src/sca/cardinal.js.map +1 -0
  99. package/dist/src/sca/cardinal.test.js +77 -0
  100. package/dist/src/sca/cardinal.test.js.map +1 -0
  101. package/dist/src/sca/eci-mappings.js +63 -0
  102. package/dist/src/sca/eci-mappings.js.map +1 -0
  103. package/dist/src/sca/eci-mappings.test.js +31 -0
  104. package/dist/src/sca/eci-mappings.test.js.map +1 -0
  105. package/dist/src/sca/index.js +382 -0
  106. package/dist/src/sca/index.js.map +1 -0
  107. package/dist/src/sca/index.test.js +624 -0
  108. package/dist/src/sca/index.test.js.map +1 -0
  109. package/dist/src/sca/scenarios/enrollment.js +161 -0
  110. package/dist/src/sca/scenarios/enrollment.js.map +1 -0
  111. package/dist/src/sca/scenarios/index.js +8 -0
  112. package/dist/src/sca/scenarios/index.js.map +1 -0
  113. package/dist/src/sca/scenarios/validation.js +139 -0
  114. package/dist/src/sca/scenarios/validation.js.map +1 -0
  115. package/dist/src/sca/types.js +57 -0
  116. package/dist/src/sca/types.js.map +1 -0
  117. package/dist/src/shared/api-gateway-client.js +148 -0
  118. package/dist/src/shared/api-gateway-client.js.map +1 -0
  119. package/dist/src/shared/bridge-client.js +24 -0
  120. package/dist/src/shared/bridge-client.js.map +1 -0
  121. package/dist/src/shared/constants.js +19 -0
  122. package/dist/src/shared/constants.js.map +1 -0
  123. package/dist/src/shared/env.development.js +12 -0
  124. package/dist/src/shared/env.development.js.map +1 -0
  125. package/dist/src/shared/env.js +50 -0
  126. package/dist/src/shared/env.js.map +1 -0
  127. package/dist/src/shared/envs/local.js +12 -0
  128. package/dist/src/shared/envs/local.js.map +1 -0
  129. package/dist/src/shared/envs/production.js +12 -0
  130. package/dist/src/shared/envs/production.js.map +1 -0
  131. package/dist/src/shared/envs/sandbox.js +12 -0
  132. package/dist/src/shared/envs/sandbox.js.map +1 -0
  133. package/dist/src/shared/envs/staging.js +12 -0
  134. package/dist/src/shared/envs/staging.js.map +1 -0
  135. package/dist/src/shared/event-manager.js +24 -0
  136. package/dist/src/shared/event-manager.js.map +1 -0
  137. package/dist/src/shared/post-message-client.js +127 -0
  138. package/dist/src/shared/post-message-client.js.map +1 -0
  139. package/dist/src/shared/post-message-client.test.js +58 -0
  140. package/dist/src/shared/post-message-client.test.js.map +1 -0
  141. package/dist/src/shared/types.js +36 -0
  142. package/dist/src/shared/types.js.map +1 -0
  143. package/dist/src/shared/types.test.js +55 -0
  144. package/dist/src/shared/types.test.js.map +1 -0
  145. package/dist/src/shared/util.js +96 -0
  146. package/dist/src/shared/util.js.map +1 -0
  147. package/dist/src/shared/util.test.js +148 -0
  148. package/dist/src/shared/util.test.js.map +1 -0
  149. package/dist/src/validation/index.js +12 -0
  150. package/dist/src/validation/index.js.map +1 -0
  151. package/dist/src/validation/schemas/click-to-pay/load-params.json +34 -0
  152. package/dist/src/validation/schemas/click-to-pay/options.json +23 -0
  153. package/dist/src/validation/schemas/click-to-pay/payment-intent.json +42 -0
  154. package/dist/src/validation/schemas/customer.json +38 -0
  155. package/dist/src/validation/schemas/hpp-load-params.json +40 -0
  156. package/dist/src/validation/schemas/hpp-options.json +48 -0
  157. package/dist/src/validation/schemas/payment-intent.json +48 -0
  158. package/dist/src/validation/schemas/payment-method.json +83 -0
  159. package/dist/src/validation/schemas/verify-card-options.json +15 -0
  160. package/dist/src/validation/schemas/verify-card-params.json +24 -0
  161. package/dist/src/validation/validation-helper.js +10 -0
  162. package/dist/src/validation/validation-helper.js.map +1 -0
  163. package/dist/src/validation/validation-helper.test.js +34 -0
  164. package/dist/src/validation/validation-helper.test.js.map +1 -0
  165. package/dist/src/validation/validators/apple-pay-load-params-button-validator.js +19 -0
  166. package/dist/src/validation/validators/apple-pay-load-params-button-validator.js.map +1 -0
  167. package/dist/src/validation/validators/click-to-pay-load-params-validator.js +19 -0
  168. package/dist/src/validation/validators/click-to-pay-load-params-validator.js.map +1 -0
  169. package/dist/src/validation/validators/hpp-load-params-validator.js +21 -0
  170. package/dist/src/validation/validators/hpp-load-params-validator.js.map +1 -0
  171. package/dist/src/validation/validators/hpp-load-params-validator.test.js +56 -0
  172. package/dist/src/validation/validators/hpp-load-params-validator.test.js.map +1 -0
  173. package/dist/src/validation/validators/verify-card-params-validator.js +23 -0
  174. package/dist/src/validation/validators/verify-card-params-validator.js.map +1 -0
  175. package/dist/src/version.js +5 -0
  176. package/dist/src/version.js.map +1 -0
  177. package/dist/staging/fatzebra.css +91 -0
  178. package/dist/staging/fatzebra.js +19565 -0
  179. package/dist/staging/fatzebra.js.map +1 -0
  180. package/dist/staging/index.html +247 -0
  181. package/dist/tests/helpers/api-gateway-mock.js +37 -0
  182. package/dist/tests/helpers/api-gateway-mock.js.map +1 -0
  183. package/dist/validation/schemas/applepay/load-params.json +31 -0
  184. package/dist/validation/schemas/applepay/options.json +42 -0
  185. package/dist/validation/schemas/applepay/payment-intent.json +42 -0
  186. package/dist/validation/schemas/click-to-pay/options.json +30 -3
  187. package/dist/validation/validators/apple-pay-load-params-button-validator.d.ts +3 -0
  188. package/dist/validation/validators/apple-pay-load-params-button-validator.js +12 -0
  189. package/dist/version.d.ts +1 -1
  190. package/dist/version.js +1 -1
  191. package/package.json +10 -4
  192. package/tsconfig.json +1 -0
@@ -0,0 +1,247 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <title>Merchant XYZ Checkout Page</title>
6
+ <link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
7
+ <style type="text/css">
8
+ iframe {
9
+ height: 600px;
10
+ width: 700px;
11
+ }
12
+ </style>
13
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
14
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/hmac-md5.js"></script>
15
+ <script>
16
+ window.localStorage.setItem('fz-access-token', "")
17
+ // card tokens will be filled out
18
+ var actionItems = {
19
+ tokens: [
20
+ {
21
+ token: 'whatever',
22
+ number: '4000000000001000',
23
+ description: 'Successful Frictionless Authentication'
24
+ },
25
+ {
26
+ token: '',
27
+ number: '4000000000001026',
28
+ description: 'Attempts Stand-In Frictionless'
29
+ },
30
+ {
31
+ token: '',
32
+ number: '4000000000001034',
33
+ description: 'Unavailable Frictionless'
34
+ },
35
+ {
36
+ token: '',
37
+ number: '4000000000001059',
38
+ description: 'Authentication Not Available on Lookup'
39
+ },
40
+ {
41
+ token: '',
42
+ number: '4000000000001067',
43
+ description: 'Error on Lookup'
44
+ },
45
+ {
46
+ token: '',
47
+ number: '4000000000001075',
48
+ description: 'Timeout on cmpi_lookup'
49
+ },
50
+ {
51
+ token: '',
52
+ number: '4000000000001083',
53
+ description: 'Bypassed Authentication'
54
+ },
55
+ {
56
+ token: '',
57
+ number: '4000000000001018',
58
+ description: 'Failed Frictionless'
59
+ },
60
+ {
61
+ token: '',
62
+ number: '4000000000001042',
63
+ description: 'Rejected Frictionless'
64
+ },
65
+ {
66
+ token: 'ahq94qb60fs0xaruga3h',
67
+ number: '4000000000001091',
68
+ description: 'Challenge'
69
+ }
70
+ ],
71
+ cards: [
72
+ {
73
+ number: '4000000000001000',
74
+ description: 'Successful Frictionless Authentication'
75
+ },
76
+ {
77
+ number: '4000000000001026',
78
+ description: 'Attempts Stand-In Frictionless'
79
+ },
80
+ {
81
+ number: '4000000000001034',
82
+ description: 'Unavailable Frictionless'
83
+ },
84
+ {
85
+ number: '4000000000001059',
86
+ description: 'Authentication Not Available on Lookup'
87
+ },
88
+ {
89
+ number: '4000000000001067',
90
+ description: 'Error on Lookup'
91
+ },
92
+ {
93
+ number: '4000000000001075',
94
+ description: 'Timeout on cmpi_lookup'
95
+ },
96
+ {
97
+ number: '4000000000001083',
98
+ description: 'Bypassed Authentication'
99
+ },
100
+ {
101
+ number: '4000000000001018',
102
+ description: 'Failed Frictionless'
103
+ },
104
+ {
105
+ number: '4000000000001042',
106
+ description: 'Rejected Frictionless'
107
+ },
108
+ {
109
+ number: '4000000000001091',
110
+ description: 'Challenge'
111
+ }
112
+ ]
113
+ }
114
+ </script>
115
+ <script src="fatzebra.js"></script></head>
116
+ <body>
117
+ <table id="options" class="table table-bordered">
118
+ <thead>
119
+ <tr>
120
+ <th scope="col">Card Token</th>
121
+ <th scope="col">New Card</th>
122
+ <th scope="col">Description</th>
123
+ </tr>
124
+ </thead>
125
+ <tbody>
126
+ </tbody>
127
+ </table>
128
+ <button type="button" class="btn btn-primary" id='doCheckout'>Primary</button>
129
+
130
+ <script>
131
+ var selectedMode = undefined
132
+ var selectedValue = undefined
133
+
134
+ $(document).ready(function() {
135
+
136
+ for (var i = 0; i < actionItems.tokens.length; i ++ ) {
137
+ const row = "<tr><td><input type='checkbox' class='option' data-mode='token' value='" + actionItems.tokens[i].token + "'><label>token for " + actionItems.tokens[i].number + "</label></td>" +
138
+ "<td><input type='checkbox' class='option' data-mode='card' value='" + actionItems.cards[i].number + "'><label>" + actionItems.cards[i].number + "</label></td>" +
139
+ "<td><label>" + actionItems.cards[i].description + "</label></td></tr>";
140
+ $('#options').append(row)
141
+ }
142
+
143
+ $('.option').change(function() {
144
+
145
+ if ($(this).prop("checked") == true) {
146
+ if (selectedValue === undefined) {
147
+ selectedMode = $(this).data('mode');
148
+ selectedValue = $(this).val();
149
+ } else {
150
+ $(this).prop("checked", false)
151
+ alert("There can only be one checkbox selected!");
152
+ }
153
+ } else {
154
+ selectedMode = undefined;
155
+ selectedValue = undefined;
156
+ }
157
+
158
+ console.log('selectedMode: ' + selectedMode);
159
+ console.log('selectedValue: ' + selectedValue);
160
+ })
161
+ })
162
+
163
+ </script>
164
+ </body>
165
+ <footer>
166
+
167
+ <script>
168
+ var fz = new FatZebra({
169
+ username: 'TEST'
170
+ });
171
+
172
+ $('#doCheckout').click(function() {
173
+ if (selectedMode === undefined || selectedValue == undefined) {
174
+ alert('Please select an option.');
175
+ return
176
+ }
177
+
178
+ var paymentMethod = undefined;
179
+
180
+ if (selectedMode === 'card') {
181
+ paymentMethod = {
182
+ type: 'card',
183
+ data: {
184
+ number: selectedValue,
185
+ holder: 'John Doe',
186
+ expiryMonth: '01',
187
+ expiryYear: '2022',
188
+ cvv: '123'
189
+ }
190
+ }
191
+ } else {
192
+ paymentMethod = {
193
+ type: 'card_on_file',
194
+ data: {
195
+ token: selectedValue
196
+ }
197
+ }
198
+ }
199
+
200
+ function randomString(length) {
201
+ return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1);
202
+ }
203
+
204
+ const reference = randomString(16);
205
+ const amount = 1200000;
206
+ const currency = 'AUD';
207
+ const message = [reference, amount, currency].join(':')
208
+ const verification = CryptoJS.HmacMD5(message, "033bd94b11").toString();
209
+
210
+ fz.verifyCard({
211
+ customer: {
212
+ firstName: 'Captain',
213
+ lastName: 'America',
214
+ email: 'sos@fatzebra.com.au',
215
+ address: '123 Get High Blvd.',
216
+ city: 'Red Light District',
217
+ postcode: '6666',
218
+ state: 'NSW',
219
+ country: 'Australia'
220
+ },
221
+ paymentIntent: {
222
+ payment: {
223
+ amount: amount,
224
+ currency: currency,
225
+ reference: reference
226
+ },
227
+ verification: verification
228
+ },
229
+ paymentMethod: paymentMethod
230
+ })
231
+ })
232
+
233
+ fz.on('fz.sca.error', function(event) {
234
+ console.log(JSON.stringify(event.detail))
235
+ })
236
+
237
+ fz.on('fz.sca.success', function(event) {
238
+ console.log(JSON.stringify(event.detail))
239
+ })
240
+
241
+ fz.on('fz.validation.error', function(event) {
242
+ console.log(JSON.stringify(event.detail))
243
+ })
244
+ </script>
245
+
246
+ </footer>
247
+ </html>
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.mockCustomRequest = exports.mockRequest = void 0;
7
+ var nock_1 = __importDefault(require("nock"));
8
+ var env_1 = __importDefault(require("../../src/shared/env"));
9
+ var apiGatewayUrl = env_1.default.sandbox.apiUrl;
10
+ var mockRequest = function (config) {
11
+ (0, nock_1.default)(apiGatewayUrl)
12
+ .defaultReplyHeaders({
13
+ 'Access-Control-Allow-Origin': '*',
14
+ 'Access-Control-Allow-Headers': 'Authorization, FZ-SDK-Version, fz-merchant-username',
15
+ "Content-Type": "application:json"
16
+ })
17
+ .options(config.request.path)
18
+ .reply(200, null)
19
+ .post(config.request.path, config.request.body)
20
+ .reply(config.response.status, config.response.body);
21
+ };
22
+ exports.mockRequest = mockRequest;
23
+ var mockCustomRequest = function (config) {
24
+ (0, nock_1.default)(apiGatewayUrl)
25
+ .log(console.log)
26
+ .defaultReplyHeaders({
27
+ 'Access-Control-Allow-Origin': '*',
28
+ 'Access-Control-Allow-Headers': 'Authorization',
29
+ "Content-Type": "application:json"
30
+ })
31
+ .options(config.request.path)
32
+ .reply(200, null)
33
+ .intercept(config.request.path, config.request.action, config.request.body)
34
+ .reply(config.response.status, config.response.body);
35
+ };
36
+ exports.mockCustomRequest = mockCustomRequest;
37
+ //# sourceMappingURL=api-gateway-mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-gateway-mock.js","sourceRoot":"","sources":["../../../tests/helpers/api-gateway-mock.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAuB;AACvB,6DAAsC;AAEtC,IAAM,aAAa,GAAG,aAAG,CAAC,OAAO,CAAC,MAAM,CAAA;AAcxC,IAAM,WAAW,GAAG,UAAC,MAAyB;IAC5C,IAAA,cAAI,EAAC,aAAa,CAAC;SAClB,mBAAmB,CAAC;QACnB,6BAA6B,EAAE,GAAG;QAClC,8BAA8B,EAAE,qDAAqD;QACrF,cAAc,EAAE,kBAAkB;KACnC,CAAC;SACD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5B,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;SAChB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC9C,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AACtD,CAAC,CAAA;AAiBC,kCAAW;AAfb,IAAM,iBAAiB,GAAG,UAAC,MAAyB;IAClD,IAAA,cAAI,EAAC,aAAa,CAAC;SAClB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;SAChB,mBAAmB,CAAC;QACnB,6BAA6B,EAAE,GAAG;QAClC,8BAA8B,EAAE,eAAe;QAC/C,cAAc,EAAE,kBAAkB;KACnC,CAAC;SACD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5B,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;SAChB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC1E,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AACtD,CAAC,CAAA;AAIC,8CAAiB"}
@@ -0,0 +1,31 @@
1
+ {
2
+ "$id": "https://www.fatzebra.com/schemas/applepay/load-params.json",
3
+ "type": "object",
4
+ "additionalProperties": false,
5
+ "required": [
6
+ "containerId",
7
+ "paymentIntent"
8
+ ],
9
+ "properties": {
10
+ "containerId": {
11
+ "type": "string"
12
+ },
13
+ "environment": {
14
+ "type": "string",
15
+ "enum": [
16
+ "local",
17
+ "test",
18
+ "development",
19
+ "staging",
20
+ "sandbox",
21
+ "production"
22
+ ]
23
+ },
24
+ "paymentIntent": {
25
+ "$ref": "payment-intent.json#/definitions/PaymentIntent"
26
+ },
27
+ "options": {
28
+ "$ref": "options.json#/definitions/Options"
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "$id": "https://www.fatzebra.com/schemas/applepay/options.json",
3
+ "type": "object",
4
+ "definitions": {
5
+ "Options": {
6
+ "type": "object",
7
+ "properties": {
8
+ "allowed_card_networks": {
9
+ "type": "array",
10
+ "items": {
11
+ "type": "string",
12
+ "enum": [
13
+ "amex",
14
+ "chinaUnionPay",
15
+ "discover",
16
+ "jcb",
17
+ "maestro",
18
+ "masterCard",
19
+ "visa"
20
+ ]
21
+ }
22
+ },
23
+ "allowed_card_types": {
24
+ "type": "array",
25
+ "items": {
26
+ "type": "string",
27
+ "enum": [
28
+ "supports3DS",
29
+ "supportsCredit",
30
+ "supportsDebit",
31
+ "supportsEMV"
32
+ ]
33
+ }
34
+ },
35
+ "domain_name": {
36
+ "type": "string"
37
+ }
38
+ },
39
+ "additionalProperties": false
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "$id": "https://www.fatzebra.com/schemas/applepay/payment-intent.json",
3
+ "type": "object",
4
+ "additionalProperties": false,
5
+ "definitions": {
6
+ "PaymentIntent": {
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "payment": {
11
+ "type": "object",
12
+ "additionalProperties": false,
13
+ "required": [
14
+ "amount",
15
+ "currency",
16
+ "reference"
17
+ ],
18
+ "properties": {
19
+ "amount": {
20
+ "type": "number",
21
+ "minimum": 0
22
+ },
23
+ "currency": {
24
+ "type": "string"
25
+ },
26
+ "reference": {
27
+ "type": "string"
28
+ }
29
+ }
30
+ },
31
+ "verification": {
32
+ "type": "string",
33
+ "minLength": 5
34
+ }
35
+ },
36
+ "required": [
37
+ "payment",
38
+ "verification"
39
+ ]
40
+ }
41
+ }
42
+ }
@@ -5,17 +5,44 @@
5
5
  "Options": {
6
6
  "type": "object",
7
7
  "properties": {
8
- "hideConfirmButton": {
8
+ "auth": {
9
9
  "type": "boolean"
10
10
  },
11
- "tokenizeOnly": {
12
- "type": "boolean"
11
+ "cardListButtonText": {
12
+ "type": "string"
13
13
  },
14
14
  "css": {
15
15
  "type": "string"
16
16
  },
17
17
  "cssSignature": {
18
18
  "type": "string"
19
+ },
20
+ "displayName": {
21
+ "type": "string"
22
+ },
23
+ "hideConfirmButton": {
24
+ "type": "boolean"
25
+ },
26
+ "hideManualEntryLink": {
27
+ "type": "boolean"
28
+ },
29
+ "returnPath": {
30
+ "type": "string"
31
+ },
32
+ "returnTarget": {
33
+ "type": "string"
34
+ },
35
+ "saveCard": {
36
+ "type": "boolean"
37
+ },
38
+ "sharedData": {
39
+ "type": "string"
40
+ },
41
+ "submitPaymentButtonText": {
42
+ "type": "string"
43
+ },
44
+ "tokenizeOnly": {
45
+ "type": "boolean"
19
46
  }
20
47
  }
21
48
  }
@@ -0,0 +1,3 @@
1
+ import Ajv from 'ajv';
2
+ declare const validator: Ajv.ValidateFunction;
3
+ export { validator as validateApplePayLoadParams };
@@ -0,0 +1,12 @@
1
+ import Ajv from 'ajv';
2
+ import paymentIntentSchema from '../schemas/applepay/payment-intent.json';
3
+ import optionsSchema from '../schemas/applepay/options.json';
4
+ import loadParams from '../schemas/applepay/load-params.json';
5
+ const validator = new Ajv({
6
+ allErrors: true,
7
+ jsonPointers: true,
8
+ })
9
+ .addSchema(paymentIntentSchema)
10
+ .addSchema(optionsSchema)
11
+ .compile(loadParams);
12
+ export { validator as validateApplePayLoadParams };
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "1.5.3-beta.3";
1
+ export declare const version = "1.5.5-beta.0";
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const version = '1.5.3-beta.3';
1
+ export const version = '1.5.5-beta.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fat-zebra/sdk",
3
- "version": "1.5.3-beta.3",
3
+ "version": "1.5.5-beta.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -23,6 +23,10 @@
23
23
  "author": "",
24
24
  "license": "ISC",
25
25
  "devDependencies": {
26
+ "@testing-library/dom": "^10.4.0",
27
+ "@testing-library/react": "^16.0.0",
28
+ "@testing-library/react-hooks": "^8.0.1",
29
+ "@testing-library/user-event": "^14.5.2",
26
30
  "@types/ajv": "^1.0.0",
27
31
  "@types/axios": "^0.14.0",
28
32
  "@types/dotenv": "^8.2.0",
@@ -36,16 +40,21 @@
36
40
  "dotenv-webpack": "^8.0.0",
37
41
  "ejs": "^3.0.1",
38
42
  "html-webpack-plugin": "^5.3.1",
43
+ "inquirer": "^10.0.1",
39
44
  "jest": "^29.6.1",
40
45
  "jest-environment-jsdom": "^29.6.1",
41
46
  "jest-localstorage-mock": "^2.4.22",
42
47
  "jsdom": "^16.2.1",
43
48
  "jsonwebtoken": "^9.0.0",
44
49
  "nock": "^12.0.1",
50
+ "react": "^18.3.1",
51
+ "react-dom": "^18.3.1",
52
+ "simple-git": "^3.25.0",
45
53
  "source-map-loader": "^0.2.4",
46
54
  "terser-webpack-plugin": "^4.1.0",
47
55
  "ts-jest": "^29.1.1",
48
56
  "ts-loader": "^9.4.4",
57
+ "ts-node": "^10.9.2",
49
58
  "typescript": "^5.1.6",
50
59
  "webpack": "^5.76.0",
51
60
  "webpack-cli": "^4.10.0",
@@ -55,9 +64,6 @@
55
64
  "ajv": "^6.12.3",
56
65
  "axios": "^1.6.4",
57
66
  "custom-event-polyfill": "^1.0.7",
58
- "inquirer": "^10.0.1",
59
- "simple-git": "^3.25.0",
60
- "ts-node": "^10.9.2",
61
67
  "ts-polyfill": "^3.8.2",
62
68
  "url-template": "^3.1.0"
63
69
  },
package/tsconfig.json CHANGED
@@ -2,6 +2,7 @@
2
2
  "compilerOptions": {
3
3
  "outDir": "./dist/",
4
4
  "sourceMap": true,
5
+ "skipLibCheck": true,
5
6
  "noImplicitAny": true,
6
7
  "module": "commonjs",
7
8
  "esModuleInterop": true,