@dynamic-labs-sdk/client 0.23.4 → 0.24.1

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 (59) hide show
  1. package/dist/{InvalidParamError-D2mY6bDm.cjs.js → InvalidParamError-9IR2C0up.cjs.js} +9 -5
  2. package/dist/{InvalidParamError-D2mY6bDm.cjs.js.map → InvalidParamError-9IR2C0up.cjs.js.map} +1 -1
  3. package/dist/{InvalidParamError-DQNvDHoJ.esm.js → InvalidParamError-Bq5zAFj4.esm.js} +8 -4
  4. package/dist/{InvalidParamError-DQNvDHoJ.esm.js.map → InvalidParamError-Bq5zAFj4.esm.js.map} +1 -1
  5. package/dist/{NotWaasWalletAccountError-BycDPZE7.esm.js → NotWaasWalletAccountError-CIJRq-EG.esm.js} +3 -3
  6. package/dist/{NotWaasWalletAccountError-BycDPZE7.esm.js.map → NotWaasWalletAccountError-CIJRq-EG.esm.js.map} +1 -1
  7. package/dist/{NotWaasWalletAccountError-DKt-e0jp.cjs.js → NotWaasWalletAccountError-DpRIY6Pd.cjs.js} +3 -3
  8. package/dist/{NotWaasWalletAccountError-DKt-e0jp.cjs.js.map → NotWaasWalletAccountError-DpRIY6Pd.cjs.js.map} +1 -1
  9. package/dist/core.cjs.js +6 -29
  10. package/dist/core.cjs.js.map +1 -1
  11. package/dist/core.esm.js +5 -28
  12. package/dist/core.esm.js.map +1 -1
  13. package/dist/exports/index.d.ts +3 -0
  14. package/dist/exports/index.d.ts.map +1 -1
  15. package/dist/{getNetworkProviderFromNetworkId-Ck4qXPsJ.esm.js → getNetworkProviderFromNetworkId-C4aba1hS.esm.js} +27 -4
  16. package/dist/getNetworkProviderFromNetworkId-C4aba1hS.esm.js.map +1 -0
  17. package/dist/{getNetworkProviderFromNetworkId-BZ0Yi99m.cjs.js → getNetworkProviderFromNetworkId-COxYamJy.cjs.js} +32 -3
  18. package/dist/getNetworkProviderFromNetworkId-COxYamJy.cjs.js.map +1 -0
  19. package/dist/{getSignedSessionId-oiCgC33U.cjs.js → getSignedSessionId-D7uV3dw0.cjs.js} +3 -3
  20. package/dist/{getSignedSessionId-oiCgC33U.cjs.js.map → getSignedSessionId-D7uV3dw0.cjs.js.map} +1 -1
  21. package/dist/{getSignedSessionId-lg-rT8W_.esm.js → getSignedSessionId-_vjv5TNw.esm.js} +3 -3
  22. package/dist/{getSignedSessionId-lg-rT8W_.esm.js.map → getSignedSessionId-_vjv5TNw.esm.js.map} +1 -1
  23. package/dist/{getVerifiedCredentialForWalletAccount-6iZSd5T2.cjs.js → getVerifiedCredentialForWalletAccount-Df_wN20i.cjs.js} +3 -3
  24. package/dist/{getVerifiedCredentialForWalletAccount-6iZSd5T2.cjs.js.map → getVerifiedCredentialForWalletAccount-Df_wN20i.cjs.js.map} +1 -1
  25. package/dist/{getVerifiedCredentialForWalletAccount-C2m6GufK.esm.js → getVerifiedCredentialForWalletAccount-Y-aJ2rY7.esm.js} +2 -2
  26. package/dist/{getVerifiedCredentialForWalletAccount-C2m6GufK.esm.js.map → getVerifiedCredentialForWalletAccount-Y-aJ2rY7.esm.js.map} +1 -1
  27. package/dist/index.cjs.js +114 -5
  28. package/dist/index.cjs.js.map +1 -1
  29. package/dist/index.esm.js +114 -6
  30. package/dist/index.esm.js.map +1 -1
  31. package/dist/{isMfaRequiredForAction-DqZS12dt.esm.js → isMfaRequiredForAction-Cc6jkbY5.esm.js} +2 -2
  32. package/dist/{isMfaRequiredForAction-DqZS12dt.esm.js.map → isMfaRequiredForAction-Cc6jkbY5.esm.js.map} +1 -1
  33. package/dist/{isMfaRequiredForAction-DRetUSWZ.cjs.js → isMfaRequiredForAction-cfGmMd_g.cjs.js} +2 -2
  34. package/dist/{isMfaRequiredForAction-DRetUSWZ.cjs.js.map → isMfaRequiredForAction-cfGmMd_g.cjs.js.map} +1 -1
  35. package/dist/modules/checkout/createCheckoutTransaction/createCheckoutTransaction.d.ts.map +1 -1
  36. package/dist/modules/checkout/events.d.ts +27 -0
  37. package/dist/modules/checkout/events.d.ts.map +1 -0
  38. package/dist/modules/checkout/trackCheckoutTransaction/index.d.ts +3 -0
  39. package/dist/modules/checkout/trackCheckoutTransaction/index.d.ts.map +1 -0
  40. package/dist/modules/checkout/trackCheckoutTransaction/trackCheckoutTransaction.d.ts +15 -0
  41. package/dist/modules/checkout/trackCheckoutTransaction/trackCheckoutTransaction.d.ts.map +1 -0
  42. package/dist/modules/checkout/utils/createCheckoutTransactionChannelSchema/createCheckoutTransactionChannelSchema.d.ts +28 -0
  43. package/dist/modules/checkout/utils/createCheckoutTransactionChannelSchema/createCheckoutTransactionChannelSchema.d.ts.map +1 -0
  44. package/dist/modules/checkout/utils/createCheckoutTransactionChannelSchema/index.d.ts +3 -0
  45. package/dist/modules/checkout/utils/createCheckoutTransactionChannelSchema/index.d.ts.map +1 -0
  46. package/dist/modules/checkout/utils/subscribeToCheckoutTransaction/index.d.ts +3 -0
  47. package/dist/modules/checkout/utils/subscribeToCheckoutTransaction/index.d.ts.map +1 -0
  48. package/dist/modules/checkout/utils/subscribeToCheckoutTransaction/subscribeToCheckoutTransaction.d.ts +15 -0
  49. package/dist/modules/checkout/utils/subscribeToCheckoutTransaction/subscribeToCheckoutTransaction.d.ts.map +1 -0
  50. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  51. package/dist/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.d.ts +4 -1
  52. package/dist/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.d.ts.map +1 -1
  53. package/dist/waas.cjs.js +4 -4
  54. package/dist/waas.esm.js +3 -3
  55. package/dist/waasCore.cjs.js +4 -4
  56. package/dist/waasCore.esm.js +3 -3
  57. package/package.json +3 -3
  58. package/dist/getNetworkProviderFromNetworkId-BZ0Yi99m.cjs.js.map +0 -1
  59. package/dist/getNetworkProviderFromNetworkId-Ck4qXPsJ.esm.js.map +0 -1
