@paydock/client-sdk 1.139.0 → 1.140.0-beta

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 (73) hide show
  1. package/README.md +2573 -0
  2. package/bundles/index.cjs +1296 -508
  3. package/bundles/index.cjs.d.ts +1377 -200
  4. package/bundles/index.mjs +1295 -509
  5. package/bundles/index.mjs.d.ts +1377 -200
  6. package/bundles/types/checkout/checkout.d.ts.map +1 -1
  7. package/bundles/types/checkout/v1/instructions/instruction.card_form.show.d.ts.map +1 -1
  8. package/bundles/types/checkout/v3/instructions/instruction.card_form.show.d.ts.map +1 -1
  9. package/bundles/types/checkout/v3/instructions/instruction.payment_methods.show.d.ts.map +1 -1
  10. package/bundles/types/checkout-button/zipmoney/zipmoney-contextual.runner.d.ts +1 -2
  11. package/bundles/types/checkout-button/zipmoney/zipmoney-contextual.runner.d.ts.map +1 -1
  12. package/bundles/types/open-wallets/apple-pay-open-wallet-button.d.ts +70 -0
  13. package/bundles/types/open-wallets/apple-pay-open-wallet-button.d.ts.map +1 -0
  14. package/bundles/types/open-wallets/base/open-wallet-buttons.d.ts +242 -74
  15. package/bundles/types/open-wallets/base/open-wallet-buttons.d.ts.map +1 -1
  16. package/bundles/types/open-wallets/base/open-wallet.service.d.ts +62 -4
  17. package/bundles/types/open-wallets/base/open-wallet.service.d.ts.map +1 -1
  18. package/bundles/types/open-wallets/enum/error-operation.enum.d.ts +15 -0
  19. package/bundles/types/open-wallets/enum/error-operation.enum.d.ts.map +1 -0
  20. package/bundles/types/open-wallets/enum/event.enum.d.ts +11 -3
  21. package/bundles/types/open-wallets/enum/event.enum.d.ts.map +1 -1
  22. package/bundles/types/open-wallets/enum/token-type.enum.d.ts +10 -0
  23. package/bundles/types/open-wallets/enum/token-type.enum.d.ts.map +1 -0
  24. package/bundles/types/open-wallets/google-pay-open-wallet-button.d.ts +65 -0
  25. package/bundles/types/open-wallets/google-pay-open-wallet-button.d.ts.map +1 -0
  26. package/bundles/types/open-wallets/index.d.ts +293 -0
  27. package/bundles/types/open-wallets/index.d.ts.map +1 -1
  28. package/bundles/types/open-wallets/interfaces/events.interface.d.ts +87 -14
  29. package/bundles/types/open-wallets/interfaces/events.interface.d.ts.map +1 -1
  30. package/bundles/types/open-wallets/interfaces/google-pay/google-pay-meta.interface.d.ts +6 -0
  31. package/bundles/types/open-wallets/interfaces/google-pay/google-pay-meta.interface.d.ts.map +1 -1
  32. package/bundles/types/open-wallets/interfaces/index.d.ts +2 -2
  33. package/bundles/types/open-wallets/interfaces/index.d.ts.map +1 -1
  34. package/bundles/types/open-wallets/interfaces/open-wallet-meta.interface.d.ts +12 -0
  35. package/bundles/types/open-wallets/interfaces/open-wallet-meta.interface.d.ts.map +1 -1
  36. package/bundles/types/open-wallets/interfaces/payment-source.interface.d.ts +28 -2
  37. package/bundles/types/open-wallets/interfaces/payment-source.interface.d.ts.map +1 -1
  38. package/bundles/types/open-wallets/services/apple-pay/apple-pay.open-wallet.service.d.ts +27 -2
  39. package/bundles/types/open-wallets/services/apple-pay/apple-pay.open-wallet.service.d.ts.map +1 -1
  40. package/bundles/types/open-wallets/services/google-pay/constants/google-pay.constants.d.ts +9 -0
  41. package/bundles/types/open-wallets/services/google-pay/constants/google-pay.constants.d.ts.map +1 -1
  42. package/bundles/types/open-wallets/services/google-pay/google-pay.open-wallet.service.d.ts +20 -9
  43. package/bundles/types/open-wallets/services/google-pay/google-pay.open-wallet.service.d.ts.map +1 -1
  44. package/bundles/types/open-wallets/services/google-pay/utils/google-pay.utils.d.ts +45 -0
  45. package/bundles/types/open-wallets/services/google-pay/utils/google-pay.utils.d.ts.map +1 -1
  46. package/bundles/types/open-wallets/services/google-pay/utils/index.d.ts +1 -1
  47. package/bundles/types/open-wallets/services/google-pay/utils/index.d.ts.map +1 -1
  48. package/bundles/types/open-wallets/services/google-pay/validation/google-pay.validation.d.ts +13 -0
  49. package/bundles/types/open-wallets/services/google-pay/validation/google-pay.validation.d.ts.map +1 -1
  50. package/bundles/types/open-wallets/types/base-event-data.interface.d.ts +24 -2
  51. package/bundles/types/open-wallets/types/base-event-data.interface.d.ts.map +1 -1
  52. package/bundles/types/open-wallets/types/index.d.ts +2 -1
  53. package/bundles/types/open-wallets/types/index.d.ts.map +1 -1
  54. package/bundles/types/open-wallets/types/on-shipping-address-change-event-data.interface.d.ts +16 -2
  55. package/bundles/types/open-wallets/types/on-shipping-address-change-event-data.interface.d.ts.map +1 -1
  56. package/bundles/types/open-wallets/types/on-shipping-address-change-event-response.interface.d.ts +20 -2
  57. package/bundles/types/open-wallets/types/on-shipping-address-change-event-response.interface.d.ts.map +1 -1
  58. package/bundles/types/open-wallets/types/on-shipping-option-change-event-data.interface.d.ts +13 -2
  59. package/bundles/types/open-wallets/types/on-shipping-option-change-event-data.interface.d.ts.map +1 -1
  60. package/bundles/types/open-wallets/types/on-shipping-option-change-event-response.interface.d.ts +12 -0
  61. package/bundles/types/open-wallets/types/on-shipping-option-change-event-response.interface.d.ts.map +1 -1
  62. package/bundles/types/open-wallets/types/payment-source.type.d.ts +3 -2
  63. package/bundles/types/open-wallets/types/payment-source.type.d.ts.map +1 -1
  64. package/bundles/types/open-wallets/types/shipping-event-to-response.type.d.ts +8 -0
  65. package/bundles/types/open-wallets/types/shipping-event-to-response.type.d.ts.map +1 -1
  66. package/bundles/widget.umd.js +1296 -508
  67. package/bundles/widget.umd.js.d.ts +1377 -200
  68. package/bundles/widget.umd.js.min.d.ts +1377 -200
  69. package/bundles/widget.umd.min.js +1 -1
  70. package/docs/open-wallet-buttons-examples.md +561 -830
  71. package/docs/open-wallet-buttons.md +1652 -0
  72. package/package.json +1 -1
  73. package/slate.md +1673 -0
