@lightspeed/online-payments-sdk 1.2.1 → 1.2.3
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.
- package/dist/cjs/v1/logging/datadog/logger.js +2 -0
- package/dist/cjs/v1/stripe/shared.js +33 -11
- package/dist/cjs/v1/stripe/widgets/moto.js +2 -0
- package/dist/cjs/v1/stripe/widgets/payment.js +2 -0
- package/dist/cjs/version.js +6 -0
- package/dist/v1/logging/datadog/logger.js +2 -0
- package/dist/v1/stripe/shared.d.ts +7 -0
- package/dist/v1/stripe/shared.js +32 -11
- package/dist/v1/stripe/widgets/moto.js +3 -1
- package/dist/v1/stripe/widgets/payment.js +3 -1
- package/dist/version.d.ts +1 -0
- package/dist/version.js +3 -0
- package/package.json +3 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getLogger = exports.Logger = void 0;
|
|
4
4
|
var browser_logs_1 = require("@datadog/browser-logs");
|
|
5
|
+
var version_1 = require("../../../version");
|
|
5
6
|
var Logger = /** @class */ (function () {
|
|
6
7
|
function Logger() {
|
|
7
8
|
}
|
|
@@ -12,6 +13,7 @@ var Logger = /** @class */ (function () {
|
|
|
12
13
|
site: site,
|
|
13
14
|
service: 'lsp-online-payments-sdk',
|
|
14
15
|
env: env,
|
|
16
|
+
version: version_1.SDK_VERSION,
|
|
15
17
|
forwardErrorsToLogs: false,
|
|
16
18
|
forwardConsoleLogs: [],
|
|
17
19
|
};
|
|
@@ -51,6 +51,7 @@ exports.initStripe = initStripe;
|
|
|
51
51
|
exports.createPaymentElementOptions = createPaymentElementOptions;
|
|
52
52
|
exports.createAddressElementOptions = createAddressElementOptions;
|
|
53
53
|
exports.createPaymentElement = createPaymentElement;
|
|
54
|
+
exports.setupChangeEventHandler = setupChangeEventHandler;
|
|
54
55
|
exports.createAddressElement = createAddressElement;
|
|
55
56
|
exports.cleanupElements = cleanupElements;
|
|
56
57
|
exports.handleSaveCard = handleSaveCard;
|
|
@@ -193,19 +194,9 @@ function createPaymentElement(elements, options, mountElement, eventBroadcaster)
|
|
|
193
194
|
// Create custom terms element for US Bank Account
|
|
194
195
|
var customTermsElement = createCustomTermsElement();
|
|
195
196
|
mountElement.appendChild(customTermsElement);
|
|
196
|
-
//
|
|
197
|
-
var previousComplete = null;
|
|
197
|
+
// Handle US Bank Account terms visibility
|
|
198
198
|
paymentElement.on('change', function (event) {
|
|
199
199
|
var _a;
|
|
200
|
-
// Emit onChange event only when "complete" status transitions
|
|
201
|
-
if (event.complete !== previousComplete) {
|
|
202
|
-
previousComplete = event.complete;
|
|
203
|
-
eventBroadcaster.publish({
|
|
204
|
-
status: 'Change',
|
|
205
|
-
code: event.complete ? 'Complete' : 'Incomplete',
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
// Show custom terms only when US Bank Account is selected
|
|
209
200
|
if (((_a = event.value) === null || _a === void 0 ? void 0 : _a.type) === 'us_bank_account') {
|
|
210
201
|
customTermsElement.style.display = 'block';
|
|
211
202
|
}
|
|
@@ -219,6 +210,37 @@ function createPaymentElement(elements, options, mountElement, eventBroadcaster)
|
|
|
219
210
|
customTermsContainer: customTermsElement,
|
|
220
211
|
};
|
|
221
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Setup change event handling for payment form elements.
|
|
215
|
+
* When addressElement is provided (payment form): emits "Complete" only when BOTH elements are complete,
|
|
216
|
+
* and "Incomplete" when at least one element becomes incomplete.
|
|
217
|
+
* When addressElement is not provided (MOTO form): emits based on payment element completion only.
|
|
218
|
+
*/
|
|
219
|
+
function setupChangeEventHandler(paymentElement, eventBroadcaster, addressElement) {
|
|
220
|
+
var paymentComplete = false;
|
|
221
|
+
var addressComplete = !addressElement; // If no address element, consider it complete
|
|
222
|
+
var previousComplete = null;
|
|
223
|
+
var emitChangeEventIfNeeded = function () {
|
|
224
|
+
var complete = paymentComplete && addressComplete;
|
|
225
|
+
if (complete !== previousComplete) {
|
|
226
|
+
previousComplete = complete;
|
|
227
|
+
eventBroadcaster.publish({
|
|
228
|
+
status: 'Change',
|
|
229
|
+
code: complete ? 'Complete' : 'Incomplete',
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
paymentElement.on('change', function (event) {
|
|
234
|
+
paymentComplete = event.complete;
|
|
235
|
+
emitChangeEventIfNeeded();
|
|
236
|
+
});
|
|
237
|
+
if (addressElement) {
|
|
238
|
+
addressElement.on('change', function (event) {
|
|
239
|
+
addressComplete = event.complete;
|
|
240
|
+
emitChangeEventIfNeeded();
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
222
244
|
/**
|
|
223
245
|
* Create and mount address element
|
|
224
246
|
*/
|
|
@@ -52,6 +52,8 @@ function mountMotoWidget(mountElement, session, eventBroadcaster, defaultValues,
|
|
|
52
52
|
_a = _c.sent(), stripe = _a.stripe, elements = _a.elements;
|
|
53
53
|
paymentOptions = (0, shared_1.createPaymentElementOptions)(defaultValues, theme);
|
|
54
54
|
_b = (0, shared_1.createPaymentElement)(elements, paymentOptions, mountElement, eventBroadcaster), paymentElement = _b.element, paymentContainer = _b.container, customTermsContainer = _b.customTermsContainer;
|
|
55
|
+
// Setup change handler for payment element only (MOTO forms don't have address element)
|
|
56
|
+
(0, shared_1.setupChangeEventHandler)(paymentElement, eventBroadcaster);
|
|
55
57
|
return [2 /*return*/, {
|
|
56
58
|
unmount: function () {
|
|
57
59
|
(0, shared_1.cleanupElements)(paymentElement, null, paymentContainer, null, customTermsContainer);
|
|
@@ -53,6 +53,8 @@ function mountPaymentWidget(mountElement, session, eventBroadcaster, defaultValu
|
|
|
53
53
|
_b = (0, shared_1.createAddressElement)(elements, addressOptions, mountElement), addressElement = _b.element, addressContainer = _b.container;
|
|
54
54
|
paymentOptions = (0, shared_1.createPaymentElementOptions)(defaultValues, theme, true);
|
|
55
55
|
_c = (0, shared_1.createPaymentElement)(elements, paymentOptions, mountElement, eventBroadcaster), paymentElement = _c.element, paymentContainer = _c.container, customTermsContainer = _c.customTermsContainer;
|
|
56
|
+
// Setup change handler that emits Complete only when both elements are complete
|
|
57
|
+
(0, shared_1.setupChangeEventHandler)(paymentElement, eventBroadcaster, addressElement);
|
|
56
58
|
return [2 /*return*/, {
|
|
57
59
|
unmount: function () {
|
|
58
60
|
(0, shared_1.cleanupElements)(paymentElement, addressElement, paymentContainer, addressContainer, customTermsContainer);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { datadogLogs } from '@datadog/browser-logs';
|
|
2
|
+
import { SDK_VERSION } from '../../../version';
|
|
2
3
|
var Logger = /** @class */ (function () {
|
|
3
4
|
function Logger() {
|
|
4
5
|
}
|
|
@@ -9,6 +10,7 @@ var Logger = /** @class */ (function () {
|
|
|
9
10
|
site: site,
|
|
10
11
|
service: 'lsp-online-payments-sdk',
|
|
11
12
|
env: env,
|
|
13
|
+
version: SDK_VERSION,
|
|
12
14
|
forwardErrorsToLogs: false,
|
|
13
15
|
forwardConsoleLogs: [],
|
|
14
16
|
};
|
|
@@ -35,6 +35,13 @@ export declare function createPaymentElement(elements: StripeElements, options:
|
|
|
35
35
|
container: HTMLElement;
|
|
36
36
|
customTermsContainer: HTMLElement;
|
|
37
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* Setup change event handling for payment form elements.
|
|
40
|
+
* When addressElement is provided (payment form): emits "Complete" only when BOTH elements are complete,
|
|
41
|
+
* and "Incomplete" when at least one element becomes incomplete.
|
|
42
|
+
* When addressElement is not provided (MOTO form): emits based on payment element completion only.
|
|
43
|
+
*/
|
|
44
|
+
export declare function setupChangeEventHandler(paymentElement: StripePaymentElement, eventBroadcaster: EventBroadcaster, addressElement?: StripeAddressElement | null): void;
|
|
38
45
|
/**
|
|
39
46
|
* Create and mount address element
|
|
40
47
|
*/
|
package/dist/v1/stripe/shared.js
CHANGED
|
@@ -182,19 +182,9 @@ export function createPaymentElement(elements, options, mountElement, eventBroad
|
|
|
182
182
|
// Create custom terms element for US Bank Account
|
|
183
183
|
var customTermsElement = createCustomTermsElement();
|
|
184
184
|
mountElement.appendChild(customTermsElement);
|
|
185
|
-
//
|
|
186
|
-
var previousComplete = null;
|
|
185
|
+
// Handle US Bank Account terms visibility
|
|
187
186
|
paymentElement.on('change', function (event) {
|
|
188
187
|
var _a;
|
|
189
|
-
// Emit onChange event only when "complete" status transitions
|
|
190
|
-
if (event.complete !== previousComplete) {
|
|
191
|
-
previousComplete = event.complete;
|
|
192
|
-
eventBroadcaster.publish({
|
|
193
|
-
status: 'Change',
|
|
194
|
-
code: event.complete ? 'Complete' : 'Incomplete',
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
// Show custom terms only when US Bank Account is selected
|
|
198
188
|
if (((_a = event.value) === null || _a === void 0 ? void 0 : _a.type) === 'us_bank_account') {
|
|
199
189
|
customTermsElement.style.display = 'block';
|
|
200
190
|
}
|
|
@@ -208,6 +198,37 @@ export function createPaymentElement(elements, options, mountElement, eventBroad
|
|
|
208
198
|
customTermsContainer: customTermsElement,
|
|
209
199
|
};
|
|
210
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* Setup change event handling for payment form elements.
|
|
203
|
+
* When addressElement is provided (payment form): emits "Complete" only when BOTH elements are complete,
|
|
204
|
+
* and "Incomplete" when at least one element becomes incomplete.
|
|
205
|
+
* When addressElement is not provided (MOTO form): emits based on payment element completion only.
|
|
206
|
+
*/
|
|
207
|
+
export function setupChangeEventHandler(paymentElement, eventBroadcaster, addressElement) {
|
|
208
|
+
var paymentComplete = false;
|
|
209
|
+
var addressComplete = !addressElement; // If no address element, consider it complete
|
|
210
|
+
var previousComplete = null;
|
|
211
|
+
var emitChangeEventIfNeeded = function () {
|
|
212
|
+
var complete = paymentComplete && addressComplete;
|
|
213
|
+
if (complete !== previousComplete) {
|
|
214
|
+
previousComplete = complete;
|
|
215
|
+
eventBroadcaster.publish({
|
|
216
|
+
status: 'Change',
|
|
217
|
+
code: complete ? 'Complete' : 'Incomplete',
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
paymentElement.on('change', function (event) {
|
|
222
|
+
paymentComplete = event.complete;
|
|
223
|
+
emitChangeEventIfNeeded();
|
|
224
|
+
});
|
|
225
|
+
if (addressElement) {
|
|
226
|
+
addressElement.on('change', function (event) {
|
|
227
|
+
addressComplete = event.complete;
|
|
228
|
+
emitChangeEventIfNeeded();
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
211
232
|
/**
|
|
212
233
|
* Create and mount address element
|
|
213
234
|
*/
|
|
@@ -34,7 +34,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
import { initStripe, createPaymentElementOptions, createPaymentElement, cleanupElements, createSubmitHandler, } from '../shared';
|
|
37
|
+
import { initStripe, createPaymentElementOptions, createPaymentElement, cleanupElements, createSubmitHandler, setupChangeEventHandler, } from '../shared';
|
|
38
38
|
/**
|
|
39
39
|
* Mount MOTO widget for moto and moto-with-save session types
|
|
40
40
|
* MOTO (Mail Order/Telephone Order) forms don't require address collection
|
|
@@ -49,6 +49,8 @@ export function mountMotoWidget(mountElement, session, eventBroadcaster, default
|
|
|
49
49
|
_a = _c.sent(), stripe = _a.stripe, elements = _a.elements;
|
|
50
50
|
paymentOptions = createPaymentElementOptions(defaultValues, theme);
|
|
51
51
|
_b = createPaymentElement(elements, paymentOptions, mountElement, eventBroadcaster), paymentElement = _b.element, paymentContainer = _b.container, customTermsContainer = _b.customTermsContainer;
|
|
52
|
+
// Setup change handler for payment element only (MOTO forms don't have address element)
|
|
53
|
+
setupChangeEventHandler(paymentElement, eventBroadcaster);
|
|
52
54
|
return [2 /*return*/, {
|
|
53
55
|
unmount: function () {
|
|
54
56
|
cleanupElements(paymentElement, null, paymentContainer, null, customTermsContainer);
|
|
@@ -34,7 +34,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
import { initStripe, createPaymentElementOptions, createAddressElementOptions, createPaymentElement, createAddressElement, cleanupElements, createSubmitHandler, } from '../shared';
|
|
37
|
+
import { initStripe, createPaymentElementOptions, createAddressElementOptions, createPaymentElement, createAddressElement, cleanupElements, createSubmitHandler, setupChangeEventHandler, } from '../shared';
|
|
38
38
|
/**
|
|
39
39
|
* Mount payment widget for payment and payment-with-save session types
|
|
40
40
|
*/
|
|
@@ -50,6 +50,8 @@ export function mountPaymentWidget(mountElement, session, eventBroadcaster, defa
|
|
|
50
50
|
_b = createAddressElement(elements, addressOptions, mountElement), addressElement = _b.element, addressContainer = _b.container;
|
|
51
51
|
paymentOptions = createPaymentElementOptions(defaultValues, theme, true);
|
|
52
52
|
_c = createPaymentElement(elements, paymentOptions, mountElement, eventBroadcaster), paymentElement = _c.element, paymentContainer = _c.container, customTermsContainer = _c.customTermsContainer;
|
|
53
|
+
// Setup change handler that emits Complete only when both elements are complete
|
|
54
|
+
setupChangeEventHandler(paymentElement, eventBroadcaster, addressElement);
|
|
53
55
|
return [2 /*return*/, {
|
|
54
56
|
unmount: function () {
|
|
55
57
|
cleanupElements(paymentElement, addressElement, paymentContainer, addressContainer, customTermsContainer);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SDK_VERSION = "1.2.3";
|
package/dist/version.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lightspeed/online-payments-sdk",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "Process online-payments with Lightspeed Payments",
|
|
5
5
|
"author": "Lightspeed Commerce Inc.",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -20,8 +20,10 @@
|
|
|
20
20
|
"lint": "gts lint",
|
|
21
21
|
"fix": "gts fix",
|
|
22
22
|
"clean": "gts clean",
|
|
23
|
+
"pretypecheck": "node scripts/generate-version.js",
|
|
23
24
|
"typecheck": "tsc --noEmit",
|
|
24
25
|
"check-package-content": "npm pack --dry-run",
|
|
26
|
+
"prebuild": "node scripts/generate-version.js",
|
|
25
27
|
"build": "npm run build:esm && npm run build:cjs",
|
|
26
28
|
"build:esm": "tsc --module esnext --target es5 --outDir dist --downlevelIteration",
|
|
27
29
|
"build:cjs": "tsc --module commonjs --target es5 --outDir dist/cjs --downlevelIteration --declaration false"
|