package/dist/index.cjs.js CHANGED
@@ -1,8 +1,8 @@
1
- const require_getNetworkProviderFromNetworkId = require('./getNetworkProviderFromNetworkId-BZ0Yi99m.cjs.js');
2
- const require_InvalidParamError = require('./InvalidParamError-D2mY6bDm.cjs.js');
3
- const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-6iZSd5T2.cjs.js');
4
- const require_NotWaasWalletAccountError = require('./NotWaasWalletAccountError-DKt-e0jp.cjs.js');
5
- const require_isMfaRequiredForAction = require('./isMfaRequiredForAction-DRetUSWZ.cjs.js');
1
+ const require_getNetworkProviderFromNetworkId = require('./getNetworkProviderFromNetworkId-COxYamJy.cjs.js');
2
+ const require_InvalidParamError = require('./InvalidParamError-9IR2C0up.cjs.js');
3
+ const require_getVerifiedCredentialForWalletAccount = require('./getVerifiedCredentialForWalletAccount-Df_wN20i.cjs.js');
4
+ const require_NotWaasWalletAccountError = require('./NotWaasWalletAccountError-DpRIY6Pd.cjs.js');
5
+ const require_isMfaRequiredForAction = require('./isMfaRequiredForAction-cfGmMd_g.cjs.js');
6
6
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
7
7
  let _dynamic_labs_sdk_api_core = require("@dynamic-labs/sdk-api-core");
