@dynamic-labs-sdk/client 0.8.0 → 0.9.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.
Files changed (130) hide show
  1. package/dist/{constants-58bHSI3b.cjs.js → InvalidParamError-D1yNl3r1.cjs.js} +24 -4
  2. package/dist/InvalidParamError-D1yNl3r1.cjs.js.map +1 -0
  3. package/dist/{constants-B8WQGUki.esm.js → InvalidParamError-DMz6QY8e.esm.js} +18 -4
  4. package/dist/InvalidParamError-DMz6QY8e.esm.js.map +1 -0
  5. package/dist/{NotWaasWalletAccountError-DJmbtj65.esm.js → NotWaasWalletAccountError-Cp3qfAxw.esm.js} +3 -3
  6. package/dist/{NotWaasWalletAccountError-DJmbtj65.esm.js.map → NotWaasWalletAccountError-Cp3qfAxw.esm.js.map} +1 -1
  7. package/dist/{NotWaasWalletAccountError-Dq2ssnPs.cjs.js → NotWaasWalletAccountError-s2J7fQHr.cjs.js} +7 -7
  8. package/dist/{NotWaasWalletAccountError-Dq2ssnPs.cjs.js.map → NotWaasWalletAccountError-s2J7fQHr.cjs.js.map} +1 -1
  9. package/dist/client/core/createCore/createCore.d.ts.map +1 -1
  10. package/dist/client/core/createCore/getInitialState.d.ts.map +1 -1
  11. package/dist/client/core/types/DynamicCore.d.ts +15 -0
  12. package/dist/client/core/types/DynamicCore.d.ts.map +1 -1
  13. package/dist/client/core/types/DynamicCoreConfig.d.ts +1 -1
  14. package/dist/client/core/types/DynamicCoreConfig.d.ts.map +1 -1
  15. package/dist/client/types/DynamicClientConfig.d.ts +46 -0
  16. package/dist/client/types/DynamicClientConfig.d.ts.map +1 -1
  17. package/dist/core.cjs.js +34 -32
  18. package/dist/core.cjs.js.map +1 -1
  19. package/dist/core.esm.js +8 -8
  20. package/dist/core.esm.js.map +1 -1
  21. package/dist/exports/core.d.ts +6 -0
  22. package/dist/exports/core.d.ts.map +1 -1
  23. package/dist/exports/index.d.ts +4 -1
  24. package/dist/exports/index.d.ts.map +1 -1
  25. package/dist/exports/waas.d.ts +4 -1
  26. package/dist/exports/waas.d.ts.map +1 -1
  27. package/dist/{getNetworkProviderFromNetworkId-DCZQS4ot.cjs.js → getNetworkProviderFromNetworkId-BXGwNlcZ.cjs.js} +129 -45
  28. package/dist/getNetworkProviderFromNetworkId-BXGwNlcZ.cjs.js.map +1 -0
  29. package/dist/{getNetworkProviderFromNetworkId-HoSmTgsz.esm.js → getNetworkProviderFromNetworkId-CmLsKY7E.esm.js} +88 -24
  30. package/dist/getNetworkProviderFromNetworkId-CmLsKY7E.esm.js.map +1 -0
  31. package/dist/{getSignedSessionId-DZ5toWIx.cjs.js → getSignedSessionId-BO9omMlI.cjs.js} +8 -8
  32. package/dist/{getSignedSessionId-DZ5toWIx.cjs.js.map → getSignedSessionId-BO9omMlI.cjs.js.map} +1 -1
  33. package/dist/{getSignedSessionId-CWSJHTeG.esm.js → getSignedSessionId-BvQ4i928.esm.js} +3 -3
  34. package/dist/{getSignedSessionId-CWSJHTeG.esm.js.map → getSignedSessionId-BvQ4i928.esm.js.map} +1 -1
  35. package/dist/{getVerifiedCredentialForWalletAccount-bYTdp3TE.esm.js → getVerifiedCredentialForWalletAccount-54lCppnJ.esm.js} +113 -3
  36. package/dist/getVerifiedCredentialForWalletAccount-54lCppnJ.esm.js.map +1 -0
  37. package/dist/{getVerifiedCredentialForWalletAccount-86wjRIe0.cjs.js → getVerifiedCredentialForWalletAccount-BW8iluei.cjs.js} +140 -30
  38. package/dist/getVerifiedCredentialForWalletAccount-BW8iluei.cjs.js.map +1 -0
  39. package/dist/index.cjs.js +326 -267
  40. package/dist/index.cjs.js.map +1 -1
  41. package/dist/index.esm.js +85 -28
  42. package/dist/index.esm.js.map +1 -1
  43. package/dist/{isMfaRequiredForAction-lt9nPT2M.esm.js → isMfaRequiredForAction-DIvUT6_k.esm.js} +2 -2
  44. package/dist/{isMfaRequiredForAction-lt9nPT2M.esm.js.map → isMfaRequiredForAction-DIvUT6_k.esm.js.map} +1 -1
  45. package/dist/{isMfaRequiredForAction-BeZstT1P.cjs.js → isMfaRequiredForAction-DmYvEIJH.cjs.js} +9 -9
  46. package/dist/{isMfaRequiredForAction-BeZstT1P.cjs.js.map → isMfaRequiredForAction-DmYvEIJH.cjs.js.map} +1 -1
  47. package/dist/modules/auth/decodeJwt/decodeJwt.d.ts +26 -0
  48. package/dist/modules/auth/decodeJwt/decodeJwt.d.ts.map +1 -0
  49. package/dist/modules/auth/decodeJwt/index.d.ts +2 -0
  50. package/dist/modules/auth/decodeJwt/index.d.ts.map +1 -0
  51. package/dist/modules/auth/getElevatedAccessToken/getElevatedAccessToken.d.ts +30 -0
  52. package/dist/modules/auth/getElevatedAccessToken/getElevatedAccessToken.d.ts.map +1 -0
  53. package/dist/modules/auth/getElevatedAccessToken/index.d.ts +2 -0
  54. package/dist/modules/auth/getElevatedAccessToken/index.d.ts.map +1 -0
  55. package/dist/modules/auth/state.d.ts +13 -0
  56. package/dist/modules/auth/state.d.ts.map +1 -1
  57. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/elevatedAccessTokens.types.d.ts +10 -0
  58. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/elevatedAccessTokens.types.d.ts.map +1 -0
  59. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/normalizeScopes/index.d.ts +2 -0
  60. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/normalizeScopes/index.d.ts.map +1 -0
  61. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/normalizeScopes/normalizeScopes.d.ts +9 -0
  62. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/normalizeScopes/normalizeScopes.d.ts.map +1 -0
  63. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/index.d.ts +2 -0
  64. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/index.d.ts.map +1 -0
  65. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/parseElevatedAccessToken.d.ts +17 -0
  66. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/parseElevatedAccessToken.d.ts.map +1 -0
  67. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/upsertElevatedAccessToken/index.d.ts +2 -0
  68. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/upsertElevatedAccessToken/index.d.ts.map +1 -0
  69. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/upsertElevatedAccessToken/upsertElevatedAccessToken.d.ts +17 -0
  70. package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/upsertElevatedAccessToken/upsertElevatedAccessToken.d.ts.map +1 -0
  71. package/dist/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
  72. package/dist/modules/deviceRegistration/detectDeviceRegistrationRedirect/detectDeviceRegistrationRedirect.d.ts +1 -1
  73. package/dist/modules/deviceRegistration/{getDeviceTokenFromUrl/getDeviceTokenFromUrl.d.ts → getDeviceRegistrationTokenFromUrl/getDeviceRegistrationTokenFromUrl.d.ts} +3 -3
  74. package/dist/modules/deviceRegistration/getDeviceRegistrationTokenFromUrl/getDeviceRegistrationTokenFromUrl.d.ts.map +1 -0
  75. package/dist/modules/deviceRegistration/getDeviceRegistrationTokenFromUrl/index.d.ts +2 -0
  76. package/dist/modules/deviceRegistration/getDeviceRegistrationTokenFromUrl/index.d.ts.map +1 -0
  77. package/dist/modules/user/isUserOnboardingComplete/index.d.ts +2 -0
  78. package/dist/modules/user/isUserOnboardingComplete/index.d.ts.map +1 -0
  79. package/dist/modules/user/isUserOnboardingComplete/isUserOnboardingComplete.d.ts +12 -0
  80. package/dist/modules/user/isUserOnboardingComplete/isUserOnboardingComplete.d.ts.map +1 -0
  81. package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
  82. package/dist/modules/waas/getWalletRecoveryState/getWalletRecoveryState.d.ts +16 -0
  83. package/dist/modules/waas/getWalletRecoveryState/getWalletRecoveryState.d.ts.map +1 -0
  84. package/dist/modules/waas/getWalletRecoveryState/index.d.ts +2 -0
  85. package/dist/modules/waas/getWalletRecoveryState/index.d.ts.map +1 -0
  86. package/dist/modules/waas/unlockWallet/index.d.ts +2 -0
  87. package/dist/modules/waas/unlockWallet/index.d.ts.map +1 -0
  88. package/dist/modules/waas/unlockWallet/unlockWallet.d.ts +17 -0
  89. package/dist/modules/waas/unlockWallet/unlockWallet.d.ts.map +1 -0
  90. package/dist/modules/waas/waas.types.d.ts +8 -1
  91. package/dist/modules/waas/waas.types.d.ts.map +1 -1
  92. package/dist/modules/wallets/networks/getNetworksData/getNetworksData.d.ts +4 -0
  93. package/dist/modules/wallets/networks/getNetworksData/getNetworksData.d.ts.map +1 -1
  94. package/dist/services/crossTabBroadcast/createCrossTabBroadcast/createCrossTabBroadcast.d.ts +19 -0
  95. package/dist/services/crossTabBroadcast/createCrossTabBroadcast/createCrossTabBroadcast.d.ts.map +1 -0
  96. package/dist/services/crossTabBroadcast/createCrossTabBroadcast/index.d.ts +2 -0
  97. package/dist/services/crossTabBroadcast/createCrossTabBroadcast/index.d.ts.map +1 -0
  98. package/dist/services/crossTabBroadcast/crossTabBroadcast.schema.d.ts +8 -0
  99. package/dist/services/crossTabBroadcast/crossTabBroadcast.schema.d.ts.map +1 -0
  100. package/dist/services/crossTabBroadcast/crossTabBroadcast.types.d.ts +35 -0
  101. package/dist/services/crossTabBroadcast/crossTabBroadcast.types.d.ts.map +1 -0
  102. package/dist/services/crossTabBroadcast/index.d.ts +3 -0
  103. package/dist/services/crossTabBroadcast/index.d.ts.map +1 -0
  104. package/dist/services/deviceSigner/deviceSigner.types.d.ts +21 -0
  105. package/dist/services/deviceSigner/deviceSigner.types.d.ts.map +1 -0
  106. package/dist/services/deviceSigner/index.d.ts +2 -0
  107. package/dist/services/deviceSigner/index.d.ts.map +1 -0
  108. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  109. package/dist/waas.cjs.js +61 -29
  110. package/dist/waas.cjs.js.map +1 -1
  111. package/dist/waas.esm.js +34 -4
  112. package/dist/waas.esm.js.map +1 -1
  113. package/dist/waasCore.cjs.js +33 -15
  114. package/dist/waasCore.cjs.js.map +1 -1
  115. package/dist/waasCore.esm.js +22 -4
  116. package/dist/waasCore.esm.js.map +1 -1
  117. package/package.json +3 -3
  118. package/dist/InvalidParamError-C2c9HQ4V.esm.js +0 -18
  119. package/dist/InvalidParamError-C2c9HQ4V.esm.js.map +0 -1
  120. package/dist/InvalidParamError-D2oVXYDc.cjs.js +0 -23
  121. package/dist/InvalidParamError-D2oVXYDc.cjs.js.map +0 -1
  122. package/dist/constants-58bHSI3b.cjs.js.map +0 -1
  123. package/dist/constants-B8WQGUki.esm.js.map +0 -1
  124. package/dist/getNetworkProviderFromNetworkId-DCZQS4ot.cjs.js.map +0 -1
  125. package/dist/getNetworkProviderFromNetworkId-HoSmTgsz.esm.js.map +0 -1
  126. package/dist/getVerifiedCredentialForWalletAccount-86wjRIe0.cjs.js.map +0 -1
  127. package/dist/getVerifiedCredentialForWalletAccount-bYTdp3TE.esm.js.map +0 -1
  128. package/dist/modules/deviceRegistration/getDeviceTokenFromUrl/getDeviceTokenFromUrl.d.ts.map +0 -1
  129. package/dist/modules/deviceRegistration/getDeviceTokenFromUrl/index.d.ts +0 -2
  130. package/dist/modules/deviceRegistration/getDeviceTokenFromUrl/index.d.ts.map +0 -1
