@lightspeed/online-payments-sdk 1.5.0 → 1.6.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.
@@ -33,6 +33,9 @@ var EventBroadcaster = /** @class */ (function () {
33
33
  if ('paymentMethodType' in event && event.paymentMethodType) {
34
34
  externalEvent.paymentMethodType = event.paymentMethodType;
35
35
  }
36
+ if ('saveCheckboxChecked' in event && event.saveCheckboxChecked !== undefined) {
37
+ externalEvent.saveCheckboxChecked = event.saveCheckboxChecked;
38
+ }
36
39
  return externalEvent;
37
40
  };
38
41
  EventBroadcaster.prototype.registerMiddleware = function (middleware) {
@@ -222,17 +222,22 @@ function createPaymentElement(elements, options, mountElement, eventBroadcaster)
222
222
  * When addressElement is provided (payment form): emits "Complete" only when BOTH elements are complete,
223
223
  * and "Incomplete" when at least one element becomes incomplete.
224
224
  * When addressElement is not provided (MOTO form): emits based on payment element completion only.
225
+ * Also includes the current save-payment-method checkbox state (when present) on every Change event,
226
+ * and emits a Change event when that checkbox state changes.
225
227
  */
226
228
  function setupChangeEventHandler(paymentElement, eventBroadcaster, addressElement) {
227
229
  var paymentComplete = false;
228
230
  var addressComplete = !addressElement; // If no address element, consider it complete
229
231
  var previousComplete = null;
230
232
  var previousMethodType;
233
+ var previousSaveCheckboxState; // Track save checkbox state
231
234
  var emitChangeEvent = function () {
232
235
  var complete = paymentComplete && addressComplete;
233
236
  previousComplete = complete;
234
- eventBroadcaster.publish(__assign({ status: 'Change', code: complete ? 'Complete' : 'Incomplete' }, (previousMethodType && {
237
+ eventBroadcaster.publish(__assign(__assign({ status: 'Change', code: complete ? 'Complete' : 'Incomplete' }, (previousMethodType && {
235
238
  paymentMethodType: previousMethodType,
239
+ })), (previousSaveCheckboxState !== undefined && {
240
+ saveCheckboxChecked: previousSaveCheckboxState,
236
241
  })));
237
242
  };
238
243
  paymentElement.on('change', function (event) {
@@ -244,7 +249,15 @@ function setupChangeEventHandler(paymentElement, eventBroadcaster, addressElemen
244
249
  if (methodType !== undefined) {
245
250
  previousMethodType = methodType;
246
251
  }
247
- if (completenessChanged || methodTypeChanged) {
252
+ // Check for save checkbox state from Stripe's value object
253
+ // The value object may contain a `savePaymentMethod` property
254
+ var saveCheckboxChanged = false;
255
+ if (event.value && typeof event.value === 'object' && 'savePaymentMethod' in event.value) {
256
+ var saveCheckboxState = event.value.savePaymentMethod;
257
+ saveCheckboxChanged = previousSaveCheckboxState !== saveCheckboxState;
258
+ previousSaveCheckboxState = saveCheckboxState;
259
+ }
260
+ if (completenessChanged || methodTypeChanged || saveCheckboxChanged) {
248
261
  emitChangeEvent();
249
262
  }
250
263
  });
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
4
  // This file is auto-generated during the build process
5
5
  // DO NOT EDIT MANUALLY - Version is extracted from package.json
6
- exports.SDK_VERSION = '1.5.0';
6
+ exports.SDK_VERSION = '1.6.0';
@@ -23,13 +23,15 @@ export type ChangeEvent = BaseEvent & {
23
23
  status: 'Change';
24
24
  code: 'Complete' | 'Incomplete';
25
25
  paymentMethodType?: string;
26
+ saveCheckboxChecked?: boolean;
26
27
  };
27
28
  export type ErrorResultEvent = BaseEvent & {
28
29
  code: SupportedErrorCodes;
29
30
  status: 'Error';
30
31
  };
31
32
  export type InternalEvent = SucceededResultEvent | PendingResultEvent | DeclinedResultEvent | ErrorResultEvent | ReadyEvent | ChangeEvent;
32
- export type Event = Omit<InternalEvent, 'loggingEnrichment'>;
33
+ type DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;
34
+ export type Event = DistributiveOmit<InternalEvent, 'loggingEnrichment'>;
33
35
  export type EventHandler = (result: Event) => void;
34
36
  export type EventMiddleware = (event: InternalEvent) => InternalEvent | void;
35
37
  export type EventListeners = Partial<Record<`on${Status}`, EventHandler>>;
@@ -42,3 +44,4 @@ export declare class EventBroadcaster {
42
44
  applyMiddlewares(event: InternalEvent): Event;
43
45
  publish(event: InternalEvent): void;
44
46
  }
47
+ export {};
@@ -30,6 +30,9 @@ var EventBroadcaster = /** @class */ (function () {
30
30
  if ('paymentMethodType' in event && event.paymentMethodType) {
31
31
  externalEvent.paymentMethodType = event.paymentMethodType;
32
32
  }
33
+ if ('saveCheckboxChecked' in event && event.saveCheckboxChecked !== undefined) {
34
+ externalEvent.saveCheckboxChecked = event.saveCheckboxChecked;
35
+ }
33
36
  return externalEvent;
34
37
  };
35
38
  EventBroadcaster.prototype.registerMiddleware = function (middleware) {
@@ -41,6 +41,8 @@ export declare function createPaymentElement(elements: StripeElements, options:
41
41
  * When addressElement is provided (payment form): emits "Complete" only when BOTH elements are complete,
42
42
  * and "Incomplete" when at least one element becomes incomplete.
43
43
  * When addressElement is not provided (MOTO form): emits based on payment element completion only.
44
+ * Also includes the current save-payment-method checkbox state (when present) on every Change event,
45
+ * and emits a Change event when that checkbox state changes.
44
46
  */
45
47
  export declare function setupChangeEventHandler(paymentElement: StripePaymentElement, eventBroadcaster: EventBroadcaster, addressElement?: StripeAddressElement | null): void;
46
48
  /**
@@ -210,17 +210,22 @@ export function createPaymentElement(elements, options, mountElement, eventBroad
210
210
  * When addressElement is provided (payment form): emits "Complete" only when BOTH elements are complete,
211
211
  * and "Incomplete" when at least one element becomes incomplete.
212
212
  * When addressElement is not provided (MOTO form): emits based on payment element completion only.
213
+ * Also includes the current save-payment-method checkbox state (when present) on every Change event,
214
+ * and emits a Change event when that checkbox state changes.
213
215
  */
214
216
  export function setupChangeEventHandler(paymentElement, eventBroadcaster, addressElement) {
215
217
  var paymentComplete = false;
216
218
  var addressComplete = !addressElement; // If no address element, consider it complete
217
219
  var previousComplete = null;
218
220
  var previousMethodType;
221
+ var previousSaveCheckboxState; // Track save checkbox state
219
222
  var emitChangeEvent = function () {
220
223
  var complete = paymentComplete && addressComplete;
221
224
  previousComplete = complete;
222
- eventBroadcaster.publish(__assign({ status: 'Change', code: complete ? 'Complete' : 'Incomplete' }, (previousMethodType && {
225
+ eventBroadcaster.publish(__assign(__assign({ status: 'Change', code: complete ? 'Complete' : 'Incomplete' }, (previousMethodType && {
223
226
  paymentMethodType: previousMethodType,
227
+ })), (previousSaveCheckboxState !== undefined && {
228
+ saveCheckboxChecked: previousSaveCheckboxState,
224
229
  })));
225
230
  };
226
231
  paymentElement.on('change', function (event) {
@@ -232,7 +237,15 @@ export function setupChangeEventHandler(paymentElement, eventBroadcaster, addres
232
237
  if (methodType !== undefined) {
233
238
  previousMethodType = methodType;
234
239
  }
235
- if (completenessChanged || methodTypeChanged) {
240
+ // Check for save checkbox state from Stripe's value object
241
+ // The value object may contain a `savePaymentMethod` property
242
+ var saveCheckboxChanged = false;
243
+ if (event.value && typeof event.value === 'object' && 'savePaymentMethod' in event.value) {
244
+ var saveCheckboxState = event.value.savePaymentMethod;
245
+ saveCheckboxChanged = previousSaveCheckboxState !== saveCheckboxState;
246
+ previousSaveCheckboxState = saveCheckboxState;
247
+ }
248
+ if (completenessChanged || methodTypeChanged || saveCheckboxChanged) {
236
249
  emitChangeEvent();
237
250
  }
238
251
  });
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "1.5.0";
1
+ export declare const SDK_VERSION = "1.6.0";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // This file is auto-generated during the build process
2
2
  // DO NOT EDIT MANUALLY - Version is extracted from package.json
3
- export var SDK_VERSION = '1.5.0';
3
+ export var SDK_VERSION = '1.6.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightspeed/online-payments-sdk",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "Process online-payments with Lightspeed Payments",
5
5
  "author": "Lightspeed Commerce Inc.",
6
6
  "license": "SEE LICENSE IN LICENSE.md",