8
8
  let zod_mini = require("zod/mini");
@@ -2595,6 +2595,85 @@ const getCheckouts = async (client) => {
2595
2595
  return projectSettings.checkouts ?? [];
2596
2596
  };
2597
2597
 
2598
+ //#endregion
2599
+ //#region src/modules/checkout/utils/createCheckoutTransactionChannelSchema/createCheckoutTransactionChannelSchema.ts
2600
+ /**
2601
+ * Zod schema for realtime events published to a checkout transaction's channel.
2602
+ * Uses z.string() for axis and state fields to remain valid when new states are
2603
+ * added to the backend without requiring a SDK update.
2604
+ */
2605
+ const checkoutTransactionEventSchema = zod_mini.object({
2606
+ axis: zod_mini.string(),
2607
+ newState: zod_mini.string(),
2608
+ previousState: zod_mini.string(),
2609
+ timestamp: zod_mini.string(),
2610
+ transactionId: zod_mini.string()
2611
+ });
2612
+ /**
2613
+ * Creates a typed realtime channel schema for a given checkout transaction.
2614
+ * Channel name follows the backend convention: `transaction:{transactionId}`.
2615
+ * @not-instrumented
2616
+ */
2617
+ const createCheckoutTransactionChannelSchema = (transactionId) => require_getNetworkProviderFromNetworkId.__createRealtimeChannelSchema_wrapped({
2618
+ channel: `transaction:${transactionId}`,
2619
+ schema: checkoutTransactionEventSchema
2620
+ });
2621
+
2622
+ //#endregion
2623
+ //#region src/modules/checkout/utils/subscribeToCheckoutTransaction/subscribeToCheckoutTransaction.ts
2624
+ const TERMINAL_EXECUTION_STATES = new Set([
2625
+ "cancelled",
2626
+ "expired",
2627
+ "failed"
2628
+ ]);
2629
+ const TERMINAL_SETTLEMENT_STATES = new Set(["completed", "failed"]);
2630
+ const isTerminalEvent = (data) => {
2631
+ if (data.axis === "execution") return TERMINAL_EXECUTION_STATES.has(data.newState);
2632
+ if (data.axis === "settlement") return TERMINAL_SETTLEMENT_STATES.has(data.newState);
2633
+ return false;
2634
+ };
2635
+ /**
2636
+ * Connects to the realtime service if not already connected and subscribes to
2637
+ * all state transition events for the given checkout transaction.
2638
+ *
2639
+ * Settlement and execution axis events are forwarded as public SDK events.
2640
+ * The subscription is torn down automatically when a terminal event is received.
2641
+ * @not-instrumented
2642
+ */
2643
+ const subscribeToCheckoutTransaction = async ({ transactionId }, client) => {
2644
+ const { realtime } = require_InvalidParamError.getCore(client);
2645
+ if (realtime.getConnectionState() === "idle") await realtime.connect({ client });
2646
+ const channelSchema = createCheckoutTransactionChannelSchema(transactionId);
2647
+ const handler = ({ data }) => {
2648
+ if (data.axis === "execution") require_getVerifiedCredentialForWalletAccount.emitEvent({
2649
+ args: {
2650
+ newState: data.newState,
2651
+ previousState: data.previousState,
2652
+ timestamp: data.timestamp,
2653
+ transactionId: data.transactionId
2654
+ },
2655
+ event: "checkoutTransactionExecutionStateChanged"
2656
+ }, client);
2657
+ if (data.axis === "settlement") require_getVerifiedCredentialForWalletAccount.emitEvent({
2658
+ args: {
2659
+ newState: data.newState,
2660
+ previousState: data.previousState,
2661
+ timestamp: data.timestamp,
2662
+ transactionId: data.transactionId
2663
+ },
2664
+ event: "checkoutTransactionSettlementStateChanged"
2665
+ }, client);
2666
+ if (isTerminalEvent(data)) realtime.unsubscribe({
2667
+ callback: handler,
2668
+ channelSchema
2669
+ });
2670
+ };
2671
+ await realtime.subscribe({
2672
+ callback: handler,
2673
+ channelSchema
2674
+ });
2675
+ };
2676
+
2598
2677
  //#endregion
