@fat-zebra/sdk 1.5.4 → 1.5.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 (166) hide show
  1. package/dist/local/fatzebra.js.map +1 -1
  2. package/dist/paypal/paypal-button.d.ts +31 -0
  3. package/dist/paypal/paypal-button.js +199 -0
  4. package/dist/paypal/paypal-checkout.d.ts +21 -0
  5. package/dist/paypal/paypal-checkout.js +100 -0
  6. package/dist/paypal/types.d.ts +188 -0
  7. package/dist/paypal/types.js +5 -0
  8. package/dist/paypal/validation.d.ts +4 -0
  9. package/dist/paypal/validation.js +65 -0
  10. package/dist/production/fatzebra.js.LICENSE.txt +1 -0
  11. package/dist/react/{applePayUrl.d.ts → url.d.ts} +2 -2
  12. package/dist/react/url.js +33 -0
  13. package/dist/scripts/release-package.js +324 -0
  14. package/dist/scripts/release-package.js.map +1 -0
  15. package/dist/src/applepay/applepay.js +198 -0
  16. package/dist/src/applepay/applepay.js.map +1 -0
  17. package/dist/src/applepay/clients/apple-pay-client.js +66 -0
  18. package/dist/src/applepay/clients/apple-pay-client.js.map +1 -0
  19. package/dist/src/applepay/clients/paynow-client.js +96 -0
  20. package/dist/src/applepay/clients/paynow-client.js.map +1 -0
  21. package/dist/src/applepay/index.js +6 -0
  22. package/dist/src/applepay/index.js.map +1 -0
  23. package/dist/src/click_to_pay/clicktopay.test.js +131 -0
  24. package/dist/src/click_to_pay/clicktopay.test.js.map +1 -0
  25. package/dist/src/click_to_pay/index.js +135 -0
  26. package/dist/src/click_to_pay/index.js.map +1 -0
  27. package/dist/src/click_to_pay/types.js +3 -0
  28. package/dist/src/click_to_pay/types.js.map +1 -0
  29. package/dist/src/hpp/hpp.js +230 -0
  30. package/dist/src/hpp/hpp.js.map +1 -0
  31. package/dist/src/hpp/hpp.test.js +137 -0
  32. package/dist/src/hpp/hpp.test.js.map +1 -0
  33. package/dist/src/hpp/index.js +6 -0
  34. package/dist/src/hpp/index.js.map +1 -0
  35. package/dist/src/index.js +15 -0
  36. package/dist/src/index.js.map +1 -0
  37. package/dist/src/main.js +229 -0
  38. package/dist/src/main.js.map +1 -0
  39. package/dist/src/main.test.js +236 -0
  40. package/dist/src/main.test.js.map +1 -0
  41. package/dist/src/paypal/paypal-button.js +311 -0
  42. package/dist/src/paypal/paypal-button.js.map +1 -0
  43. package/dist/src/paypal/paypal-button.test.js +41 -0
  44. package/dist/src/paypal/paypal-button.test.js.map +1 -0
  45. package/dist/src/paypal/paypal-checkout.js +111 -0
  46. package/dist/src/paypal/paypal-checkout.js.map +1 -0
  47. package/dist/src/paypal/paypal-checkout.test.js +167 -0
  48. package/dist/src/paypal/paypal-checkout.test.js.map +1 -0
  49. package/dist/src/paypal/types.js +9 -0
  50. package/dist/src/paypal/types.js.map +1 -0
  51. package/dist/src/paypal/validation.js +73 -0
  52. package/dist/src/paypal/validation.js.map +1 -0
  53. package/dist/src/react/VerifyCard.js +29 -0
  54. package/dist/src/react/VerifyCard.js.map +1 -0
  55. package/dist/src/react/VerifyExistingCard.js +30 -0
  56. package/dist/src/react/VerifyExistingCard.js.map +1 -0
  57. package/dist/src/react/index.js +13 -0
  58. package/dist/src/react/index.js.map +1 -0
  59. package/dist/src/react/paymentUrl.js +60 -0
  60. package/dist/src/react/paymentUrl.js.map +1 -0
  61. package/dist/src/react/paymentUrl.test.js +88 -0
  62. package/dist/src/react/paymentUrl.test.js.map +1 -0
  63. package/dist/src/react/submitForm.js +13 -0
  64. package/dist/src/react/submitForm.js.map +1 -0
  65. package/dist/src/react/url.js +60 -0
  66. package/dist/src/react/url.js.map +1 -0
  67. package/dist/src/react/url.test.js +88 -0
  68. package/dist/src/react/url.test.js.map +1 -0
  69. package/dist/src/react/useFatZebra.js +119 -0
  70. package/dist/src/react/useFatZebra.js.map +1 -0
  71. package/dist/src/react/verifyUrl.js +49 -0
  72. package/dist/src/react/verifyUrl.js.map +1 -0
  73. package/dist/src/sca/cardinal.js +145 -0
  74. package/dist/src/sca/cardinal.js.map +1 -0
  75. package/dist/src/sca/cardinal.test.js +77 -0
  76. package/dist/src/sca/cardinal.test.js.map +1 -0
  77. package/dist/src/sca/eci-mappings.js +63 -0
  78. package/dist/src/sca/eci-mappings.js.map +1 -0
  79. package/dist/src/sca/eci-mappings.test.js +31 -0
  80. package/dist/src/sca/eci-mappings.test.js.map +1 -0
  81. package/dist/src/sca/index.js +382 -0
  82. package/dist/src/sca/index.js.map +1 -0
  83. package/dist/src/sca/index.test.js +624 -0
  84. package/dist/src/sca/index.test.js.map +1 -0
  85. package/dist/src/sca/scenarios/enrollment.js +161 -0
  86. package/dist/src/sca/scenarios/enrollment.js.map +1 -0
  87. package/dist/src/sca/scenarios/index.js +8 -0
  88. package/dist/src/sca/scenarios/index.js.map +1 -0
  89. package/dist/src/sca/scenarios/validation.js +139 -0
  90. package/dist/src/sca/scenarios/validation.js.map +1 -0
  91. package/dist/src/sca/types.js +57 -0
  92. package/dist/src/sca/types.js.map +1 -0
  93. package/dist/src/shared/api-gateway-client.js +148 -0
  94. package/dist/src/shared/api-gateway-client.js.map +1 -0
  95. package/dist/src/shared/bridge-client.js +24 -0
  96. package/dist/src/shared/bridge-client.js.map +1 -0
  97. package/dist/src/shared/constants.js +19 -0
  98. package/dist/src/shared/constants.js.map +1 -0
  99. package/dist/src/shared/env.development.js +12 -0
  100. package/dist/src/shared/env.development.js.map +1 -0
  101. package/dist/src/shared/env.js +50 -0
  102. package/dist/src/shared/env.js.map +1 -0
  103. package/dist/src/shared/envs/local.js +12 -0
  104. package/dist/src/shared/envs/local.js.map +1 -0
  105. package/dist/src/shared/envs/production.js +12 -0
  106. package/dist/src/shared/envs/production.js.map +1 -0
  107. package/dist/src/shared/envs/sandbox.js +12 -0
  108. package/dist/src/shared/envs/sandbox.js.map +1 -0
  109. package/dist/src/shared/envs/staging.js +12 -0
  110. package/dist/src/shared/envs/staging.js.map +1 -0
  111. package/dist/src/shared/event-manager.js +24 -0
  112. package/dist/src/shared/event-manager.js.map +1 -0
  113. package/dist/src/shared/post-message-client.js +127 -0
  114. package/dist/src/shared/post-message-client.js.map +1 -0
  115. package/dist/src/shared/post-message-client.test.js +58 -0
  116. package/dist/src/shared/post-message-client.test.js.map +1 -0
  117. package/dist/src/shared/types.js +36 -0
  118. package/dist/src/shared/types.js.map +1 -0
  119. package/dist/src/shared/types.test.js +55 -0
  120. package/dist/src/shared/types.test.js.map +1 -0
  121. package/dist/src/shared/util.js +96 -0
  122. package/dist/src/shared/util.js.map +1 -0
  123. package/dist/src/shared/util.test.js +148 -0
  124. package/dist/src/shared/util.test.js.map +1 -0
  125. package/dist/src/validation/index.js +12 -0
  126. package/dist/src/validation/index.js.map +1 -0
  127. package/dist/src/validation/schemas/click-to-pay/load-params.json +34 -0
  128. package/dist/src/validation/schemas/click-to-pay/options.json +23 -0
  129. package/dist/src/validation/schemas/click-to-pay/payment-intent.json +42 -0
  130. package/dist/src/validation/schemas/customer.json +38 -0
  131. package/dist/src/validation/schemas/hpp-load-params.json +40 -0
  132. package/dist/src/validation/schemas/hpp-options.json +48 -0
  133. package/dist/src/validation/schemas/payment-intent.json +48 -0
  134. package/dist/src/validation/schemas/payment-method.json +83 -0
  135. package/dist/src/validation/schemas/verify-card-options.json +15 -0
  136. package/dist/src/validation/schemas/verify-card-params.json +24 -0
  137. package/dist/src/validation/validation-helper.js +10 -0
  138. package/dist/src/validation/validation-helper.js.map +1 -0
  139. package/dist/src/validation/validation-helper.test.js +34 -0
  140. package/dist/src/validation/validation-helper.test.js.map +1 -0
  141. package/dist/src/validation/validators/click-to-pay-load-params-validator.js +19 -0
  142. package/dist/src/validation/validators/click-to-pay-load-params-validator.js.map +1 -0
  143. package/dist/src/validation/validators/hpp-load-params-validator.js +21 -0
  144. package/dist/src/validation/validators/hpp-load-params-validator.js.map +1 -0
  145. package/dist/src/validation/validators/hpp-load-params-validator.test.js +56 -0
  146. package/dist/src/validation/validators/hpp-load-params-validator.test.js.map +1 -0
  147. package/dist/src/validation/validators/verify-card-params-validator.js +23 -0
  148. package/dist/src/validation/validators/verify-card-params-validator.js.map +1 -0
  149. package/dist/src/version.js +5 -0
  150. package/dist/src/version.js.map +1 -0
  151. package/dist/tests/helpers/api-gateway-mock.js +37 -0
  152. package/dist/tests/helpers/api-gateway-mock.js.map +1 -0
  153. package/package.json +11 -5
  154. package/tsconfig.json +1 -0
  155. package/.idea/fatzebra-js.iml +0 -12
  156. package/.idea/modules.xml +0 -8
  157. package/.idea/vcs.xml +0 -6
  158. package/dist/applepay/applepaymanager.d.ts +0 -28
  159. package/dist/applepay/applepaymanager.js +0 -115
  160. package/dist/fatzebra.css +0 -91
  161. package/dist/local/fatzebra.js +0 -18991
  162. package/dist/react/ApplePay.d.ts +0 -9
  163. package/dist/react/ApplePay.js +0 -11
  164. package/dist/react/ApplePayButton.d.ts +0 -10
  165. package/dist/react/ApplePayButton.js +0 -33
  166. package/dist/react/applePayUrl.js +0 -19
