@dynamic-labs-sdk/client 1.19.1 → 1.21.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/{updateAuthFromVerifyResponse-D4au3jUv.native.esm.js → NativeModuleNotLinkedError-Ds_t3AZQ.native.esm.js} +158 -27
- package/dist/NativeModuleNotLinkedError-Ds_t3AZQ.native.esm.js.map +1 -0
- package/dist/client/core/createCore/getInitialState.d.ts.map +1 -1
- package/dist/client/createDynamicClient/assertClientProps/assertClientProps.d.ts +16 -0
- package/dist/client/createDynamicClient/assertClientProps/assertClientProps.d.ts.map +1 -0
- package/dist/client/createDynamicClient/assertClientProps/index.d.ts +2 -0
- package/dist/client/createDynamicClient/assertClientProps/index.d.ts.map +1 -0
- package/dist/client/createDynamicClient/createDynamicClient.d.ts.map +1 -1
- package/dist/client/types/DynamicClientConfig.d.ts +88 -6
- package/dist/client/types/DynamicClientConfig.d.ts.map +1 -1
- package/dist/consumeMfaTokenIfRequiredForAction-CWVbmQ2A.cjs +17 -0
- package/dist/consumeMfaTokenIfRequiredForAction-CWVbmQ2A.cjs.map +1 -0
- package/dist/consumeMfaTokenIfRequiredForAction-C_IvLTH6.esm.js +12 -0
- package/dist/consumeMfaTokenIfRequiredForAction-C_IvLTH6.esm.js.map +1 -0
- package/dist/core.cjs +13 -12
- package/dist/core.cjs.map +1 -1
- package/dist/core.esm.js +6 -5
- package/dist/core.esm.js.map +1 -1
- package/dist/core.native.esm.js +5 -5
- package/dist/errors/WaasLoadFailedError.d.ts +45 -0
- package/dist/errors/WaasLoadFailedError.d.ts.map +1 -0
- package/dist/exports/index.d.ts +1 -0
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/waas.d.ts +10 -0
- package/dist/exports/waas.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-DmH039jx.cjs → getNetworkProviderFromNetworkId-5V4Cf8A_.cjs} +150 -70
- package/dist/getNetworkProviderFromNetworkId-5V4Cf8A_.cjs.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-Ct6nH2tC.esm.js → getNetworkProviderFromNetworkId-DhS1snCk.esm.js} +149 -68
- package/dist/getNetworkProviderFromNetworkId-DhS1snCk.esm.js.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-DL6OXPUn.native.esm.js → getNetworkProviderFromNetworkId-DudGvTmd.native.esm.js} +151 -146
- package/dist/getNetworkProviderFromNetworkId-DudGvTmd.native.esm.js.map +1 -0
- package/dist/{getSignedSessionId-Dz4U61DG.cjs → getSignedSessionId-E6FIx5aj.cjs} +2 -17
- package/dist/getSignedSessionId-E6FIx5aj.cjs.map +1 -0
- package/dist/{getSignedSessionId-CPautem1.native.esm.js → getSignedSessionId-ekp3lswQ.esm.js} +3 -12
- package/dist/getSignedSessionId-ekp3lswQ.esm.js.map +1 -0
- package/dist/{getSignedSessionId-CAQwZYYk.esm.js → getSignedSessionId-xZGFa4nS.native.esm.js} +3 -3
- package/dist/{getSignedSessionId-CPautem1.native.esm.js.map → getSignedSessionId-xZGFa4nS.native.esm.js.map} +1 -1
- package/dist/{getWalletProviderByKey-CSVSMios.cjs → getWalletProviderByKey-BwivhTYu.cjs} +2 -2
- package/dist/{getWalletProviderByKey-CSVSMios.cjs.map → getWalletProviderByKey-BwivhTYu.cjs.map} +1 -1
- package/dist/{getWalletProviderByKey-DTBGx_qd.esm.js → getWalletProviderByKey-CS299i1V.esm.js} +2 -2
- package/dist/{getWalletProviderByKey-DTBGx_qd.esm.js.map → getWalletProviderByKey-CS299i1V.esm.js.map} +1 -1
- package/dist/{getWalletProviderByKey-BKveb5Rh.native.esm.js → getWalletProviderByKey-CYGDw6-5.native.esm.js} +2 -2
- package/dist/{getWalletProviderByKey-BKveb5Rh.native.esm.js.map → getWalletProviderByKey-CYGDw6-5.native.esm.js.map} +1 -1
- package/dist/index.cjs +58 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +36 -18
- package/dist/index.esm.js.map +1 -1
- package/dist/index.native.esm.js +36 -18
- package/dist/index.native.esm.js.map +1 -1
- package/dist/{isDynamicWaasEnabled-Dmbdiybh.cjs → isDynamicWaasEnabled-BEVAshnS.cjs} +2 -3
- package/dist/{isDynamicWaasEnabled-Dmbdiybh.cjs.map → isDynamicWaasEnabled-BEVAshnS.cjs.map} +1 -1
- package/dist/{isDynamicWaasEnabled-gu-9QF8-.native.esm.js → isDynamicWaasEnabled-C8Fb1xHn.native.esm.js} +2 -2
- package/dist/{isDynamicWaasEnabled-gu-9QF8-.native.esm.js.map → isDynamicWaasEnabled-C8Fb1xHn.native.esm.js.map} +1 -1
- package/dist/{isDynamicWaasEnabled-Bb9e8w3u.esm.js → isDynamicWaasEnabled-D5e2K02u.esm.js} +2 -2
- package/dist/{isDynamicWaasEnabled-Bb9e8w3u.esm.js.map → isDynamicWaasEnabled-D5e2K02u.esm.js.map} +1 -1
- package/dist/{isMfaRequiredForAction-BkrwKqo1.native.esm.js → isMfaRequiredForAction-A02NFVt8.esm.js} +3 -32
- package/dist/isMfaRequiredForAction-A02NFVt8.esm.js.map +1 -0
- package/dist/isMfaRequiredForAction-D4TSMQ4m.native.esm.js +77 -0
- package/dist/isMfaRequiredForAction-D4TSMQ4m.native.esm.js.map +1 -0
- package/dist/isMfaRequiredForAction-odpvykkm.cjs +94 -0
- package/dist/isMfaRequiredForAction-odpvykkm.cjs.map +1 -0
- package/dist/{isUserOnboardingComplete-CruwjMvs.cjs → isUserOnboardingComplete-CEVSIxJC.cjs} +49 -4
- package/dist/isUserOnboardingComplete-CEVSIxJC.cjs.map +1 -0
- package/dist/{isUserOnboardingComplete-DAesufca.esm.js → isUserOnboardingComplete-Cgkw21XZ.esm.js} +44 -4
- package/dist/isUserOnboardingComplete-Cgkw21XZ.esm.js.map +1 -0
- package/dist/{isUserOnboardingComplete-BLm0JQ_z.native.esm.js → isUserOnboardingComplete-CvQShE05.native.esm.js} +44 -4
- package/dist/{isUserOnboardingComplete-CruwjMvs.cjs.map → isUserOnboardingComplete-CvQShE05.native.esm.js.map} +1 -1
- package/dist/migrateFromFireblocks-BMtelH1a.native.esm.js +321 -0
- package/dist/migrateFromFireblocks-BMtelH1a.native.esm.js.map +1 -0
- package/dist/{migrateFromFireblocks-DrHwloUB.cjs → migrateFromFireblocks-CLUkVcFT.cjs} +54 -3
- package/dist/migrateFromFireblocks-CLUkVcFT.cjs.map +1 -0
- package/dist/{migrateFromFireblocks-Do4mQTl7.native.esm.js → migrateFromFireblocks-DcKrquTE.esm.js} +43 -4
- package/dist/migrateFromFireblocks-DcKrquTE.esm.js.map +1 -0
- package/dist/modules/storageSync/hydrateStateWithStorage/hydrateStateWithStorage.d.ts.map +1 -1
- package/dist/modules/storageSync/schema.d.ts +0 -2
- package/dist/modules/storageSync/schema.d.ts.map +1 -1
- package/dist/modules/storageSync/syncStateWithStorage/syncStateWithStorage.d.ts.map +1 -1
- package/dist/modules/waas/businessAccounts/addBusinessAccountMember/addBusinessAccountMember.d.ts +25 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountMember/addBusinessAccountMember.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountMember/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountMember/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountSigner/addBusinessAccountSigner.d.ts +35 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountSigner/addBusinessAccountSigner.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountSigner/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/addBusinessAccountSigner/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/addWalletToBusinessAccount.d.ts +19 -0
- package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/addWalletToBusinessAccount.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/businessAccounts.types.d.ts +184 -0
- package/dist/modules/waas/businessAccounts/businessAccounts.types.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/createBusinessAccount/createBusinessAccount.d.ts +16 -0
- package/dist/modules/waas/businessAccounts/createBusinessAccount/createBusinessAccount.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/createBusinessAccount/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/createBusinessAccount/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/createWalletForBusinessAccount/createWalletForBusinessAccount.d.ts +36 -0
- package/dist/modules/waas/businessAccounts/createWalletForBusinessAccount/createWalletForBusinessAccount.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/createWalletForBusinessAccount/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/createWalletForBusinessAccount/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccount/getBusinessAccount.d.ts +15 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccount/getBusinessAccount.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccount/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccount/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountsClient/getBusinessAccountsClient.d.ts +12 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountsClient/getBusinessAccountsClient.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountsClient/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountsClient/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccounts/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccounts/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccounts/listBusinessAccounts.d.ts +10 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccounts/listBusinessAccounts.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/removeBusinessAccountMember.d.ts +33 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/removeBusinessAccountMember.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/removeBusinessAccountSigner.d.ts +37 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/removeBusinessAccountSigner.d.ts.map +1 -0
- package/dist/modules/waas/createWaasClient/createWaasClient.d.ts.map +1 -1
- package/dist/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
- package/dist/modules/waas/createWaasProvider/isWaasLoadExhaustionError.d.ts +11 -0
- package/dist/modules/waas/createWaasProvider/isWaasLoadExhaustionError.d.ts.map +1 -0
- package/dist/modules/waas/waas.types.d.ts +11 -0
- 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/modules/wallets/networks/networkDataSchema/index.d.ts +2 -0
- package/dist/modules/wallets/networks/networkDataSchema/index.d.ts.map +1 -0
- package/dist/modules/wallets/networks/networkDataSchema/networkDataSchema.d.ts +23 -0
- package/dist/modules/wallets/networks/networkDataSchema/networkDataSchema.d.ts.map +1 -0
- package/dist/modules/wallets/walletAccount/walletAccount.types.d.ts +2 -0
- package/dist/modules/wallets/walletAccount/walletAccount.types.d.ts.map +1 -1
- package/dist/services/keychain/createKeychainService/utils/openDatabase.d.ts +9 -1
- package/dist/services/keychain/createKeychainService/utils/openDatabase.d.ts.map +1 -1
- package/dist/services/keychain/createKeychainService/utils/withDatabase/withDatabase.d.ts +2 -1
- package/dist/services/keychain/createKeychainService/utils/withDatabase/withDatabase.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/{updateAuthFromVerifyResponse-CY0xTIXF.cjs → updateAuthFromVerifyResponse-CSqnGlh3.cjs} +427 -43
- package/dist/updateAuthFromVerifyResponse-CSqnGlh3.cjs.map +1 -0
- package/dist/{updateAuthFromVerifyResponse-inxvMWJB.esm.js → updateAuthFromVerifyResponse-C_YKKAIX.esm.js} +354 -27
- package/dist/updateAuthFromVerifyResponse-C_YKKAIX.esm.js.map +1 -0
- package/dist/utils/createTranslateRejection/createTranslateRejection.d.ts +29 -0
- package/dist/utils/createTranslateRejection/createTranslateRejection.d.ts.map +1 -0
- package/dist/utils/createTranslateRejection/index.d.ts +3 -0
- package/dist/utils/createTranslateRejection/index.d.ts.map +1 -0
- package/dist/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.d.ts +7 -5
- package/dist/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.d.ts.map +1 -1
- package/dist/utils/getNonce/getNonce.d.ts +10 -4
- package/dist/utils/getNonce/getNonce.d.ts.map +1 -1
- package/dist/utils/getNonce/noncePoolStorage/schema.d.ts +19 -0
- package/dist/utils/getNonce/noncePoolStorage/schema.d.ts.map +1 -0
- package/dist/utils/getNonce/noncePoolStorage/updateNoncePoolStorage/updateNoncePoolStorage.d.ts +18 -0
- package/dist/utils/getNonce/noncePoolStorage/updateNoncePoolStorage/updateNoncePoolStorage.d.ts.map +1 -0
- package/dist/utils/getNonce/prefetchNoncesIfNeeded/prefetchNoncesIfNeeded.d.ts.map +1 -1
- package/dist/utils/getNonce/state.d.ts +5 -9
- package/dist/utils/getNonce/state.d.ts.map +1 -1
- package/dist/waas.cjs +281 -18
- package/dist/waas.cjs.map +1 -1
- package/dist/waas.esm.js +273 -18
- package/dist/waas.esm.js.map +1 -1
- package/dist/waas.native.esm.js +272 -18
- package/dist/waas.native.esm.js.map +1 -1
- package/dist/waasCore.cjs +291 -170
- package/dist/waasCore.cjs.map +1 -1
- package/dist/waasCore.esm.js +285 -164
- package/dist/waasCore.esm.js.map +1 -1
- package/dist/waasCore.native.esm.js +273 -371
- package/dist/waasCore.native.esm.js.map +1 -1
- package/ios/DynamicClientScreenshotProtection.mm +70 -32
- package/package.json +5 -5
- package/dist/getNetworkProviderFromNetworkId-Ct6nH2tC.esm.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-DL6OXPUn.native.esm.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-DmH039jx.cjs.map +0 -1
- package/dist/getSignedSessionId-CAQwZYYk.esm.js.map +0 -1
- package/dist/getSignedSessionId-Dz4U61DG.cjs.map +0 -1
- package/dist/isMfaRequiredForAction-BkrwKqo1.native.esm.js.map +0 -1
- package/dist/isMfaRequiredForAction-CHeYEkjj.cjs +0 -430
- package/dist/isMfaRequiredForAction-CHeYEkjj.cjs.map +0 -1
- package/dist/isMfaRequiredForAction-DxJQm48x.esm.js +0 -343
- package/dist/isMfaRequiredForAction-DxJQm48x.esm.js.map +0 -1
- package/dist/isUserOnboardingComplete-BLm0JQ_z.native.esm.js.map +0 -1
- package/dist/isUserOnboardingComplete-DAesufca.esm.js.map +0 -1
- package/dist/migrateFromFireblocks-C-lXWvvo.esm.js +0 -65
- package/dist/migrateFromFireblocks-C-lXWvvo.esm.js.map +0 -1
- package/dist/migrateFromFireblocks-Do4mQTl7.native.esm.js.map +0 -1
- package/dist/migrateFromFireblocks-DrHwloUB.cjs.map +0 -1
- package/dist/updateAuthFromVerifyResponse-CY0xTIXF.cjs.map +0 -1
- package/dist/updateAuthFromVerifyResponse-D4au3jUv.native.esm.js.map +0 -1
- package/dist/updateAuthFromVerifyResponse-inxvMWJB.esm.js.map +0 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { AuthStorageEnum, Configuration, JwtVerifiedCredentialFormatEnum, SDKApi, WalletProviderEnum, isDeviceNonceSignatureRequiredForUrl } from "@dynamic-labs/sdk-api-core";
|
|
2
|
+
import * as z from "zod/mini";
|
|
2
3
|
|
|
3
4
|
//#region package.json
|
|
4
5
|
var name = "@dynamic-labs-sdk/client";
|
|
5
|
-
var version = "1.
|
|
6
|
+
var version = "1.21.0";
|
|
6
7
|
var dependencies = {
|
|
7
8
|
"@dynamic-labs-sdk/assert-package-version": "workspace:*",
|
|
8
|
-
"@dynamic-labs-wallet/browser-wallet-client": "1.0.
|
|
9
|
-
"@dynamic-labs-wallet/forward-mpc-client": "0.
|
|
9
|
+
"@dynamic-labs-wallet/browser-wallet-client": "1.0.73",
|
|
10
|
+
"@dynamic-labs-wallet/forward-mpc-client": "1.0.1",
|
|
10
11
|
"@dynamic-labs/sdk-api-core": "catalog:",
|
|
11
12
|
"@simplewebauthn/browser": "13.1.0",
|
|
12
13
|
"ably": "2.17.1",
|
|
@@ -454,27 +455,91 @@ const createConvertToApiErrorMiddleware = ({ errorMappers = [] }) => ({ post: as
|
|
|
454
455
|
return context.response;
|
|
455
456
|
} });
|
|
456
457
|
|
|
458
|
+
//#endregion
|
|
459
|
+
//#region src/services/storage/createStorageKeySchema/createStorageKeySchema.ts
|
|
460
|
+
/** @notInstrumented */
|
|
461
|
+
const createStorageKeySchema = (params) => {
|
|
462
|
+
return params;
|
|
463
|
+
};
|
|
464
|
+
|
|
465
|
+
//#endregion
|
|
466
|
+
//#region src/utils/getNonce/noncePoolStorage/schema.ts
|
|
467
|
+
/**
|
|
468
|
+
* Dedicated storage key for the prefetched nonce pool.
|
|
469
|
+
*
|
|
470
|
+
* The pool must NOT live in the synced state blob: that blob is rewritten on
|
|
471
|
+
* every state change from a possibly-stale in-memory copy, which resurrects
|
|
472
|
+
* already-consumed single-use nonces. This key is only ever written through
|
|
473
|
+
* `updateNoncePoolStorage`'s serialized read-modify-write.
|
|
474
|
+
*/
|
|
475
|
+
const noncePoolStorageKeySchema = createStorageKeySchema({
|
|
476
|
+
key: "nonce-pool",
|
|
477
|
+
schema: z.object({
|
|
478
|
+
expiration: z.number(),
|
|
479
|
+
nonces: z.array(z.string())
|
|
480
|
+
})
|
|
481
|
+
});
|
|
482
|
+
|
|
483
|
+
//#endregion
|
|
484
|
+
//#region src/utils/getNonce/noncePoolStorage/updateNoncePoolStorage/updateNoncePoolStorage.ts
|
|
485
|
+
const pendingUpdates = /* @__PURE__ */ new WeakMap();
|
|
486
|
+
/**
|
|
487
|
+
* Updates the persisted nonce pool with a serialized read-modify-write.
|
|
488
|
+
*
|
|
489
|
+
* The write is awaited before resolving, so once this returns the storage
|
|
490
|
+
* ledger reflects the update. Returns the pool as it was read (pre-update).
|
|
491
|
+
* @notInstrumented
|
|
492
|
+
*/
|
|
493
|
+
const updateNoncePoolStorage = async ({ update }, client) => {
|
|
494
|
+
const core = getCore(client);
|
|
495
|
+
let storedBeforeUpdate = null;
|
|
496
|
+
const run = async () => {
|
|
497
|
+
const stored = await core.storage.getItem(noncePoolStorageKeySchema);
|
|
498
|
+
storedBeforeUpdate = stored;
|
|
499
|
+
const updated = update(stored);
|
|
500
|
+
if (updated !== null) await core.storage.setItem(noncePoolStorageKeySchema, updated);
|
|
501
|
+
};
|
|
502
|
+
const chained = (pendingUpdates.get(core) ?? Promise.resolve()).then(run, run);
|
|
503
|
+
pendingUpdates.set(core, chained);
|
|
504
|
+
await chained;
|
|
505
|
+
return storedBeforeUpdate;
|
|
506
|
+
};
|
|
507
|
+
|
|
457
508
|
//#endregion
|
|
458
509
|
//#region src/utils/getNonce/getNonce.ts
|
|
459
510
|
/**
|
|
460
511
|
* Returns a nonce for wallet ownership verification.
|
|
461
512
|
*
|
|
462
|
-
*
|
|
463
|
-
*
|
|
464
|
-
*
|
|
513
|
+
* The pool lives exclusively in storage: every call pops the first nonce
|
|
514
|
+
* through `updateNoncePoolStorage`'s serialized read-modify-write, so the
|
|
515
|
+
* nonce is removed from storage before it is handed out and no in-memory
|
|
516
|
+
* copy can go stale. Nonces are single-use server-side — a stale copy handed
|
|
517
|
+
* out twice fails the second consume.
|
|
518
|
+
*
|
|
519
|
+
* When the pool is running low (≤1 remaining after pop) a background refetch
|
|
520
|
+
* is triggered. If the pool is empty or expired, nonces are fetched on-demand
|
|
521
|
+
* before returning.
|
|
465
522
|
* @notInstrumented
|
|
466
523
|
*/
|
|
467
524
|
const getNonce = async (client) => {
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
525
|
+
let nonce;
|
|
526
|
+
let remainingCount = 0;
|
|
527
|
+
await updateNoncePoolStorage({ update: (stored) => {
|
|
528
|
+
if (!stored || stored.nonces.length === 0 || stored.expiration <= Date.now()) return null;
|
|
529
|
+
const [first, ...remaining] = stored.nonces;
|
|
530
|
+
nonce = first;
|
|
531
|
+
remainingCount = remaining.length;
|
|
532
|
+
return {
|
|
533
|
+
expiration: stored.expiration,
|
|
534
|
+
nonces: remaining
|
|
535
|
+
};
|
|
536
|
+
} }, client);
|
|
537
|
+
if (nonce === void 0) {
|
|
538
|
+
await fetchAndStoreNonces(client);
|
|
539
|
+
return getNonce(client);
|
|
475
540
|
}
|
|
476
|
-
|
|
477
|
-
return
|
|
541
|
+
if (remainingCount <= 1) fetchAndStoreNonces(client);
|
|
542
|
+
return nonce;
|
|
478
543
|
};
|
|
479
544
|
|
|
480
545
|
//#endregion
|
|
@@ -620,17 +685,19 @@ const createApiClient = (options = {}, client) => {
|
|
|
620
685
|
//#endregion
|
|
621
686
|
//#region src/utils/getNonce/fetchAndStoreNonces/fetchAndStoreNonces.ts
|
|
622
687
|
/**
|
|
623
|
-
* Fetches a batch of nonces from the API
|
|
688
|
+
* Fetches a batch of nonces from the API and appends them to the pool in
|
|
689
|
+
* storage.
|
|
624
690
|
*
|
|
625
691
|
* Prefetching is critical for iOS deep link wallet providers (e.g. Phantom
|
|
626
692
|
* redirect). On iOS, a network request (like fetching a nonce) between a user
|
|
627
693
|
* action and a deeplink call will break the gesture chain, causing iOS to
|
|
628
694
|
* silently ignore the deeplink. By prefetching nonces ahead of time,
|
|
629
|
-
* `getNonce` can return
|
|
630
|
-
*
|
|
695
|
+
* `getNonce` can return from the stored pool without an interrupting network
|
|
696
|
+
* round-trip.
|
|
631
697
|
*
|
|
632
|
-
* New nonces are **appended** to the
|
|
633
|
-
* are not discarded by a background refetch
|
|
698
|
+
* New nonces are **appended** to the stored pool so that unconsumed entries
|
|
699
|
+
* are not discarded by a background refetch; an expired stored pool is
|
|
700
|
+
* replaced instead, since its nonces have already been evicted server-side.
|
|
634
701
|
*
|
|
635
702
|
* Concurrent refills are coalesced behind a single in-flight promise so that
|
|
636
703
|
* simultaneous callers share one `GET /nonces` round-trip instead of each
|
|
@@ -648,11 +715,13 @@ const fetchAndStoreNonces = async (client) => {
|
|
|
648
715
|
count: NONCE_POOL_SIZE,
|
|
649
716
|
environmentId
|
|
650
717
|
});
|
|
651
|
-
const
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
718
|
+
const expiration = Date.now() + NONCE_POOL_EXPIRATION_TIME;
|
|
719
|
+
await updateNoncePoolStorage({ update: (stored) => {
|
|
720
|
+
return {
|
|
721
|
+
expiration,
|
|
722
|
+
nonces: [...stored && stored.expiration > Date.now() ? stored.nonces : [], ...nonces]
|
|
723
|
+
};
|
|
724
|
+
} }, client);
|
|
656
725
|
})().finally(() => {
|
|
657
726
|
core.state.set({ nonceFetchInFlight: null });
|
|
658
727
|
});
|
|
@@ -799,6 +868,41 @@ const emitEvent = ({ event, args }, client) => {
|
|
|
799
868
|
eventEmitter.emit(event, args);
|
|
800
869
|
};
|
|
801
870
|
|
|
871
|
+
//#endregion
|
|
872
|
+
//#region src/utils/retryOnFail/InvalidRetryOnFailCallError.ts
|
|
873
|
+
/**
|
|
874
|
+
* This error is thrown when the `retryOnFail` function is called with an invalid
|
|
875
|
+
* number of retries (i.e. less than 0).
|
|
876
|
+
*/
|
|
877
|
+
var InvalidRetryOnFailCallError = class extends BaseError {
|
|
878
|
+
constructor(maxRetries) {
|
|
879
|
+
super({
|
|
880
|
+
cause: null,
|
|
881
|
+
code: "invalid_retry_on_fail_call_error",
|
|
882
|
+
docsUrl: null,
|
|
883
|
+
name: "InvalidRetryOnFailCallError",
|
|
884
|
+
shortMessage: `Invalid retries parameter for retryOnFail call: ${maxRetries}`
|
|
885
|
+
});
|
|
886
|
+
}
|
|
887
|
+
};
|
|
888
|
+
|
|
889
|
+
//#endregion
|
|
890
|
+
//#region src/utils/retryOnFail/retryOnFail.ts
|
|
891
|
+
/** @notInstrumented */
|
|
892
|
+
const retryOnFail = async ({ delay = 0, fn, maxRetries }) => {
|
|
893
|
+
for (let retry = 0; retry <= maxRetries; retry++) try {
|
|
894
|
+
return await fn();
|
|
895
|
+
} catch (error) {
|
|
896
|
+
if (retry >= maxRetries) throw error;
|
|
897
|
+
if (delay > 0) await new Promise((resolve) => setTimeout(resolve, delay));
|
|
898
|
+
}
|
|
899
|
+
/**
|
|
900
|
+
* Reaching this point should never happen and this
|
|
901
|
+
* error is thrown to help us debug the issue.
|
|
902
|
+
*/
|
|
903
|
+
throw new InvalidRetryOnFailCallError(maxRetries);
|
|
904
|
+
};
|
|
905
|
+
|
|
802
906
|
//#endregion
|
|
803
907
|
//#region src/errors/InvalidWalletProviderKeyError.ts
|
|
804
908
|
var InvalidWalletProviderKeyError = class extends BaseError {
|
|
@@ -1117,6 +1221,115 @@ const getWalletAccounts = (client = getDefaultClient()) => {
|
|
|
1117
1221
|
}, client);
|
|
1118
1222
|
};
|
|
1119
1223
|
|
|
1224
|
+
//#endregion
|
|
1225
|
+
//#region src/modules/auth/isSignedIn/isSignedIn.ts
|
|
1226
|
+
/**
|
|
1227
|
+
* Checks if the user is currently signed in to the Dynamic client.
|
|
1228
|
+
*
|
|
1229
|
+
* The client is considered to be in a signed in state if a user has
|
|
1230
|
+
* authenticated or if the client has at least one wallet connected.
|
|
1231
|
+
*
|
|
1232
|
+
* @deprecated What counts as "signed in" is your app's business logic, not the
|
|
1233
|
+
* SDK's. This helper bakes in one opinion (a user OR any connected wallet),
|
|
1234
|
+
* which rarely matches every app and forces a dependency on us for every
|
|
1235
|
+
* variation. Compose your own check from the underlying primitives instead —
|
|
1236
|
+
* e.g. `Boolean(client.user) || isAnyWalletAccountConnected(client)` — and
|
|
1237
|
+
* layer in whatever your app requires (device registration, completed
|
|
1238
|
+
* onboarding, satisfied MFA, a required embedded wallet, …). See the
|
|
1239
|
+
* "Check if signed in" guide:
|
|
1240
|
+
* https://www.dynamic.xyz/docs/javascript/user-session-management
|
|
1241
|
+
*
|
|
1242
|
+
* @example
|
|
1243
|
+
* ```ts
|
|
1244
|
+
* if (isSignedIn()) {
|
|
1245
|
+
* console.log('User is authenticated or has a wallet connected');
|
|
1246
|
+
* }
|
|
1247
|
+
* ```
|
|
1248
|
+
*
|
|
1249
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1250
|
+
* @returns True if the user is signed in, false otherwise.
|
|
1251
|
+
* @see logout
|
|
1252
|
+
* @see isAnyWalletAccountConnected
|
|
1253
|
+
* @notInstrumented
|
|
1254
|
+
*/
|
|
1255
|
+
const isSignedIn = (client = getDefaultClient()) => Boolean(client.user || getWalletAccounts(client).length > 0);
|
|
1256
|
+
|
|
1257
|
+
//#endregion
|
|
1258
|
+
//#region src/modules/projectSettings/fetchProjectSettings/projectSettingsExpirationScheme.ts
|
|
1259
|
+
/**
|
|
1260
|
+
* The schema to track the expiration time of the project settings.
|
|
1261
|
+
*/
|
|
1262
|
+
const projectSettingsExpirationStorageKeySchema = createStorageKeySchema({
|
|
1263
|
+
key: "projectSettingsExpiration",
|
|
1264
|
+
schema: z.number()
|
|
1265
|
+
});
|
|
1266
|
+
|
|
1267
|
+
//#endregion
|
|
1268
|
+
//#region src/modules/projectSettings/fetchProjectSettings/fetchProjectSettings.ts
|
|
1269
|
+
/**
|
|
1270
|
+
* Expiration time of the project settings in milliseconds.
|
|
1271
|
+
*/
|
|
1272
|
+
const PROJECT_SETTINGS_EXPIRATION_TIME = 1e3 * 60 * 5;
|
|
1273
|
+
/**
|
|
1274
|
+
* Fetches and updates the project settings from the API.
|
|
1275
|
+
*
|
|
1276
|
+
* This function retrieves the latest project configuration settings
|
|
1277
|
+
* from Dynamic's servers, including authentication options, enabled chains,
|
|
1278
|
+
* and security configurations. The settings are cached for performance.
|
|
1279
|
+
*
|
|
1280
|
+
* @example
|
|
1281
|
+
* ```ts
|
|
1282
|
+
* const settings = await fetchProjectSettings();
|
|
1283
|
+
* console.log('Enabled chains:', settings.chains);
|
|
1284
|
+
* ```
|
|
1285
|
+
*
|
|
1286
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1287
|
+
* @returns A promise that resolves to the updated project settings.
|
|
1288
|
+
* @see createDynamicClient
|
|
1289
|
+
* @see initializeClient
|
|
1290
|
+
* @notInstrumented
|
|
1291
|
+
* @noHook Internal settings fetch that is not part of the public hook surface.
|
|
1292
|
+
*/
|
|
1293
|
+
const fetchProjectSettings = async (client = getDefaultClient()) => {
|
|
1294
|
+
const core = getCore(client);
|
|
1295
|
+
const currentExpiration = await core.storage.getItem(projectSettingsExpirationStorageKeySchema);
|
|
1296
|
+
if (Boolean(client.projectSettings) && !(currentExpiration && currentExpiration < Date.now()) && isSignedIn(client)) return client.projectSettings;
|
|
1297
|
+
const apiClient = createApiClient({}, client);
|
|
1298
|
+
core.logger.debug("[fetchProjectSettings] Fetching project settings...");
|
|
1299
|
+
const doFetch = async () => apiClient.getEnvironmentSettings({
|
|
1300
|
+
environmentId: core.environmentId,
|
|
1301
|
+
sdkVersion: `${CLIENT_SDK_NAME}/${core.version}`
|
|
1302
|
+
}, { credentials: "omit" });
|
|
1303
|
+
const projectSettings = await retryOnFail({
|
|
1304
|
+
fn: doFetch,
|
|
1305
|
+
maxRetries: 2
|
|
1306
|
+
});
|
|
1307
|
+
core.state.set({ projectSettings: projectSettings ?? null });
|
|
1308
|
+
await core.storage.setItem(projectSettingsExpirationStorageKeySchema, Date.now() + PROJECT_SETTINGS_EXPIRATION_TIME);
|
|
1309
|
+
return projectSettings;
|
|
1310
|
+
};
|
|
1311
|
+
|
|
1312
|
+
//#endregion
|
|
1313
|
+
//#region src/modules/sessionKeys/generateSessionKeys/generateSessionKeys.ts
|
|
1314
|
+
/** @notInstrumented */
|
|
1315
|
+
const generateSessionKeys = async (client) => {
|
|
1316
|
+
const core = getCore(client);
|
|
1317
|
+
const currentState = core.state.get();
|
|
1318
|
+
const isRotation = Boolean(currentState.sessionKeys);
|
|
1319
|
+
const logContext = {
|
|
1320
|
+
environmentId: core.environmentId,
|
|
1321
|
+
operation: isRotation ? "rotate" : "create",
|
|
1322
|
+
userId: currentState.user?.id ?? null
|
|
1323
|
+
};
|
|
1324
|
+
core.logger.info(isRotation ? "[generateSessionKeys] Rotating session key..." : "[generateSessionKeys] Creating session key...", logContext);
|
|
1325
|
+
await core.keychain.removeKey("session");
|
|
1326
|
+
const publicKey = await core.keychain.generateKey("session");
|
|
1327
|
+
assertDefined(publicKey, "Public key not found");
|
|
1328
|
+
core.state.set({ sessionKeys: publicKey });
|
|
1329
|
+
core.logger.info(isRotation ? "[generateSessionKeys] Session key rotated" : "[generateSessionKeys] Session key created", logContext);
|
|
1330
|
+
return { publicKey };
|
|
1331
|
+
};
|
|
1332
|
+
|
|
1120
1333
|
//#endregion
|
|
1121
1334
|
//#region src/errors/NoWalletProviderFoundError.ts
|
|
1122
1335
|
var NoWalletProviderFoundError = class extends BaseError {
|
|
@@ -1272,6 +1485,51 @@ const getWalletProviderFromWalletAccount = ({ walletAccount }, client) => {
|
|
|
1272
1485
|
return walletProvider;
|
|
1273
1486
|
};
|
|
1274
1487
|
|
|
1488
|
+
//#endregion
|
|
1489
|
+
//#region src/modules/wallets/utils/getAvailableWalletProvidersFromWalletAccounts/getAvailableWalletProvidersFromWalletAccounts.ts
|
|
1490
|
+
/** @notInstrumented */
|
|
1491
|
+
const getAvailableWalletProvidersFromWalletAccounts = (client) => {
|
|
1492
|
+
const core = getCore(client);
|
|
1493
|
+
const walletProvidersMap = /* @__PURE__ */ new Map();
|
|
1494
|
+
getWalletAccounts(client).forEach((walletAccount) => {
|
|
1495
|
+
if (walletProvidersMap.has(walletAccount.walletProviderKey)) return;
|
|
1496
|
+
try {
|
|
1497
|
+
const walletProvider = getWalletProviderFromWalletAccount({ walletAccount }, client);
|
|
1498
|
+
walletProvidersMap.set(walletAccount.walletProviderKey, walletProvider);
|
|
1499
|
+
} catch (error) {
|
|
1500
|
+
core.logger.debug("Wallet provider not found for wallet account", {
|
|
1501
|
+
error,
|
|
1502
|
+
walletAccount: walletAccount.address
|
|
1503
|
+
});
|
|
1504
|
+
}
|
|
1505
|
+
});
|
|
1506
|
+
return Array.from(walletProvidersMap.values());
|
|
1507
|
+
};
|
|
1508
|
+
|
|
1509
|
+
//#endregion
|
|
1510
|
+
//#region src/modules/wallets/destroyWalletProviders/destroyWalletProviders.ts
|
|
1511
|
+
/**
|
|
1512
|
+
* Tear down every wallet provider on the client.
|
|
1513
|
+
*
|
|
1514
|
+
* Each provider's `destroy` is responsible for its own local + remote
|
|
1515
|
+
* cleanup. We swallow errors so a failing destroy on one provider does not
|
|
1516
|
+
* block teardown of the others (e.g. during logout).
|
|
1517
|
+
*
|
|
1518
|
+
* @notInstrumented
|
|
1519
|
+
*/
|
|
1520
|
+
const destroyWalletProviders = async ({ reason }, client) => {
|
|
1521
|
+
const core = getCore(client);
|
|
1522
|
+
const walletProviders = getAvailableWalletProvidersFromWalletAccounts(client);
|
|
1523
|
+
await Promise.all(walletProviders.map(async (walletProvider) => {
|
|
1524
|
+
if (!walletProvider.destroy) return;
|
|
1525
|
+
try {
|
|
1526
|
+
await walletProvider.destroy({ reason });
|
|
1527
|
+
} catch (err) {
|
|
1528
|
+
core.logger.error(`Error destroying wallet provider ${walletProvider.key}`, err);
|
|
1529
|
+
}
|
|
1530
|
+
}));
|
|
1531
|
+
};
|
|
1532
|
+
|
|
1275
1533
|
//#endregion
|
|
1276
1534
|
//#region src/modules/auth/consts.ts
|
|
1277
1535
|
const DYNAMIC_AUTH_COOKIE_NAME = "DYNAMIC_JWT_TOKEN";
|
|
@@ -1684,6 +1942,75 @@ const instrumentFunction = ({ fn, functionName, getCore: getCore$1, selectors })
|
|
|
1684
1942
|
return wrapped;
|
|
1685
1943
|
};
|
|
1686
1944
|
|
|
1945
|
+
//#endregion
|
|
1946
|
+
//#region src/modules/auth/logoutWithReason/logoutWithReason.ts
|
|
1947
|
+
/**
|
|
1948
|
+
* Logs the user out with an explicit reason.
|
|
1949
|
+
*
|
|
1950
|
+
* Revokes the session, clears auth state, terminates wallet providers, and
|
|
1951
|
+
* emits the `logout` client event with the given reason. The reason is also
|
|
1952
|
+
* captured as an argument on the function-instrumentation event, which is
|
|
1953
|
+
* how Datadog distinguishes between different logout causes.
|
|
1954
|
+
*
|
|
1955
|
+
* Use this instead of the public `logout` when triggering a logout from
|
|
1956
|
+
* internal or extension code — the caller owns the reason string, so the
|
|
1957
|
+
* telemetry correctly attributes *why* the logout happened.
|
|
1958
|
+
*
|
|
1959
|
+
* @param params - The logout params.
|
|
1960
|
+
* @param params.reason - Why the logout is being triggered. Extension authors
|
|
1961
|
+
* needing a reason outside the SDK catalog can cast with `as LogoutReason`.
|
|
1962
|
+
* @param client - The Dynamic client instance.
|
|
1963
|
+
* @instrumented
|
|
1964
|
+
*/
|
|
1965
|
+
const logoutWithReason = async ({ reason }, client) => {
|
|
1966
|
+
const core = getCore(client);
|
|
1967
|
+
core.logger.debug("[logoutWithReason] Logging out...", { reason });
|
|
1968
|
+
await destroyWalletProviders({ reason }, client);
|
|
1969
|
+
if (client.user !== null) {
|
|
1970
|
+
const apiClient = createApiClient({}, client);
|
|
1971
|
+
try {
|
|
1972
|
+
await apiClient.revokeSession({ environmentId: core.environmentId });
|
|
1973
|
+
} catch (error) {
|
|
1974
|
+
core.logger.error("Failed to revoke session", error);
|
|
1975
|
+
}
|
|
1976
|
+
/**
|
|
1977
|
+
* This deletes the auth cookie if it exists.
|
|
1978
|
+
* If the cookie doesn't exist, this sets a new cookie that expires immediately.
|
|
1979
|
+
*/
|
|
1980
|
+
if (isCookieEnabled(client)) setCookie(`${DYNAMIC_AUTH_COOKIE_NAME}=; Max-Age=-99999999; path=/; SameSite=Lax${getSecureCookieAttribute()}`);
|
|
1981
|
+
}
|
|
1982
|
+
await core.keychain.removeKey("session");
|
|
1983
|
+
core.state.set({
|
|
1984
|
+
captchaToken: null,
|
|
1985
|
+
elevatedAccessTokens: [],
|
|
1986
|
+
legacyToken: null,
|
|
1987
|
+
mfaToken: null,
|
|
1988
|
+
sessionExpiresAt: null,
|
|
1989
|
+
sessionKeys: null,
|
|
1990
|
+
token: null,
|
|
1991
|
+
unverifiedWalletAccounts: [],
|
|
1992
|
+
user: null
|
|
1993
|
+
});
|
|
1994
|
+
emitEvent({
|
|
1995
|
+
args: { reason },
|
|
1996
|
+
event: "logout"
|
|
1997
|
+
}, client);
|
|
1998
|
+
fetchProjectSettings(client);
|
|
1999
|
+
generateSessionKeys(client);
|
|
2000
|
+
};
|
|
2001
|
+
const __logoutWithReason_impl = logoutWithReason;
|
|
2002
|
+
const __logoutWithReason_wrapped = instrumentFunction({
|
|
2003
|
+
fn: __logoutWithReason_impl,
|
|
2004
|
+
functionName: "logoutWithReason",
|
|
2005
|
+
getCore: () => {
|
|
2006
|
+
try {
|
|
2007
|
+
return getCore(getDefaultClient());
|
|
2008
|
+
} catch {
|
|
2009
|
+
return;
|
|
2010
|
+
}
|
|
2011
|
+
}
|
|
2012
|
+
});
|
|
2013
|
+
|
|
1687
2014
|
//#endregion
|
|
1688
2015
|
//#region src/constants.ts
|
|
1689
2016
|
const SDK_API_CORE_VERSION = dependencies["@dynamic-labs/sdk-api-core"];
|
|
@@ -1974,5 +2301,5 @@ const updateAuthFromVerifyResponse = ({ response }, client) => {
|
|
|
1974
2301
|
};
|
|
1975
2302
|
|
|
1976
2303
|
//#endregion
|
|
1977
|
-
export {
|
|
1978
|
-
//# sourceMappingURL=updateAuthFromVerifyResponse-
|
|
2304
|
+
export { getNonce as $, generateSessionKeys as A, splitWalletProviderKey as B, getOperatingSystem as C, name as Ct, getWalletProviderRegistry as D, WalletProviderPriority as E, normalizeWalletNameWithChain as F, onEvent as G, retryOnFail as H, getChainFromVerifiedCredentialChain as I, createApiClient as J, onceEvent as K, CHAINS_INFO_MAP as L, isSignedIn as M, getWalletAccounts as N, createRuntimeServiceAccessKey as O, formatWalletProviderKey as P, getDeviceSigner as Q, formatWalletAccountId as R, getUserAgent as S, getCore as St, getWalletProviderFromWalletAccount as T, emitEvent as U, InvalidWalletProviderKeyError as V, offEvent as W, createDeviceSignatureHeadersMiddleware as X, UnauthorizedError as Y, getHeadersForNonceSignedByDeviceSigners as Z, SDK_API_CORE_VERSION as _, NONCE_POOL_SIZE as _t, initializeWaasClientsForEagerRecovery as a, LinkCredentialError as at, scrubParameters as b, ClientNotFoundError as bt, isWaasWalletProvider as c, getSessionKeys as ct, DYNAMIC_WAAS_METADATA as d, ValueMustBeDefinedError as dt, updateNoncePoolStorage as et, getWalletProviders as f, getElevatedAccessToken as ft, DYNAMIC_ICONIC_SPRITE_URL as g, DYNAMIC_SDK_API_VERSION as gt, emitWalletAccountsChangedEvent as h, CLIENT_SDK_NAME as ht, InvalidParamError as i, MfaInvalidOtpError as it, fetchProjectSettings as j, NoWalletProviderFoundError as k, DEFAULT_WAAS_BASE_API_URL as l, isCookieEnabled as lt, checkAndRaiseWalletAccountsChangedEvent as m, getPlatform as mt, upsertElevatedAccessToken as n, SandboxMaximumThresholdReachedError as nt, isWaasWalletAccount as o, InvalidExternalAuthError as ot, isUserMissingMfaAuth as p, randomString as pt, fetchAndStoreNonces as q, parseElevatedAccessToken as r, MfaRateLimitedError as rt, findWaasWalletProviderByChain as s, APIError as st, updateAuthFromVerifyResponse as t, createStorageKeySchema as tt, DEFAULT_WAAS_BASE_MPC_RELAY_API_URL as u, assertDefined as ut, __logoutWithReason_wrapped as v, getDefaultClient as vt, extractSessionId as w, version as wt, DEFAULT_PII_FIELDS as x, BaseError as xt, instrumentFunction as y, setDefaultClient as yt, normalizeAddress as z };
|
|
2305
|
+
//# sourceMappingURL=updateAuthFromVerifyResponse-C_YKKAIX.esm.js.map
|