@fat-zebra/sdk 1.5.1 → 1.5.3-beta.1

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 (154) hide show
  1. package/.idea/fatzebra-js.iml +12 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/vcs.xml +6 -0
  4. package/README.dev.md +38 -0
  5. package/README.md +4 -1
  6. package/build-styles.js +8 -1
  7. package/dist/index.js +3 -2
  8. package/dist/sca/cardinal.js +1 -2
  9. package/dist/sca/index.js +0 -1
  10. package/dist/shared/util.d.ts +1 -1
  11. package/dist/shared/util.js +2 -2
  12. package/dist/version.d.ts +1 -0
  13. package/dist/version.js +1 -0
  14. package/package.json +7 -6
  15. package/scripts/release-package.js +113 -0
  16. package/tsconfig.package.json +2 -1
  17. package/dist/local/fatzebra.js.map +0 -1
  18. package/dist/local/index.html +0 -247
  19. package/dist/paypal/paypal-button.d.ts +0 -31
  20. package/dist/paypal/paypal-button.js +0 -199
  21. package/dist/paypal/paypal-checkout.d.ts +0 -21
  22. package/dist/paypal/paypal-checkout.js +0 -100
  23. package/dist/paypal/types.d.ts +0 -188
  24. package/dist/paypal/types.js +0 -5
  25. package/dist/paypal/validation.d.ts +0 -4
  26. package/dist/paypal/validation.js +0 -65
  27. package/dist/production/fatzebra.js.LICENSE.txt +0 -1
  28. package/dist/react/url.d.ts +0 -12
  29. package/dist/react/url.js +0 -33
  30. package/dist/src/applepay/applepay.js +0 -198
  31. package/dist/src/applepay/applepay.js.map +0 -1
  32. package/dist/src/applepay/clients/apple-pay-client.js +0 -66
  33. package/dist/src/applepay/clients/apple-pay-client.js.map +0 -1
  34. package/dist/src/applepay/clients/paynow-client.js +0 -96
  35. package/dist/src/applepay/clients/paynow-client.js.map +0 -1
  36. package/dist/src/applepay/index.js +0 -6
  37. package/dist/src/applepay/index.js.map +0 -1
  38. package/dist/src/click_to_pay/index.js +0 -88
  39. package/dist/src/click_to_pay/index.js.map +0 -1
  40. package/dist/src/click_to_pay/types.js +0 -3
  41. package/dist/src/click_to_pay/types.js.map +0 -1
  42. package/dist/src/hpp/hpp.js +0 -230
  43. package/dist/src/hpp/hpp.js.map +0 -1
  44. package/dist/src/hpp/hpp.test.js +0 -135
  45. package/dist/src/hpp/hpp.test.js.map +0 -1
  46. package/dist/src/hpp/index.js +0 -6
  47. package/dist/src/hpp/index.js.map +0 -1
  48. package/dist/src/index.js +0 -14
  49. package/dist/src/index.js.map +0 -1
  50. package/dist/src/main.js +0 -243
  51. package/dist/src/main.js.map +0 -1
  52. package/dist/src/main.test.js +0 -236
  53. package/dist/src/main.test.js.map +0 -1
  54. package/dist/src/paypal/paypal-button.js +0 -311
  55. package/dist/src/paypal/paypal-button.js.map +0 -1
  56. package/dist/src/paypal/paypal-button.test.js +0 -41
  57. package/dist/src/paypal/paypal-button.test.js.map +0 -1
  58. package/dist/src/paypal/paypal-checkout.js +0 -111
  59. package/dist/src/paypal/paypal-checkout.js.map +0 -1
  60. package/dist/src/paypal/paypal-checkout.test.js +0 -167
  61. package/dist/src/paypal/paypal-checkout.test.js.map +0 -1
  62. package/dist/src/paypal/types.js +0 -9
  63. package/dist/src/paypal/types.js.map +0 -1
  64. package/dist/src/paypal/validation.js +0 -73
  65. package/dist/src/paypal/validation.js.map +0 -1
  66. package/dist/src/react/VerifyCard.js +0 -29
  67. package/dist/src/react/VerifyCard.js.map +0 -1
  68. package/dist/src/react/index.js +0 -11
  69. package/dist/src/react/index.js.map +0 -1
  70. package/dist/src/react/submitForm.js +0 -13
  71. package/dist/src/react/submitForm.js.map +0 -1
  72. package/dist/src/react/url.js +0 -60
  73. package/dist/src/react/url.js.map +0 -1
  74. package/dist/src/react/url.test.js +0 -88
  75. package/dist/src/react/url.test.js.map +0 -1
  76. package/dist/src/react/useFatZebra.js +0 -119
  77. package/dist/src/react/useFatZebra.js.map +0 -1
  78. package/dist/src/sca/cardinal.js +0 -110
  79. package/dist/src/sca/cardinal.js.map +0 -1
  80. package/dist/src/sca/eci-mappings.js +0 -63
  81. package/dist/src/sca/eci-mappings.js.map +0 -1
  82. package/dist/src/sca/eci-mappings.test.js +0 -31
  83. package/dist/src/sca/eci-mappings.test.js.map +0 -1
  84. package/dist/src/sca/index.js +0 -363
  85. package/dist/src/sca/index.js.map +0 -1
  86. package/dist/src/sca/index.test.js +0 -620
  87. package/dist/src/sca/index.test.js.map +0 -1
  88. package/dist/src/sca/scenarios/enrollment.js +0 -161
  89. package/dist/src/sca/scenarios/enrollment.js.map +0 -1
  90. package/dist/src/sca/scenarios/index.js +0 -8
  91. package/dist/src/sca/scenarios/index.js.map +0 -1
  92. package/dist/src/sca/scenarios/validation.js +0 -139
  93. package/dist/src/sca/scenarios/validation.js.map +0 -1
  94. package/dist/src/sca/types.js +0 -57
  95. package/dist/src/sca/types.js.map +0 -1
  96. package/dist/src/shared/api-gateway-client.js +0 -184
  97. package/dist/src/shared/api-gateway-client.js.map +0 -1
  98. package/dist/src/shared/bridge-client.js +0 -24
  99. package/dist/src/shared/bridge-client.js.map +0 -1
  100. package/dist/src/shared/constants.js +0 -19
  101. package/dist/src/shared/constants.js.map +0 -1
  102. package/dist/src/shared/env.development.js +0 -12
  103. package/dist/src/shared/env.development.js.map +0 -1
  104. package/dist/src/shared/env.js +0 -46
  105. package/dist/src/shared/env.js.map +0 -1
  106. package/dist/src/shared/envs/local.js +0 -12
  107. package/dist/src/shared/envs/local.js.map +0 -1
  108. package/dist/src/shared/envs/production.js +0 -12
  109. package/dist/src/shared/envs/production.js.map +0 -1
  110. package/dist/src/shared/envs/sandbox.js +0 -12
  111. package/dist/src/shared/envs/sandbox.js.map +0 -1
  112. package/dist/src/shared/envs/staging.js +0 -12
  113. package/dist/src/shared/envs/staging.js.map +0 -1
  114. package/dist/src/shared/event-manager.js +0 -14
  115. package/dist/src/shared/event-manager.js.map +0 -1
  116. package/dist/src/shared/post-message-client.js +0 -107
  117. package/dist/src/shared/post-message-client.js.map +0 -1
  118. package/dist/src/shared/post-message-client.test.js +0 -58
  119. package/dist/src/shared/post-message-client.test.js.map +0 -1
  120. package/dist/src/shared/types.js +0 -47
  121. package/dist/src/shared/types.js.map +0 -1
  122. package/dist/src/shared/types.test.js +0 -55
  123. package/dist/src/shared/types.test.js.map +0 -1
  124. package/dist/src/shared/util.js +0 -96
  125. package/dist/src/shared/util.js.map +0 -1
  126. package/dist/src/shared/util.test.js +0 -148
  127. package/dist/src/shared/util.test.js.map +0 -1
  128. package/dist/src/validation/index.js +0 -12
  129. package/dist/src/validation/index.js.map +0 -1
  130. package/dist/src/validation/schemas/click-to-pay/load-params.json +0 -34
  131. package/dist/src/validation/schemas/click-to-pay/options.json +0 -23
  132. package/dist/src/validation/schemas/click-to-pay/payment-intent.json +0 -42
  133. package/dist/src/validation/schemas/customer.json +0 -38
  134. package/dist/src/validation/schemas/hpp-load-params.json +0 -40
  135. package/dist/src/validation/schemas/hpp-options.json +0 -48
  136. package/dist/src/validation/schemas/payment-intent.json +0 -48
  137. package/dist/src/validation/schemas/payment-method.json +0 -83
  138. package/dist/src/validation/schemas/verify-card-options.json +0 -15
  139. package/dist/src/validation/schemas/verify-card-params.json +0 -24
  140. package/dist/src/validation/validation-helper.js +0 -10
  141. package/dist/src/validation/validation-helper.js.map +0 -1
  142. package/dist/src/validation/validation-helper.test.js +0 -34
  143. package/dist/src/validation/validation-helper.test.js.map +0 -1
  144. package/dist/src/validation/validators/click-to-pay-load-params-validator.js +0 -19
  145. package/dist/src/validation/validators/click-to-pay-load-params-validator.js.map +0 -1
  146. package/dist/src/validation/validators/hpp-load-params-validator.js +0 -21
  147. package/dist/src/validation/validators/hpp-load-params-validator.js.map +0 -1
  148. package/dist/src/validation/validators/hpp-load-params-validator.test.js +0 -56
  149. package/dist/src/validation/validators/hpp-load-params-validator.test.js.map +0 -1
  150. package/dist/src/validation/validators/verify-card-params-validator.js +0 -23
  151. package/dist/src/validation/validators/verify-card-params-validator.js.map +0 -1
  152. package/dist/tests/helpers/api-gateway-mock.js +0 -37
  153. package/dist/tests/helpers/api-gateway-mock.js.map +0 -1
  154. /package/dist/{local/fatzebra.css → fatzebra.css} +0 -0
