@fat-zebra/sdk 1.5.5-beta.0 → 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 (97) hide show
  1. package/dist/applepay/applepay.d.ts +7 -22
  2. package/dist/applepay/applepay.js +21 -89
  3. package/dist/applepay/clients/apple-pay-client.d.ts +5 -9
  4. package/dist/applepay/clients/apple-pay-client.js +3 -9
  5. package/dist/applepay/clients/paynow-client.d.ts +2 -4
  6. package/dist/applepay/clients/paynow-client.js +7 -2
  7. package/dist/click_to_pay/index.js +0 -12
  8. package/dist/click_to_pay/types.d.ts +2 -11
  9. package/dist/local/fatzebra.js.map +1 -1
  10. package/dist/main.d.ts +0 -2
  11. package/dist/main.js +2 -24
  12. package/dist/paypal/paypal-button.d.ts +31 -0
  13. package/dist/paypal/paypal-button.js +199 -0
  14. package/dist/paypal/paypal-checkout.d.ts +21 -0
  15. package/dist/paypal/paypal-checkout.js +100 -0
  16. package/dist/paypal/types.d.ts +188 -0
  17. package/dist/paypal/types.js +5 -0
  18. package/dist/paypal/validation.d.ts +4 -0
  19. package/dist/paypal/validation.js +65 -0
  20. package/dist/react/index.d.ts +1 -2
  21. package/dist/react/index.js +1 -2
  22. package/dist/react/{applePayUrl.d.ts → url.d.ts} +2 -2
  23. package/dist/react/url.js +33 -0
  24. package/dist/react/useFatZebra.js +57 -8
  25. package/dist/shared/env.development.d.ts +3 -3
  26. package/dist/shared/env.development.js +3 -3
  27. package/dist/shared/envs/local.d.ts +3 -3
  28. package/dist/shared/envs/local.js +3 -3
  29. package/dist/shared/post-message-client.d.ts +0 -2
  30. package/dist/shared/post-message-client.js +1 -1
  31. package/dist/shared/types.d.ts +2 -14
  32. package/dist/shared/types.js +0 -2
  33. package/dist/src/paypal/paypal-button.js +311 -0
  34. package/dist/src/paypal/paypal-button.js.map +1 -0
  35. package/dist/src/paypal/paypal-button.test.js +41 -0
  36. package/dist/src/paypal/paypal-button.test.js.map +1 -0
  37. package/dist/src/paypal/paypal-checkout.js +111 -0
  38. package/dist/src/paypal/paypal-checkout.js.map +1 -0
  39. package/dist/src/paypal/paypal-checkout.test.js +167 -0
  40. package/dist/src/paypal/paypal-checkout.test.js.map +1 -0
  41. package/dist/src/paypal/types.js +9 -0
  42. package/dist/src/paypal/types.js.map +1 -0
  43. package/dist/src/paypal/validation.js +73 -0
  44. package/dist/src/paypal/validation.js.map +1 -0
  45. package/dist/src/react/{applePayUrl.js → url.js} +21 -7
  46. package/dist/src/react/url.js.map +1 -0
  47. package/dist/src/react/url.test.js +88 -0
  48. package/dist/src/react/url.test.js.map +1 -0
  49. package/dist/src/react/useFatZebra.js +56 -7
  50. package/dist/src/react/useFatZebra.js.map +1 -1
  51. package/dist/validation/schemas/click-to-pay/options.json +3 -30
  52. package/dist/version.d.ts +1 -1
  53. package/dist/version.js +1 -1
  54. package/package.json +2 -2
  55. package/.idea/fatzebra-js.iml +0 -12
  56. package/.idea/modules.xml +0 -8
  57. package/.idea/vcs.xml +0 -6
  58. package/dist/applepay/applepaymanager.d.ts +0 -28
  59. package/dist/applepay/applepaymanager.js +0 -115
  60. package/dist/applepay/types.d.ts +0 -15
  61. package/dist/applepay/types.js +0 -1
  62. package/dist/fatzebra.css +0 -91
  63. package/dist/local/fatzebra.js +0 -19565
  64. package/dist/production/fatzebra.css +0 -91
  65. package/dist/production/fatzebra.js +0 -2
  66. package/dist/react/ApplePay.d.ts +0 -9
  67. package/dist/react/ApplePay.js +0 -11
  68. package/dist/react/ApplePayButton.d.ts +0 -8
  69. package/dist/react/ApplePayButton.js +0 -18
  70. package/dist/react/applePayUrl.js +0 -19
  71. package/dist/react/useMessage.d.ts +0 -10
  72. package/dist/react/useMessage.js +0 -70
  73. package/dist/sandbox/fatzebra.css +0 -91
  74. package/dist/sandbox/fatzebra.js +0 -2
  75. package/dist/sandbox/fatzebra.js.LICENSE.txt +0 -1
  76. package/dist/src/applepay/applepaymanager.js +0 -279
  77. package/dist/src/applepay/applepaymanager.js.map +0 -1
  78. package/dist/src/react/ApplePayButton.js +0 -56
  79. package/dist/src/react/ApplePayButton.js.map +0 -1
  80. package/dist/src/react/applePayUrl.js.map +0 -1
  81. package/dist/src/react/applePayUrl.test.js +0 -57
  82. package/dist/src/react/applePayUrl.test.js.map +0 -1
  83. package/dist/src/react/useMessage.js +0 -140
  84. package/dist/src/react/useMessage.js.map +0 -1
  85. package/dist/src/react/useMessage.test.js +0 -222
  86. package/dist/src/react/useMessage.test.js.map +0 -1
  87. package/dist/src/validation/validators/apple-pay-load-params-button-validator.js +0 -19
  88. package/dist/src/validation/validators/apple-pay-load-params-button-validator.js.map +0 -1
  89. package/dist/staging/fatzebra.css +0 -91
  90. package/dist/staging/fatzebra.js +0 -19565
  91. package/dist/staging/fatzebra.js.map +0 -1
  92. package/dist/staging/index.html +0 -247
  93. package/dist/validation/schemas/applepay/load-params.json +0 -31
  94. package/dist/validation/schemas/applepay/options.json +0 -42
  95. package/dist/validation/schemas/applepay/payment-intent.json +0 -42
  96. package/dist/validation/validators/apple-pay-load-params-button-validator.d.ts +0 -3
  97. package/dist/validation/validators/apple-pay-load-params-button-validator.js +0 -12
