@fat-zebra/sdk 1.5.4 → 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 (187) hide show
  1. package/dist/applepay/applepay.d.ts +22 -7
  2. package/dist/applepay/applepay.js +89 -21
  3. package/dist/applepay/clients/apple-pay-client.d.ts +9 -5
  4. package/dist/applepay/clients/apple-pay-client.js +9 -3
  5. package/dist/applepay/clients/paynow-client.d.ts +4 -2
  6. package/dist/applepay/clients/paynow-client.js +2 -7
  7. package/dist/applepay/types.d.ts +15 -0
  8. package/dist/applepay/types.js +1 -0
  9. package/dist/click_to_pay/index.js +12 -0
  10. package/dist/click_to_pay/types.d.ts +11 -2
  11. package/dist/local/fatzebra.js +585 -11
  12. package/dist/local/fatzebra.js.map +1 -1
  13. package/dist/main.d.ts +2 -0
  14. package/dist/main.js +24 -2
  15. package/dist/production/fatzebra.css +91 -0
  16. package/dist/production/fatzebra.js +2 -0
  17. package/dist/production/fatzebra.js.LICENSE.txt +1 -0
  18. package/dist/react/ApplePayButton.d.ts +1 -3
  19. package/dist/react/ApplePayButton.js +12 -27
  20. package/dist/react/index.d.ts +2 -1
  21. package/dist/react/index.js +2 -1
  22. package/dist/react/useFatZebra.js +8 -57
  23. package/dist/react/useMessage.d.ts +10 -0
  24. package/dist/react/useMessage.js +70 -0
  25. package/dist/sandbox/fatzebra.css +91 -0
  26. package/dist/sandbox/fatzebra.js +2 -0
  27. package/dist/sandbox/fatzebra.js.LICENSE.txt +1 -0
  28. package/dist/scripts/release-package.js +324 -0
  29. package/dist/scripts/release-package.js.map +1 -0
  30. package/dist/shared/env.development.d.ts +3 -3
  31. package/dist/shared/env.development.js +3 -3
  32. package/dist/shared/envs/local.d.ts +3 -3
  33. package/dist/shared/envs/local.js +3 -3
  34. package/dist/shared/post-message-client.d.ts +2 -0
  35. package/dist/shared/post-message-client.js +1 -1
  36. package/dist/shared/types.d.ts +14 -2
  37. package/dist/shared/types.js +2 -0
  38. package/dist/src/applepay/applepay.js +198 -0
  39. package/dist/src/applepay/applepay.js.map +1 -0
  40. package/dist/src/applepay/applepaymanager.js +279 -0
  41. package/dist/src/applepay/applepaymanager.js.map +1 -0
  42. package/dist/src/applepay/clients/apple-pay-client.js +66 -0
  43. package/dist/src/applepay/clients/apple-pay-client.js.map +1 -0
  44. package/dist/src/applepay/clients/paynow-client.js +96 -0
  45. package/dist/src/applepay/clients/paynow-client.js.map +1 -0
  46. package/dist/src/applepay/index.js +6 -0
  47. package/dist/src/applepay/index.js.map +1 -0
  48. package/dist/src/click_to_pay/clicktopay.test.js +131 -0
  49. package/dist/src/click_to_pay/clicktopay.test.js.map +1 -0
  50. package/dist/src/click_to_pay/index.js +135 -0
  51. package/dist/src/click_to_pay/index.js.map +1 -0
  52. package/dist/src/click_to_pay/types.js +3 -0
  53. package/dist/src/click_to_pay/types.js.map +1 -0
  54. package/dist/src/hpp/hpp.js +230 -0
  55. package/dist/src/hpp/hpp.js.map +1 -0
  56. package/dist/src/hpp/hpp.test.js +137 -0
  57. package/dist/src/hpp/hpp.test.js.map +1 -0
  58. package/dist/src/hpp/index.js +6 -0
  59. package/dist/src/hpp/index.js.map +1 -0
  60. package/dist/src/index.js +15 -0
  61. package/dist/src/index.js.map +1 -0
  62. package/dist/src/main.js +229 -0
  63. package/dist/src/main.js.map +1 -0
  64. package/dist/src/main.test.js +236 -0
  65. package/dist/src/main.test.js.map +1 -0
  66. package/dist/src/react/ApplePayButton.js +56 -0
  67. package/dist/src/react/ApplePayButton.js.map +1 -0
  68. package/dist/src/react/VerifyCard.js +29 -0
  69. package/dist/src/react/VerifyCard.js.map +1 -0
  70. package/dist/src/react/VerifyExistingCard.js +30 -0
  71. package/dist/src/react/VerifyExistingCard.js.map +1 -0
  72. package/dist/src/react/applePayUrl.js +46 -0
  73. package/dist/src/react/applePayUrl.js.map +1 -0
  74. package/dist/src/react/applePayUrl.test.js +57 -0
  75. package/dist/src/react/applePayUrl.test.js.map +1 -0
  76. package/dist/src/react/index.js +13 -0
  77. package/dist/src/react/index.js.map +1 -0
  78. package/dist/src/react/paymentUrl.js +60 -0
  79. package/dist/src/react/paymentUrl.js.map +1 -0
  80. package/dist/src/react/paymentUrl.test.js +88 -0
  81. package/dist/src/react/paymentUrl.test.js.map +1 -0
  82. package/dist/src/react/submitForm.js +13 -0
  83. package/dist/src/react/submitForm.js.map +1 -0
  84. package/dist/src/react/useFatZebra.js +70 -0
  85. package/dist/src/react/useFatZebra.js.map +1 -0
  86. package/dist/src/react/useMessage.js +140 -0
  87. package/dist/src/react/useMessage.js.map +1 -0
  88. package/dist/src/react/useMessage.test.js +222 -0
  89. package/dist/src/react/useMessage.test.js.map +1 -0
  90. package/dist/src/react/verifyUrl.js +49 -0
  91. package/dist/src/react/verifyUrl.js.map +1 -0
  92. package/dist/src/sca/cardinal.js +145 -0
  93. package/dist/src/sca/cardinal.js.map +1 -0
  94. package/dist/src/sca/cardinal.test.js +77 -0
  95. package/dist/src/sca/cardinal.test.js.map +1 -0
  96. package/dist/src/sca/eci-mappings.js +63 -0
  97. package/dist/src/sca/eci-mappings.js.map +1 -0
  98. package/dist/src/sca/eci-mappings.test.js +31 -0
  99. package/dist/src/sca/eci-mappings.test.js.map +1 -0
  100. package/dist/src/sca/index.js +382 -0
  101. package/dist/src/sca/index.js.map +1 -0
  102. package/dist/src/sca/index.test.js +624 -0
  103. package/dist/src/sca/index.test.js.map +1 -0
  104. package/dist/src/sca/scenarios/enrollment.js +161 -0
  105. package/dist/src/sca/scenarios/enrollment.js.map +1 -0
  106. package/dist/src/sca/scenarios/index.js +8 -0
  107. package/dist/src/sca/scenarios/index.js.map +1 -0
  108. package/dist/src/sca/scenarios/validation.js +139 -0
  109. package/dist/src/sca/scenarios/validation.js.map +1 -0
  110. package/dist/src/sca/types.js +57 -0
  111. package/dist/src/sca/types.js.map +1 -0
  112. package/dist/src/shared/api-gateway-client.js +148 -0
  113. package/dist/src/shared/api-gateway-client.js.map +1 -0
  114. package/dist/src/shared/bridge-client.js +24 -0
  115. package/dist/src/shared/bridge-client.js.map +1 -0
  116. package/dist/src/shared/constants.js +19 -0
  117. package/dist/src/shared/constants.js.map +1 -0
  118. package/dist/src/shared/env.development.js +12 -0
  119. package/dist/src/shared/env.development.js.map +1 -0
  120. package/dist/src/shared/env.js +50 -0
  121. package/dist/src/shared/env.js.map +1 -0
  122. package/dist/src/shared/envs/local.js +12 -0
  123. package/dist/src/shared/envs/local.js.map +1 -0
  124. package/dist/src/shared/envs/production.js +12 -0
  125. package/dist/src/shared/envs/production.js.map +1 -0
  126. package/dist/src/shared/envs/sandbox.js +12 -0
  127. package/dist/src/shared/envs/sandbox.js.map +1 -0
  128. package/dist/src/shared/envs/staging.js +12 -0
  129. package/dist/src/shared/envs/staging.js.map +1 -0
  130. package/dist/src/shared/event-manager.js +24 -0
  131. package/dist/src/shared/event-manager.js.map +1 -0
  132. package/dist/src/shared/post-message-client.js +127 -0
  133. package/dist/src/shared/post-message-client.js.map +1 -0
  134. package/dist/src/shared/post-message-client.test.js +58 -0
  135. package/dist/src/shared/post-message-client.test.js.map +1 -0
  136. package/dist/src/shared/types.js +36 -0
  137. package/dist/src/shared/types.js.map +1 -0
  138. package/dist/src/shared/types.test.js +55 -0
  139. package/dist/src/shared/types.test.js.map +1 -0
  140. package/dist/src/shared/util.js +96 -0
  141. package/dist/src/shared/util.js.map +1 -0
  142. package/dist/src/shared/util.test.js +148 -0
  143. package/dist/src/shared/util.test.js.map +1 -0
  144. package/dist/src/validation/index.js +12 -0
  145. package/dist/src/validation/index.js.map +1 -0
  146. package/dist/src/validation/schemas/click-to-pay/load-params.json +34 -0
  147. package/dist/src/validation/schemas/click-to-pay/options.json +23 -0
  148. package/dist/src/validation/schemas/click-to-pay/payment-intent.json +42 -0
  149. package/dist/src/validation/schemas/customer.json +38 -0
  150. package/dist/src/validation/schemas/hpp-load-params.json +40 -0
  151. package/dist/src/validation/schemas/hpp-options.json +48 -0
  152. package/dist/src/validation/schemas/payment-intent.json +48 -0
  153. package/dist/src/validation/schemas/payment-method.json +83 -0
  154. package/dist/src/validation/schemas/verify-card-options.json +15 -0
  155. package/dist/src/validation/schemas/verify-card-params.json +24 -0
  156. package/dist/src/validation/validation-helper.js +10 -0
  157. package/dist/src/validation/validation-helper.js.map +1 -0
  158. package/dist/src/validation/validation-helper.test.js +34 -0
  159. package/dist/src/validation/validation-helper.test.js.map +1 -0
  160. package/dist/src/validation/validators/apple-pay-load-params-button-validator.js +19 -0
  161. package/dist/src/validation/validators/apple-pay-load-params-button-validator.js.map +1 -0
  162. package/dist/src/validation/validators/click-to-pay-load-params-validator.js +19 -0
  163. package/dist/src/validation/validators/click-to-pay-load-params-validator.js.map +1 -0
  164. package/dist/src/validation/validators/hpp-load-params-validator.js +21 -0
  165. package/dist/src/validation/validators/hpp-load-params-validator.js.map +1 -0
  166. package/dist/src/validation/validators/hpp-load-params-validator.test.js +56 -0
  167. package/dist/src/validation/validators/hpp-load-params-validator.test.js.map +1 -0
  168. package/dist/src/validation/validators/verify-card-params-validator.js +23 -0
  169. package/dist/src/validation/validators/verify-card-params-validator.js.map +1 -0
  170. package/dist/src/version.js +5 -0
  171. package/dist/src/version.js.map +1 -0
  172. package/dist/staging/fatzebra.css +91 -0
  173. package/dist/staging/fatzebra.js +19565 -0
  174. package/dist/staging/fatzebra.js.map +1 -0
  175. package/dist/staging/index.html +247 -0
  176. package/dist/tests/helpers/api-gateway-mock.js +37 -0
  177. package/dist/tests/helpers/api-gateway-mock.js.map +1 -0
  178. package/dist/validation/schemas/applepay/load-params.json +31 -0
  179. package/dist/validation/schemas/applepay/options.json +42 -0
  180. package/dist/validation/schemas/applepay/payment-intent.json +42 -0
  181. package/dist/validation/schemas/click-to-pay/options.json +30 -3
  182. package/dist/validation/validators/apple-pay-load-params-button-validator.d.ts +3 -0
  183. package/dist/validation/validators/apple-pay-load-params-button-validator.js +12 -0
  184. package/dist/version.d.ts +1 -1
  185. package/dist/version.js +1 -1
  186. package/package.json +10 -4
  187. package/tsconfig.json +1 -0