@@ -0,0 +1,21 @@
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.validateHppLoadParams = void 0;
7
+ var ajv_1 = __importDefault(require("ajv"));
8
+ var customer_json_1 = __importDefault(require("../schemas/customer.json"));
9
+ var payment_intent_json_1 = __importDefault(require("../schemas/payment-intent.json"));
10
+ var hpp_options_json_1 = __importDefault(require("../schemas/hpp-options.json"));
11
+ var hpp_load_params_json_1 = __importDefault(require("../schemas/hpp-load-params.json"));
12
+ var validator = new ajv_1.default({
13
+ allErrors: true,
14
+ jsonPointers: true,
15
+ })
16
+ .addSchema(customer_json_1.default)
17
+ .addSchema(payment_intent_json_1.default)
18
+ .addSchema(hpp_options_json_1.default)
19
+ .compile(hpp_load_params_json_1.default);
20
+ exports.validateHppLoadParams = validator;
21
+ //# sourceMappingURL=hpp-load-params-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hpp-load-params-validator.js","sourceRoot":"","sources":["../../../../src/validation/validators/hpp-load-params-validator.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAqB;AACrB,2EAAqD;AACrD,uFAAgE;AAChE,iFAA0D;AAC1D,yFAAiE;AAEjE,IAAM,SAAS,GAAG,IAAI,aAAG,CAAC;IACxB,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;CACnB,CAAC;KACC,SAAS,CAAC,uBAAc,CAAC;KACzB,SAAS,CAAC,6BAAmB,CAAC;KAC9B,SAAS,CAAC,0BAAgB,CAAC;KAC3B,OAAO,CAAC,8BAAmB,CAAC,CAAA;AAGhB,0CAAqB"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var hpp_load_params_validator_1 = require("./hpp-load-params-validator");
4
+ var customer = {
5
+ firstName: 'John',
6
+ lastName: 'Doe',
7
+ email: 'john.doe@gmail.com',
8
+ address: '123 Sesame St.',
9
+ city: 'Sin City',
10
+ postcode: '2000',
11
+ state: 'NSW',
12
+ country: 'Australia'
13
+ };
14
+ var paymentIntent = {
15
+ payment: {
16
+ amount: 100,
17
+ currency: 'AUD',
18
+ reference: 'ref123',
19
+ hide_card_holder: false,
20
+ },
21
+ verification: 'ver123'
22
+ };
23
+ var input;
24
+ beforeEach(function () {
25
+ input = {
26
+ containerId: 'fz-iframe',
27
+ customer: customer,
28
+ paymentIntent: paymentIntent,
29
+ options: {
30
+ tokenizeOnly: false
31
+ }
32
+ };
33
+ });
34
+ describe('hppLoadParamsValidator', function () {
35
+ describe('hppOptions: tokenizeOnly', function () {
36
+ it('does not require customer object when true', function () {
37
+ delete input.customer;
38
+ input.options.tokenizeOnly = true;
39
+ var valid = (0, hpp_load_params_validator_1.validateHppLoadParams)(input);
40
+ expect(valid).toEqual(true);
41
+ });
42
+ it('require customer object when false', function () {
43
+ input.customer = customer;
44
+ input.options.tokenizeOnly = false;
45
+ var valid = (0, hpp_load_params_validator_1.validateHppLoadParams)(input);
46
+ expect(valid).toEqual(true);
47
+ });
48
+ it('require customer object when not set', function () {
49
+ input.customer = customer;
50
+ delete input.options.tokenizeOnly;
51
+ var valid = (0, hpp_load_params_validator_1.validateHppLoadParams)(input);
52
+ expect(valid).toEqual(true);
53
+ });
54
+ });
55
+ });
56
+ //# sourceMappingURL=hpp-load-params-validator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hpp-load-params-validator.test.js","sourceRoot":"","sources":["../../../../src/validation/validators/hpp-load-params-validator.test.ts"],"names":[],"mappings":";;AAAA,yEAAmE;AAGnE,IAAM,QAAQ,GAAG;IACf,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,oBAAoB;IAC3B,OAAO,EAAE,gBAAgB;IACzB,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,WAAW;CACrB,CAAA;AAED,IAAM,aAAa,GAAG;IACpB,OAAO,EAAE;QACP,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,QAAQ;QACnB,gBAAgB,EAAE,KAAK;KACxB;IACD,YAAY,EAAE,QAAQ;CACvB,CAAA;AAED,IAAI,KAAoB,CAAA;AAExB,UAAU,CAAC;IACT,KAAK,GAAG;QACN,WAAW,EAAE,WAAW;QACxB,QAAQ,UAAA;QACR,aAAa,eAAA;QACb,OAAO,EAAE;YACP,YAAY,EAAE,KAAK;SACpB;KACF,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,wBAAwB,EAAE;IACjC,QAAQ,CAAC,0BAA0B,EAAE;QACnC,EAAE,CAAC,4CAA4C,EAAE;YAC/C,OAAO,KAAK,CAAC,QAAQ,CAAA;YACrB,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAA;YAEjC,IAAM,KAAK,GAAG,IAAA,iDAAqB,EAAC,KAAK,CAAC,CAAA;YAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE;YACvC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;YACzB,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;YAElC,IAAM,KAAK,GAAG,IAAA,iDAAqB,EAAC,KAAK,CAAC,CAAA;YAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sCAAsC,EAAE;YACzC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;YACzB,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAA;YAEjC,IAAM,KAAK,GAAG,IAAA,iDAAqB,EAAC,KAAK,CAAC,CAAA;YAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,23 @@
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.validateVerifyCardParams = void 0;
7
+ var ajv_1 = __importDefault(require("ajv"));
8
+ var customer_json_1 = __importDefault(require("../schemas/customer.json"));
9
+ var payment_intent_json_1 = __importDefault(require("../schemas/payment-intent.json"));
10
+ var payment_method_json_1 = __importDefault(require("../schemas/payment-method.json"));
11
+ var verify_card_options_json_1 = __importDefault(require("../schemas/verify-card-options.json"));
12
+ var verify_card_params_json_1 = __importDefault(require("../schemas/verify-card-params.json"));
13
+ var validator = new ajv_1.default({
14
+ allErrors: true,
15
+ jsonPointers: true,
16
+ })
17
+ .addSchema(customer_json_1.default)
18
+ .addSchema(payment_intent_json_1.default)
19
+ .addSchema(payment_method_json_1.default)
20
+ .addSchema(verify_card_options_json_1.default)
21
+ .compile(verify_card_params_json_1.default);
22
+ exports.validateVerifyCardParams = validator;
23
+ //# sourceMappingURL=verify-card-params-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-card-params-validator.js","sourceRoot":"","sources":["../../../../src/validation/validators/verify-card-params-validator.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAqB;AAErB,2EAAqD;AACrD,uFAAgE;AAChE,uFAAgE;AAChE,iGAAyE;AACzE,+FAAuE;AAEvE,IAAM,SAAS,GAAG,IAAI,aAAG,CAAC;IACxB,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;CACnB,CAAC;KACD,SAAS,CAAC,uBAAc,CAAC;KACzB,SAAS,CAAC,6BAAmB,CAAC;KAC9B,SAAS,CAAC,6BAAmB,CAAC;KAC9B,SAAS,CAAC,kCAAuB,CAAC;KAClC,OAAO,CAAC,iCAAsB,CAAC,CAAA;AAGlB,6CAAwB"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.version = void 0;
4
+ exports.version = '1.5.4';
5
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,OAAO,CAAC"}
@@ -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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fat-zebra/sdk",
3
- "version": "1.5.4",
3
+ "version": "1.5.5",
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
  },