@@ -1,5 +1,4 @@
1
1
  import VerifyCard from "./VerifyCard";
2
2
  import VerifyExistingCard from "./VerifyExistingCard";
3
3
  import submitForm from "./submitForm";
4
- import ApplePayButton from "./ApplePayButton";
5
- export { VerifyCard, VerifyExistingCard, submitForm, ApplePayButton };
4
+ export { VerifyCard, VerifyExistingCard, submitForm };
@@ -8,5 +8,5 @@ type RequiredURLValues = {
8
8
  currency: string;
9
9
  };
10
10
  type UrlValues = RequiredURLValues & OptionalUrlValues;
11
- declare const generateApplePayUrl: (values: UrlValues, environment?: Environment) => string;
12
- export { generateApplePayUrl };
11
+ declare const generatePaymentURL: (values: UrlValues, environment?: Environment) => string;
12
+ export { generatePaymentURL };
@@ -0,0 +1,33 @@
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,10 +1,9 @@
1
- import { useMemo } from "react";
1
+ import { useEffect, useMemo } from "react";
2
2
  import * as FatZebra from "../shared/types";
3
3
  import { generatePaymentURL } from "./paymentUrl";
4
4
  import Sca from "../sca";
5
5
  import GatewayClient from "../shared/api-gateway-client";
6
6
  import { generateVerifyURL } from "./verifyUrl";
