@dynamic-labs-sdk/client 0.17.2 → 0.17.4
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/{InvalidParamError-Dc2HgrDm.esm.js → InvalidParamError-BgvcmQ36.esm.js} +53 -4
- package/dist/InvalidParamError-BgvcmQ36.esm.js.map +1 -0
- package/dist/{InvalidParamError-z_h8HyKL.cjs.js → InvalidParamError-CApg0dxd.cjs.js} +59 -4
- package/dist/InvalidParamError-CApg0dxd.cjs.js.map +1 -0
- package/dist/{NotWaasWalletAccountError-DsYkBFyx.cjs.js → NotWaasWalletAccountError-C8iogcNm.cjs.js} +3 -3
- package/dist/{NotWaasWalletAccountError-DsYkBFyx.cjs.js.map → NotWaasWalletAccountError-C8iogcNm.cjs.js.map} +1 -1
- package/dist/{NotWaasWalletAccountError-B4xS_9HL.esm.js → NotWaasWalletAccountError-CfH6ZpRB.esm.js} +3 -3
- package/dist/{NotWaasWalletAccountError-B4xS_9HL.esm.js.map → NotWaasWalletAccountError-CfH6ZpRB.esm.js.map} +1 -1
- package/dist/client/core/createCore/createCore.d.ts.map +1 -1
- package/dist/client/core/types/DynamicCore.d.ts +10 -0
- package/dist/client/core/types/DynamicCore.d.ts.map +1 -1
- package/dist/client/types/DynamicClientConfig.d.ts +5 -0
- package/dist/client/types/DynamicClientConfig.d.ts.map +1 -1
- package/dist/core.cjs.js +5 -5
- package/dist/core.esm.js +5 -5
- package/dist/{getNetworkProviderFromNetworkId-CllkC31J.cjs.js → getNetworkProviderFromNetworkId-BP2AzuLE.cjs.js} +3 -3
- package/dist/{getNetworkProviderFromNetworkId-CllkC31J.cjs.js.map → getNetworkProviderFromNetworkId-BP2AzuLE.cjs.js.map} +1 -1
- package/dist/{getNetworkProviderFromNetworkId-DO13PEvc.esm.js → getNetworkProviderFromNetworkId-DoLT1yjR.esm.js} +3 -3
- package/dist/{getNetworkProviderFromNetworkId-DO13PEvc.esm.js.map → getNetworkProviderFromNetworkId-DoLT1yjR.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-DqmEBqI9.cjs.js → getSignedSessionId-CbNoTJxx.cjs.js} +3 -3
- package/dist/{getSignedSessionId-DqmEBqI9.cjs.js.map → getSignedSessionId-CbNoTJxx.cjs.js.map} +1 -1
- package/dist/{getSignedSessionId-BM05CMyp.esm.js → getSignedSessionId-np5XdQ1A.esm.js} +3 -3
- package/dist/{getSignedSessionId-BM05CMyp.esm.js.map → getSignedSessionId-np5XdQ1A.esm.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-BK4IBZlH.cjs.js → getVerifiedCredentialForWalletAccount-BDXePo9t.cjs.js} +3 -3
- package/dist/{getVerifiedCredentialForWalletAccount-BK4IBZlH.cjs.js.map → getVerifiedCredentialForWalletAccount-BDXePo9t.cjs.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-57Omjjyi.esm.js → getVerifiedCredentialForWalletAccount-CyyHc2ec.esm.js} +2 -2
- package/dist/{getVerifiedCredentialForWalletAccount-57Omjjyi.esm.js.map → getVerifiedCredentialForWalletAccount-CyyHc2ec.esm.js.map} +1 -1
- package/dist/index.cjs.js +82 -57
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +82 -57
- package/dist/index.esm.js.map +1 -1
- package/dist/{isMfaRequiredForAction-CXRaUbFE.esm.js → isMfaRequiredForAction-BtO6Xkeu.esm.js} +2 -2
- package/dist/{isMfaRequiredForAction-CXRaUbFE.esm.js.map → isMfaRequiredForAction-BtO6Xkeu.esm.js.map} +1 -1
- package/dist/{isMfaRequiredForAction-BS239c-s.cjs.js → isMfaRequiredForAction-C84laGI8.cjs.js} +2 -2
- package/dist/{isMfaRequiredForAction-BS239c-s.cjs.js.map → isMfaRequiredForAction-C84laGI8.cjs.js.map} +1 -1
- package/dist/modules/apiClient/apiClient.types.d.ts +7 -0
- package/dist/modules/apiClient/apiClient.types.d.ts.map +1 -1
- package/dist/modules/apiClient/constants.d.ts +2 -0
- package/dist/modules/apiClient/constants.d.ts.map +1 -1
- package/dist/modules/apiClient/createApiClient.d.ts.map +1 -1
- package/dist/modules/auth/getElevatedAccessToken/getElevatedAccessToken.d.ts +15 -8
- package/dist/modules/auth/getElevatedAccessToken/getElevatedAccessToken.d.ts.map +1 -1
- package/dist/modules/auth/passkeys/deletePasskey/deletePasskey.d.ts.map +1 -1
- package/dist/modules/auth/passkeys/serverRegisterPasskey/serverRegisterPasskey.d.ts.map +1 -1
- package/dist/modules/mfa/deleteMfaDevice/deleteMfaDevice.d.ts +6 -4
- package/dist/modules/mfa/deleteMfaDevice/deleteMfaDevice.d.ts.map +1 -1
- package/dist/modules/mfa/registerTotpMfaDevice/registerTotpMfaDevice.d.ts.map +1 -1
- package/dist/services/instrumentation/constants.d.ts +17 -0
- package/dist/services/instrumentation/constants.d.ts.map +1 -0
- package/dist/services/instrumentation/createInstrumentation/createInstrumentation.d.ts +18 -0
- package/dist/services/instrumentation/createInstrumentation/createInstrumentation.d.ts.map +1 -0
- package/dist/services/instrumentation/createInstrumentation/index.d.ts +2 -0
- package/dist/services/instrumentation/createInstrumentation/index.d.ts.map +1 -0
- package/dist/services/instrumentation/extractSessionId/extractSessionId.d.ts +12 -0
- package/dist/services/instrumentation/extractSessionId/extractSessionId.d.ts.map +1 -0
- package/dist/services/instrumentation/instrumentFunction/extractParams/extractParams.d.ts +27 -0
- package/dist/services/instrumentation/instrumentFunction/extractParams/extractParams.d.ts.map +1 -0
- package/dist/services/instrumentation/instrumentFunction/index.d.ts +2 -0
- package/dist/services/instrumentation/instrumentFunction/index.d.ts.map +1 -0
- package/dist/services/instrumentation/instrumentFunction/instrumentFunction.d.ts +73 -0
- package/dist/services/instrumentation/instrumentFunction/instrumentFunction.d.ts.map +1 -0
- package/dist/services/instrumentation/instrumentFunction/scrubResolvedValue/scrubResolvedValue.d.ts +14 -0
- package/dist/services/instrumentation/instrumentFunction/scrubResolvedValue/scrubResolvedValue.d.ts.map +1 -0
- package/dist/services/instrumentation/instrumentation.types.d.ts +49 -0
- package/dist/services/instrumentation/instrumentation.types.d.ts.map +1 -0
- package/dist/services/instrumentation/scrubParameters/index.d.ts +2 -0
- package/dist/services/instrumentation/scrubParameters/index.d.ts.map +1 -0
- package/dist/services/instrumentation/scrubParameters/scrubParameters.d.ts +8 -0
- package/dist/services/instrumentation/scrubParameters/scrubParameters.d.ts.map +1 -0
- package/dist/services/instrumentation/transports/createDynamicTransport/createDynamicTransport.d.ts +24 -0
- package/dist/services/instrumentation/transports/createDynamicTransport/createDynamicTransport.d.ts.map +1 -0
- package/dist/services/instrumentation/transports/createDynamicTransport/index.d.ts +2 -0
- package/dist/services/instrumentation/transports/createDynamicTransport/index.d.ts.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/utils/getUserAgent/getUserAgent.d.ts +10 -0
- package/dist/utils/getUserAgent/getUserAgent.d.ts.map +1 -0
- package/dist/waas.cjs.js +4 -4
- package/dist/waas.esm.js +3 -3
- package/dist/waasCore.cjs.js +4 -4
- package/dist/waasCore.esm.js +3 -3
- package/package.json +3 -3
- package/dist/InvalidParamError-Dc2HgrDm.esm.js.map +0 -1
- package/dist/InvalidParamError-z_h8HyKL.cjs.js.map +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import { A as getBuffer, C as CannotTrackError, D as INITIALIZE_STORAGE_SYNC_TRACKER_KEY, E as GENERATE_SESSION_KEYS_TRACKER_KEY, F as createLocalStorageAdapter, I as subscribeWithSelector, L as isEqualShallow, M as createStorageKeySchema, N as createStorage, O as REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY, T as FETCH_PROJECT_SETTINGS_TRACKER_KEY, _ as NoNetworkProvidersError, a as updateWalletProviderKeysForVerifiedCredentials, b as createLogger, c as createSignInMessageStatement, d as createVisit, f as hasExtension, g as WalletAlreadyLinkedToAnotherUserError, h as isCaptchaRequired, i as getNetworksData, j as generateSessionKeys, k as isServerSideRendering, l as formatSignInMessage, m as consumeCaptchaToken, o as verifyMessageSignatureOwnership, p as setCaptchaToken, s as removeUnverifiedWalletAccount, t as getNetworkProviderFromNetworkId, u as setUnverifiedWalletAccounts, v as createRealtimeService, w as createDeferredPromise, x as createCrossTabBroadcast, y as createIndexedDBKeychainService } from "./getNetworkProviderFromNetworkId-
|
|
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 { n as refreshAuth, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-
|
|
5
|
-
import { n as getMfaMethods, r as consumeMfaToken, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-
|
|
1
|
+
import { A as NONCE_POOL_SIZE, D as randomString, E as ValueMustBeDefinedError, F as getCore, I as name, L as version, M as setDefaultClient, O as CLIENT_SDK_NAME, P as BaseError, S as getElevatedAccessToken, T as assertDefined, _ as MfaRateLimitedError, a as DYNAMIC_ICONIC_SPRITE_URL, b as InvalidExternalAuthError, c as CHAINS_INFO_MAP, d as UnauthorizedError, g as SandboxMaximumThresholdReachedError, h as getNonce, j as getDefaultClient, l as fetchAndStoreNonces, o as SDK_API_CORE_VERSION, s as getChainFromVerifiedCredentialChain, t as InvalidParamError, u as createApiClient, v as MfaInvalidOtpError, w as isCookieEnabled, x as APIError, y as LinkCredentialError } from "./InvalidParamError-BgvcmQ36.esm.js";
|
|
2
|
+
import { A as getBuffer, C as CannotTrackError, D as INITIALIZE_STORAGE_SYNC_TRACKER_KEY, E as GENERATE_SESSION_KEYS_TRACKER_KEY, F as createLocalStorageAdapter, I as subscribeWithSelector, L as isEqualShallow, M as createStorageKeySchema, N as createStorage, O as REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY, T as FETCH_PROJECT_SETTINGS_TRACKER_KEY, _ as NoNetworkProvidersError, a as updateWalletProviderKeysForVerifiedCredentials, b as createLogger, c as createSignInMessageStatement, d as createVisit, f as hasExtension, g as WalletAlreadyLinkedToAnotherUserError, h as isCaptchaRequired, i as getNetworksData, j as generateSessionKeys, k as isServerSideRendering, l as formatSignInMessage, m as consumeCaptchaToken, o as verifyMessageSignatureOwnership, p as setCaptchaToken, s as removeUnverifiedWalletAccount, t as getNetworkProviderFromNetworkId, u as setUnverifiedWalletAccounts, v as createRealtimeService, w as createDeferredPromise, x as createCrossTabBroadcast, y as createIndexedDBKeychainService } from "./getNetworkProviderFromNetworkId-DoLT1yjR.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-CyyHc2ec.esm.js";
|
|
4
|
+
import { n as refreshAuth, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-CfH6ZpRB.esm.js";
|
|
5
|
+
import { n as getMfaMethods, r as consumeMfaToken, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-BtO6Xkeu.esm.js";
|
|
6
6
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
7
|
-
import { AuthModeEnum, ExchangeKeyEnum, JwtVerifiedCredentialFormatEnum, MFAAction, MfaBackupCodeAcknowledgement, ProviderEnum, WaasBackupOptionsEnum, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
|
|
7
|
+
import { AuthModeEnum, ExchangeKeyEnum, JwtVerifiedCredentialFormatEnum, MFAAction, MfaBackupCodeAcknowledgement, ProviderEnum, TokenScope, WaasBackupOptionsEnum, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
|
|
8
8
|
import * as z from "zod/mini";
|
|
9
9
|
import EventEmitter, { EventEmitter as EventEmitter$1 } from "eventemitter3";
|
|
10
10
|
import { browserSupportsWebAuthn, startAuthentication, startRegistration } from "@simplewebauthn/browser";
|
|
@@ -701,6 +701,61 @@ const createWebFetch = () => {
|
|
|
701
701
|
return window.fetch.bind(window);
|
|
702
702
|
};
|
|
703
703
|
|
|
704
|
+
//#endregion
|
|
705
|
+
//#region src/services/instrumentation/constants.ts
|
|
706
|
+
const DEFAULT_PII_FIELDS = [
|
|
707
|
+
"password",
|
|
708
|
+
"token",
|
|
709
|
+
"secret",
|
|
710
|
+
"privateKey",
|
|
711
|
+
"mnemonic",
|
|
712
|
+
"seed",
|
|
713
|
+
"email",
|
|
714
|
+
"phone",
|
|
715
|
+
"ssn",
|
|
716
|
+
"address",
|
|
717
|
+
"authorization"
|
|
718
|
+
];
|
|
719
|
+
|
|
720
|
+
//#endregion
|
|
721
|
+
//#region src/services/instrumentation/createInstrumentation/createInstrumentation.ts
|
|
722
|
+
const buildPiiFields = (customFields = []) => {
|
|
723
|
+
const merged = [...DEFAULT_PII_FIELDS, ...customFields];
|
|
724
|
+
return [...new Set(merged)];
|
|
725
|
+
};
|
|
726
|
+
/**
|
|
727
|
+
* Creates the instrumentation service that gates event emission behind an
|
|
728
|
+
* enabled flag and delegates to a pluggable transport.
|
|
729
|
+
*
|
|
730
|
+
* The transport is intentionally optional at creation time — it is wired in
|
|
731
|
+
* later via setTransport so the SDK can initialise without one. Events logged
|
|
732
|
+
* before a transport is set are simply dropped.
|
|
733
|
+
*
|
|
734
|
+
* Custom piiFields are merged with and deduplicated against the defaults so
|
|
735
|
+
* callers only need to list additional fields, not replicate the baseline.
|
|
736
|
+
*/
|
|
737
|
+
const createInstrumentation = ({ config: inputConfig } = {}) => {
|
|
738
|
+
let transport;
|
|
739
|
+
const config = {
|
|
740
|
+
enabled: inputConfig?.enabled ?? true,
|
|
741
|
+
piiFields: buildPiiFields(inputConfig?.piiFields)
|
|
742
|
+
};
|
|
743
|
+
const emit = (event) => {
|
|
744
|
+
if (config.enabled) transport?.log(event);
|
|
745
|
+
};
|
|
746
|
+
return {
|
|
747
|
+
config,
|
|
748
|
+
log: emit,
|
|
749
|
+
logFunction: emit,
|
|
750
|
+
setEnabled: (value) => {
|
|
751
|
+
config.enabled = value;
|
|
752
|
+
},
|
|
753
|
+
setTransport: (t) => {
|
|
754
|
+
transport = t;
|
|
755
|
+
}
|
|
756
|
+
};
|
|
757
|
+
};
|
|
758
|
+
|
|
704
759
|
//#endregion
|
|
705
760
|
//#region src/services/navigate/createNavigationHandler/createNavigationHandler.ts
|
|
706
761
|
/**
|
|
@@ -916,6 +971,8 @@ const createCore = (config) => {
|
|
|
916
971
|
const debouncedMutex = createDebouncedMutex();
|
|
917
972
|
const eventEmitter = createEventEmitter();
|
|
918
973
|
const initTrack = createAsyncTrack();
|
|
974
|
+
const sdkSessionId = randomString({ length: 32 });
|
|
975
|
+
const instrumentation = createInstrumentation({ config: config.instrumentation });
|
|
919
976
|
const runtimeServices = createRuntimeServices();
|
|
920
977
|
const passkey = config.coreConfig?.passkey ?? createWebPasskeyService();
|
|
921
978
|
const realtime = config.coreConfig?.realtime ?? createRealtimeService();
|
|
@@ -932,6 +989,7 @@ const createCore = (config) => {
|
|
|
932
989
|
fetch,
|
|
933
990
|
getApiHeaders: config.coreConfig?.getApiHeaders ?? (() => ({})),
|
|
934
991
|
initTrack,
|
|
992
|
+
instrumentation,
|
|
935
993
|
keychain,
|
|
936
994
|
logger,
|
|
937
995
|
metadata: {
|
|
@@ -943,6 +1001,7 @@ const createCore = (config) => {
|
|
|
943
1001
|
passkey,
|
|
944
1002
|
realtime,
|
|
945
1003
|
runtimeServices,
|
|
1004
|
+
sdkSessionId,
|
|
946
1005
|
state,
|
|
947
1006
|
storage,
|
|
948
1007
|
transformers: config.transformers,
|
|
@@ -1365,47 +1424,6 @@ const signInWithExternalJwt = async ({ externalJwt, sessionPublicKey } = {}, cli
|
|
|
1365
1424
|
return response;
|
|
1366
1425
|
};
|
|
1367
1426
|
|
|
1368
|
-
//#endregion
|
|
1369
|
-
//#region src/modules/auth/getElevatedAccessToken/getElevatedAccessToken.ts
|
|
1370
|
-
/**
|
|
1371
|
-
* Gets an elevated access token by scope.
|
|
1372
|
-
*
|
|
1373
|
-
* This function retrieves an elevated access token that contains the specified scope.
|
|
1374
|
-
* Expired tokens are automatically filtered out.
|
|
1375
|
-
*
|
|
1376
|
-
* If the token has `singleUse: true`, it will be automatically
|
|
1377
|
-
* consumed (removed from state) after retrieval. Otherwise, it remains in state
|
|
1378
|
-
* for future use.
|
|
1379
|
-
*
|
|
1380
|
-
* @param params - The parameters object.
|
|
1381
|
-
* @param params.scope - The scope to match (e.g., 'wallet:export').
|
|
1382
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1383
|
-
* @returns The elevated access token if found and not expired, or undefined if not found or expired.
|
|
1384
|
-
*
|
|
1385
|
-
* @example
|
|
1386
|
-
* ```typescript
|
|
1387
|
-
* const token = getElevatedAccessToken({ scope: 'wallet:export' });
|
|
1388
|
-
* if (token) {
|
|
1389
|
-
* // Use the token
|
|
1390
|
-
* // Token is automatically consumed if singleUse: true
|
|
1391
|
-
* }
|
|
1392
|
-
* ```
|
|
1393
|
-
*/
|
|
1394
|
-
const getElevatedAccessToken = ({ scope }, client = getDefaultClient()) => {
|
|
1395
|
-
const core = getCore(client);
|
|
1396
|
-
const now = /* @__PURE__ */ new Date();
|
|
1397
|
-
const elevatedAccessTokens = core.state.get().elevatedAccessTokens || [];
|
|
1398
|
-
const validTokens = elevatedAccessTokens.filter((token$1) => !token$1.expiresAt || token$1.expiresAt > now);
|
|
1399
|
-
if (validTokens.length !== elevatedAccessTokens.length) core.state.set({ elevatedAccessTokens: validTokens });
|
|
1400
|
-
const token = validTokens.find((token$1) => token$1.scopes.includes(scope));
|
|
1401
|
-
if (!token) return;
|
|
1402
|
-
if (token.singleUse) {
|
|
1403
|
-
const updatedTokens = validTokens.filter((t) => t !== token);
|
|
1404
|
-
core.state.set({ elevatedAccessTokens: updatedTokens });
|
|
1405
|
-
}
|
|
1406
|
-
return token.token;
|
|
1407
|
-
};
|
|
1408
|
-
|
|
1409
1427
|
//#endregion
|
|
1410
1428
|
//#region src/modules/auth/passkeys/deletePasskey/deletePasskey.ts
|
|
1411
1429
|
/**
|
|
@@ -1417,7 +1435,10 @@ const getElevatedAccessToken = ({ scope }, client = getDefaultClient()) => {
|
|
|
1417
1435
|
*/
|
|
1418
1436
|
const deletePasskey = async ({ passkeyId }, client = getDefaultClient()) => {
|
|
1419
1437
|
const core = getCore(client);
|
|
1420
|
-
await createApiClient({
|
|
1438
|
+
await createApiClient({
|
|
1439
|
+
elevatedAccessTokenScope: TokenScope.Credentialunlink,
|
|
1440
|
+
includeMfaToken: true
|
|
1441
|
+
}, client).deletePasskey({
|
|
1421
1442
|
deleteUserPasskeyRequest: { passkeyId },
|
|
1422
1443
|
environmentId: core.environmentId
|
|
1423
1444
|
});
|
|
@@ -1450,7 +1471,7 @@ const getPasskeyRegistrationOptions = async (client) => {
|
|
|
1450
1471
|
//#region src/modules/auth/passkeys/serverRegisterPasskey/serverRegisterPasskey.ts
|
|
1451
1472
|
const serverRegisterPasskey = async ({ registration, createMfaToken }, client) => {
|
|
1452
1473
|
const core = getCore(client);
|
|
1453
|
-
return await createApiClient({}, client).registerPasskey({
|
|
1474
|
+
return await createApiClient({ elevatedAccessTokenScope: TokenScope.Credentiallink }, client).registerPasskey({
|
|
1454
1475
|
environmentId: core.environmentId,
|
|
1455
1476
|
passkeyRegisterRequest: {
|
|
1456
1477
|
...registration,
|
|
@@ -3119,23 +3140,27 @@ const createNewMfaRecoveryCodes = async (client = getDefaultClient()) => {
|
|
|
3119
3140
|
/**
|
|
3120
3141
|
* Deletes a specific MFA device from the user's account.
|
|
3121
3142
|
*
|
|
3122
|
-
*
|
|
3123
|
-
*
|
|
3143
|
+
* When an elevated access token for `credential:unlink` is available,
|
|
3144
|
+
* it is sent via the `x-dyn-elevated-access-token` header and the
|
|
3145
|
+
* MFA auth token is not required. Otherwise, `mfaAuthToken` must be
|
|
3146
|
+
* provided for backward compatibility with the legacy MFA flow.
|
|
3124
3147
|
*
|
|
3125
3148
|
* @param params.deviceId - The unique identifier of the MFA device to delete.
|
|
3126
|
-
* @param params.mfaAuthToken - The MFA authentication token
|
|
3149
|
+
* @param params.mfaAuthToken - The MFA authentication token. Optional when using elevated access tokens.
|
|
3127
3150
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
3128
3151
|
* @returns A promise that resolves when the MFA device is successfully deleted.
|
|
3129
3152
|
*/
|
|
3130
3153
|
const deleteMfaDevice = async ({ deviceId, mfaAuthToken }, client = getDefaultClient()) => {
|
|
3131
3154
|
const core = getCore(client);
|
|
3132
|
-
const apiClient = createApiClient({}, client);
|
|
3133
3155
|
assertDefined(deviceId, "deviceId is required");
|
|
3134
|
-
|
|
3135
|
-
|
|
3156
|
+
if (!getElevatedAccessToken({
|
|
3157
|
+
consume: false,
|
|
3158
|
+
scope: TokenScope.Credentialunlink
|
|
3159
|
+
}, client)) assertDefined(mfaAuthToken, "mfaAuthToken is required");
|
|
3160
|
+
return createApiClient({ elevatedAccessTokenScope: TokenScope.Credentialunlink }, client).deleteMfaDevice({
|
|
3136
3161
|
environmentId: core.environmentId,
|
|
3137
3162
|
mfaDeviceId: deviceId,
|
|
3138
|
-
xMfaAuthToken: mfaAuthToken
|
|
3163
|
+
xMfaAuthToken: mfaAuthToken ?? ""
|
|
3139
3164
|
});
|
|
3140
3165
|
};
|
|
3141
3166
|
|
|
@@ -3222,7 +3247,7 @@ const isUserMissingMfaAuth = (client = getDefaultClient()) => {
|
|
|
3222
3247
|
*/
|
|
3223
3248
|
const registerTotpMfaDevice = async (client = getDefaultClient()) => {
|
|
3224
3249
|
const core = getCore(client);
|
|
3225
|
-
return createApiClient({}, client).registerTotpMfaDevice({ environmentId: core.environmentId });
|
|
3250
|
+
return createApiClient({ elevatedAccessTokenScope: TokenScope.Credentiallink }, client).registerTotpMfaDevice({ environmentId: core.environmentId });
|
|
3226
3251
|
};
|
|
3227
3252
|
|
|
3228
3253
|
//#endregion
|