@@ -65,4 +71,4 @@
65
71
  "react": ">= 16",
66
72
  "react-dom": ">= 16"
67
73
  }
68
- }
74
+ }
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,
@@ -1,12 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="WEB_MODULE" version="4">
3
- <component name="NewModuleRootManager">
4
- <content url="file://$MODULE_DIR$">
5
- <excludeFolder url="file://$MODULE_DIR$/temp" />
6
- <excludeFolder url="file://$MODULE_DIR$/.tmp" />
7
- <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
- </content>
9
- <orderEntry type="inheritedJdk" />
10
- <orderEntry type="sourceFolder" forTests="false" />
11
- </component>
12
- </module>
package/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/fatzebra-js.iml" filepath="$PROJECT_DIR$/.idea/fatzebra-js.iml" />
6
- </modules>
7
- </component>
8
- </project>
package/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="" vcs="Git" />
5
- </component>
6
- </project>
@@ -1,28 +0,0 @@
1
- import { PaymentRequest } from './clients/apple-pay-client';
2
- import * as payNow from './clients/paynow-client';
3
- import { PostMessage } from '../shared/post-message-client';
4
- declare class ApplePayManager {
5
- private merchantId;
6
- private canMakePayments;
7
- private iframe;
8
- private applePaySession;
9
- private postMessageClient;
10
- private fzPayNowDomain;
11
- private username?;
12
- private token?;
13
- constructor(config: {
14
- iframe: HTMLIFrameElement;
15
- fzPayNowDomain: string;
16
- username?: string;
17
- token?: string;
18
- });
19
- initialize(): Promise<void>;
20
- checkApplePayEligibility(): void;
21
- notifyApplePayEligibility(): void;
22
- registerEventListener(): Promise<void>;
23
- purchase(request: PaymentRequest): Promise<void>;
24
- extractApplePaymentRequestParams(payload: any): PaymentRequest;
25
- extractPayNowPaymentAttributes(payload: any): payNow.PaymentAttributes;
26
- sendMessage(payload: PostMessage): void;
27
- }
28
- export default ApplePayManager;
@@ -1,115 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { createSession, getEligibilty, } from './clients/apple-pay-client';
11
- import * as payNow from './clients/paynow-client';
12
- import { PostMessageClient } from '../shared/post-message-client';
13
- // import * as process from "process";
14
- const channel = 'applepay';
15
- // const fzPayNowDomain = process.env.PAYNOW_BASE_URL
16
- // do the domain handling stuff better
17
- const paynowDomain = 'https://paynow.test';
18
- const merchantSessionPath = '/v2/apple_pay/payment_session';
19
- const purchaseTokenPath = '/v2/apple_pay/token';
20
- class ApplePayManager {
21
- constructor(config) {
22
- // if (!config.fzPayNowDomain) {
23
- // console.log('hitting i here')
24
- // this.fzPayNowDomain = process?.env?.PAYNOW_BASE_URL;
25
- // } else {
26
- this.fzPayNowDomain = config.fzPayNowDomain;
27
- this.username = config.username;
28
- this.token = config.token;
29
- // }
30
- this.iframe = config.iframe;
31
- this.postMessageClient = new PostMessageClient({
32
- channel: 'applepay',
33
- target: this.iframe
34
- });
35
- this.initialize();
36
- }
37
- initialize() {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- yield this.registerEventListener();
40
- this.checkApplePayEligibility();
41
- this.notifyApplePayEligibility();
42
- });
43
- }
44
- checkApplePayEligibility() {
45
- if (getEligibilty()) {
46
- this.canMakePayments = true;
47
- }
48
- }
49
- notifyApplePayEligibility() {
50
- const message = {
51
- channel,
52
- subject: 'eligibility',
53
- data: {
54
- canMakePayments: this.canMakePayments
55
- }
56
- };
57
- this.postMessageClient.send(message);
58
- }
59
- registerEventListener() {
60
- return new Promise((resolve, reject) => {
61
- this.postMessageClient.setEventListeners({
62
- 'paymentrequest': (data) => __awaiter(this, void 0, void 0, function* () {
63
- yield this.purchase(data);
64
- })
65
- });
66
- resolve();
67
- });
68
- }
69
- purchase(request) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- const applePayPaymentRequest = this.extractApplePaymentRequestParams(request);
72
- const payNowPaymentAttributes = this.extractPayNowPaymentAttributes(request);
73
- this.applePaySession = yield createSession(applePayPaymentRequest);
74
- this.applePaySession.onvalidatemerchant = (event) => __awaiter(this, void 0, void 0, function* () {
75
- let merchantSession;
76
- try {
77
- merchantSession = yield payNow.getMerchantSession(event.validationURL, Object.assign(Object.assign({}, payNowPaymentAttributes), { merchant: this.username, domain_name: window.location.hostname, display_name: this.username }), `${paynowDomain}${merchantSessionPath}`, this.username, this.token);
78
- }
79
- catch (e) {
80
- console.log('Unable to establish new merchant session');
81
- return;
82
- }
83
- this.applePaySession.completeMerchantValidation(merchantSession);
84
- });
85
- this.applePaySession.onpaymentauthorized = (event) => __awaiter(this, void 0, void 0, function* () {
86
- try {
87
- yield payNow.authorizePayment(Object.assign(Object.assign({}, payNowPaymentAttributes), { merchant: this.username, token: event.payment.token }), `${paynowDomain}${purchaseTokenPath}`);
88
- this.applePaySession.completePayment(window.ApplePaySession.STATUS_SUCCESS);
89
- }
90
- catch (e) {
91
- this.applePaySession.completePayment(window.ApplePaySession.STATUS_FAILURE);
92
- }
93
- });
94
- this.applePaySession.begin();
95
- });
96
- }
97
- extractApplePaymentRequestParams(payload) {
98
- const { countryCode, currencyCode, merchantCapabilities, supportedNetworks, total, } = payload;
99
- return {
100
- countryCode,
101
- currencyCode,
102
- merchantCapabilities,
103
- supportedNetworks,
104
- total,
105
- };
106
- }
107
- extractPayNowPaymentAttributes(payload) {
108
- const { paymentAttributes } = payload;
109
- return paymentAttributes;
110
- }
111
- sendMessage(payload) {
112
- this.iframe.contentWindow.postMessage(payload, this.fzPayNowDomain);
113
- }
114
- }
115
- export default ApplePayManager;
package/dist/fatzebra.css DELETED
@@ -1,91 +0,0 @@
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
- }