7
- import useMessage from "./useMessage";
8
7
  const useFatZebra = ({ config, handlers, cardToken }) => {
9
8
  const { options, accessToken, paymentIntent, username } = config;
10
9
  const sca = useMemo(() => {
@@ -15,12 +14,62 @@ const useFatZebra = ({ config, handlers, cardToken }) => {
15
14
  scaObj.loadScript();
16
15
  return scaObj;
17
16
  }, [config, username]);
18
- useMessage({
19
- paymentIntent,
20
- options,
21
- handlers,
22
- sca
23
- });
17
+ const emit = (event, data) => {
18
+ const handler = handlers[event];
19
+ if (handler) {
20
+ handler(new CustomEvent(event, { detail: data }));
21
+ }
22
+ };
23
+ const handleTokenizeCardResponse = (data) => {
24
+ if (data.errors) {
25
+ emit(FatZebra.PublicEvent.TOKENIZATION_ERROR, {
26
+ message: "Card tokenization failed.",
27
+ errors: data.errors,
28
+ data: null,
29
+ });
30
+ return;
31
+ }
32
+ else {
33
+ emit(FatZebra.PublicEvent.TOKENIZATION_SUCCESS, {
34
+ message: "Card tokenization success.",
35
+ data
36
+ });
37
+ }
38
+ if (options.sca_enabled) {
39
+ sca.run({ paymentIntent, bin: data.bin, cardToken: data.token });
40
+ }
41
+ };
42
+ const messageHandler = (event) => {
43
+ if (event.data &&
44
+ event.data.source &&
45
+ event.data.source.includes("react-devtools"))
46
+ return;
47
+ if (event.data.subject === FatZebra.BridgeEvent.BIN_LOOKUP)
48
+ return;
49
+ if (event.data.subject === FatZebra.BridgeEvent.FORM_VALIDATION_ERROR) {
50
+ emit(FatZebra.PublicEvent.FORM_VALIDATION_ERROR, {
51
+ errors: event.data.data,
52
+ data: null,
53
+ });
54
+ return;
55
+ }
56
+ if (event.data.subject === FatZebra.BridgeEvent.FORM_VALIDATION_SUCCESS) {
57
+ emit(FatZebra.PublicEvent.FORM_VALIDATION_SUCCESS, {
58
+ errors: event.data.data,
59
+ data: null,
60
+ });
61
+ return;
62
+ }
63
+ if (event.data.subject === FatZebra.BridgeEvent.TOKENIZE_CARD_RESPONSE) {
64
+ handleTokenizeCardResponse(event.data.data);
65
+ }
66
+ };
67
+ useEffect(() => {
68
+ window.addEventListener("message", messageHandler);
69
+ return () => {
70
+ window.removeEventListener("message", messageHandler);
71
+ };
72
+ }, [paymentIntent]);
24
73
  const payment = paymentIntent.payment;
25
74
  const verifyUrl = generateVerifyURL(Object.assign({ token: cardToken, verification: paymentIntent.verification, merchant: username }, options), config.environment);
26
75
  const paymentUrl = generatePaymentURL(Object.assign({ merchant: username, reference: payment.reference, amount: payment.amount, currency: payment.currency, hash: paymentIntent.verification }, options), config.environment);
@@ -1,5 +1,5 @@
1
- declare const bridgeUrl = "https://paynow.test";
2
- declare const apiUrl = "https://api.test/sdk";
3
- declare const payNowUrl = "https://paynow.test";
1
+ declare const bridgeUrl = "http://paynow.test";
2
+ declare const apiUrl = "http://api.test:3002/sdk";
3
+ declare const payNowUrl = "http://paynow.test:3004";
4
4
  declare const songbirdUrl = "https://songbirdstag.cardinalcommerce.com/edge/v1/songbird.js";
5
5
  export { bridgeUrl, apiUrl, payNowUrl, songbirdUrl };
@@ -1,5 +1,5 @@
1
- const bridgeUrl = "https://paynow.test";
2
- const apiUrl = "https://api.test/sdk";
3
- const payNowUrl = "https://paynow.test";
1
+ const bridgeUrl = "http://paynow.test";
2
+ const apiUrl = "http://api.test:3002/sdk";
3
+ const payNowUrl = "http://paynow.test:3004";
4
4
  const songbirdUrl = "https://songbirdstag.cardinalcommerce.com/edge/v1/songbird.js";
5
5
  export { bridgeUrl, apiUrl, payNowUrl, songbirdUrl };
@@ -1,5 +1,5 @@
1
- declare const bridgeUrl = "https://paynow.test";
2
- declare const apiUrl = "https://api.test:3002/sdk";
3
- declare const payNowUrl = "https://paynow.test";
1
+ declare const bridgeUrl = "http://paynow.test";
2
+ declare const apiUrl = "http://api.test:3002/sdk";
3
+ declare const payNowUrl = "http://paynow.test:3004";
4
4
  declare const songbirdUrl = "https://songbirdstag.cardinalcommerce.com/edge/v1/songbird.js";
5
5
  export { bridgeUrl, apiUrl, payNowUrl, songbirdUrl };
@@ -1,5 +1,5 @@
1
- const bridgeUrl = "https://paynow.test";
2
- const apiUrl = "https://api.test:3002/sdk";
3
- const payNowUrl = "https://paynow.test";
1
+ const bridgeUrl = "http://paynow.test";
2
+ const apiUrl = "http://api.test:3002/sdk";
3
+ const payNowUrl = "http://paynow.test:3004";
4
4
  const songbirdUrl = "https://songbirdstag.cardinalcommerce.com/edge/v1/songbird.js";
5
5
  export { bridgeUrl, apiUrl, payNowUrl, songbirdUrl };
@@ -1,4 +1,3 @@
1
- import { Environment } from "./env";
2
1
  interface PostMessage {
3
2
  channel: string;
4
3
  subject: string;
@@ -12,7 +11,6 @@ interface PostMessageLegacy {
12
11
  }
13
12
  interface PostMessageClientConfig {
14
13
  channel: string;
15
- environment?: Environment;
16
14
  target?: HTMLIFrameElement;
17
15
  }
18
16
  interface EventHandlers {
@@ -11,7 +11,7 @@ import env, { Environment } from "./env";
11
11
  class PostMessageClient {
12
12
  constructor(config) {
13
13
  this.channel = config.channel;
14
- this.fzEnv = config.environment || process.env.API_ENV;
14
+ this.fzEnv = process.env.API_ENV;
15
15
  this.domain = env[this.fzEnv].payNowUrl;
16
16
  this.target = config.target;
17
17
  }
@@ -1,5 +1,4 @@
1
1
  import { Environment } from './env';
2
- import { MerchantCapability, SupportedNetwork } from "../applepay/clients/apple-pay-client";
3
2
  declare enum PublicEvent {
4
3
  FORM_VALIDATION_ERROR = "fz.form_validation.error",
5
4
  FORM_VALIDATION_SUCCESS = "fz.form_validation.success",
@@ -12,9 +11,7 @@ declare enum PublicEvent {
12
11
  PAYMENT_ERROR = "fz.payment.error",
13
12
  BIN_LOOKUP = "fz.bin.lookup",
14
13
  CLICK_TO_PAY_TOKENIZATION_SUCCESS = "fz.click_to_pay.tokenization.success",
15
- CLICK_TO_PAY_TOKENIZATION_ERROR = "fz.click_to_pay.tokenization.error",
16
- CLICK_TO_PAY_RESIZE = "fz.click_to_pay.resize",
17
- CLICK_TO_PAY_DCF_LOADED = "fz.click_to_pay.dcf"
14
+ CLICK_TO_PAY_TOKENIZATION_ERROR = "fz.click_to_pay.tokenization.error"
18
15
  }
19
16
  declare enum BridgeEvent {
20
17
  TOKENIZE_CARD_REQUEST = "fzi.tc_req",
@@ -92,9 +89,6 @@ export type OptionalUrlValues = {
92
89
  hide_card_holder?: boolean;
93
90
  hide_button?: boolean;
94
91
  return_path?: string;
95
- allowed_card_networks?: Array<SupportedNetwork>;
96
- allowed_card_types?: Array<MerchantCapability>;
97
- domain_name?: string;
98
92
  card_types?: Array<string>;
99
93
  surcharge_enabled?: string;
100
94
  sca_enabled?: boolean;
@@ -108,7 +102,6 @@ declare global {
108
102
  Cardinal: any;
109
103
  FatZebra: any;
110
104
  HPP: any;
111
- ApplePayButton: any;
112
105
  MerchantUsername: string;
113
106
  }
114
107
  }
@@ -144,10 +137,5 @@ type TokenizeCardResponse = {
144
137
  token: string;
145
138
  errors?: Array<string>;
146
139
  };
147
- type ApplePayPaymentResponse = {
148
- message: string;
149
- errors?: Array<string>;
150
- data?: string;
151
- };
152
140
  export { BridgeEvent, PublicEvent, PaymentMethodType, };
153
- export type { PaymentMethod, PaymentIntent, Payment, Card, CardOnFile, CustomerSnakeCase, Customer, Handlers, ValidationResult, TokenizeCardResponse, ApplePayPaymentResponse };
141
+ export type { PaymentMethod, PaymentIntent, Payment, Card, CardOnFile, CustomerSnakeCase, Customer, Handlers, ValidationResult, TokenizeCardResponse, };
@@ -12,8 +12,6 @@ var PublicEvent;
12
12
  PublicEvent["BIN_LOOKUP"] = "fz.bin.lookup";
13
13
  PublicEvent["CLICK_TO_PAY_TOKENIZATION_SUCCESS"] = "fz.click_to_pay.tokenization.success";
14
14
  PublicEvent["CLICK_TO_PAY_TOKENIZATION_ERROR"] = "fz.click_to_pay.tokenization.error";
15
- PublicEvent["CLICK_TO_PAY_RESIZE"] = "fz.click_to_pay.resize";
16
- PublicEvent["CLICK_TO_PAY_DCF_LOADED"] = "fz.click_to_pay.dcf";
17
15
  })(PublicEvent || (PublicEvent = {}));
18
16
  var BridgeEvent;
19
17
  (function (BridgeEvent) {
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
+ 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;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
61
+ var __importDefault = (this && this.__importDefault) || function (mod) {
62
+ return (mod && mod.__esModule) ? mod : { "default": mod };
63
+ };
64
+ Object.defineProperty(exports, "__esModule", { value: true });
65
+ exports.PayPalButton = void 0;
66
+ var event_manager_1 = require("../shared/event-manager");
67
+ var types_1 = require("./types");
68
+ var api_gateway_client_1 = __importDefault(require("../shared/api-gateway-client"));
69
+ var types_2 = require("../shared/types");
70
+ var util = __importStar(require("../shared/util"));
71
+ var constants_1 = require("../shared/constants");
72
+ var defaultStyle = {
73
+ layout: 'horizontal',
74
+ color: 'gold',
75
+ shape: 'pill',
76
+ label: 'paypal',
77
+ };
78
+ var PayPalButton = /** @class */ (function () {
79
+ function PayPalButton(paymentMethod, paymentIntent, billingAgreement, buttonStyle) {
80
+ this.paymentMethod = paymentMethod;
81
+ this.paymentIntent = paymentIntent;
82
+ this.billingAgreement = billingAgreement;
83
+ this.buttonStyle = buttonStyle;
84
+ this.client = new api_gateway_client_1.default({ accessToken: window.localStorage.getItem(constants_1.LocalStorageAccessTokenKey),
85
+ username: window.MerchantUsername,
86
+ });
87
+ this.createButton();
88
+ }
89
+ Object.defineProperty(PayPalButton.prototype, "paypalButtons", {
90
+ get: function () {
91
+ return this._paypalButtons;
92
+ },
93
+ enumerable: false,
94
+ configurable: true
95
+ });
96
+ Object.defineProperty(PayPalButton.prototype, "paypalActions", {
97
+ get: function () {
98
+ return this.actions;
99
+ },
100
+ enumerable: false,
101
+ configurable: true
102
+ });
103
+ PayPalButton.prototype.render = function (containerId) {
104
+ var container = this.getContainer(containerId);
105
+ if (typeof (container) != 'undefined' && container != null) {
106
+ this._paypalButtons.render('#' + container.id);
107
+ }
108
+ else {
109
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_ERROR, {
110
+ errors: ["Container with id #".concat(containerId, " does not exist.")],
111
+ data: null
112
+ });
113
+ }
114
+ };
115
+ PayPalButton.prototype.getContainer = function (containerId) {
116
+ return document.getElementById(containerId);
117
+ };
118
+ PayPalButton.prototype.createButton = function () {
119
+ var _this = this;
120
+ var button = ({});
121
+ button.style = (this.buttonStyle ? this.buttonStyle : defaultStyle);
122
+ if (this.billingAgreement === true) {
123
+ button.createBillingAgreement = function () { return __awaiter(_this, void 0, void 0, function () {
124
+ return __generator(this, function (_a) {
125
+ return [2 /*return*/, this.createBillingAgreement()];
126
+ });
127
+ }); };
128
+ button.onApprove = function (data, actions) { return __awaiter(_this, void 0, void 0, function () {
129
+ return __generator(this, function (_a) {
130
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_PROCESSESING, { data: {}, message: 'The request is being processed.' });
131
+ return [2 /*return*/, this.approveBillingAgreement(data)];
132
+ });
133
+ }); };
134
+ button.onCancel = function (data, actions) {
135
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_CANCEL, { data: { id: data.orderID }, message: 'PayPal Billing Agreement cancelled.' });
136
+ };
137
+ }
138
+ else {
139
+ button.createOrder = function () { return __awaiter(_this, void 0, void 0, function () {
140
+ return __generator(this, function (_a) {
141
+ return [2 /*return*/, this.createOrder()];
142
+ });
143
+ }); };
144
+ button.onApprove = function (data, actions) { return __awaiter(_this, void 0, void 0, function () {
145
+ return __generator(this, function (_a) {
146
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_PROCESSESING, { data: {}, message: 'The request is being processed.' });
147
+ return [2 /*return*/, this.approveOrder(data)];
148
+ });
149
+ }); };
150
+ button.onCancel = function (data, actions) {
151
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_CANCEL, { data: { id: data.orderID }, message: 'PayPal Order cancelled.' });
152
+ };
153
+ }
154
+ button.onError = function (error) {
155
+ // This flag is used to prevent emitting general error from PayPal
156
+ // if an error has already been raised and emitted.
157
+ if (_this.validationErrorRaised === false) {
158
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_ERROR, {
159
+ errors: ['PayPal Checkout failed.'],
160
+ data: null
161
+ });
162
+ }
163
+ };
164
+ this._paypalButtons = window.paypal.Buttons(button);
165
+ };
166
+ PayPalButton.prototype.createOrder = function () {
167
+ return __awaiter(this, void 0, void 0, function () {
168
+ var payload, response, error_1;
169
+ return __generator(this, function (_a) {
170
+ switch (_a.label) {
171
+ case 0:
172
+ _a.trys.push([0, 2, , 3]);
173
+ this.validationErrorRaised = false;
174
+ payload = util.toObjectWithSnakeCaseKeys(this.paymentMethod);
175
+ payload.payment_intent = this.paymentIntent;
176
+ return [4 /*yield*/, this.client.createPayPalOrder({
177
+ order: payload
178
+ })];
179
+ case 1:
180
+ response = (_a.sent()).data;
181
+ return [2 /*return*/, response.id];
182
+ case 2:
183
+ error_1 = _a.sent();
184
+ this.validationErrorRaised = true;
185
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_ERROR, {
186
+ errors: this.formatError(error_1),
187
+ data: null
188
+ });
189
+ return [2 /*return*/, null];
190
+ case 3: return [2 /*return*/];
191
+ }
192
+ });
193
+ });
194
+ };
195
+ PayPalButton.prototype.approveOrder = function (data) {
196
+ return __awaiter(this, void 0, void 0, function () {
197
+ var response, error_2;
198
+ return __generator(this, function (_a) {
199
+ switch (_a.label) {
200
+ case 0:
201
+ _a.trys.push([0, 5, , 6]);
202
+ this.validationErrorRaised = false;
203
+ response = undefined;
204
+ if (!(this.paymentMethod.intent.toUpperCase() === types_1.PayPalIntent.CAPTURE)) return [3 /*break*/, 2];
205
+ return [4 /*yield*/, this.client.capturePayPalOrder({
206
+ id: data.orderID
207
+ })];
208
+ case 1:
209
+ response = (_a.sent()).data;
210
+ return [3 /*break*/, 4];
211
+ case 2:
212
+ if (!(this.paymentMethod.intent.toUpperCase() === types_1.PayPalIntent.AUTHORIZE)) return [3 /*break*/, 4];
213
+ return [4 /*yield*/, this.client.authorizePayPalOrder({
214
+ id: data.orderID
215
+ })];
216
+ case 3:
217
+ response = (_a.sent()).data;
218
+ _a.label = 4;
219
+ case 4:
220
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_SUCCESS, {
221
+ data: util.toObjectWithCamelCaseKeys(response),
222
+ message: 'PayPal order approved.'
223
+ });
224
+ return [2 /*return*/];
225
+ case 5:
226
+ error_2 = _a.sent();
227
+ this.validationErrorRaised = true;
228
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_ERROR, {
229
+ errors: this.formatError(error_2),
230
+ data: null
231
+ });
232
+ return [2 /*return*/];
233
+ case 6: return [2 /*return*/];
234
+ }
235
+ });
236
+ });
237
+ };
238
+ PayPalButton.prototype.createBillingAgreement = function () {
239
+ return __awaiter(this, void 0, void 0, function () {
240
+ var payload, response, error_3;
241
+ return __generator(this, function (_a) {
242
+ switch (_a.label) {
243
+ case 0:
244
+ _a.trys.push([0, 2, , 3]);
245
+ this.validationErrorRaised = false;
246
+ payload = util.toObjectWithSnakeCaseKeys(this.paymentMethod);
247
+ delete payload.billing_agreement;
248
+ return [4 /*yield*/, this.client.createPayPalBillingAgreement({
249
+ billing: payload
250
+ })];
251
+ case 1:
252
+ response = (_a.sent()).data;
253
+ return [2 /*return*/, response.token_id];
254
+ case 2:
255
+ error_3 = _a.sent();
256
+ this.validationErrorRaised = true;
257
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_ERROR, {
258
+ errors: this.formatError(error_3),
259
+ data: null
260
+ });
261
+ return [2 /*return*/];
262
+ case 3: return [2 /*return*/];
263
+ }
264
+ });
265
+ });
266
+ };
267
+ PayPalButton.prototype.approveBillingAgreement = function (data) {
268
+ return __awaiter(this, void 0, void 0, function () {
269
+ var response, error_4;
270
+ return __generator(this, function (_a) {
271
+ switch (_a.label) {
272
+ case 0:
273
+ _a.trys.push([0, 2, , 3]);
274
+ this.validationErrorRaised = false;
275
+ return [4 /*yield*/, this.client.approvePayPalBillingAgreement({
276
+ id: data.billingToken
277
+ })];
278
+ case 1:
279
+ response = (_a.sent()).data;
280
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_SUCCESS, {
281
+ data: util.toObjectWithCamelCaseKeys(response),
282
+ message: 'PayPal Billing Agreement created.'
283
+ });
284
+ return [2 /*return*/];
285
+ case 2:
286
+ error_4 = _a.sent();
287
+ this.validationErrorRaised = true;
288
+ (0, event_manager_1.emit)(types_2.PublicEvent.PAYPAL_ERROR, {
289
+ errors: this.formatError(error_4),
290
+ data: null
291
+ });
292
+ return [2 /*return*/];
293
+ case 3: return [2 /*return*/];
294
+ }
295
+ });
296
+ });
297
+ };
298
+ PayPalButton.prototype.formatError = function (error) {
299
+ var _a, _b;
300
+ var message = [(_b = (_a = error === null || error === void 0 ? void 0 : error.request) === null || _a === void 0 ? void 0 : _a.response) === null || _b === void 0 ? void 0 : _b.errors].flat();
301
+ if (typeof message[0] === 'undefined')
302
+ message = [error === null || error === void 0 ? void 0 : error.message].flat();
303
+ if (typeof message[0] === 'undefined')
304
+ message = ['Unknown error'];
305
+ return message;
306
+ };
307
+ return PayPalButton;
308
+ }());
309
+ exports.PayPalButton = PayPalButton;
310
+ exports.default = PayPalButton;
311
+ //# sourceMappingURL=paypal-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paypal-button.js","sourceRoot":"","sources":["../../../src/paypal/paypal-button.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * @jest-environment jsdom
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var types_1 = require("../shared/types");
7
+ var paypal_button_1 = require("./paypal-button");
8
+ var eventManager = require('../../src/shared/event-manager');
9
+ eventManager.emit = jest.fn();
10
+ describe('PayPalButton', function () {
11
+ var instance;
12
+ beforeEach(function () {
13
+ jest.clearAllMocks();
14
+ window.paypal = jest.fn();
15
+ window.paypal.Buttons = jest.fn().mockImplementation(function () {
16
+ return {
17
+ render: function () { return true; }
18
+ };
19
+ });
20
+ instance = new paypal_button_1.PayPalButton();
21
+ localStorage.setItem('x-fz-token', 'TOKEN');
22
+ });
23
+ describe('render()', function () {
24
+ it('should emit fz.paypal.error if container does not exist', function () {
25
+ instance.render('invalid-container-id');
26
+ var eventDetail = {
27
+ errors: ["Container with id #invalid-container-id does not exist."]
28
+ };
29
+ expect(eventManager.emit).toHaveBeenCalledTimes(1);
30
+ expect(eventManager.emit.mock.calls[0][0]).toBe(types_1.PublicEvent.PAYPAL_ERROR);
31
+ expect(eventManager.emit.mock.calls[0][1]).toMatchObject(eventDetail);
32
+ });
33
+ it('calls paypal.render()', function () {
34
+ instance.getContainer = jest.fn().mockReturnValue(Object);
35
+ var spy = jest.spyOn(instance.paypalButtons, 'render');
36
+ instance.render('containerID');
37
+ expect(spy).toHaveBeenCalled();
38
+ });
39
+ });
40
+ });
41
+ //# sourceMappingURL=paypal-button.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paypal-button.test.js","sourceRoot":"","sources":["../../../src/paypal/paypal-button.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,yCAA6C;AAC7C,iDAA8C;AAC9C,IAAM,YAAY,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAA;AAC9D,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;AAE7B,QAAQ,CAAC,cAAc,EAAE;IACvB,IAAI,QAAsB,CAAA;IAE1B,UAAU,CAAC;QACT,IAAI,CAAC,aAAa,EAAE,CAAA;QAEpB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACzB,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;YACnD,OAAO;gBACL,MAAM,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI;aACnB,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,QAAQ,GAAG,IAAI,4BAAY,EAAE,CAAA;QAC7B,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAU,EAAE;QACnB,EAAE,CAAC,yDAAyD,EAAE;YAC5D,QAAQ,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAA;YAEvC,IAAM,WAAW,GAAG;gBAClB,MAAM,EAAE,CAAC,yDAAyD,CAAC;aACpE,CAAA;YAED,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAClD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAW,CAAC,YAAY,CAAC,CAAA;YACzE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QACvE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uBAAuB,EAAE;YAC1B,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YACzD,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;YACxD,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;YAE9B,MAAM,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}