package/dist/index.esm.js CHANGED
@@ -1,13 +1,12 @@
1
- import { C as getDefaultClient, D as getCore, E as BaseError, O as name, _ as isCookieEnabled, a as SDK_API_CORE_VERSION, b as randomString, c as createApiClient, d as MfaInvalidOtpError, f as LinkCredentialError, g as getBuffer, i as DYNAMIC_ICONIC_SPRITE_URL, k as version, l as SandboxMaximumThresholdReachedError, m as APIError, o as getChainFromVerifiedCredentialChain, p as InvalidExternalAuthError, s as CHAINS_INFO_MAP, u as MfaRateLimitedError, v as assertDefined, w as setDefaultClient, x as CLIENT_SDK_NAME, y as ValueMustBeDefinedError } from "./constants-B8WQGUki.esm.js";
2
- import { A as isEqualShallow, C as INITIALIZE_STORAGE_SYNC_TRACKER_KEY, E as createStorage, O as createLocalStorageAdapter, S as GENERATE_SESSION_KEYS_TRACKER_KEY, T as createStorageKeySchema, _ as NoNetworkProvidersError, a as updateWalletProviderKeysForVerifiedCredentials, b as createDeferredPromise, c as createSignInMessageStatement, d as createVisit, f as hasExtension, g as WalletAlreadyLinkedToAnotherUserError, h as isCaptchaRequired, i as getNetworksData, k as subscribeWithSelector, l as formatSignInMessage, m as consumeCaptchaToken, o as verifyMessageSignatureOwnership, p as setCaptchaToken, s as removeUnverifiedWalletAccount, t as getNetworkProviderFromNetworkId, u as setUnverifiedWalletAccounts, v as createLogger, w as REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY, x as FETCH_PROJECT_SETTINGS_TRACKER_KEY, y as CannotTrackError } from "./getNetworkProviderFromNetworkId-HoSmTgsz.esm.js";
3
- import { D as onceEvent, E as onEvent, O as setCookie, S as splitWalletProviderKey, T as offEvent, _ as getWalletAccounts, b as formatWalletAccountId, c as getWalletProviders, d as DYNAMIC_AUTH_COOKIE_NAME, f as getWalletProviderFromWalletAccount, g as NoWalletProviderFoundError, i as restoreUserSharesForAllWalletAccounts, l as checkAndRaiseWalletAccountsChangedEvent, n as getWalletProviderByKey, r as updateAuthFromVerifyResponse, t as getVerifiedCredentialForWalletAccount, u as emitWalletAccountsChangedEvent, w as emitEvent, x as normalizeAddress } from "./getVerifiedCredentialForWalletAccount-bYTdp3TE.esm.js";
4
- import { i as bufferToHex, n as getMfaMethods, r as consumeMfaToken, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-lt9nPT2M.esm.js";
5
- import { n as refreshAuth, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-DJmbtj65.esm.js";
6
- import { t as InvalidParamError } from "./InvalidParamError-C2c9HQ4V.esm.js";
1
+ import { A as version, D as BaseError, O as getCore, S as CLIENT_SDK_NAME, T as setDefaultClient, _ as getBuffer, a as DYNAMIC_ICONIC_SPRITE_URL, b as ValueMustBeDefinedError, c as CHAINS_INFO_MAP, d as MfaRateLimitedError, f as MfaInvalidOtpError, h as APIError, k as name, l as createApiClient, m as InvalidExternalAuthError, o as SDK_API_CORE_VERSION, p as LinkCredentialError, s as getChainFromVerifiedCredentialChain, t as InvalidParamError, u as SandboxMaximumThresholdReachedError, v as isCookieEnabled, w as getDefaultClient, x as randomString, y as assertDefined } from "./InvalidParamError-DMz6QY8e.esm.js";
2
+ import { C as isServerSideRendering, D as REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY, E as INITIALIZE_STORAGE_SYNC_TRACKER_KEY, M as subscribeWithSelector, N as isEqualShallow, O as createStorageKeySchema, S as createDeferredPromise, T as GENERATE_SESSION_KEYS_TRACKER_KEY, _ as NoNetworkProvidersError, a as updateWalletProviderKeysForVerifiedCredentials, c as createSignInMessageStatement, d as createVisit, f as hasExtension, g as WalletAlreadyLinkedToAnotherUserError, h as isCaptchaRequired, i as getNetworksData, j as createLocalStorageAdapter, k as createStorage, l as formatSignInMessage, m as consumeCaptchaToken, o as verifyMessageSignatureOwnership, p as setCaptchaToken, s as removeUnverifiedWalletAccount, t as getNetworkProviderFromNetworkId, u as setUnverifiedWalletAccounts, v as createLogger, w as FETCH_PROJECT_SETTINGS_TRACKER_KEY, x as CannotTrackError, y as createCrossTabBroadcast } from "./getNetworkProviderFromNetworkId-CmLsKY7E.esm.js";
3
+ import { D as onceEvent, E as onEvent, O as setCookie, S as splitWalletProviderKey, T as offEvent, _ as getWalletAccounts, b as formatWalletAccountId, c as getWalletProviders, d as DYNAMIC_AUTH_COOKIE_NAME, f as getWalletProviderFromWalletAccount, g as NoWalletProviderFoundError, i as restoreUserSharesForAllWalletAccounts, l as checkAndRaiseWalletAccountsChangedEvent, n as getWalletProviderByKey, r as updateAuthFromVerifyResponse, t as getVerifiedCredentialForWalletAccount, u as emitWalletAccountsChangedEvent, w as emitEvent, x as normalizeAddress } from "./getVerifiedCredentialForWalletAccount-54lCppnJ.esm.js";
4
+ import { i as bufferToHex, n as getMfaMethods, r as consumeMfaToken, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-DIvUT6_k.esm.js";
5
+ import { n as refreshAuth, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-Cp3qfAxw.esm.js";
7
6
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
8
7
  import { AuthModeEnum, ExchangeKeyEnum, JwtVerifiedCredentialFormatEnum, MFAAction, MfaBackupCodeAcknowledgement, ProviderEnum, WaasBackupOptionsEnum } from "@dynamic-labs/sdk-api-core";
9
8
  import * as z from "zod/mini";
10
- import EventEmitter, { EventEmitter as EventEmitter$1 } from "eventemitter3";
9
+ import EventEmitter$1, { EventEmitter } from "eventemitter3";
11
10
  import { browserSupportsWebAuthn, startAuthentication, startRegistration } from "@simplewebauthn/browser";
12
11
 
13
12
  //#region src/modules/state/raiseStateEvents/events.ts
@@ -533,13 +532,6 @@ const initializeClient = async (client = getDefaultClient()) => {
533
532
  if (client.user) restoreUserSharesForAllWalletAccounts(client);
534
533
  };
535
534
 
536
- //#endregion
537
- //#region src/utils/isServerSideRendering/isServerSideRendering.ts
538
- /**
539
- * Indicates if the code is running in a server-side environment.
540
- */
541
- const isServerSideRendering = () => typeof window === "undefined";
542
-
543
535
  //#endregion
544
536
  //#region src/services/asyncTrack/createAsyncTrack.ts
545
537
  /**
@@ -553,7 +545,7 @@ const createAsyncTrack = () => {
553
545
  * This ensures no process is missed (as it would throw when tracked on a different node tick).
554
546
  */
555
547
  let isTrackEnabled = true;
556
- const eventEmitter = new EventEmitter$1();
548
+ const eventEmitter = new EventEmitter();
557
549
  const allSettledPromise = createDeferredPromise();
558
550
  const tracker = /* @__PURE__ */ new Map();
559
551
  /**
@@ -599,7 +591,7 @@ const createAsyncTrack = () => {
599
591
 
600
592
  //#endregion
601
593
  //#region src/services/eventEmitter/createEventEmitter.ts
602
- const createEventEmitter = () => new EventEmitter();
594
+ const createEventEmitter = () => new EventEmitter$1();
603
595
 
604
596
  //#endregion
605
597
  //#region src/errors/UnavailableInServerSideError.ts
@@ -796,6 +788,7 @@ const DEFAULT_API_BASE_URL = "https://app.dynamicauth.com/api/v0";
796
788
  */
797
789
  const getInitialState = () => ({
798
790
  captchaToken: null,
791
+ elevatedAccessTokens: [],
799
792
  initStatus: "uninitialized",
800
793
  legacyToken: null,
801
794
  mfaToken: null,
@@ -829,9 +822,12 @@ const createCore = (config) => {
829
822
  const initTrack = createAsyncTrack();
830
823
  const runtimeServices = createRuntimeServices();
831
824
  const passkey = config.coreConfig?.passkey ?? createWebPasskeyService();
825
+ const deviceSigner = config.coreConfig?.deviceSigner;
832
826
  return {
833
827
  apiBaseUrl,
828
+ crossTabBroadcast: config.coreConfig?.crossTabBroadcast ?? createCrossTabBroadcast({ channelName: `dynamic_${config.environmentId}_broadcast` }),
834
829
  debouncedMutex,
830
+ deviceSigner,
835
831
  environmentId: config.environmentId,
836
832
  eventEmitter,
837
833
  extensions: /* @__PURE__ */ new Set(),
@@ -846,6 +842,7 @@ const createCore = (config) => {
846
842
  runtimeServices,
847
843
  state,
848
844
  storage,
845
+ transformers: config.transformers,
849
846
  version
850
847
  };
851
848
  };
@@ -1202,6 +1199,47 @@ const signInWithExternalJwt = async ({ externalJwt, sessionPublicKey } = {}, cli
1202
1199
  return response;
1203
1200
  };
1204
1201
 
1202
+ //#endregion
1203
+ //#region src/modules/auth/getElevatedAccessToken/getElevatedAccessToken.ts
1204
+ /**
1205
+ * Gets an elevated access token by scope.
1206
+ *
1207
+ * This function retrieves an elevated access token that contains the specified scope.
1208
+ * Expired tokens are automatically filtered out.
1209
+ *
1210
+ * If the token has `singleUse: true`, it will be automatically
1211
+ * consumed (removed from state) after retrieval. Otherwise, it remains in state
1212
+ * for future use.
1213
+ *
1214
+ * @param params - The parameters object.
1215
+ * @param params.scope - The scope to match (e.g., 'wallet:export').
1216
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
1217
+ * @returns The elevated access token if found and not expired, or undefined if not found or expired.
1218
+ *
1219
+ * @example
1220
+ * ```typescript
1221
+ * const token = getElevatedAccessToken({ scope: 'wallet:export' });
1222
+ * if (token) {
1223
+ * // Use the token
1224
+ * // Token is automatically consumed if singleUse: true
1225
+ * }
1226
+ * ```
1227
+ */
1228
+ const getElevatedAccessToken = ({ scope }, client = getDefaultClient()) => {
1229
+ const core = getCore(client);
1230
+ const now = /* @__PURE__ */ new Date();
1231
+ const elevatedAccessTokens = core.state.get().elevatedAccessTokens || [];
1232
+ const validTokens = elevatedAccessTokens.filter((token$1) => !token$1.expiresAt || token$1.expiresAt > now);
1233
+ if (validTokens.length !== elevatedAccessTokens.length) core.state.set({ elevatedAccessTokens: validTokens });
1234
+ const token = validTokens.find((token$1) => token$1.scopes.includes(scope));
1235
+ if (!token) return;
1236
+ if (token.singleUse) {
1237
+ const updatedTokens = validTokens.filter((t) => t !== token);
1238
+ core.state.set({ elevatedAccessTokens: updatedTokens });
1239
+ }
1240
+ return token.token;
1241
+ };
1242
+
1205
1243
  //#endregion
1206
1244
  //#region src/modules/auth/passkeys/deletePasskey/deletePasskey.ts
1207
1245
  /**
@@ -1646,7 +1684,7 @@ const getMultichainBalances = async ({ balanceRequest }, client = getDefaultClie
1646
1684
  };
1647
1685
 
1648
1686
  //#endregion
1649
- //#region src/modules/deviceRegistration/getDeviceTokenFromUrl/getDeviceTokenFromUrl.ts
1687
+ //#region src/modules/deviceRegistration/getDeviceRegistrationTokenFromUrl/getDeviceRegistrationTokenFromUrl.ts
1650
1688
  /**
1651
1689
  * Safely extracts the device token from a device registration redirect URL.
1652
1690
  *
@@ -1656,18 +1694,16 @@ const getMultichainBalances = async ({ balanceRequest }, client = getDefaultClie
1656
1694
  * @returns The device token as a string if valid.
1657
1695
  * @throws InvalidDeviceRegistrationRedirectError If the URL is not a valid device registration redirect.
1658
1696
  */
1659
- const getDeviceTokenFromUrl = ({ url }) => {
1697
+ const getDeviceRegistrationTokenFromUrl = ({ url }) => {
1660
1698
  let urlObject;
1661
1699
  try {
1662
1700
  urlObject = new URL(url);
1663
1701
  } catch {
1664
1702
  throw new InvalidDeviceRegistrationRedirectError();
1665
1703
  }
1666
- const dynamicAuthAction = urlObject.searchParams.get("dynamicAuthAction");
1667
- const deviceToken = urlObject.searchParams.get("deviceToken");
1668
- if (dynamicAuthAction !== "RegisterDevice") throw new InvalidDeviceRegistrationRedirectError();
1669
- if (!deviceToken || deviceToken.trim() === "") throw new InvalidDeviceRegistrationRedirectError();
1670
- return deviceToken;
1704
+ const deviceRegistrationToken = urlObject.searchParams.get("deviceRegistrationToken");
1705
+ if (!deviceRegistrationToken || deviceRegistrationToken.trim() === "") throw new InvalidDeviceRegistrationRedirectError();
1706
+ return deviceRegistrationToken;
1671
1707
  };
1672
1708
 
1673
1709
  //#endregion
@@ -1675,14 +1711,14 @@ const getDeviceTokenFromUrl = ({ url }) => {
1675
1711
  /**
1676
1712
  * Detects if the current URL is a device registration redirect.
1677
1713
  *
1678
- * This function uses getDeviceTokenFromUrl to validate the URL and determine
1714
+ * This function uses getDeviceRegistrationTokenFromUrl to validate the URL and determine
1679
1715
  * if it contains device registration redirect data from a device authentication flow.
1680
1716
  *
1681
1717
  * @returns True if the URL is a device registration redirect, false otherwise.
1682
1718
  */
1683
1719
  const detectDeviceRegistrationRedirect = ({ url }) => {
1684
1720
  try {
1685
- getDeviceTokenFromUrl({ url });
1721
+ getDeviceRegistrationTokenFromUrl({ url });
1686
1722
  return true;
1687
1723
  } catch {
1688
1724
  return false;
@@ -1702,7 +1738,7 @@ const detectDeviceRegistrationRedirect = ({ url }) => {
1702
1738
  const isDeviceRegistrationRequired = (client = getDefaultClient()) => {
1703
1739
  const user = client.user;
1704
1740
  assertDefined(user, "User not logged in");
1705
- return Boolean(user.scope?.includes("deviceRegistration"));
1741
+ return Boolean(user.scope?.includes("device:registration"));
1706
1742
  };
1707
1743
 
1708
1744
  //#endregion
@@ -2659,7 +2695,7 @@ const getMfaRecoveryCodes = async (client = getDefaultClient()) => {
2659
2695
  const isPendingRecoveryCodesAcknowledgment = (client = getDefaultClient()) => {
2660
2696
  const user = client.user;
2661
2697
  assertDefined(user, "User not logged in");
2662
- return user.mfaBackupCodeAcknowledgement !== MfaBackupCodeAcknowledgement.Complete;
2698
+ return user.mfaBackupCodeAcknowledgement === MfaBackupCodeAcknowledgement.Pending;
2663
2699
  };
2664
2700
 
2665
2701
  //#endregion
@@ -3773,6 +3809,27 @@ const deleteUser = async (client = getDefaultClient()) => {
3773
3809
  await logout(client);
3774
3810
  };
3775
3811
 
3812
+ //#endregion
3813
+ //#region src/modules/user/isUserOnboardingComplete/isUserOnboardingComplete.ts
3814
+ /**
3815
+ * Checks if the user has completed all onboarding requirements.
3816
+ *
3817
+ * This function verifies whether a user has fulfilled all necessary requirements
3818
+ * including KYC fields (Know Your Customer information) and MFA setup
3819
+ * (Multi-Factor Authentication including recovery codes acknowledgment).
3820
+ *
3821
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
3822
+ * @returns True if onboarding is complete (no pending requirements), false if there are pending requirements.
3823
+ */
3824
+ const isUserOnboardingComplete = (client = getDefaultClient()) => {
3825
+ const user = client.user;
3826
+ assertDefined(user, "User not logged in");
3827
+ const hasMissingKycFields = Boolean(user.missingFields?.length);
3828
+ const hasPendingMfaAuth = isUserMissingMfaAuth(client);
3829
+ const hasPendingRecoveryCodes = isPendingRecoveryCodesAcknowledgment(client);
3830
+ return !hasMissingKycFields && !hasPendingMfaAuth && !hasPendingRecoveryCodes;
3831
+ };
3832
+
3776
3833
  //#endregion
3777
3834
  //#region src/modules/user/refreshUser/refreshUser.ts
3778
3835
  /**
@@ -4499,5 +4556,5 @@ const isIPad = (maxTouchPointsOverride) => {
4499
4556
  assertPackageVersion(name, version);
4500
4557
 
4501
4558
  //#endregion
4502
- export { BaseError, ClientAlreadyInitializedError, InvalidDeviceRegistrationRedirectError, InvalidExternalAuthError, InvalidParamError, InvalidRedirectStorageStateError, LinkCredentialError, MFAAction, MfaInvalidOtpError, MfaRateLimitedError, MissingRedirectStorageStateError, MissingSocialUrlParamError, MissingUserVerificationError, NetworkAddingUnavailableError, NetworkNotAddedError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoNetworkProvidersError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, NotWaasWalletAccountError, SandboxMaximumThresholdReachedError, UnavailableInServerSideError, UnrecognizedNetworkError, UserNotAuthenticatedError, UserRejectedError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletAlreadyLinkedToAnotherUserError, WalletProviderMethodUnavailableError, acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, addNetwork, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, authenticateWithSocial, completeSocialAuthentication, connectAndVerifyWithWalletProvider, connectWithWalletProvider, consumeMfaToken, createCoinbaseOnrampOrder, createCryptoDotComPayment, createDynamicClient, createKrakenExchangeTransfer, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, deleteUser, detectDeviceRegistrationRedirect, detectOAuthRedirect, fetchProjectSettings, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalance, getBalanceForAddress, getCoinbaseBuyUrl, getConnectedAddresses, getDefaultClient, getDeviceTokenFromUrl, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMissingVerificationForCoinbaseOnrampOrder, getMultichainBalances, getNetworksData, getOwnerWalletAccountForSmartWalletAccount, getPasskeys, getPrimaryWalletAccount, getTransactionHistory, getUserSocialAccounts, getWalletAccountAddressByType, getWalletAccountFromAddress, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletProviderDataByKey, hasExtension, initializeClient, isCaptchaRequired, isDeviceRegistrationRequired, isMfaRequiredForAction, isMobile, isPendingRecoveryCodesAcknowledgment, isProgrammaticNetworkSwitchAvailable, isSignedIn, isUserMissingMfaAuth, isWalletAccountVerified, logout, offEvent, offWalletProviderEvent, onEvent, onWalletProviderEvent, onceEvent, proveWalletAccountOwnership, refreshAuth, refreshUser, registerPasskey, registerTotpMfaDevice, removeWalletAccount, selectPrimaryWalletAccount, sendEmailOTP, sendSmsOTP, setCaptchaToken, setDefaultMfaDevice, signInWithExternalJwt, signInWithPasskey, signMessage, switchActiveNetwork, transferWalletAccount, unlinkSocialAccount, updateUser, verifyOTP, verifyWalletAccount, waitForClientInitialized };
4559
+ export { BaseError, ClientAlreadyInitializedError, InvalidDeviceRegistrationRedirectError, InvalidExternalAuthError, InvalidParamError, InvalidRedirectStorageStateError, LinkCredentialError, MFAAction, MfaInvalidOtpError, MfaRateLimitedError, MissingRedirectStorageStateError, MissingSocialUrlParamError, MissingUserVerificationError, NetworkAddingUnavailableError, NetworkNotAddedError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoNetworkProvidersError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, NotWaasWalletAccountError, SandboxMaximumThresholdReachedError, UnavailableInServerSideError, UnrecognizedNetworkError, UserNotAuthenticatedError, UserRejectedError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletAlreadyLinkedToAnotherUserError, WalletProviderMethodUnavailableError, acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, addNetwork, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, authenticateWithSocial, completeSocialAuthentication, connectAndVerifyWithWalletProvider, connectWithWalletProvider, consumeMfaToken, createCoinbaseOnrampOrder, createCryptoDotComPayment, createDynamicClient, createKrakenExchangeTransfer, createNewMfaRecoveryCodes, deleteMfaDevice, deletePasskey, deleteUser, detectDeviceRegistrationRedirect, detectOAuthRedirect, fetchProjectSettings, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalance, getBalanceForAddress, getCoinbaseBuyUrl, getConnectedAddresses, getDefaultClient, getDeviceRegistrationTokenFromUrl, getElevatedAccessToken, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMissingVerificationForCoinbaseOnrampOrder, getMultichainBalances, getNetworksData, getOwnerWalletAccountForSmartWalletAccount, getPasskeys, getPrimaryWalletAccount, getTransactionHistory, getUserSocialAccounts, getWalletAccountAddressByType, getWalletAccountFromAddress, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletProviderDataByKey, hasExtension, initializeClient, isCaptchaRequired, isDeviceRegistrationRequired, isMfaRequiredForAction, isMobile, isPendingRecoveryCodesAcknowledgment, isProgrammaticNetworkSwitchAvailable, isSignedIn, isUserMissingMfaAuth, isUserOnboardingComplete, isWalletAccountVerified, logout, offEvent, offWalletProviderEvent, onEvent, onWalletProviderEvent, onceEvent, proveWalletAccountOwnership, refreshAuth, refreshUser, registerPasskey, registerTotpMfaDevice, removeWalletAccount, selectPrimaryWalletAccount, sendEmailOTP, sendSmsOTP, setCaptchaToken, setDefaultMfaDevice, signInWithExternalJwt, signInWithPasskey, signMessage, switchActiveNetwork, transferWalletAccount, unlinkSocialAccount, updateUser, verifyOTP, verifyWalletAccount, waitForClientInitialized };
4503
4560
  //# sourceMappingURL=index.esm.js.map