@@ -1,27 +1,85 @@
1
- import type { SERVICE_TYPES } from 'src/api/api-service-internal';
2
1
  import type { ApiInternal } from '../../api/api-internal';
2
+ import type { SERVICE_TYPES } from '../../api/api-service-internal';
3
3
  import type { Container } from '../../components/container';
4
4
  import type { EventEmitter } from '../../helper/event-emitter';
5
+ import { ERROR_OPERATION } from '../enum/error-operation.enum';
5
6
  import { SERVICE_GROUP } from '../enum/service-group.enum';
6
- import type { WalletPaymentSource } from '../interfaces';
7
+ import type { IOpenWalletProvider, OpenWalletMeta } from '../interfaces';
7
8
  import type { CreateOTTData, CreateOTTResponse, WalletType } from '../types';
8
9
  import type { OnShippingAddressChangeEventData } from '../types/on-shipping-address-change-event-data.interface';
9
10
  import type { OnShippingOptionChangeEventData } from '../types/on-shipping-option-change-event-data.interface';
10
11
  import type { ShippingEventToResponse } from '../types/shipping-event-to-response.type';
11
- export declare abstract class OpenWalletService implements WalletPaymentSource {
12
+ /**
13
+ * Abstract base class for wallet-specific OpenWallet service implementations.
14
+ *
15
+ * Provides shared functionality for OTT creation, shipping event handling,
16
+ * error/unavailable emission, and DOM cleanup. Concrete implementations
17
+ * (e.g. Apple Pay, Google Pay) extend this class and implement {@link load} and {@link setMeta}.
18
+ *
19
+ * @implements {IOpenWalletProvider}
20
+ */
21
+ export declare abstract class OpenWalletService implements IOpenWalletProvider {
12
22
  protected api: ApiInternal;
13
23
  protected eventEmitter: EventEmitter;
14
24
  protected walletType: WalletType;
15
25
  protected serviceId: string;
16
26
  protected container: Container;
17
27
  protected serviceType: SERVICE_TYPES;
28
+ /** The service group identifier used in OTT creation requests. */
18
29
  protected readonly serviceGroup = SERVICE_GROUP.WALLET;
30
+ /**
31
+ * @param api - API client for backend communication.
32
+ * @param eventEmitter - Shared event emitter for wallet lifecycle events.
33
+ * @param walletType - The wallet type identifier (e.g. `'apple'`, `'google'`).
34
+ * @param serviceId - The service ID for the wallet configuration.
35
+ * @param container - The DOM container that holds the wallet button.
36
+ * @param serviceType - The service type from the API configuration.
37
+ */
19
38
  constructor(api: ApiInternal, eventEmitter: EventEmitter, walletType: WalletType, serviceId: string, container: Container, serviceType: SERVICE_TYPES);
39
+ /**
40
+ * Loads and renders the wallet button. Must be implemented by each wallet service.
41
+ */
20
42
  abstract load(): Promise<void>;
43
+ /**
44
+ * Updates the wallet metadata. Must be implemented by each wallet service.
45
+ *
46
+ * @param meta - The updated metadata.
47
+ */
48
+ abstract setMeta(meta: OpenWalletMeta): void;
49
+ /**
50
+ * Creates a One-Time Token (OTT) by sending the payment data to the API.
51
+ * Emits {@link EVENT.SUCCESS} on success or {@link EVENT.ERROR} on failure.
52
+ *
53
+ * @param data - The payment data including amount, shipping, billing, card info, and ref token.
54
+ * @returns A promise resolving to the OTT response.
55
+ */
21
56
  protected createOTT(data: CreateOTTData): Promise<CreateOTTResponse>;
57
+ /**
58
+ * Delegates a shipping change event to the merchant's registered handler
59
+ * and returns the merchant's response.
60
+ *
61
+ * @param eventData - The shipping address or option change event data.
62
+ * @returns A promise resolving to the merchant's shipping update response.
63
+ * @throws {Error} If no handler is registered or the handler returns no result.
64
+ */
22
65
  protected handleMerchantOnShippingChangedEvent<T extends OnShippingAddressChangeEventData | OnShippingOptionChangeEventData>(eventData: T): Promise<ShippingEventToResponse<T>>;
66
+ /**
67
+ * Emits the {@link EVENT.UNAVAILABLE} event when the wallet is not available.
68
+ *
69
+ * @param reason - A human-readable description of why the wallet is unavailable.
70
+ */
23
71
  protected handleOnUnavailable(reason?: string): void;
24
- protected handleOnError(error: Error): void;
72
+ /**
73
+ * Emits the {@link EVENT.ERROR} event and logs the error to the console.
74
+ *
75
+ * @param error - The error that occurred.
76
+ * @param operation - The operation that failed. Defaults to {@link ERROR_OPERATION.WALLET_OPERATION}.
77
+ */
78
+ protected handleOnError(error: Error, operation?: ERROR_OPERATION): void;
79
+ /**
80
+ * Removes the wallet button element from the DOM.
81
+ * Call this to clean up resources when the button is no longer needed.
82
+ */
25
83
  destroy(): void;
26
84
  }
27
85
  //# sourceMappingURL=open-wallet.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"open-wallet.service.d.ts","sourceRoot":"","sources":["../../../src/open-wallets/base/open-wallet.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAKV,mBAAmB,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,aAAa,EAEb,iBAAiB,EACjB,UAAU,EACX,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,0DAA0D,CAAC;AACjH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yDAAyD,CAAC;AAC/G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAExF,8BAAsB,iBAAkB,YAAW,mBAAmB;IAIlE,SAAS,CAAC,GAAG,EAAE,WAAW;IAC1B,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,SAAS,EAAE,MAAM;IAC3B,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,WAAW,EAAE,aAAa;IARtC,SAAS,CAAC,QAAQ,CAAC,YAAY,wBAAwB;gBAG3C,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,aAAa;IAGtC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;cAqCpD,oCAAoC,CAClD,CAAC,SAAS,gCAAgC,GAAG,+BAA+B,EAC5E,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAcpD,SAAS,CAAC,mBAAmB,CAAC,MAAM,SAAyB,GAAG,IAAI;IAYpE,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAgBpC,OAAO,IAAI,IAAI;CAMvB"}
1
+ {"version":3,"file":"open-wallet.service.d.ts","sourceRoot":"","sources":["../../../src/open-wallets/base/open-wallet.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EACV,mBAAmB,EAKnB,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,aAAa,EAEb,iBAAiB,EACjB,UAAU,EACX,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,0DAA0D,CAAC;AACjH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yDAAyD,CAAC;AAC/G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AA0BxF;;;;;;;;GAQG;AACH,8BAAsB,iBAAkB,YAAW,mBAAmB;IAalE,SAAS,CAAC,GAAG,EAAE,WAAW;IAC1B,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,SAAS,EAAE,MAAM;IAC3B,SAAS,CAAC,SAAS,EAAE,SAAS;IAC9B,SAAS,CAAC,WAAW,EAAE,aAAa;IAjBtC,kEAAkE;IAClE,SAAS,CAAC,QAAQ,CAAC,YAAY,wBAAwB;IAEvD;;;;;;;OAOG;gBAES,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,aAAa;IAGtC;;OAEG;IACH,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAE5C;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2CpE;;;;;;;OAOG;cACa,oCAAoC,CAClD,CAAC,SAAS,gCAAgC,GAAG,+BAA+B,EAC5E,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAcpD;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,CAAC,MAAM,SAAyB,GAAG,IAAI;IAcpE;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CACrB,KAAK,EAAE,KAAK,EACZ,SAAS,GAAE,eAAkD,GAC5D,IAAI;IAkBP;;;OAGG;IACI,OAAO,IAAI,IAAI;CAMvB"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Operations that can fail during the wallet lifecycle.
3
+ * Used in {@link OnErrorPayload.context.operation} to identify what failed.
4
+ */
5
+ export declare enum ERROR_OPERATION {
6
+ /** General wallet lifecycle operation. */
7
+ WALLET_OPERATION = "wallet_operation",
8
+ /** Loading or validating the wallet service configuration. */
9
+ CONFIGURATION = "configuration",
10
+ /** A required event handler was not registered before calling load(). */
11
+ HANDLER_REGISTRATION = "handler_registration",
12
+ /** Processing a shipping address or shipping option update. */
13
+ SHIPPING_UPDATE = "shipping_update"
14
+ }
15
+ //# sourceMappingURL=error-operation.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-operation.enum.d.ts","sourceRoot":"","sources":["../../../src/open-wallets/enum/error-operation.enum.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IACzB,0CAA0C;IAC1C,gBAAgB,qBAAqB;IACrC,8DAA8D;IAC9D,aAAa,kBAAkB;IAC/B,yEAAyE;IACzE,oBAAoB,yBAAyB;IAC7C,+DAA+D;IAC/D,eAAe,oBAAoB;CACpC"}
@@ -1,14 +1,22 @@
1
+ /**
2
+ * Events emitted during the OpenWallet payment lifecycle.
3
+ */
1
4
  export declare enum EVENT {
2
- ON_UPDATE = "onUpdate",
5
+ /** Emitted when the wallet button is clicked by the user. */
3
6
  ON_CLICK = "onClick",
4
- ON_CHECKOUT_CLOSE = "onCheckoutClose",
7
+ /** Emitted when the OTT (One-Time Token) creation succeeds. */
5
8
  SUCCESS = "success",
9
+ /** Emitted when the wallet is not available on the current device/browser. */
6
10
  UNAVAILABLE = "unavailable",
11
+ /** Emitted when an error occurs during wallet operation. */
7
12
  ERROR = "error",
8
- UPDATE = "update",
13
+ /** Emitted when the wallet button has been loaded and rendered in the DOM. */
9
14
  LOADED = "loaded",
15
+ /** Emitted when the wallet checkout is closed/cancelled by the user (internal). */
10
16
  CHECKOUT_CLOSE = "checkoutClose",
17
+ /** Emitted when the customer selects or updates their shipping address. */
11
18
  ON_SHIPPING_ADDRESS_CHANGE = "onShippingAddressChange",
19
+ /** Emitted when the customer selects a shipping option. */
12
20
  ON_SHIPPING_OPTIONS_CHANGE = "onShippingOptionsChange"
13
21
  }
14
22
  export type OpenWalletEventType = EVENT;
@@ -1 +1 @@
1
- {"version":3,"file":"event.enum.d.ts","sourceRoot":"","sources":["../../../src/open-wallets/enum/event.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACf,SAAS,aAAa;IACtB,QAAQ,YAAY;IACpB,iBAAiB,oBAAoB;IACrC,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,cAAc,kBAAkB;IAChC,0BAA0B,4BAA4B;IACtD,0BAA0B,4BAA4B;CACvD;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"event.enum.d.ts","sourceRoot":"","sources":["../../../src/open-wallets/enum/event.enum.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,KAAK;IACf,6DAA6D;IAC7D,QAAQ,YAAY;IACpB,+DAA+D;IAC/D,OAAO,YAAY;IACnB,8EAA8E;IAC9E,WAAW,gBAAgB;IAC3B,4DAA4D;IAC5D,KAAK,UAAU;IACf,8EAA8E;IAC9E,MAAM,WAAW;IACjB,mFAAmF;IACnF,cAAc,kBAAkB;IAChC,2EAA2E;IAC3E,0BAA0B,4BAA4B;IACtD,2DAA2D;IAC3D,0BAA0B,4BAA4B;CACvD;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Token types returned in the OTT (One-Time Token) creation response.
3
+ */
4
+ export declare enum TOKEN_TYPE {
5
+ /** FPAN - Funding Primary Account Number (Google Pay only). */
6
+ CARD = "card",
7
+ /** DPAN - Device Primary Account Number (Apple Pay & Google Pay). */
8
+ CARD_SCHEME_TOKEN = "card_scheme_token"
9
+ }
10
+ //# sourceMappingURL=token-type.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-type.enum.d.ts","sourceRoot":"","sources":["../../../src/open-wallets/enum/token-type.enum.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,UAAU;IACpB,+DAA+D;IAC/D,IAAI,SAAS;IACb,qEAAqE;IACrE,iBAAiB,sBAAsB;CACxC"}
@@ -0,0 +1,65 @@
1
+ import { type GetConfigResponse } from '../api/api-service-internal';
2
+ import type { OpenWalletService } from './base/open-wallet.service';
3
+ import { OpenWalletButtons } from './base/open-wallet-buttons';
4
+ import type { GooglePayOpenWalletMeta } from './interfaces/google-pay';
5
+ import type { WalletType } from './types';
6
+ /**
7
+ * @classdesc Google Pay wallet button that creates One-Time Tokens (OTT) via Google Pay.
8
+ *
9
+ * Provides a fully typed Google Pay integration with Google Pay-specific metadata
10
+ * and validates that the service configuration corresponds to a Google Pay service.
11
+ * On `load()`, the button fetches the service configuration and raises an error via `onError`
12
+ * if the service type does not match Google Pay.
13
+ *
14
+ * @class GooglePayOpenWalletButton
15
+ * @extends OpenWalletButtons
16
+ *
17
+ * @param {string} selector - CSS selector of the HTML element that will contain the Google Pay button.
18
+ * @param {string} publicKeyOrAccessToken - Public key or access token for API authentication.
19
+ * @param {string} serviceId - The Google Pay service ID configured in PayDock dashboard.
20
+ * @param {GooglePayOpenWalletMeta} meta - Google Pay-specific metadata (amount, currency, country, card_config, merchant_name, style, etc.).
21
+ *
22
+ * @example
23
+ * const button = new GooglePayOpenWalletButton(
24
+ * '#wallet-container',
25
+ * publicKeyOrAccessToken,
26
+ * serviceId,
27
+ * {
28
+ * amount: 100,
29
+ * currency: 'AUD',
30
+ * country: 'AU',
31
+ * merchant_name: 'Your Store',
32
+ * },
33
+ * );
34
+ * button.setEnv('sandbox');
35
+ * button.onSuccess((data) => console.log('OTT:', data.token));
36
+ * button.onError((error) => console.error('Error:', error));
37
+ * button.load();
38
+ */
39
+ export declare class GooglePayOpenWalletButton extends OpenWalletButtons<GooglePayOpenWalletMeta> {
40
+ /** @private */
41
+ readonly walletType: WalletType;
42
+ /**
43
+ * Validates Google Pay-specific required metadata fields.
44
+ * Google Pay has no additional required fields beyond the base (amount, currency, country).
45
+ * @private
46
+ */
47
+ protected validateWalletMeta(): void;
48
+ /**
49
+ * Validates that the service configuration type is Google Pay.
50
+ *
51
+ * @private
52
+ * @param serviceConfig - The service configuration response from the API.
53
+ * @throws {Error} If the service type is not Google Pay.
54
+ */
55
+ protected validateServiceType(serviceConfig: GetConfigResponse): void;
56
+ /**
57
+ * Creates a Google Pay wallet service instance.
58
+ *
59
+ * @private
60
+ * @param serviceConfig - The service configuration response from the API.
61
+ * @returns The Google Pay wallet service instance.
62
+ */
63
+ protected createWalletService(serviceConfig: GetConfigResponse): OpenWalletService;
64
+ }
65
+ //# sourceMappingURL=google-pay-open-wallet-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-pay-open-wallet-button.d.ts","sourceRoot":"","sources":["../../src/open-wallets/google-pay-open-wallet-button.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB,CAAC,uBAAuB,CAAC;IACvF,eAAe;IACf,SAAgB,UAAU,EAAE,UAAU,CAA2B;IAEjE;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAMpC;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,GAAG,IAAI;IASrE;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,GAAG,iBAAiB;CAUnF"}
@@ -1,6 +1,299 @@
1
+ export { ApplePayOpenWalletButton } from './apple-pay-open-wallet-button';
1
2
  export { OpenWalletButtons } from './base/open-wallet-buttons';
3
+ export { ERROR_OPERATION } from './enum/error-operation.enum';
2
4
  export { EVENT, type OpenWalletEventType } from './enum/event.enum';
5
+ export { TOKEN_TYPE } from './enum/token-type.enum';
6
+ export { GooglePayOpenWalletButton } from './google-pay-open-wallet-button';
3
7
  export type * from './interfaces';
4
8
  export type * from './types';
5
9
  export { WALLET_TYPES } from './types/wallet-type.type';
10
+ /**
11
+ * Interface for Apple Pay-specific metadata.
12
+ *
13
+ * For further information about ApplePay Capabilities refer to [the documentation](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/4440085-applepaycapabilities).
14
+ * Apple will determine if the device has an ApplePay wallet available and at least one active payment.
15
+ *
16
+ * @interface ApplePayOpenWalletMeta
17
+ *
18
+ * @type {object}
19
+ * @param {number} amount - The payment amount.
20
+ * @param {string} currency - The ISO 4217 currency code.
21
+ * @param {string} country - The ISO 3166-1 alpha-2 country code.
22
+ * @param {string} amount_label - Label shown next to the total amount (e.g. `'TOTAL'`). Used in the Apple Pay payment sheet.
23
+ * @param {boolean} [request_shipping] - Enable shipping address collection in the Apple Pay sheet.
24
+ * @param {IApplePayShippingOption[]} [shipping_options] - Array of available shipping options. The first item is used as the default selected option. Requires `request_shipping` to be `true`.
25
+ * @param {boolean} [show_billing_address] - Show billing address fields in the Apple Pay sheet.
26
+ * @param {string} store_name - The merchant's store name displayed during payment.
27
+ * @param {Array<'credentials_available' | 'credentials_status_unknown' | 'credentials_unavailable'>} [apple_pay_capabilities] - Device capabilities needed for the wallet button to be available.
28
+ * @param {Array<'supports3DS' | 'supportsEMV' | 'supportsCredit' | 'supportsDebit'>} [merchant_capabilities] - Array of merchant capabilities influencing the transaction processing features available.
29
+ * @param {Array<'visa' | 'masterCard' | 'amex' | 'chinaUnionPay' | 'discover' | 'interac' | 'jcb' | 'privateLabel'>} [supported_networks] - List of payment networks supported for Apple Pay transactions.
30
+ * @param {Array<'email' | 'name' | 'phone' | 'postalAddress'>} [required_billing_contact_fields] - Contact fields required from the user for billing purposes. Phone and email are currently not returned by Apple.
31
+ * @param {Array<'email' | 'phone' | 'postalAddress' | 'name'>} [required_shipping_contact_fields] - Shipping contact fields required to complete the transaction. Include `'postalAddress'` to show address fields in the Apple Pay sheet. Required handling of onShippingAddressChange callback.
32
+ * @param {string[]} [supported_countries] - List of countries where Apple Pay is supported by the merchant.
33
+ * @param {'available' | 'store_pickup'} [shipping_editing_mode] - `'available'` for editable shipping, `'store_pickup'` for non-editable.
34
+ * @param {object} [style] - Styling configuration for the Apple Pay button.
35
+ * @param {ApplePayButtonType} [style.button_type] - The type of Apple Pay button (e.g. `'buy'`, `'donate'`, `'plain'`).
36
+ * @param {ApplePayButtonStyle} [style.button_style] - The style of the Apple Pay button (`'black'`, `'white'`, `'white-outline'`).
37
+ **/
38
+ /**
39
+ * Interface for Google Pay-specific metadata.
40
+ *
41
+ * @interface GooglePayOpenWalletMeta
42
+ *
43
+ * @type {object}
44
+ * @param {number} amount - The payment amount.
45
+ * @param {string} currency - The ISO 4217 currency code.
46
+ * @param {string} country - The ISO 3166-1 alpha-2 country code.
47
+ * @param {string} [amount_label] - Label shown next to the total amount.
48
+ * @param {string} [merchant_name] - Display name for the merchant in the Google Pay sheet.
49
+ * @param {boolean} [request_shipping] - Enable shipping address collection.
50
+ * @param {IGooglePayShippingOption[]} [shipping_options] - Array of available shipping options. The first item is used as the default selected option. Requires `request_shipping` to be `true`.
51
+ * @param {boolean} [show_billing_address] - Show billing address fields.
52
+ * @param {object} [card_config] - Google Pay card configuration for custom auth methods, card networks, and tokenization.
53
+ * @param {object} [style] - Styling configuration for the Google Pay button.
54
+ * @param {GooglePayButtonType} [style.button_type] - The type of Google Pay button (`'book'`, `'buy'`, `'checkout'`, `'donate'`, `'order'`, `'pay'`, `'plain'`, `'subscribe'`).
55
+ * @param {GooglePayButtonColor} [style.button_color] - The color of the Google Pay button (`'default'`, `'black'`, `'white'`).
56
+ * @param {GooglePayButtonSizeMode} [style.button_size_mode] - The size mode (`'static'`, `'fill'`).
57
+ **/
58
+ /**
59
+ * Interface for OnClickEventData.
60
+ * Emitted when the wallet button is clicked.
61
+ *
62
+ * The merchant's `onClick` handler controls the payment flow via its return value:
63
+ * - Return `void` / `undefined` to continue normally.
64
+ * - Return `false` to abort the payment flow.
65
+ * - Return a `Promise<void>` to defer the wallet sheet until the promise resolves.
66
+ * - Return a `Promise<boolean>` — if it resolves to `false`, the flow is aborted.
67
+ * - Throwing an error (sync or async) also aborts the flow.
68
+ *
69
+ * @interface OnClickEventData
70
+ *
71
+ * @type {object}
72
+ * @param {string} event - Always `'onClick'`.
73
+ **/
74
+ /**
75
+ * Interface for OnCreateOTTSuccessfulEventData.
76
+ * Emitted when the One-Time Token is successfully created.
77
+ * @interface OnCreateOTTSuccessfulEventData
78
+ *
79
+ * @type {object}
80
+ * @param {string} event - Always `'success'`.
81
+ * @param {object} [data] - OTT success payload.
82
+ * @param {object} data.token - The created OTT response.
83
+ * @param {string} data.token.temp_token - The temporary one-time token string.
84
+ * @param {TOKEN_TYPE} data.token.token_type - The type of the token. `TOKEN_TYPE.CARD` for FPAN (Google Pay only), `TOKEN_TYPE.CARD_SCHEME_TOKEN` for DPAN (Apple Pay & Google Pay).
85
+ * @param {number} data.amount - The payment amount.
86
+ * @param {object} [data.shipping] - The shipping address and contact information, if provided.
87
+ * @param {string} [data.shipping.method] - The shipping method.
88
+ * @param {Array<IApplePayShippingOption | IGooglePayShippingOption>} [data.shipping.options] - The selected shipping options.
89
+ * @param {string} [data.shipping.address_line1] - Shipping address line 1.
90
+ * @param {string} [data.shipping.address_line2] - Shipping address line 2.
91
+ * @param {string} [data.shipping.address_city] - Shipping address city.
92
+ * @param {string} [data.shipping.address_postcode] - Shipping address postal code.
93
+ * @param {string} [data.shipping.address_state] - Shipping address state or province.
94
+ * @param {string} [data.shipping.address_country] - Shipping address country code.
95
+ * @param {string} [data.shipping.address_company] - Shipping company name.
96
+ * @param {string} [data.shipping.address_origin_postcode] - Origin postal code.
97
+ * @param {object} [data.shipping.contact] - Shipping contact information.
98
+ * @param {string} [data.shipping.contact.first_name] - Contact first name.
99
+ * @param {string} [data.shipping.contact.last_name] - Contact last name.
100
+ * @param {string} [data.shipping.contact.email] - Contact email address.
101
+ * @param {string} [data.shipping.contact.phone] - Contact phone number.
102
+ * @param {string} [data.shipping.contact.phone2] - Contact secondary phone number.
103
+ * @param {object} [data.billing] - The billing address, if provided.
104
+ * @param {string} data.billing.address_line1 - Billing address line 1.
105
+ * @param {string} data.billing.address_line2 - Billing address line 2.
106
+ * @param {string} data.billing.address_country - Billing address country code.
107
+ * @param {string} data.billing.address_city - Billing address city.
108
+ * @param {string} data.billing.address_postcode - Billing address postal code.
109
+ * @param {string} data.billing.address_state - Billing address state or province.
110
+ **/
111
+ /**
112
+ * Interface for OnCreateOTTErrorEventData.
113
+ * Emitted when OTT creation fails. The error details are in the `data` payload.
114
+ * @interface OnCreateOTTErrorEventData
115
+ *
116
+ * @type {object}
117
+ * @param {string} event - Always `'error'`.
118
+ * @param {object} [data] - Error details payload.
119
+ * @param {string} [data.message] - Error message.
120
+ * @param {string} [data.code] - Error code.
121
+ **/
122
+ /**
123
+ * Interface for OnUnavailableEventData.
124
+ * Emitted when the wallet is not available on the current device or browser.
125
+ * @interface OnUnavailableEventData
126
+ *
127
+ * @type {object}
128
+ * @param {string} event - Always `'unavailable'`.
129
+ * @param {object} [data] - Unavailability details payload.
130
+ * @param {string} data.reason - A human-readable reason why the wallet is unavailable.
131
+ * @param {object} [data.details] - Additional details about the unavailability.
132
+ * @param {string} data.details.service_id - The service ID that was checked.
133
+ **/
134
+ /**
135
+ * Interface for OnErrorEventData.
136
+ * Emitted when an error occurs during wallet operation, including configuration issues, service type mismatches, and OTT creation failures.
137
+ * @interface OnErrorEventData
138
+ *
139
+ * @type {object}
140
+ * @param {string} event - Always `'error'`.
141
+ * @param {object} [data] - Error payload.
142
+ * @param {Error} data.error - The Error object describing what went wrong.
143
+ * @param {object} [data.context] - Context about the error.
144
+ * @param {ERROR_OPERATION} [data.context.operation] - The operation that failed. See {@link ERROR_OPERATION} enum for possible values.
145
+ **/
146
+ /**
147
+ * Interface for OnLoadedEventData.
148
+ * Emitted when the wallet button has been loaded and rendered in the DOM.
149
+ * No payload — the specific wallet type is determined by the concrete button class
150
+ * ({@link ApplePayOpenWalletButton} or {@link GooglePayOpenWalletButton}).
151
+ * @interface OnLoadedEventData
152
+ *
153
+ * @type {object}
154
+ * @param {string} event - Always `'loaded'`.
155
+ **/
156
+ /**
157
+ * Interface for OnCancelEventData.
158
+ * Emitted when the wallet checkout is cancelled or closed by the user. No payload data.
159
+ * @interface OnCancelEventData
160
+ *
161
+ * @type {object}
162
+ * @param {string} event - Always `'checkoutClose'`.
163
+ **/
164
+ /**
165
+ * Interface for OnShippingAddressChangeEventData.
166
+ * Emitted when the customer selects or updates their shipping address in the wallet payment sheet.
167
+ * This event is also emitted when the payment sheet first opens (INITIALIZE) with the initial shipping address, if present in the User's wallet.
168
+ *
169
+ * If no handler is registered for this event, the SDK auto-accepts with the current transaction data.
170
+ * @interface OnShippingAddressChangeEventData
171
+ *
172
+ * @type {object}
173
+ * @param {string} event - Always `'onShippingAddressChange'`.
174
+ * @param {object} [data] - Shipping address data.
175
+ * @param {string} [data.address_city] - Shipping address city.
176
+ * @param {string} [data.address_state] - Shipping address state.
177
+ * @param {string} [data.address_postcode] - Shipping address postal code.
178
+ * @param {string} [data.address_country] - Shipping address country code.
179
+ * @param {string} [data.address_line1] - Apple Pay only - Shipping address line 1.
180
+ * @param {string} [data.address_line2] - Apple Pay only - Shipping address line 2.
181
+ * @param {string} [data.contact.phone] - Apple Pay only - Shipping contact phone.
182
+ * @param {string} [data.contact.email] - Apple Pay only - Shipping contact email.
183
+ * @param {string} [data.contact.first_name] - Apple Pay only - Shipping contact first name.
184
+ * @param {string} [data.contact.last_name] - Apple Pay only - Shipping contact last name.
185
+ **/
186
+ /**
187
+ * Interface for OnShippingAddressChangeEventResponse.
188
+ * Returned by the merchant's `onShippingAddressChange` handler.
189
+ * @interface OnShippingAddressChangeEventResponse
190
+ *
191
+ * @type {object}
192
+ * @param {number} [amount] - Updated payment amount based on the new shipping address.
193
+ * @param {Array<IApplePayShippingOption | IGooglePayShippingOption>} [shipping_options] - Updated list of available shipping options. The first item is used as the default selected option.
194
+ * @param {object} [error] - Error object to display in the wallet payment sheet if the address is invalid.
195
+ * @param {string} error.code - Error code. Possible values: `'address_error'`, `'country_error'`, `'state_error'`, `'zip_error'`, `'shipping_contact_invalid'`, `'billing_contact_invalid'`.
196
+ * @param {string} [error.field] - Apple Pay only - The specific field that caused the error. Possible values: `'phone'`, `'email'`, `'name'`, `'phonetic_name'`, `'address_lines'`, `'locality'`, `'postal_code'`, `'administrative_area'`, `'country'`, `'country_code'`.
197
+ * @param {string} [error.message] - A human-readable error message to display to the customer.
198
+ **/
199
+ /**
200
+ * Interface for OnShippingOptionChangeEventData.
201
+ * Emitted when the customer selects a shipping option in the wallet payment sheet.
202
+ *
203
+ * If no handler is registered for this event, the SDK auto-accepts with the current transaction data.
204
+ * @interface OnShippingOptionChangeEventData
205
+ *
206
+ * @type {object}
207
+ * @param {string} event - Always `'onShippingOptionsChange'`.
208
+ * @param {object} [data] - Shipping option data.
209
+ * @param {string} [data.shipping_option_id] - Selected shipping option ID.
210
+ * @param {string} [data.label] - Selected shipping option label.
211
+ * @param {string} [data.detail] - Selected shipping option detail.
212
+ * @param {string} [data.amount] - Apple Pay only - Selected shipping option amount.
213
+ **/
214
+ /**
215
+ * Interface for OnShippingOptionChangeEventResponse.
216
+ * Returned by the merchant's `onShippingOptionsChange` handler.
217
+ * @interface OnShippingOptionChangeEventResponse
218
+ *
219
+ * @type {object}
220
+ * @param {number} [amount] - Updated total payment amount based on the selected shipping option.
221
+ * @param {object} [error] - Error object to display if the shipping option is invalid.
222
+ * @param {string} error.code - Error code. Possible values: `'method_unavailable'`, `'store_unavailable'`.
223
+ * @param {string} [error.message] - A human-readable error message.
224
+ **/
225
+ /**
226
+ * Interface for IApplePayShippingOption.
227
+ * Used for shipping options in Apple Pay wallets.
228
+ * @interface IApplePayShippingOption
229
+ *
230
+ * @type {object}
231
+ * @param {string} id - Unique identifier for the shipping option.
232
+ * @param {string} label - Display name for the shipping option.
233
+ * @param {number} amount - Shipping cost amount.
234
+ * @param {string} [detail] - Optional description or detail text.
235
+ * @param {object} [date_components_range] - Apple Pay only - Delivery date range estimate.
236
+ * @param {object} [date_components_range.start_date_components] - Start date for the delivery estimate.
237
+ * @param {number} [date_components_range.start_date_components.years] - Years from now.
238
+ * @param {number} [date_components_range.start_date_components.months] - Months from now.
239
+ * @param {number} [date_components_range.start_date_components.days] - Days from now.
240
+ * @param {number} [date_components_range.start_date_components.hours] - Hours from now.
241
+ * @param {object} [date_components_range.end_date_components] - End date for the delivery estimate.
242
+ * @param {number} [date_components_range.end_date_components.years] - Years from now.
243
+ * @param {number} [date_components_range.end_date_components.months] - Months from now.
244
+ * @param {number} [date_components_range.end_date_components.days] - Days from now.
245
+ * @param {number} [date_components_range.end_date_components.hours] - Hours from now.
246
+ **/
247
+ /**
248
+ * Interface for IGooglePayShippingOption.
249
+ * Used for shipping options in Google Pay wallets.
250
+ * @interface IGooglePayShippingOption
251
+ *
252
+ * @type {object}
253
+ * @param {string} id - Unique identifier for the shipping option.
254
+ * @param {string} label - Display name for the shipping option.
255
+ * @param {string} [detail] - Optional description or detail text.
256
+ * @param {'ELECTRONIC' | 'GROUND' | 'NOT_SHIPPED' | 'OVERNIGHT' | 'PICKUP' | 'PRIORITY' | 'SAME_DAY'} [type] - The shipping type.
257
+ **/
258
+ /**
259
+ * List of available event names in the Open Wallet button lifecycle.
260
+ * @const EVENT
261
+ *
262
+ * @type {object}
263
+ * @param {string} ON_CLICK=onClick - Emitted when the wallet button is clicked.
264
+ * @param {string} SUCCESS=success - Emitted when OTT creation succeeds.
265
+ * @param {string} UNAVAILABLE=unavailable - Emitted when the wallet is not available.
266
+ * @param {string} ERROR=error - Emitted when an error occurs.
267
+ * @param {string} LOADED=loaded - Emitted when the button is rendered.
268
+ * @param {string} CHECKOUT_CLOSE=checkoutClose - Emitted when the wallet checkout is cancelled.
269
+ * @param {string} ON_SHIPPING_ADDRESS_CHANGE=onShippingAddressChange - Emitted when shipping address changes.
270
+ * @param {string} ON_SHIPPING_OPTIONS_CHANGE=onShippingOptionsChange - Emitted when shipping option changes.
271
+ */
272
+ /**
273
+ * Enum of available wallet types.
274
+ * @const WALLET_TYPES
275
+ *
276
+ * @type {object}
277
+ * @param {string} APPLE_PAY=apple - Apple Pay wallet.
278
+ * @param {string} GOOGLE_PAY=google - Google Pay wallet.
279
+ */
280
+ /**
281
+ * Token types returned in the OTT (One-Time Token) creation response.
282
+ * @const TOKEN_TYPE
283
+ *
284
+ * @type {object}
285
+ * @param {string} CARD=card - FPAN (Funding Primary Account Number). Available for Google Pay only.
286
+ * @param {string} CARD_SCHEME_TOKEN=card_scheme_token - DPAN (Device Primary Account Number). Available for both Apple Pay and Google Pay.
287
+ */
288
+ /**
289
+ * Operations that can fail during the wallet lifecycle.
290
+ * Used in the `context.operation` field of {@link OnErrorEventData}.
291
+ * @const ERROR_OPERATION
292
+ *
293
+ * @type {object}
294
+ * @param {string} WALLET_OPERATION=wallet_operation - General wallet lifecycle operation (default).
295
+ * @param {string} CONFIGURATION=configuration - Loading or validating the wallet service configuration (e.g. network fetch failure, card config validation).
296
+ * @param {string} HANDLER_REGISTRATION=handler_registration - A required event handler was not registered before calling load().
297
+ * @param {string} SHIPPING_UPDATE=shipping_update - Processing a shipping address or shipping option update failed.
298
+ */
6
299
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/open-wallets/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACpE,mBAAmB,cAAc,CAAC;AAIlC,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/open-wallets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BI;AAEJ;;;;;;;;;;;;;;;;;;;IAmBI;AAEJ;;;;;;;;;;;;;;;IAeI;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCI;AAEJ;;;;;;;;;;IAUI;AAEJ;;;;;;;;;;;IAWI;AAEJ;;;;;;;;;;;IAWI;AAEJ;;;;;;;;;IASI;AAEJ;;;;;;;IAOI;AAEJ;;;;;;;;;;;;;;;;;;;;;IAqBI;AAEJ;;;;;;;;;;;;IAYI;AAEJ;;;;;;;;;;;;;;IAcI;AAEJ;;;;;;;;;;IAUI;AAEJ;;;;;;;;;;;;;;;;;;;;;IAqBI;AAEJ;;;;;;;;;;IAUI;AAEJ;;;;;;;;;;;;;GAaG;AAEH;;;;;;;GAOG;AAEH;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG"}