2599
2678
  //#region src/modules/checkout/createCheckoutTransaction/createCheckoutTransaction.ts
2600
2679
  /**
@@ -2626,6 +2705,9 @@ const createCheckoutTransaction = async (params, client = require_InvalidParamEr
2626
2705
  environmentId: core.environmentId
2627
2706
  });
2628
2707
  await core.storage.setItem(createCheckoutSessionTokenStorageKey(result.transaction.id), result.sessionToken);
2708
+ subscribeToCheckoutTransaction({ transactionId: result.transaction.id }, client).catch((error) => {
2709
+ core.logger.error("Failed to subscribe to checkout transaction realtime channel", error);
2710
+ });
2629
2711
  return result;
2630
2712
  };
2631
2713
  const __createCheckoutTransaction_impl = createCheckoutTransaction;
@@ -2898,6 +2980,32 @@ const __requiresConversion_wrapped = require_InvalidParamError.instrumentFunctio
2898
2980
  }
2899
2981
  });
2900
2982
 
2983
+ //#endregion
2984
+ //#region src/modules/checkout/trackCheckoutTransaction/trackCheckoutTransaction.ts
2985
+ /**
2986
+ * Subscribes to realtime state change events for an existing checkout transaction.
2987
+ *
2988
+ * Call this after a page refresh to resume receiving transaction events
2989
+ * for a transaction that was created in a previous page session.
2990
+ *
2991
+ * @param params.transactionId - The ID of the checkout transaction to track.
2992
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
2993
+ * @instrumented
2994
+ */
2995
+ const trackCheckoutTransaction = ({ transactionId }, client = require_InvalidParamError.getDefaultClient()) => subscribeToCheckoutTransaction({ transactionId }, client);
2996
+ const __trackCheckoutTransaction_impl = trackCheckoutTransaction;
2997
+ const __trackCheckoutTransaction_wrapped = require_InvalidParamError.instrumentFunction({
2998
+ fn: __trackCheckoutTransaction_impl,
2999
+ functionName: "trackCheckoutTransaction",
3000
+ getCore: () => {
3001
+ try {
3002
+ return require_InvalidParamError.getCore(require_InvalidParamError.getDefaultClient());
3003
+ } catch {
3004
+ return;
3005
+ }
3006
+ }
3007
+ });
3008
+
2901
3009
  //#endregion
2902
3010
  //#region src/modules/deviceRegistration/completeDeviceRegistration/completeDeviceRegistration.ts
2903
3011
  const DEVICE_REGISTRATION_TOKEN_HEADER = "x-dynamic-device-registration-token";
@@ -7020,6 +7128,7 @@ exports.signMessage = __signMessage_wrapped;
7020
7128
  exports.submitCheckoutTransaction = __submitCheckoutTransaction_wrapped;
7021
7129
  exports.supportedCountries = supportedCountries;
7022
7130
  exports.switchActiveNetwork = __switchActiveNetwork_wrapped;
7131
+ exports.trackCheckoutTransaction = __trackCheckoutTransaction_wrapped;
7023
7132
  exports.transferAmount = __transferAmount_wrapped;
7024
7133
  exports.transferWalletAccount = __transferWalletAccount_wrapped;
7025
7134
  exports.unlinkSocialAccount = __unlinkSocialAccount_wrapped;