@@ -1,20 +1,35 @@
1
1
  import { PaymentRequest } from './clients/apple-pay-client';
2
2
  import * as payNow from './clients/paynow-client';
3
- import { PostMessage } from '../shared/post-message-client';
3
+ import { OptionalUrlValues, PaymentIntent } from "../shared/types";
4
+ import { Environment } from "../shared/env";
5
+ interface ApplePayLoadParams {
6
+ containerId: string;
7
+ paymentIntent: PaymentIntent;
8
+ options?: OptionalUrlValues;
9
+ }
4
10
  export declare class ApplePay {
5
- private merchantId;
6
11
  private canMakePayments;
7
12
  private iframe;
8
13
  private applePaySession;
9
14
  private postMessageClient;
15
+ private fzPayNowDomain;
16
+ private domain_name;
17
+ private username;
18
+ private environment;
19
+ private paymentIntent;
10
20
  constructor(config: {
11
- iframe: HTMLIFrameElement;
21
+ environment: Environment;
22
+ paymentIntent: PaymentIntent;
23
+ username: string;
12
24
  });
13
- checkApplePayEligibilty(): void;
14
- notifyApplePayEligibiity(): void;
15
- registerEventListener(): void;
25
+ load(config: ApplePayLoadParams): void;
26
+ getPayNowUrl(options?: OptionalUrlValues): string;
27
+ initialize(): Promise<void>;
28
+ checkApplePayEligibility(): void;
29
+ notifyApplePayEligibility(): void;
30
+ registerEventListener(): Promise<void>;
16
31
  purchase(request: PaymentRequest): Promise<void>;
17
32
  extractApplePaymentRequestParams(payload: any): PaymentRequest;
18
33
  extractPayNowPaymentAttributes(payload: any): payNow.PaymentAttributes;
19
- sendMessage(payload: PostMessage): void;
20
34
  }
