@lightspeed/online-payments-sdk 1.0.5 → 1.1.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.
@@ -39,13 +39,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.AdyenWidget = void 0;
40
40
  var adyen_web_1 = require("@adyen/adyen-web");
41
41
  var ResultBuilder_1 = require("./ResultBuilder");
42
- function mount(mountElement, context, eventBroadcaster) {
42
+ function mount(mountElement, session, eventBroadcaster) {
43
43
  return __awaiter(this, void 0, void 0, function () {
44
44
  var checkoutConfig, checkout, dropinConfiguration, dropIn;
45
45
  return __generator(this, function (_a) {
46
46
  switch (_a.label) {
47
47
  case 0:
48
- checkoutConfig = createAdyenConfiguration(context, eventBroadcaster);
48
+ checkoutConfig = createAdyenConfiguration(session.context, eventBroadcaster);
49
49
  return [4 /*yield*/, (0, adyen_web_1.AdyenCheckout)(checkoutConfig)];
50
50
  case 1:
51
51
  checkout = _a.sent();
@@ -0,0 +1,32 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.mountMotoWidget = exports.mountPaymentWidget = exports.StripeWidget = void 0;
18
+ // Main widget interface
19
+ var widget_1 = require("./widget");
20
+ Object.defineProperty(exports, "StripeWidget", { enumerable: true, get: function () { return widget_1.StripeWidget; } });
21
+ // Individual widget modules
22
+ var payment_1 = require("./widgets/payment");
23
+ Object.defineProperty(exports, "mountPaymentWidget", { enumerable: true, get: function () { return payment_1.mountPaymentWidget; } });
24
+ var moto_1 = require("./widgets/moto");
25
+ Object.defineProperty(exports, "mountMotoWidget", { enumerable: true, get: function () { return moto_1.mountMotoWidget; } });
26
+ // Shared utilities
27
+ __exportStar(require("./shared"), exports);
28
+ // Theme configurations
29
+ __exportStar(require("./themes"), exports);
30
+ // Session and types
31
+ __exportStar(require("./session"), exports);
32
+ __exportStar(require("./ResultBuilder"), exports);
@@ -0,0 +1,266 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.initStripe = initStripe;
51
+ exports.createPaymentElementOptions = createPaymentElementOptions;
52
+ exports.createAddressElementOptions = createAddressElementOptions;
53
+ exports.createPaymentElement = createPaymentElement;
54
+ exports.createAddressElement = createAddressElement;
55
+ exports.cleanupElements = cleanupElements;
56
+ exports.handleSaveCard = handleSaveCard;
57
+ exports.handlePayment = handlePayment;
58
+ exports.createSubmitHandler = createSubmitHandler;
59
+ var stripe_js_1 = require("@stripe/stripe-js");
60
+ var ResultBuilder_1 = require("./ResultBuilder");
61
+ var error_1 = require("../error");
62
+ var themes_1 = require("./themes");
63
+ /**
64
+ * Initialize Stripe with the given context
65
+ */
66
+ function initStripe(context, theme) {
67
+ return __awaiter(this, void 0, void 0, function () {
68
+ var publishableKey, clientSecret, customerSessionClientSecret, loadedStripe, stripe, themeConfig, elementsOptions, elements;
69
+ return __generator(this, function (_a) {
70
+ switch (_a.label) {
71
+ case 0:
72
+ publishableKey = context.publishableKey, clientSecret = context.clientSecret, customerSessionClientSecret = context.customerSessionClientSecret;
73
+ return [4 /*yield*/, (0, stripe_js_1.loadStripe)(publishableKey)];
74
+ case 1:
75
+ loadedStripe = _a.sent();
76
+ if (!loadedStripe) {
77
+ throw new Error('Failed to initialize Stripe');
78
+ }
79
+ stripe = loadedStripe;
80
+ themeConfig = (0, themes_1.getThemeConfig)(theme);
81
+ elementsOptions = __assign(__assign(__assign({ clientSecret: clientSecret, customerSessionClientSecret: customerSessionClientSecret }, (context.locale && { locale: context.locale })), (themeConfig && { appearance: themeConfig.appearance })), (themeConfig && { fonts: themeConfig.fonts }));
82
+ elements = stripe.elements(elementsOptions);
83
+ return [2 /*return*/, { stripe: stripe, elements: elements }];
84
+ }
85
+ });
86
+ });
87
+ }
88
+ /**
89
+ * Create payment element options with default wallet settings
90
+ */
91
+ function createPaymentElementOptions(defaultValues, theme) {
92
+ var options = {
93
+ wallets: {
94
+ applePay: 'never',
95
+ googlePay: 'never',
96
+ link: 'never',
97
+ },
98
+ };
99
+ if (defaultValues) {
100
+ options.defaultValues = {
101
+ billingDetails: {
102
+ address: {
103
+ country: defaultValues.country,
104
+ postal_code: defaultValues.postalCode,
105
+ },
106
+ },
107
+ };
108
+ }
109
+ // Apply theme layout configuration
110
+ if (theme) {
111
+ var themeConfig = (0, themes_1.getThemeConfig)(theme);
112
+ if (themeConfig === null || themeConfig === void 0 ? void 0 : themeConfig.layout) {
113
+ options.layout = themeConfig.layout;
114
+ }
115
+ }
116
+ return options;
117
+ }
118
+ /**
119
+ * Create address element options
120
+ */
121
+ function createAddressElementOptions(defaultValues) {
122
+ var addressOptions = {
123
+ mode: 'billing',
124
+ };
125
+ if (defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.country) {
126
+ addressOptions.defaultValues = {
127
+ address: {
128
+ country: defaultValues.country,
129
+ },
130
+ };
131
+ }
132
+ return addressOptions;
133
+ }
134
+ /**
135
+ * Create and mount payment element
136
+ */
137
+ function createPaymentElement(elements, options, mountElement, eventBroadcaster) {
138
+ var paymentElement = elements.create('payment', options);
139
+ paymentElement.on('ready', function () {
140
+ return eventBroadcaster.publish({ status: 'Ready', code: 'Ready' });
141
+ });
142
+ var paymentContainer = document.createElement('div');
143
+ paymentContainer.className = 'stripe-payment-element-container';
144
+ mountElement.appendChild(paymentContainer);
145
+ paymentElement.mount(paymentContainer);
146
+ return { element: paymentElement, container: paymentContainer };
147
+ }
148
+ /**
149
+ * Create and mount address element
150
+ */
151
+ function createAddressElement(elements, options, mountElement) {
152
+ var addressElement = elements.create('address', options);
153
+ var addressContainer = document.createElement('div');
154
+ addressContainer.className = 'stripe-address-element-container';
155
+ mountElement.appendChild(addressContainer);
156
+ addressElement.mount(addressContainer);
157
+ return { element: addressElement, container: addressContainer };
158
+ }
159
+ /**
160
+ * Clean up elements and containers
161
+ */
162
+ function cleanupElements(paymentElement, addressElement, paymentContainer, addressContainer) {
163
+ paymentElement.unmount();
164
+ if (addressElement) {
165
+ addressElement.unmount();
166
+ }
167
+ // Clean up created containers
168
+ if (addressContainer) {
169
+ addressContainer.remove();
170
+ }
171
+ if (paymentContainer) {
172
+ paymentContainer.remove();
173
+ }
174
+ }
175
+ /**
176
+ * Handle save card operation
177
+ */
178
+ function handleSaveCard(stripe, elements, session) {
179
+ return __awaiter(this, void 0, void 0, function () {
180
+ var _a, error, setupIntent;
181
+ return __generator(this, function (_b) {
182
+ switch (_b.label) {
183
+ case 0: return [4 /*yield*/, stripe.confirmSetup({
184
+ elements: elements,
185
+ redirect: 'if_required',
186
+ confirmParams: {
187
+ return_url: session.context.redirectUrl || window.location.href,
188
+ },
189
+ })];
190
+ case 1:
191
+ _a = _b.sent(), error = _a.error, setupIntent = _a.setupIntent;
192
+ return [2 /*return*/, error
193
+ ? ResultBuilder_1.EventBuilder.fromStripeError(error)
194
+ : ResultBuilder_1.EventBuilder.fromSetupIntent(setupIntent)];
195
+ }
196
+ });
197
+ });
198
+ }
199
+ /**
200
+ * Handle payment operation
201
+ */
202
+ function handlePayment(stripe, elements, session) {
203
+ return __awaiter(this, void 0, void 0, function () {
204
+ var _a, error, paymentIntent;
205
+ return __generator(this, function (_b) {
206
+ switch (_b.label) {
207
+ case 0: return [4 /*yield*/, stripe.confirmPayment({
208
+ elements: elements,
209
+ redirect: 'if_required',
210
+ confirmParams: {
211
+ return_url: session.context.redirectUrl || window.location.href,
212
+ },
213
+ })];
214
+ case 1:
215
+ _a = _b.sent(), error = _a.error, paymentIntent = _a.paymentIntent;
216
+ return [2 /*return*/, error
217
+ ? ResultBuilder_1.EventBuilder.fromStripeError(error)
218
+ : ResultBuilder_1.EventBuilder.fromPaymentIntent(paymentIntent)];
219
+ }
220
+ });
221
+ });
222
+ }
223
+ /**
224
+ * Create common submit handler for widgets
225
+ */
226
+ function createSubmitHandler(stripe, elements, session, eventBroadcaster) {
227
+ var _this = this;
228
+ return function () { return __awaiter(_this, void 0, void 0, function () {
229
+ var result;
230
+ return __generator(this, function (_a) {
231
+ switch (_a.label) {
232
+ case 0:
233
+ result = undefined;
234
+ if (!['save-card', 'payment'].includes(session.context.intent)) {
235
+ eventBroadcaster.publish({
236
+ status: 'Error',
237
+ code: 'InvalidSessionPayload',
238
+ loggingEnrichment: {
239
+ message: "context has an unexpected intent of ".concat(session.context.intent),
240
+ intent: session.context.intent,
241
+ },
242
+ });
243
+ throw new error_1.InvalidSessionPayloadError();
244
+ }
245
+ if (!(session.context.intent === 'save-card')) return [3 /*break*/, 2];
246
+ return [4 /*yield*/, handleSaveCard(stripe, elements, session)];
247
+ case 1:
248
+ result = _a.sent();
249
+ _a.label = 2;
250
+ case 2:
251
+ if (!(session.context.intent === 'payment')) return [3 /*break*/, 4];
252
+ return [4 /*yield*/, handlePayment(stripe, elements, session)];
253
+ case 3:
254
+ result = _a.sent();
255
+ _a.label = 4;
256
+ case 4:
257
+ if (!result) {
258
+ eventBroadcaster.publish({ status: 'Error', code: 'Unexpected' });
259
+ throw new error_1.ProcessingError();
260
+ }
261
+ eventBroadcaster.publish(result);
262
+ return [2 /*return*/, result];
263
+ }
264
+ });
265
+ }); };
266
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getThemeConfig = getThemeConfig;
4
+ /**
5
+ * Get theme configuration based on theme name
6
+ */
7
+ function getThemeConfig(theme) {
8
+ if (!theme) {
9
+ return undefined;
10
+ }
11
+ switch (theme) {
12
+ case 'invoicing':
13
+ return {
14
+ appearance: {
15
+ theme: 'stripe',
16
+ variables: {
17
+ fontFamily: 'Inter, system-ui, sans-serif',
18
+ fontWeightNormal: 'normal',
19
+ fontSizeBase: '1rem',
20
+ fontLineHeight: '24px',
21
+ borderRadius: '12px',
22
+ },
23
+ labels: 'floating',
24
+ rules: {
25
+ '.Label, .Label--floating': {
26
+ color: '#00071b',
27
+ opacity: '0.5',
28
+ },
29
+ },
30
+ },
31
+ fonts: [
32
+ {
33
+ cssSrc: 'https://fonts.googleapis.com/css?family=Inter',
34
+ },
35
+ ],
36
+ layout: {
37
+ type: 'tabs',
38
+ },
39
+ };
40
+ default:
41
+ return undefined;
42
+ }
43
+ }
@@ -1,15 +1,4 @@
1
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
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -49,140 +38,29 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
49
38
  Object.defineProperty(exports, "__esModule", { value: true });
50
39
  exports.StripeWidget = void 0;
51
40
  exports.mount = mount;
52
- var stripe_js_1 = require("@stripe/stripe-js");
53
- var ResultBuilder_1 = require("./ResultBuilder");
54
- var error_1 = require("../error");
55
- function init(context) {
41
+ var payment_1 = require("./widgets/payment");
42
+ var moto_1 = require("./widgets/moto");
43
+ /**
44
+ * Main mount function that delegates to appropriate widget based on session type
45
+ */
46
+ function mount(mountElement, session, eventBroadcaster, defaultValues, theme) {
56
47
  return __awaiter(this, void 0, void 0, function () {
57
- var publishableKey, clientSecret, customerSessionClientSecret, loadedStripe, stripe, elementsOptions, elements;
48
+ var sessionType;
58
49
  return __generator(this, function (_a) {
59
- switch (_a.label) {
60
- case 0:
61
- publishableKey = context.publishableKey, clientSecret = context.clientSecret, customerSessionClientSecret = context.customerSessionClientSecret;
62
- return [4 /*yield*/, (0, stripe_js_1.loadStripe)(publishableKey)];
63
- case 1:
64
- loadedStripe = _a.sent();
65
- if (!loadedStripe) {
66
- throw new Error('Failed to initialize Stripe');
67
- }
68
- stripe = loadedStripe;
69
- elementsOptions = __assign({ clientSecret: clientSecret, customerSessionClientSecret: customerSessionClientSecret }, (context.locale && { locale: context.locale }));
70
- elements = stripe.elements(elementsOptions);
71
- return [2 /*return*/, { stripe: stripe, elements: elements }];
72
- }
73
- });
74
- });
75
- }
76
- function mount(mountElement, context, eventBroadcaster, defaultValues) {
77
- return __awaiter(this, void 0, void 0, function () {
78
- var _a, stripe, elements, options, paymentElement;
79
- var _this = this;
80
- return __generator(this, function (_b) {
81
- switch (_b.label) {
82
- case 0: return [4 /*yield*/, init(context)];
83
- case 1:
84
- _a = _b.sent(), stripe = _a.stripe, elements = _a.elements;
85
- options = {
86
- wallets: {
87
- applePay: 'never',
88
- googlePay: 'never',
89
- link: 'never',
90
- },
91
- };
92
- if (defaultValues) {
93
- options.defaultValues = {
94
- billingDetails: {
95
- address: {
96
- country: defaultValues.country,
97
- postal_code: defaultValues.postalCode,
98
- },
99
- },
100
- };
101
- }
102
- paymentElement = elements.create('payment', options);
103
- paymentElement.on('ready', function () {
104
- return eventBroadcaster.publish({ status: 'Ready', code: 'Ready' });
105
- });
106
- paymentElement.mount(mountElement);
107
- return [2 /*return*/, {
108
- unmount: function () { return paymentElement.unmount(); },
109
- submit: function () { return __awaiter(_this, void 0, void 0, function () {
110
- var result;
111
- return __generator(this, function (_a) {
112
- switch (_a.label) {
113
- case 0:
114
- result = undefined;
115
- if (!['save-card', 'payment'].includes(context.intent)) {
116
- eventBroadcaster.publish({
117
- status: 'Error',
118
- code: 'InvalidSessionPayload',
119
- loggingEnrichment: {
120
- message: "context has an unexpect intent of ".concat(context.intent),
121
- },
122
- });
123
- throw new error_1.InvalidSessionPayloadError();
124
- }
125
- if (!(context.intent === 'save-card')) return [3 /*break*/, 2];
126
- return [4 /*yield*/, handleSaveCard(stripe, elements)];
127
- case 1:
128
- result = _a.sent();
129
- _a.label = 2;
130
- case 2:
131
- if (!(context.intent === 'payment')) return [3 /*break*/, 4];
132
- return [4 /*yield*/, handlePayment(stripe, elements)];
133
- case 3:
134
- result = _a.sent();
135
- _a.label = 4;
136
- case 4:
137
- if (!result) {
138
- eventBroadcaster.publish({ status: 'Error', code: 'Unexpected' });
139
- throw new error_1.ProcessingError();
140
- }
141
- eventBroadcaster.publish(result);
142
- return [2 /*return*/, result];
143
- }
144
- });
145
- }); },
146
- }];
147
- }
148
- });
149
- });
150
- }
151
- function handleSaveCard(stripe, elements) {
152
- return __awaiter(this, void 0, void 0, function () {
153
- var _a, error, setupIntent;
154
- return __generator(this, function (_b) {
155
- switch (_b.label) {
156
- case 0: return [4 /*yield*/, stripe.confirmSetup({
157
- elements: elements,
158
- redirect: 'if_required',
159
- confirmParams: { return_url: window.location.href },
160
- })];
161
- case 1:
162
- _a = _b.sent(), error = _a.error, setupIntent = _a.setupIntent;
163
- return [2 /*return*/, error
164
- ? ResultBuilder_1.EventBuilder.fromStripeError(error)
165
- : ResultBuilder_1.EventBuilder.fromSetupIntent(setupIntent)];
166
- }
167
- });
168
- });
169
- }
170
- function handlePayment(stripe, elements) {
171
- return __awaiter(this, void 0, void 0, function () {
172
- var _a, error, paymentIntent;
173
- return __generator(this, function (_b) {
174
- switch (_b.label) {
175
- case 0: return [4 /*yield*/, stripe.confirmPayment({
176
- elements: elements,
177
- redirect: 'if_required',
178
- confirmParams: { return_url: window.location.href },
179
- })];
180
- case 1:
181
- _a = _b.sent(), error = _a.error, paymentIntent = _a.paymentIntent;
182
- return [2 /*return*/, error
183
- ? ResultBuilder_1.EventBuilder.fromStripeError(error)
184
- : ResultBuilder_1.EventBuilder.fromPaymentIntent(paymentIntent)];
50
+ sessionType = session.metadata.sessionType;
51
+ // Route to appropriate widget based on session type
52
+ switch (sessionType) {
53
+ case 'payment':
54
+ case 'payment-with-save':
55
+ return [2 /*return*/, (0, payment_1.mountPaymentWidget)(mountElement, session, eventBroadcaster, defaultValues, theme)];
56
+ case 'moto':
57
+ case 'moto-with-save':
58
+ case 'save':
59
+ return [2 /*return*/, (0, moto_1.mountMotoWidget)(mountElement, session, eventBroadcaster, defaultValues, theme)];
60
+ default:
61
+ throw new Error("Unsupported session type: ".concat(sessionType));
185
62
  }
63
+ return [2 /*return*/];
186
64
  });
187
65
  });
188
66
  }
@@ -0,0 +1,64 @@
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["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.mountMotoWidget = mountMotoWidget;
40
+ var shared_1 = require("../shared");
41
+ /**
42
+ * Mount MOTO widget for moto and moto-with-save session types
43
+ * MOTO (Mail Order/Telephone Order) forms don't require address collection
44
+ */
45
+ function mountMotoWidget(mountElement, session, eventBroadcaster, defaultValues, theme) {
46
+ return __awaiter(this, void 0, void 0, function () {
47
+ var _a, stripe, elements, paymentOptions, _b, paymentElement, paymentContainer;
48
+ return __generator(this, function (_c) {
49
+ switch (_c.label) {
50
+ case 0: return [4 /*yield*/, (0, shared_1.initStripe)(session.context, theme)];
51
+ case 1:
52
+ _a = _c.sent(), stripe = _a.stripe, elements = _a.elements;
53
+ paymentOptions = (0, shared_1.createPaymentElementOptions)(defaultValues, theme);
54
+ _b = (0, shared_1.createPaymentElement)(elements, paymentOptions, mountElement, eventBroadcaster), paymentElement = _b.element, paymentContainer = _b.container;
55
+ return [2 /*return*/, {
56
+ unmount: function () {
57
+ (0, shared_1.cleanupElements)(paymentElement, null, paymentContainer, null);
58
+ },
59
+ submit: (0, shared_1.createSubmitHandler)(stripe, elements, session, eventBroadcaster),
60
+ }];
61
+ }
62
+ });
63
+ });
64
+ }
@@ -0,0 +1,65 @@
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["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.mountPaymentWidget = mountPaymentWidget;
40
+ var shared_1 = require("../shared");
41
+ /**
42
+ * Mount payment widget for payment and payment-with-save session types
43
+ */
44
+ function mountPaymentWidget(mountElement, session, eventBroadcaster, defaultValues, theme) {
45
+ return __awaiter(this, void 0, void 0, function () {
46
+ var _a, stripe, elements, addressOptions, _b, addressElement, addressContainer, paymentOptions, _c, paymentElement, paymentContainer;
47
+ return __generator(this, function (_d) {
48
+ switch (_d.label) {
49
+ case 0: return [4 /*yield*/, (0, shared_1.initStripe)(session.context, theme)];
50
+ case 1:
51
+ _a = _d.sent(), stripe = _a.stripe, elements = _a.elements;
52
+ addressOptions = (0, shared_1.createAddressElementOptions)(defaultValues);
53
+ _b = (0, shared_1.createAddressElement)(elements, addressOptions, mountElement), addressElement = _b.element, addressContainer = _b.container;
54
+ paymentOptions = (0, shared_1.createPaymentElementOptions)(defaultValues, theme);
55
+ _c = (0, shared_1.createPaymentElement)(elements, paymentOptions, mountElement, eventBroadcaster), paymentElement = _c.element, paymentContainer = _c.container;
56
+ return [2 /*return*/, {
57
+ unmount: function () {
58
+ (0, shared_1.cleanupElements)(paymentElement, addressElement, paymentContainer, addressContainer);
59
+ },
60
+ submit: (0, shared_1.createSubmitHandler)(stripe, elements, session, eventBroadcaster),
61
+ }];
62
+ }
63
+ });
64
+ });
65
+ }