@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.
- package/dist/{constants-58bHSI3b.cjs.js → InvalidParamError-D1yNl3r1.cjs.js} +24 -4
- package/dist/InvalidParamError-D1yNl3r1.cjs.js.map +1 -0
- package/dist/{constants-B8WQGUki.esm.js → InvalidParamError-DMz6QY8e.esm.js} +18 -4
- package/dist/InvalidParamError-DMz6QY8e.esm.js.map +1 -0
- package/dist/{NotWaasWalletAccountError-DJmbtj65.esm.js → NotWaasWalletAccountError-Cp3qfAxw.esm.js} +3 -3
- package/dist/{NotWaasWalletAccountError-DJmbtj65.esm.js.map → NotWaasWalletAccountError-Cp3qfAxw.esm.js.map} +1 -1
- package/dist/{NotWaasWalletAccountError-Dq2ssnPs.cjs.js → NotWaasWalletAccountError-s2J7fQHr.cjs.js} +7 -7
- package/dist/{NotWaasWalletAccountError-Dq2ssnPs.cjs.js.map → NotWaasWalletAccountError-s2J7fQHr.cjs.js.map} +1 -1
- package/dist/client/core/createCore/createCore.d.ts.map +1 -1
- package/dist/client/core/createCore/getInitialState.d.ts.map +1 -1
- package/dist/client/core/types/DynamicCore.d.ts +15 -0
- package/dist/client/core/types/DynamicCore.d.ts.map +1 -1
- package/dist/client/core/types/DynamicCoreConfig.d.ts +1 -1
- package/dist/client/core/types/DynamicCoreConfig.d.ts.map +1 -1
- package/dist/client/types/DynamicClientConfig.d.ts +46 -0
- package/dist/client/types/DynamicClientConfig.d.ts.map +1 -1
- package/dist/core.cjs.js +34 -32
- package/dist/core.cjs.js.map +1 -1
- package/dist/core.esm.js +8 -8
- package/dist/core.esm.js.map +1 -1
- package/dist/exports/core.d.ts +6 -0
- package/dist/exports/core.d.ts.map +1 -1
- package/dist/exports/index.d.ts +4 -1
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/waas.d.ts +4 -1
- package/dist/exports/waas.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-DCZQS4ot.cjs.js → getNetworkProviderFromNetworkId-BXGwNlcZ.cjs.js} +129 -45
- package/dist/getNetworkProviderFromNetworkId-BXGwNlcZ.cjs.js.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-HoSmTgsz.esm.js → getNetworkProviderFromNetworkId-CmLsKY7E.esm.js} +88 -24
- package/dist/getNetworkProviderFromNetworkId-CmLsKY7E.esm.js.map +1 -0
- package/dist/{getSignedSessionId-DZ5toWIx.cjs.js → getSignedSessionId-BO9omMlI.cjs.js} +8 -8
- package/dist/{getSignedSessionId-DZ5toWIx.cjs.js.map → getSignedSessionId-BO9omMlI.cjs.js.map} +1 -1
- package/dist/{getSignedSessionId-CWSJHTeG.esm.js → getSignedSessionId-BvQ4i928.esm.js} +3 -3
- package/dist/{getSignedSessionId-CWSJHTeG.esm.js.map → getSignedSessionId-BvQ4i928.esm.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-bYTdp3TE.esm.js → getVerifiedCredentialForWalletAccount-54lCppnJ.esm.js} +113 -3
- package/dist/getVerifiedCredentialForWalletAccount-54lCppnJ.esm.js.map +1 -0
- package/dist/{getVerifiedCredentialForWalletAccount-86wjRIe0.cjs.js → getVerifiedCredentialForWalletAccount-BW8iluei.cjs.js} +140 -30
- package/dist/getVerifiedCredentialForWalletAccount-BW8iluei.cjs.js.map +1 -0
- package/dist/index.cjs.js +326 -267
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +85 -28
- package/dist/index.esm.js.map +1 -1
- package/dist/{isMfaRequiredForAction-lt9nPT2M.esm.js → isMfaRequiredForAction-DIvUT6_k.esm.js} +2 -2
- package/dist/{isMfaRequiredForAction-lt9nPT2M.esm.js.map → isMfaRequiredForAction-DIvUT6_k.esm.js.map} +1 -1
- package/dist/{isMfaRequiredForAction-BeZstT1P.cjs.js → isMfaRequiredForAction-DmYvEIJH.cjs.js} +9 -9
- package/dist/{isMfaRequiredForAction-BeZstT1P.cjs.js.map → isMfaRequiredForAction-DmYvEIJH.cjs.js.map} +1 -1
- package/dist/modules/auth/decodeJwt/decodeJwt.d.ts +26 -0
- package/dist/modules/auth/decodeJwt/decodeJwt.d.ts.map +1 -0
- package/dist/modules/auth/decodeJwt/index.d.ts +2 -0
- package/dist/modules/auth/decodeJwt/index.d.ts.map +1 -0
- package/dist/modules/auth/getElevatedAccessToken/getElevatedAccessToken.d.ts +30 -0
- package/dist/modules/auth/getElevatedAccessToken/getElevatedAccessToken.d.ts.map +1 -0
- package/dist/modules/auth/getElevatedAccessToken/index.d.ts +2 -0
- package/dist/modules/auth/getElevatedAccessToken/index.d.ts.map +1 -0
- package/dist/modules/auth/state.d.ts +13 -0
- package/dist/modules/auth/state.d.ts.map +1 -1
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/elevatedAccessTokens.types.d.ts +10 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/elevatedAccessTokens.types.d.ts.map +1 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/normalizeScopes/index.d.ts +2 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/normalizeScopes/index.d.ts.map +1 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/normalizeScopes/normalizeScopes.d.ts +9 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/normalizeScopes/normalizeScopes.d.ts.map +1 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/index.d.ts +2 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/index.d.ts.map +1 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/parseElevatedAccessToken.d.ts +17 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/parseElevatedAccessToken/parseElevatedAccessToken.d.ts.map +1 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/upsertElevatedAccessToken/index.d.ts +2 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/upsertElevatedAccessToken/index.d.ts.map +1 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/upsertElevatedAccessToken/upsertElevatedAccessToken.d.ts +17 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/elevatedAccessTokens/upsertElevatedAccessToken/upsertElevatedAccessToken.d.ts.map +1 -0
- package/dist/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
- package/dist/modules/deviceRegistration/detectDeviceRegistrationRedirect/detectDeviceRegistrationRedirect.d.ts +1 -1
- package/dist/modules/deviceRegistration/{getDeviceTokenFromUrl/getDeviceTokenFromUrl.d.ts → getDeviceRegistrationTokenFromUrl/getDeviceRegistrationTokenFromUrl.d.ts} +3 -3
- package/dist/modules/deviceRegistration/getDeviceRegistrationTokenFromUrl/getDeviceRegistrationTokenFromUrl.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/getDeviceRegistrationTokenFromUrl/index.d.ts +2 -0
- package/dist/modules/deviceRegistration/getDeviceRegistrationTokenFromUrl/index.d.ts.map +1 -0
- package/dist/modules/user/isUserOnboardingComplete/index.d.ts +2 -0
- package/dist/modules/user/isUserOnboardingComplete/index.d.ts.map +1 -0
- package/dist/modules/user/isUserOnboardingComplete/isUserOnboardingComplete.d.ts +12 -0
- package/dist/modules/user/isUserOnboardingComplete/isUserOnboardingComplete.d.ts.map +1 -0
- package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
- package/dist/modules/waas/getWalletRecoveryState/getWalletRecoveryState.d.ts +16 -0
- package/dist/modules/waas/getWalletRecoveryState/getWalletRecoveryState.d.ts.map +1 -0
- package/dist/modules/waas/getWalletRecoveryState/index.d.ts +2 -0
- package/dist/modules/waas/getWalletRecoveryState/index.d.ts.map +1 -0
- package/dist/modules/waas/unlockWallet/index.d.ts +2 -0
- package/dist/modules/waas/unlockWallet/index.d.ts.map +1 -0
- package/dist/modules/waas/unlockWallet/unlockWallet.d.ts +17 -0
- package/dist/modules/waas/unlockWallet/unlockWallet.d.ts.map +1 -0
- package/dist/modules/waas/waas.types.d.ts +8 -1
- package/dist/modules/waas/waas.types.d.ts.map +1 -1
- package/dist/modules/wallets/networks/getNetworksData/getNetworksData.d.ts +4 -0
- package/dist/modules/wallets/networks/getNetworksData/getNetworksData.d.ts.map +1 -1
- package/dist/services/crossTabBroadcast/createCrossTabBroadcast/createCrossTabBroadcast.d.ts +19 -0
- package/dist/services/crossTabBroadcast/createCrossTabBroadcast/createCrossTabBroadcast.d.ts.map +1 -0
- package/dist/services/crossTabBroadcast/createCrossTabBroadcast/index.d.ts +2 -0
- package/dist/services/crossTabBroadcast/createCrossTabBroadcast/index.d.ts.map +1 -0
- package/dist/services/crossTabBroadcast/crossTabBroadcast.schema.d.ts +8 -0
- package/dist/services/crossTabBroadcast/crossTabBroadcast.schema.d.ts.map +1 -0
- package/dist/services/crossTabBroadcast/crossTabBroadcast.types.d.ts +35 -0
- package/dist/services/crossTabBroadcast/crossTabBroadcast.types.d.ts.map +1 -0
- package/dist/services/crossTabBroadcast/index.d.ts +3 -0
- package/dist/services/crossTabBroadcast/index.d.ts.map +1 -0
- package/dist/services/deviceSigner/deviceSigner.types.d.ts +21 -0
- package/dist/services/deviceSigner/deviceSigner.types.d.ts.map +1 -0
- package/dist/services/deviceSigner/index.d.ts +2 -0
- package/dist/services/deviceSigner/index.d.ts.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/waas.cjs.js +61 -29
- package/dist/waas.cjs.js.map +1 -1
- package/dist/waas.esm.js +34 -4
- package/dist/waas.esm.js.map +1 -1
- package/dist/waasCore.cjs.js +33 -15
- package/dist/waasCore.cjs.js.map +1 -1
- package/dist/waasCore.esm.js +22 -4
- package/dist/waasCore.esm.js.map +1 -1
- package/package.json +3 -3
- package/dist/InvalidParamError-C2c9HQ4V.esm.js +0 -18
- package/dist/InvalidParamError-C2c9HQ4V.esm.js.map +0 -1
- package/dist/InvalidParamError-D2oVXYDc.cjs.js +0 -23
- package/dist/InvalidParamError-D2oVXYDc.cjs.js.map +0 -1
- package/dist/constants-58bHSI3b.cjs.js.map +0 -1
- package/dist/constants-B8WQGUki.esm.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-DCZQS4ot.cjs.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-HoSmTgsz.esm.js.map +0 -1
- package/dist/getVerifiedCredentialForWalletAccount-86wjRIe0.cjs.js.map +0 -1
- package/dist/getVerifiedCredentialForWalletAccount-bYTdp3TE.esm.js.map +0 -1
- package/dist/modules/deviceRegistration/getDeviceTokenFromUrl/getDeviceTokenFromUrl.d.ts.map +0 -1
- package/dist/modules/deviceRegistration/getDeviceTokenFromUrl/index.d.ts +0 -2
- package/dist/modules/deviceRegistration/getDeviceTokenFromUrl/index.d.ts.map +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
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-
|
|
4
|
-
import { i as bufferToHex, n as getMfaMethods, r as consumeMfaToken, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-
|
|
5
|
-
import { n as refreshAuth, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-
|
|
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
|
|
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
|
|
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/
|
|
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
|
|
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
|
|
1667
|
-
|
|
1668
|
-
|
|
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
|
|
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
|
-
|
|
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("
|
|
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
|
|
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,
|
|
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
|