@@ -1,188 +0,0 @@
1
- import { PaymentMethod, PaymentIntent } from '../shared/types';
2
- export interface PayPalConfig {
3
- currency: string;
4
- payment: PayPalOrderParams;
5
- containerId: string;
6
- style?: {
7
- [key: string]: any;
8
- };
9
- }
10
- export interface PayPalOrderParams {
11
- paymentIntent?: PaymentIntent;
12
- paymentMethod: PaymentMethod;
13
- }
14
- export declare enum PayPalIntent {
15
- CAPTURE = "CAPTURE",
16
- AUTHORIZE = "AUTHORIZE"
17
- }
18
- export type PayPalPaymentMethod = PayPalOrderRequest | PayPalBillingAgreementRequest;
19
- /***************** PayPal Order Object ******************/
20
- export interface PayPalOrderRequest {
21
- intent: 'capture' | 'authorize';
22
- options?: {
23
- brandName?: string;
24
- landingPage?: string;
25
- payeePreferredPayment?: string;
26
- shippingPreference?: string;
27
- };
28
- purchases: Purchases[];
29
- }
30
- interface Purchases {
31
- description?: string;
32
- softDescriptor?: string;
33
- amount: Amount;
34
- items?: Item[];
35
- shippingAddress: {
36
- name?: string;
37
- method?: string;
38
- address: Address;
39
- };
40
- payee?: {
41
- emailAddress: string;
42
- merchantId: string;
43
- };
44
- }
45
- interface Amount {
46
- itemTotal?: number;
47
- shipping?: number;
48
- handling?: number;
49
- taxTotal?: number;
50
- shippingDiscount?: number;
51
- insurance?: number;
52
- discount?: number;
53
- }
54
- interface Address {
55
- firstName?: string;
56
- lastName?: string;
57
- address_1?: string;
58
- address_2?: string;
59
- city?: string;
60
- state?: string;
61
- postcode?: string;
62
- country: string;
63
- }
64
- interface Item {
65
- name: string;
66
- description?: string;
67
- sku?: string;
68
- unitAmount: number;
69
- tax?: number;
70
- qty: string;
71
- category?: string;
72
- }
73
- export interface CreatePayPalOrderRequest {
74
- order: PayPalOrderRequest;
75
- }
76
- export interface PayPalOrderResponse {
77
- id: string;
78
- intent: PayPalIntent;
79
- }
80
- /***************** PayPal Capture Object ******************/
81
- export interface CapturePayPalOrderRequest {
82
- id: string;
83
- }
84
- export interface CapturePayPalOrderResponse {
85
- id: string;
86
- intent: string;
87
- reference: string;
88
- paypal_reference: string;
89
- invoice_id: string;
90
- amount: number;
91
- decimal_amount: number;
92
- captured_amount: number;
93
- captured: boolean;
94
- successful: boolean;
95
- status: string;
96
- message: string;
97
- currency: string;
98
- transaction_id: string;
99
- transaction_date: Date;
100
- response_code: string;
101
- paypal_fee: number;
102
- seller_receivable_net_amount: number;
103
- note_to_payer: string;
104
- is_final_capture: boolean;
105
- refunded_amount: number;
106
- balance_available_for_refund: number;
107
- balance_available_for_capture: number;
108
- authorization: string;
109
- order: string;
110
- }
111
- /***************** PayPal Authorize Object ******************/
112
- export interface AuthorizePayPalOrderRequest {
113
- id: string;
114
- }
115
- export interface AuthorizePayPalOrderResponse {
116
- id: string;
117
- intent: string;
118
- reference: string;
119
- paypal_reference: string;
120
- invoice_id: string;
121
- amount: number;
122
- decimal_amount: number;
123
- captured_amount: number;
124
- captured: boolean;
125
- successful: boolean;
126
- status: string;
127
- message: string;
128
- currency: string;
129
- transaction_id: string;
130
- transaction_date: Date;
131
- response_code: string;
132
- refunded_amount: number;
133
- balance_available_for_capture: number;
134
- order: string;
135
- }
136
- /***************** PayPal Billing Agreement Object ******************/
137
- export interface PayPalBillingAgreementRequest {
138
- name?: string;
139
- description?: string;
140
- shippingAddress: BillingAddress;
141
- merchantCustomData?: string;
142
- }
143
- export interface CreatePayPalBillingAgreementRequest {
144
- billing: PayPalBillingAgreementRequest;
145
- }
146
- interface BillingAddress {
147
- firstName?: string;
148
- lastName?: string;
149
- address_1: string;
150
- address_2?: string;
151
- city: string;
152
- state: string;
153
- postcode: string;
154
- country: string;
155
- }
156
- export interface PayPalBillingAgreementResponse {
157
- token_id: string;
158
- }
159
- export interface ApprovePayPalBillingAgreementRequest {
160
- id: string;
161
- }
162
- export interface ApprovePayPalBillingAgreementResponse {
163
- token: string;
164
- name?: string;
165
- description?: string;
166
- state: string;
167
- payer?: {
168
- payer_info: {
169
- email: string;
170
- first_name: string;
171
- last_name: string;
172
- payer_id: string;
173
- };
174
- };
175
- shipping_address?: {
176
- first_name?: string;
177
- last_name?: string;
178
- address_1: string;
179
- address_2?: string;
180
- city: string;
181
- state: string;
182
- postcode: string;
183
- country: string;
184
- };
185
- merchant_custom_data?: string;
186
- created_at: Date;
187
- }
188
- export {};
@@ -1,5 +0,0 @@
1
- export var PayPalIntent;
2
- (function (PayPalIntent) {
3
- PayPalIntent["CAPTURE"] = "CAPTURE";
4
- PayPalIntent["AUTHORIZE"] = "AUTHORIZE";
5
- })(PayPalIntent || (PayPalIntent = {}));
@@ -1,4 +0,0 @@
1
- import { PayPalConfig, PayPalOrderParams } from './types';
2
- import { ValidationResult } from '../shared/types';
3
- export declare const validatePayPalSetup: (props: PayPalConfig) => ValidationResult;
4
- export declare const validatePayPalRequest: (props: PayPalOrderParams, billing?: boolean) => ValidationResult;
@@ -1,65 +0,0 @@
1
- import { PayPalIntent } from './types';
2
- const PaypalConfigRequiredProps = ['currency', 'containerId', 'payment'];
3
- const PaypalOrderRequiredProps = ['intent', 'purchases'];
4
- const PaypalBillingRequiredProps = ['shippingAddress'];
5
- export const validatePayPalSetup = (props) => {
6
- let errors = [];
7
- const keys = Object.keys(props);
8
- for (let requiredProp of PaypalConfigRequiredProps) {
9
- // @ts-ignore
10
- if (!keys.includes(requiredProp) || props[requiredProp] === undefined) {
11
- errors.push(`${requiredProp} is missing.`);
12
- }
13
- }
14
- return {
15
- valid: errors.length == 0,
16
- errors
17
- };
18
- };
19
- export const validatePayPalRequest = (props, billing) => {
20
- let errors = [];
21
- const keys = Object.keys(props);
22
- if (!keys.includes('paymentMethod')) {
23
- errors.push(`paymentMethod is missing.`);
24
- }
25
- if (!keys.includes('paymentIntent') && !billing) {
26
- errors.push(`paymentIntent is missing.`);
27
- }
28
- if (props.paymentMethod) {
29
- const orderKeys = Object.keys(props.paymentMethod.data);
30
- if (orderKeys.includes('intent')) {
31
- const intent = props.paymentMethod.data.intent.toLowerCase();
32
- const intents = Object.values(PayPalIntent).map(v => v.toLowerCase());
33
- if (!intents.includes(intent)) {
34
- errors.push(`intent is invalid, must be one of [${intents.join(', ')}].`);
35
- }
36
- }
37
- if (!props.paymentMethod.type) {
38
- errors.push(`paymentMethod.type is missing.`);
39
- }
40
- }
41
- if (errors.length > 0) {
42
- return {
43
- valid: errors.length == 0,
44
- errors
45
- };
46
- }
47
- const paymentMethod = props.paymentMethod.data;
48
- const providedKeys = Object.keys(paymentMethod);
49
- let requiredProps;
50
- if (billing === true) {
51
- requiredProps = PaypalBillingRequiredProps;
52
- }
53
- else {
54
- requiredProps = PaypalOrderRequiredProps;
55
- }
56
- for (let requiredProp of requiredProps) {
57
- if (!providedKeys.includes(requiredProp)) {
58
- errors.push(`${requiredProp} is missing.`);
59
- }
60
- }
61
- return {
62
- valid: errors.length == 0,
63
- errors
64
- };
65
- };
@@ -1 +0,0 @@
1
- /** @license URI.js v4.2.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
@@ -1,12 +0,0 @@
1
- import { Environment } from "../shared/env";
2
- import { OptionalUrlValues } from '../shared/types';
3
- type RequiredURLValues = {
4
- merchant: string;
5
- hash: string;
6
- reference: string;
7
- amount: number;
8
- currency: string;
9
- };
10
- type UrlValues = RequiredURLValues & OptionalUrlValues;
11
- declare const generatePaymentURL: (values: UrlValues, environment?: Environment) => string;
12
- export { generatePaymentURL };
package/dist/react/url.js DELETED
@@ -1,33 +0,0 @@
1
- import { parseTemplate } from 'url-template';
2
- import env, { Environment } from "../shared/env";
3
- const generatePaymentURL = (values, environment) => {
4
- const queryParts = [
5
- "tokenize_only",
6
- "css",
7
- "css_signature",
8
- "iframe",
9
- "postmessage",
10
- "hide_card_holder",
11
- "hide_button",
12
- "sca_enabled",
13
- ];
14
- const environmentConfig = env[environment || Environment.sandbox];
15
- const urlTemplate = parseTemplate(`${environmentConfig.payNowUrl}/sdk/v3/{merchant}/{reference}/{currency}/{amount}/{verification}{?${queryParts.join(",")}}`);
16
- const url = urlTemplate.expand({
17
- merchant: values.merchant,
18
- reference: values.reference,
19
- currency: values.currency,
20
- amount: values.amount,
21
- verification: values.hash,
22
- sca_enabled: values.sca_enabled,
23
- css: values.css,
24
- css_signature: values.css_signature,
25
- iframe: true,
26
- postmessage: true,
27
- tokenize_only: values.tokenize_only,
28
- hide_card_holder: values.hide_card_holder,
29
- hide_button: values.hide_button,
30
- });
31
- return url;
32
- };
33
- export { generatePaymentURL };
@@ -1,198 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
- return new (P || (P = Promise))(function (resolve, reject) {
39
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
- step((generator = generator.apply(thisArg, _arguments || [])).next());
43
- });
44
- };
45
- var __generator = (this && this.__generator) || function (thisArg, body) {
46
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
- function verb(n) { return function (v) { return step([n, v]); }; }
49
- function step(op) {
50
- if (f) throw new TypeError("Generator is already executing.");
51
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
52
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
53
- if (y = 0, t) op = [op[0] & 2, t.value];
54
- switch (op[0]) {
55
- case 0: case 1: t = op; break;
56
- case 4: _.label++; return { value: op[1], done: false };
57
- case 5: _.label++; y = op[1]; op = [0]; continue;
58
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
- default:
60
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
- if (t[2]) _.ops.pop();
65
- _.trys.pop(); continue;
66
- }
67
- op = body.call(thisArg, _);
68
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
- }
71
- };
72
- Object.defineProperty(exports, "__esModule", { value: true });
73
- exports.ApplePay = void 0;
74
- var apple_pay_client_1 = require("./clients/apple-pay-client");
75
- var payNow = __importStar(require("./clients/paynow-client"));
76
- var post_message_client_1 = require("../shared/post-message-client");
77
- var channel = 'applepay';
78
- var fzPayNowDomain = process.env.PAYNOW_BASE_URL;
79
- var ApplePay = /** @class */ (function () {
80
- function ApplePay(config) {
81
- this.iframe = config.iframe;
82
- this.postMessageClient = new post_message_client_1.PostMessageClient({
83
- channel: 'applepay',
84
- target: this.iframe
85
- });
86
- this.registerEventListener();
87
- this.checkApplePayEligibilty();
88
- this.notifyApplePayEligibiity();
89
- }
90
- ApplePay.prototype.checkApplePayEligibilty = function () {
91
- if ((0, apple_pay_client_1.getEligibilty)()) {
92
- this.canMakePayments = true;
93
- }
94
- };
95
- ApplePay.prototype.notifyApplePayEligibiity = function () {
96
- var message = {
97
- channel: channel,
98
- subject: 'eligibility',
99
- data: {
100
- canMakePayments: this.canMakePayments
101
- }
102
- };
103
- this.postMessageClient.send(message);
104
- };
105
- ApplePay.prototype.registerEventListener = function () {
106
- var _this = this;
107
- this.postMessageClient.setEventListeners({
108
- 'paymentrequest': function (data) { return __awaiter(_this, void 0, void 0, function () {
109
- return __generator(this, function (_a) {
110
- switch (_a.label) {
111
- case 0: return [4 /*yield*/, this.purchase(data)];
112
- case 1:
113
- _a.sent();
114
- return [2 /*return*/];
115
- }
116
- });
117
- }); }
118
- });
119
- };
120
- ApplePay.prototype.purchase = function (request) {
121
- return __awaiter(this, void 0, void 0, function () {
122
- var applePayPaymentRequest, payNowPaymentAttributes, _a;
123
- var _this = this;
124
- return __generator(this, function (_b) {
125
- switch (_b.label) {
126
- case 0:
127
- applePayPaymentRequest = this.extractApplePaymentRequestParams(request);
128
- payNowPaymentAttributes = this.extractPayNowPaymentAttributes(request);
129
- _a = this;
130
- return [4 /*yield*/, (0, apple_pay_client_1.createSession)(applePayPaymentRequest)];
131
- case 1:
132
- _a.applePaySession = _b.sent();
133
- this.applePaySession.onvalidatemerchant = function (event) { return __awaiter(_this, void 0, void 0, function () {
134
- var merchantSession, e_1;
135
- return __generator(this, function (_a) {
136
- switch (_a.label) {
137
- case 0:
138
- _a.trys.push([0, 2, , 3]);
139
- return [4 /*yield*/, payNow.getMerchantSession(event.validationURL, payNowPaymentAttributes)];
140
- case 1:
141
- merchantSession = _a.sent();
142
- return [3 /*break*/, 3];
143
- case 2:
144
- e_1 = _a.sent();
145
- console.log('Unable to establish new merchant session');
146
- return [2 /*return*/];
147
- case 3:
148
- this.applePaySession.completeMerchantValidation(merchantSession);
149
- return [2 /*return*/];
150
- }
151
- });
152
- }); };
153
- this.applePaySession.onpaymentauthorized = function (event) { return __awaiter(_this, void 0, void 0, function () {
154
- var e_2;
155
- return __generator(this, function (_a) {
156
- switch (_a.label) {
157
- case 0:
158
- _a.trys.push([0, 2, , 3]);
159
- return [4 /*yield*/, payNow.authorizePayment(__assign(__assign({}, payNowPaymentAttributes), event.payment.token))];
160
- case 1:
161
- _a.sent();
162
- this.applePaySession.completePayment(window.ApplePaySession.STATUS_SUCCESS);
163
- return [3 /*break*/, 3];
164
- case 2:
165
- e_2 = _a.sent();
166
- this.applePaySession.completePayment(window.ApplePaySession.STATUS_FAILURE);
167
- return [3 /*break*/, 3];
168
- case 3: return [2 /*return*/];
169
- }
170
- });
171
- }); };
172
- this.applePaySession.begin();
173
- return [2 /*return*/];
174
- }
175
- });
176
- });
177
- };
178
- ApplePay.prototype.extractApplePaymentRequestParams = function (payload) {
179
- var countryCode = payload.countryCode, currencyCode = payload.currencyCode, merchantCapabilities = payload.merchantCapabilities, supportedNetworks = payload.supportedNetworks, total = payload.total;
180
- return {
181
- countryCode: countryCode,
182
- currencyCode: currencyCode,
183
- merchantCapabilities: merchantCapabilities,
184
- supportedNetworks: supportedNetworks,
185
- total: total,
186
- };
187
- };
188
- ApplePay.prototype.extractPayNowPaymentAttributes = function (payload) {
189
- var paymentAttributes = payload.paymentAttributes;
190
- return paymentAttributes;
191
- };
192
- ApplePay.prototype.sendMessage = function (payload) {
193
- this.iframe.contentWindow.postMessage(payload, fzPayNowDomain);
194
- };
195
- return ApplePay;
196
- }());
197
- exports.ApplePay = ApplePay;
198
- //# sourceMappingURL=applepay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"applepay.js","sourceRoot":"","sources":["../../../src/applepay/applepay.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.SupportedNetwork = exports.MerchantCapability = exports.getEligibilty = exports.createSession = void 0;
40
- var SupportedNetwork;
41
- (function (SupportedNetwork) {
42
- SupportedNetwork["Amex"] = "amex";
43
- SupportedNetwork["Visa"] = "visa";
44
- SupportedNetwork["MasterCard"] = "masterCard";
45
- })(SupportedNetwork || (exports.SupportedNetwork = SupportedNetwork = {}));
46
- var MerchantCapability;
47
- (function (MerchantCapability) {
48
- MerchantCapability["Supports3DS"] = "supports3DS";
49
- MerchantCapability["SupportsCredit"] = "supportsCredit";
50
- MerchantCapability["SupportsDebit"] = "supportsDebit";
51
- MerchantCapability["SupportsEMV"] = "supportsEMV";
52
- })(MerchantCapability || (exports.MerchantCapability = MerchantCapability = {}));
53
- var getEligibilty = function () {
54
- return window.ApplePaySession && window.ApplePaySession.canMakePayments();
55
- };
56
- exports.getEligibilty = getEligibilty;
57
- var createSession = function (payload) { return __awaiter(void 0, void 0, void 0, function () {
58
- return __generator(this, function (_a) {
59
- switch (_a.label) {
60
- case 0: return [4 /*yield*/, new window.ApplePaySession(2, payload)];
61
- case 1: return [2 /*return*/, _a.sent()];
62
- }
63
- });
64
- }); };
65
- exports.createSession = createSession;
66
- //# sourceMappingURL=apple-pay-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apple-pay-client.js","sourceRoot":"","sources":["../../../../src/applepay/clients/apple-pay-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAK,gBAIJ;AAJD,WAAK,gBAAgB;IACnB,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,6CAAyB,CAAA;AAC3B,CAAC,EAJI,gBAAgB,gCAAhB,gBAAgB,QAIpB;AAED,IAAK,kBAKJ;AALD,WAAK,kBAAkB;IACrB,iDAA2B,CAAA;IAC3B,uDAAiC,CAAA;IACjC,qDAA+B,CAAA;IAC/B,iDAA2B,CAAA;AAC7B,CAAC,EALI,kBAAkB,kCAAlB,kBAAkB,QAKtB;AAaD,IAAM,aAAa,GAAG;IACpB,OAAO,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,CAAA;AAC3E,CAAC,CAAA;AASC,sCAAa;AAPf,IAAM,aAAa,GAAG,UAAO,OAAuB;;;oBAC3C,qBAAM,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,EAAA;oBAAnD,sBAAO,SAA4C,EAAA;;;KACpD,CAAA;AAGC,sCAAa"}