35
+ export {};
@@ -7,28 +7,75 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { createSession, getEligibilty, } from './clients/apple-pay-client';
10
+ import { createSession, getEligibility, } from './clients/apple-pay-client';
11
11
  import * as payNow from './clients/paynow-client';
12
12
  import { PostMessageClient } from '../shared/post-message-client';
13
+ import * as FatZebra from "../shared/types";
14
+ import env from "../shared/env";
15
+ import { emit } from "../shared/event-manager";
13
16
  const channel = 'applepay';
14
- const fzPayNowDomain = process.env.PAYNOW_BASE_URL;
17
+ const merchantSessionPath = '/v2/apple_pay/auth';
18
+ const purchaseTokenPath = '/v2/apple_pay/token';
15
19
  export class ApplePay {
16
20
  constructor(config) {
17
- this.iframe = config.iframe;
21
+ this.paymentIntent = config.paymentIntent;
22
+ this.environment = config.environment;
23
+ this.fzPayNowDomain = env[this.environment].payNowUrl;
24
+ this.username = config.username;
25
+ }
26
+ load(config) {
27
+ var _a, _b;
28
+ this.domain_name = (_b = (_a = config === null || config === void 0 ? void 0 : config.options) === null || _a === void 0 ? void 0 : _a.domain_name) !== null && _b !== void 0 ? _b : window.location.hostname;
29
+ this.iframe = document.createElement('iframe');
30
+ document.getElementById(config.containerId).appendChild(this.iframe);
31
+ const applePayUrl = this.getPayNowUrl(config.options);
32
+ this.iframe.setAttribute("src", applePayUrl);
33
+ this.iframe.setAttribute("height", '100%');
34
+ this.iframe.setAttribute("width", '100%');
18
35
  this.postMessageClient = new PostMessageClient({
19
- channel: 'applepay',
20
- target: this.iframe
36
+ channel,
37
+ target: this.iframe,
38
+ environment: this.environment,
39
+ });
40
+ this.iframe.onload = () => __awaiter(this, void 0, void 0, function* () {
41
+ yield this.initialize();
42
+ });
43
+ }
44
+ getPayNowUrl(options) {
45
+ const { payment, verification } = this.paymentIntent;
46
+ const base = [
47
+ this.fzPayNowDomain,
48
+ 'sdk',
49
+ 'apple_pay',
50
+ this.username,
51
+ payment.reference,
52
+ payment.currency,
53
+ payment.amount,
54
+ verification
55
+ ].join('/');
56
+ const query = new URLSearchParams();
57
+ if (options === null || options === void 0 ? void 0 : options.allowed_card_networks) {
58
+ query.append('allowed_card_networks', options.allowed_card_networks.toString());
59
+ }
60
+ if (options === null || options === void 0 ? void 0 : options.allowed_card_types) {
61
+ query.append('allowed_card_types', options.allowed_card_types.toString());
62
+ }
63
+ query.append('domain_name', this.domain_name);
64
+ return `${base}?${query.toString()}`;
65
+ }
66
+ initialize() {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ yield this.registerEventListener();
69
+ this.checkApplePayEligibility();
70
+ this.notifyApplePayEligibility();
21
71
  });
22
- this.registerEventListener();
23
- this.checkApplePayEligibilty();
24
- this.notifyApplePayEligibiity();
25
72
  }
26
- checkApplePayEligibilty() {
27
- if (getEligibilty()) {
73
+ checkApplePayEligibility() {
74
+ if (getEligibility()) {
28
75
  this.canMakePayments = true;
29
76
  }
30
77
  }
31
- notifyApplePayEligibiity() {
78
+ notifyApplePayEligibility() {
32
79
  const message = {
33
80
  channel,
34
81
  subject: 'eligibility',
@@ -39,10 +86,13 @@ export class ApplePay {
39
86
  this.postMessageClient.send(message);
40
87
  }
41
88
  registerEventListener() {
42
- this.postMessageClient.setEventListeners({
43
- 'paymentrequest': (data) => __awaiter(this, void 0, void 0, function* () {
44
- yield this.purchase(data);
45
- })
89
+ return new Promise((resolve, _) => {
90
+ this.postMessageClient.setEventListeners({
91
+ 'paymentrequest': (data) => __awaiter(this, void 0, void 0, function* () {
92
+ yield this.purchase(data);
93
+ })
94
+ });
95
+ resolve();
46
96
  });
47
97
  }
48
98
  purchase(request) {
@@ -53,23 +103,44 @@ export class ApplePay {
53
103
  this.applePaySession.onvalidatemerchant = (event) => __awaiter(this, void 0, void 0, function* () {
54
104
  let merchantSession;
55
105
  try {
56
- merchantSession = yield payNow.getMerchantSession(event.validationURL, payNowPaymentAttributes);
106
+ merchantSession = yield payNow.getMerchantSession(event.validationURL, Object.assign(Object.assign({}, payNowPaymentAttributes), { merchant: this.username, domain_name: this.domain_name, display_name: this.username }), `${this.fzPayNowDomain}${merchantSessionPath}`);
57
107
  }
58
108
  catch (e) {
59
- console.log('Unable to establish new merchant session');
109
+ const payload = {
110
+ data: 'Payment failed. Unable to establish session',
111
+ errors: e,
112
+ };
113
+ emit(FatZebra.PublicEvent.PAYMENT_ERROR, payload);
60
114
  return;
61
115
  }
62
116
  this.applePaySession.completeMerchantValidation(merchantSession);
63
117
  });
64
118
  this.applePaySession.onpaymentauthorized = (event) => __awaiter(this, void 0, void 0, function* () {
65
119
  try {
66
- yield payNow.authorizePayment(Object.assign(Object.assign({}, payNowPaymentAttributes), event.payment.token));
120
+ const result = yield payNow.authorizePayment(Object.assign(Object.assign({}, payNowPaymentAttributes), { merchant: this.username, token: event.payment.token, domain_name: this.domain_name }), `${this.fzPayNowDomain}${purchaseTokenPath}`);
67
121
  this.applePaySession.completePayment(window.ApplePaySession.STATUS_SUCCESS);
122
+ const payload = {
123
+ message: 'Payment successful.',
124
+ data: result,
125
+ };
126
+ emit(FatZebra.PublicEvent.PAYMENT_SUCCESS, payload);
68
127
  }
69
128
  catch (e) {
70
129
  this.applePaySession.completePayment(window.ApplePaySession.STATUS_FAILURE);
130
+ const payload = {
131
+ data: 'Payment failed.',
132
+ errors: ['Payment declined']
133
+ };
134
+ emit(FatZebra.PublicEvent.PAYMENT_ERROR, payload);
71
135
  }
72
136
  });
137
+ this.applePaySession.oncancel = () => __awaiter(this, void 0, void 0, function* () {
138
+ const payload = {
139
+ data: 'Payment failed.',
140
+ errors: ['User cancelled payment.'],
141
+ };
142
+ emit(FatZebra.PublicEvent.PAYMENT_ERROR, payload);
143
+ });
73
144
  this.applePaySession.begin();
74
145
  });
75
146
  }
@@ -87,7 +158,4 @@ export class ApplePay {
87
158
  const { paymentAttributes } = payload;
88
159
  return paymentAttributes;
89
160
  }
90
- sendMessage(payload) {
91
- this.iframe.contentWindow.postMessage(payload, fzPayNowDomain);
92
- }
93
161
  }
@@ -1,7 +1,11 @@
1
1
  declare enum SupportedNetwork {
2
2
  Amex = "amex",
3
- Visa = "visa",
4
- MasterCard = "masterCard"
3
+ ChinaUnionPay = "chinaUnionPay",
4
+ Discover = "discover",
5
+ JCB = "jcb",
6
+ Maestro = "maestro",
7
+ MasterCard = "masterCard",
8
+ Visa = "visa"
5
9
  }
6
10
  declare enum MerchantCapability {
7
11
  Supports3DS = "supports3DS",
@@ -15,10 +19,10 @@ interface PaymentRequest {
15
19
  merchantCapabilities: MerchantCapability[];
16
20
  supportedNetworks: SupportedNetwork[];
17
21
  total: {
18
- lable: string;
22
+ label: string;
19
23
  amount: string;
20
24
  };
21
25
  }
22
- declare const getEligibilty: () => boolean;
26
+ declare const getEligibility: () => boolean;
23
27
  declare const createSession: (payload: PaymentRequest) => Promise<any>;
24
- export { createSession, type PaymentRequest, getEligibilty, MerchantCapability, SupportedNetwork, };
28
+ export { createSession, type PaymentRequest, getEligibility, MerchantCapability, SupportedNetwork, };
@@ -7,11 +7,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ // valid schemes
11
+ // https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest/1916122-supportednetworks
10
12
  var SupportedNetwork;
11
13
  (function (SupportedNetwork) {
12
14
  SupportedNetwork["Amex"] = "amex";
13
- SupportedNetwork["Visa"] = "visa";
15
+ SupportedNetwork["ChinaUnionPay"] = "chinaUnionPay";
16
+ SupportedNetwork["Discover"] = "discover";
17
+ SupportedNetwork["JCB"] = "jcb";
18
+ SupportedNetwork["Maestro"] = "maestro";
14
19
  SupportedNetwork["MasterCard"] = "masterCard";
20
+ SupportedNetwork["Visa"] = "visa";
15
21
  })(SupportedNetwork || (SupportedNetwork = {}));
16
22
  var MerchantCapability;
17
23
  (function (MerchantCapability) {
@@ -20,10 +26,10 @@ var MerchantCapability;
20
26
  MerchantCapability["SupportsDebit"] = "supportsDebit";
21
27
  MerchantCapability["SupportsEMV"] = "supportsEMV";
22
28
  })(MerchantCapability || (MerchantCapability = {}));
23
- const getEligibilty = () => {
29
+ const getEligibility = () => {
24
30
  return window.ApplePaySession && window.ApplePaySession.canMakePayments();
25
31
  };
26
32
  const createSession = (payload) => __awaiter(void 0, void 0, void 0, function* () {
27
33
  return yield new window.ApplePaySession(2, payload);
28
34
  });
29
- export { createSession, getEligibilty, MerchantCapability, SupportedNetwork, };
35
+ export { createSession, getEligibility, MerchantCapability, SupportedNetwork, };
@@ -8,10 +8,12 @@ export interface PaymentAttributes {
8
8
  merchant_id?: string;
9
9
  recurring: boolean;
10
10
  send_email?: string;
11
+ display_name?: string;
12
+ domain_name?: string;
11
13
  }
12
14
  export interface AuthorizePaymentRequestPayload extends PaymentAttributes {
13
15
  token: string;
14
16
  }
15
17
  export declare const objectToQueryString: (obj: any) => string;
16
- export declare const getMerchantSession: (validationUrl: string, paymentAttributes: PaymentAttributes) => Promise<any>;
17
- export declare const authorizePayment: (payload: AuthorizePaymentRequestPayload) => Promise<any>;
18
+ export declare const getMerchantSession: (validationUrl: string, paymentAttributes: PaymentAttributes, baseUrl: string) => Promise<any>;
19
+ export declare const authorizePayment: (payload: AuthorizePaymentRequestPayload, url: string) => Promise<any>;
@@ -7,9 +7,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- const paynowDomain = process.env.PAYNOW_BASE_URL;
11
- const merchantSessionPath = process.env.PAYNOW_APPLEPAY_AUTH_PATH;
12
- const purchaseTokenPath = process.env.PAYNOW_APPLEPAY_TOKEN_PATH;
13
10
  export const objectToQueryString = (obj) => {
14
11
  let queryString = [];
15
12
  for (const key of Object.keys(obj)) {
@@ -17,8 +14,7 @@ export const objectToQueryString = (obj) => {
17
14
  }
18
15
  return queryString.join("&");
19
16
  };
20
- export const getMerchantSession = (validationUrl, paymentAttributes) => __awaiter(void 0, void 0, void 0, function* () {
21
- const baseUrl = `${paynowDomain}${merchantSessionPath}`;
17
+ export const getMerchantSession = (validationUrl, paymentAttributes, baseUrl) => __awaiter(void 0, void 0, void 0, function* () {
22
18
  const queryString = `url=${validationUrl}&${objectToQueryString(paymentAttributes)}`;
23
19
  return new Promise((resolve, reject) => {
24
20
  const request = new XMLHttpRequest();
@@ -35,8 +31,7 @@ export const getMerchantSession = (validationUrl, paymentAttributes) => __awaite
35
31
  request.send();
36
32
  });
37
33
  });
38
- export const authorizePayment = (payload) => __awaiter(void 0, void 0, void 0, function* () {
39
- const url = `${paynowDomain}${purchaseTokenPath}`;
34
+ export const authorizePayment = (payload, url) => __awaiter(void 0, void 0, void 0, function* () {
40
35
  return new Promise((resolve, reject) => {
41
36
  const request = new XMLHttpRequest();
42
37
  request.onload = () => {
@@ -0,0 +1,15 @@
1
+ import { Environment } from "../shared/env";
2
+ import { PaymentIntent } from "../shared/types";
3
+ import { MerchantCapability, SupportedNetwork } from "./clients/apple-pay-client";
4
+ interface ApplePayOptions {
5
+ allowed_card_networks?: Array<SupportedNetwork>;
6
+ allowed_card_types?: Array<MerchantCapability>;
7
+ domain_name?: string;
8
+ }
9
+ interface ApplePayParams {
10
+ containerId: string;
11
+ environment: Environment;
12
+ paymentIntent: PaymentIntent;
13
+ options?: ApplePayOptions;
14
+ }
15
+ export { type ApplePayParams, type ApplePayOptions };
@@ -0,0 +1 @@
1
+ export {};
@@ -81,6 +81,18 @@ class ClickToPay {
81
81
  data
82
82
  });
83
83
  };
84
+ handlers[PublicEvent.CLICK_TO_PAY_RESIZE] = (data) => {
85
+ emit(PublicEvent.CLICK_TO_PAY_RESIZE, {
86
+ message: 'Container resized.',
87
+ data
88
+ });
89
+ };
90
+ handlers[PublicEvent.CLICK_TO_PAY_DCF_LOADED] = (data) => {
91
+ emit(PublicEvent.CLICK_TO_PAY_DCF_LOADED, {
92
+ message: 'Digital checkout form loaded.',
93
+ data
94
+ });
95
+ };
84
96
  this.postMessageClient.setEventListeners(handlers);
85
97
  }
86
98
  purchase() {
@@ -1,9 +1,18 @@
1
1
  import { PaymentIntent } from "../shared/types";
2
2
  interface ClickToPayOptions {
3
- hideConfirmButton?: boolean;
4
- tokenizeOnly?: boolean;
3
+ auth?: boolean;
4
+ cardListButtonText?: string;
5
5
  css?: string;
6
6
  cssSignature?: string;
7
+ displayName?: string;
8
+ hideConfirmButton?: boolean;
9
+ hideManualEntryLink?: boolean;
10
+ returnPath?: string;
11
+ returnTarget?: string;
12
+ saveCard?: boolean;
13
+ sharedData?: string;
14
+ submitPaymentButtonText?: string;
15
+ tokenizeOnly?: boolean;
7
16
  }
8
17
  interface HppClickToPayParams {
9
18
  containerId: string;