@dynamic-labs-sdk/client 0.27.0 → 0.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{InvalidParamError-D_EzyxXy.native.esm.js → InvalidParamError-BB1aAMqv.native.esm.js} +2 -2
- package/dist/{InvalidParamError-D_EzyxXy.native.esm.js.map → InvalidParamError-BB1aAMqv.native.esm.js.map} +1 -1
- package/dist/{InvalidParamError-DJxqCxOB.esm.js → InvalidParamError-DYMyIag5.esm.js} +2 -2
- package/dist/{InvalidParamError-DJxqCxOB.esm.js.map → InvalidParamError-DYMyIag5.esm.js.map} +1 -1
- package/dist/{InvalidParamError-BHNFIR4K.cjs → InvalidParamError-RjPsJjYw.cjs} +3 -3
- package/dist/{InvalidParamError-BHNFIR4K.cjs.map → InvalidParamError-RjPsJjYw.cjs.map} +1 -1
- package/dist/{NotWaasWalletAccountError-BSon-4Ob.native.esm.js → NotWaasWalletAccountError-CXXB603M.native.esm.js} +3 -3
- package/dist/{NotWaasWalletAccountError-BSon-4Ob.native.esm.js.map → NotWaasWalletAccountError-CXXB603M.native.esm.js.map} +1 -1
- package/dist/{NotWaasWalletAccountError-CIUs1vxk.cjs → NotWaasWalletAccountError-DFwXaM4Q.cjs} +3 -3
- package/dist/{NotWaasWalletAccountError-CIUs1vxk.cjs.map → NotWaasWalletAccountError-DFwXaM4Q.cjs.map} +1 -1
- package/dist/{NotWaasWalletAccountError-DyqqJavQ.esm.js → NotWaasWalletAccountError-hJqwXt5a.esm.js} +3 -3
- package/dist/{NotWaasWalletAccountError-DyqqJavQ.esm.js.map → NotWaasWalletAccountError-hJqwXt5a.esm.js.map} +1 -1
- package/dist/client/core/createCore/createCore.d.ts.map +1 -1
- package/dist/client/core/types/DynamicCore.d.ts +8 -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/core.cjs +19 -21
- package/dist/core.cjs.map +1 -1
- package/dist/core.esm.js +19 -22
- package/dist/core.esm.js.map +1 -1
- package/dist/core.native.esm.js +19 -8
- package/dist/core.native.esm.js.map +1 -1
- package/dist/errors/InvalidSocialCallbackOriginError.d.ts +10 -0
- package/dist/errors/InvalidSocialCallbackOriginError.d.ts.map +1 -0
- package/dist/errors/UserCancelledSocialPopUpError.d.ts +5 -0
- package/dist/errors/UserCancelledSocialPopUpError.d.ts.map +1 -0
- package/dist/exports/core.d.ts +2 -0
- package/dist/exports/core.d.ts.map +1 -1
- package/dist/exports/index.d.ts +9 -0
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-B5HGICoA.cjs → getNetworkProviderFromNetworkId-CS52Cci3.cjs} +36 -28
- package/dist/getNetworkProviderFromNetworkId-CS52Cci3.cjs.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-EbAuEVM-.esm.js → getNetworkProviderFromNetworkId-Cz2-ZCCZ.esm.js} +35 -27
- package/dist/getNetworkProviderFromNetworkId-Cz2-ZCCZ.esm.js.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-BN3NLh8u.native.esm.js → getNetworkProviderFromNetworkId-jKurji7M.native.esm.js} +35 -41
- package/dist/getNetworkProviderFromNetworkId-jKurji7M.native.esm.js.map +1 -0
- package/dist/{getSignedSessionId-BW4I7fDk.esm.js → getSignedSessionId-DltSRiha.esm.js} +3 -3
- package/dist/{getSignedSessionId-BW4I7fDk.esm.js.map → getSignedSessionId-DltSRiha.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-B_a6CXGP.native.esm.js → getSignedSessionId-DsipfWDg.native.esm.js} +3 -3
- package/dist/{getSignedSessionId-B_a6CXGP.native.esm.js.map → getSignedSessionId-DsipfWDg.native.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-DMMejcaD.cjs → getSignedSessionId-nYqteDcA.cjs} +3 -3
- package/dist/{getSignedSessionId-DMMejcaD.cjs.map → getSignedSessionId-nYqteDcA.cjs.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-DMoMmbjK.native.esm.js → getVerifiedCredentialForWalletAccount-Cnw0e0bw.native.esm.js} +2 -2
- package/dist/{getVerifiedCredentialForWalletAccount-DMoMmbjK.native.esm.js.map → getVerifiedCredentialForWalletAccount-Cnw0e0bw.native.esm.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-C7-3wtlJ.cjs → getVerifiedCredentialForWalletAccount-DJLDFSyA.cjs} +3 -3
- package/dist/{getVerifiedCredentialForWalletAccount-C7-3wtlJ.cjs.map → getVerifiedCredentialForWalletAccount-DJLDFSyA.cjs.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-ChZvrEQJ.esm.js → getVerifiedCredentialForWalletAccount-D_6o2B_M.esm.js} +2 -2
- package/dist/{getVerifiedCredentialForWalletAccount-ChZvrEQJ.esm.js.map → getVerifiedCredentialForWalletAccount-D_6o2B_M.esm.js.map} +1 -1
- package/dist/index.cjs +304 -109
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +300 -113
- package/dist/index.esm.js.map +1 -1
- package/dist/index.native.esm.js +523 -116
- package/dist/index.native.esm.js.map +1 -1
- package/dist/{isMfaRequiredForAction-iVSdynw1.native.esm.js → isMfaRequiredForAction-C4ep39RW.native.esm.js} +2 -2
- package/dist/{isMfaRequiredForAction-iVSdynw1.native.esm.js.map → isMfaRequiredForAction-C4ep39RW.native.esm.js.map} +1 -1
- package/dist/{isMfaRequiredForAction-IhCAdScF.cjs → isMfaRequiredForAction-Cy_Alu-e.cjs} +2 -2
- package/dist/{isMfaRequiredForAction-IhCAdScF.cjs.map → isMfaRequiredForAction-Cy_Alu-e.cjs.map} +1 -1
- package/dist/{isMfaRequiredForAction-BUfcq6P2.esm.js → isMfaRequiredForAction-fAw1tlUY.esm.js} +2 -2
- package/dist/{isMfaRequiredForAction-BUfcq6P2.esm.js.map → isMfaRequiredForAction-fAw1tlUY.esm.js.map} +1 -1
- package/dist/modules/auth/social/oauth/completeSocialRedirect/completeSocialRedirect.d.ts.map +1 -1
- package/dist/modules/auth/social/oauth/processSocialCallback/index.d.ts +2 -0
- package/dist/modules/auth/social/oauth/processSocialCallback/index.d.ts.map +1 -0
- package/dist/modules/auth/social/oauth/processSocialCallback/processSocialCallback.d.ts +29 -0
- package/dist/modules/auth/social/oauth/processSocialCallback/processSocialCallback.d.ts.map +1 -0
- package/dist/modules/auth/social/oauth/signInWithSocialPopUp/index.d.ts +2 -0
- package/dist/modules/auth/social/oauth/signInWithSocialPopUp/index.d.ts.map +1 -0
- package/dist/modules/auth/social/oauth/signInWithSocialPopUp/signInWithSocialPopUp.d.ts +16 -0
- package/dist/modules/auth/social/oauth/signInWithSocialPopUp/signInWithSocialPopUp.d.ts.map +1 -0
- package/dist/modules/auth/social/oauth/signInWithSocialPopUp/signInWithSocialPopUp.types.d.ts +5 -0
- package/dist/modules/auth/social/oauth/signInWithSocialPopUp/signInWithSocialPopUp.types.d.ts.map +1 -0
- package/dist/modules/checkout/createCheckoutTransaction/createCheckoutTransaction.d.ts.map +1 -1
- package/dist/modules/checkout/trackCheckoutTransaction/trackCheckoutTransaction.d.ts +6 -1
- package/dist/modules/checkout/trackCheckoutTransaction/trackCheckoutTransaction.d.ts.map +1 -1
- 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/waas.types.d.ts +3 -3
- package/dist/modules/waas/waas.types.d.ts.map +1 -1
- package/dist/modules/walletBackup/googleDrive/constants.d.ts +19 -0
- package/dist/modules/walletBackup/googleDrive/constants.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/findMissingGoogleDriveBackupScopes/findMissingGoogleDriveBackupScopes.d.ts +11 -0
- package/dist/modules/walletBackup/googleDrive/findMissingGoogleDriveBackupScopes/findMissingGoogleDriveBackupScopes.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/findMissingGoogleDriveBackupScopes/index.d.ts +2 -0
- package/dist/modules/walletBackup/googleDrive/findMissingGoogleDriveBackupScopes/index.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/getGoogleDriveBackupReadiness/getGoogleDriveBackupReadiness.d.ts +35 -0
- package/dist/modules/walletBackup/googleDrive/getGoogleDriveBackupReadiness/getGoogleDriveBackupReadiness.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/getGoogleDriveBackupReadiness/index.d.ts +2 -0
- package/dist/modules/walletBackup/googleDrive/getGoogleDriveBackupReadiness/index.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/googleDrive.types.d.ts +30 -0
- package/dist/modules/walletBackup/googleDrive/googleDrive.types.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/hasAllGoogleDriveBackupScopes/hasAllGoogleDriveBackupScopes.d.ts +10 -0
- package/dist/modules/walletBackup/googleDrive/hasAllGoogleDriveBackupScopes/hasAllGoogleDriveBackupScopes.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/hasAllGoogleDriveBackupScopes/index.d.ts +2 -0
- package/dist/modules/walletBackup/googleDrive/hasAllGoogleDriveBackupScopes/index.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/isInsufficientGoogleDriveScopesError/index.d.ts +2 -0
- package/dist/modules/walletBackup/googleDrive/isInsufficientGoogleDriveScopesError/index.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/isInsufficientGoogleDriveScopesError/isInsufficientGoogleDriveScopesError.d.ts +15 -0
- package/dist/modules/walletBackup/googleDrive/isInsufficientGoogleDriveScopesError/isInsufficientGoogleDriveScopesError.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/utils/fetchGoogleDriveOauthAccess/fetchGoogleDriveOauthAccess.d.ts +21 -0
- package/dist/modules/walletBackup/googleDrive/utils/fetchGoogleDriveOauthAccess/fetchGoogleDriveOauthAccess.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/utils/fetchGoogleDriveOauthAccess/index.d.ts +2 -0
- package/dist/modules/walletBackup/googleDrive/utils/fetchGoogleDriveOauthAccess/index.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/utils/findGoogleOauthAccountId/findGoogleOauthAccountId.d.ts +18 -0
- package/dist/modules/walletBackup/googleDrive/utils/findGoogleOauthAccountId/findGoogleOauthAccountId.d.ts.map +1 -0
- package/dist/modules/walletBackup/googleDrive/utils/findGoogleOauthAccountId/index.d.ts +2 -0
- package/dist/modules/walletBackup/googleDrive/utils/findGoogleOauthAccountId/index.d.ts.map +1 -0
- package/dist/modules/wallets/destroyWalletProviders/destroyWalletProviders.d.ts +15 -0
- package/dist/modules/wallets/destroyWalletProviders/destroyWalletProviders.d.ts.map +1 -0
- package/dist/modules/wallets/destroyWalletProviders/index.d.ts +2 -0
- package/dist/modules/wallets/destroyWalletProviders/index.d.ts.map +1 -0
- package/dist/modules/wallets/walletProvider/walletProvider.types.d.ts +9 -10
- package/dist/modules/wallets/walletProvider/walletProvider.types.d.ts.map +1 -1
- package/dist/services/openAuthSession/index.d.ts +2 -0
- package/dist/services/openAuthSession/index.d.ts.map +1 -0
- package/dist/services/openAuthSession/openAuthSession.types.d.ts +26 -0
- package/dist/services/openAuthSession/openAuthSession.types.d.ts.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/utils/debouncedMutex/createDebouncedMutex/createDebouncedMutex.d.ts.map +1 -1
- package/dist/waas.cjs +4 -4
- package/dist/waas.esm.js +3 -3
- package/dist/waas.native.esm.js +3 -3
- package/dist/waasCore.cjs +17 -7
- package/dist/waasCore.cjs.map +1 -1
- package/dist/waasCore.esm.js +17 -7
- package/dist/waasCore.esm.js.map +1 -1
- package/dist/waasCore.native.esm.js +17 -7
- package/dist/waasCore.native.esm.js.map +1 -1
- package/package.json +39 -3
- package/dist/getNetworkProviderFromNetworkId-B5HGICoA.cjs.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-BN3NLh8u.native.esm.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-EbAuEVM-.esm.js.map +0 -1
- package/dist/modules/wallets/disconnectAndTerminateWalletProviders/disconnectAndTerminateWalletProviders.d.ts +0 -10
- package/dist/modules/wallets/disconnectAndTerminateWalletProviders/disconnectAndTerminateWalletProviders.d.ts.map +0 -1
- package/dist/modules/wallets/disconnectAndTerminateWalletProviders/index.d.ts +0 -2
- package/dist/modules/wallets/disconnectAndTerminateWalletProviders/index.d.ts.map +0 -1
package/dist/index.native.esm.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { A as extractSessionId, B as name, C as isCookieEnabled, D as instrumentFunction, E as __getElevatedAccessToken_wrapped, F as getDefaultClient, I as setDefaultClient, O as DEFAULT_PII_FIELDS, P as NONCE_POOL_SIZE, R as BaseError, T as ValueMustBeDefinedError, V as version, _ 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 randomString, k as getUserAgent, l as fetchAndStoreNonces, o as SDK_API_CORE_VERSION, s as getChainFromVerifiedCredentialChain, t as InvalidParamError, u as createApiClient, v as MfaInvalidOtpError, w as assertDefined, x as APIError, y as LinkCredentialError, z as getCore } from "./InvalidParamError-
|
|
2
|
-
import { A as
|
|
3
|
-
import { A as onceEvent, C as formatWalletAccountId, D as emitEvent, O as offEvent, T as splitWalletProviderKey, a as parseElevatedAccessToken, b as getWalletAccounts, d as isUserMissingMfaAuth, f as checkAndRaiseWalletAccountsChangedEvent, h as getWalletProviderFromWalletAccount, i as upsertElevatedAccessToken, k as onEvent, n as getWalletProviderByKey, o as restoreUserSharesForAllWalletAccounts, p as emitWalletAccountsChangedEvent, r as updateAuthFromVerifyResponse, t as getVerifiedCredentialForWalletAccount, u as getWalletProviders, w as normalizeAddress, y as NoWalletProviderFoundError } from "./getVerifiedCredentialForWalletAccount-
|
|
4
|
-
import { n as __refreshAuth_wrapped, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-
|
|
5
|
-
import { n as getMfaMethods, r as __consumeMfaToken_wrapped, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-
|
|
1
|
+
import { A as extractSessionId, B as name, C as isCookieEnabled, D as instrumentFunction, E as __getElevatedAccessToken_wrapped, F as getDefaultClient, I as setDefaultClient, O as DEFAULT_PII_FIELDS, P as NONCE_POOL_SIZE, R as BaseError, T as ValueMustBeDefinedError, V as version, _ 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 randomString, k as getUserAgent, l as fetchAndStoreNonces, o as SDK_API_CORE_VERSION, s as getChainFromVerifiedCredentialChain, t as InvalidParamError, u as createApiClient, v as MfaInvalidOtpError, w as assertDefined, x as APIError, y as LinkCredentialError, z as getCore } from "./InvalidParamError-BB1aAMqv.native.esm.js";
|
|
2
|
+
import { A as INITIALIZE_STORAGE_SYNC_TRACKER_KEY, C as createLogger, D as createDeferredPromise, E as CannotTrackError, F as __logoutWithReason_wrapped, G as isEqualShallow, H as isSignedIn, I as generateSessionKeys, L as fetchProjectSettings, M as REFRESH_USER_STATE_FROM_VALID_TOKEN_TRACKER_KEY, N as isServerSideRendering, O as FETCH_PROJECT_SETTINGS_TRACKER_KEY, P as getBuffer, R as createStorageKeySchema, U as retryOnFail, V as createLocalStorageAdapter, W as subscribeWithSelector, _ as WalletAlreadyLinkedToAnotherUserError, a as updateWalletProviderKeysForVerifiedCredentials, b as createRealtimeService, c as createSignInMessageStatement, d as createVisit, f as hasExtension, g as MethodNotImplementedError, h as isCaptchaRequired, i as getNetworksData, j as REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY, k as GENERATE_SESSION_KEYS_TRACKER_KEY, l as formatSignInMessage, m as consumeCaptchaToken, o as verifyMessageSignatureOwnership, p as __setCaptchaToken_wrapped, s as removeUnverifiedWalletAccount, t as getNetworkProviderFromNetworkId, u as setUnverifiedWalletAccounts, v as NoNetworkProvidersError, w as createCrossTabBroadcast, x as createKeychainService, y as getKeychainIndexedDBName, z as createStorage } from "./getNetworkProviderFromNetworkId-jKurji7M.native.esm.js";
|
|
3
|
+
import { A as onceEvent, C as formatWalletAccountId, D as emitEvent, O as offEvent, T as splitWalletProviderKey, a as parseElevatedAccessToken, b as getWalletAccounts, d as isUserMissingMfaAuth, f as checkAndRaiseWalletAccountsChangedEvent, h as getWalletProviderFromWalletAccount, i as upsertElevatedAccessToken, k as onEvent, n as getWalletProviderByKey, o as restoreUserSharesForAllWalletAccounts, p as emitWalletAccountsChangedEvent, r as updateAuthFromVerifyResponse, t as getVerifiedCredentialForWalletAccount, u as getWalletProviders, w as normalizeAddress, y as NoWalletProviderFoundError } from "./getVerifiedCredentialForWalletAccount-Cnw0e0bw.native.esm.js";
|
|
4
|
+
import { n as __refreshAuth_wrapped, t as NotWaasWalletAccountError } from "./NotWaasWalletAccountError-CXXB603M.native.esm.js";
|
|
5
|
+
import { n as getMfaMethods, r as __consumeMfaToken_wrapped, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-C4ep39RW.native.esm.js";
|
|
6
6
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
7
|
-
import { AuthModeEnum, ExchangeKeyEnum, JwtVerifiedCredentialFormatEnum, MFAAction, MfaBackupCodeAcknowledgement, TokenScope, 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
|
-
import EventEmitter
|
|
9
|
+
import EventEmitter, { EventEmitter as EventEmitter$1 } from "eventemitter3";
|
|
10
10
|
import { Passkey } from "react-native-passkey";
|
|
11
11
|
|
|
12
12
|
//#region src/modules/state/raiseStateEvents/events.ts
|
|
@@ -535,7 +535,7 @@ const createAsyncTrack = () => {
|
|
|
535
535
|
* This ensures no process is missed (as it would throw when tracked on a different node tick).
|
|
536
536
|
*/
|
|
537
537
|
let isTrackEnabled = true;
|
|
538
|
-
const eventEmitter = new EventEmitter();
|
|
538
|
+
const eventEmitter = new EventEmitter$1();
|
|
539
539
|
const allSettledPromise = createDeferredPromise();
|
|
540
540
|
const tracker = /* @__PURE__ */ new Map();
|
|
541
541
|
/**
|
|
@@ -582,7 +582,7 @@ const createAsyncTrack = () => {
|
|
|
582
582
|
//#endregion
|
|
583
583
|
//#region src/services/eventEmitter/createEventEmitter.ts
|
|
584
584
|
/** @not-instrumented */
|
|
585
|
-
const createEventEmitter = () => new EventEmitter
|
|
585
|
+
const createEventEmitter = () => new EventEmitter();
|
|
586
586
|
|
|
587
587
|
//#endregion
|
|
588
588
|
//#region src/errors/UnavailableInServerSideError.ts
|
|
@@ -1021,6 +1021,7 @@ const createCore = (config) => {
|
|
|
1021
1021
|
});
|
|
1022
1022
|
const fetch = config.coreConfig?.fetch ?? createWebFetch();
|
|
1023
1023
|
const openDeeplink = config.coreConfig?.openDeeplink ?? createWebDeeplinkOpener();
|
|
1024
|
+
const openAuthSession = config.coreConfig?.openAuthSession;
|
|
1024
1025
|
const navigate = config.coreConfig?.navigate ?? createNavigationHandler();
|
|
1025
1026
|
const state = createObservableState(getInitialState);
|
|
1026
1027
|
const debouncedMutex = createDebouncedMutex();
|
|
@@ -1067,6 +1068,7 @@ const createCore = (config) => {
|
|
|
1067
1068
|
logger,
|
|
1068
1069
|
metadata,
|
|
1069
1070
|
navigate,
|
|
1071
|
+
openAuthSession,
|
|
1070
1072
|
openDeeplink,
|
|
1071
1073
|
passkey,
|
|
1072
1074
|
realtime,
|
|
@@ -1223,6 +1225,34 @@ var InvalidRedirectStorageStateError = class extends BaseError {
|
|
|
1223
1225
|
}
|
|
1224
1226
|
};
|
|
1225
1227
|
|
|
1228
|
+
//#endregion
|
|
1229
|
+
//#region src/errors/InvalidSocialCallbackOriginError.ts
|
|
1230
|
+
var InvalidSocialCallbackOriginError = class extends BaseError {
|
|
1231
|
+
constructor({ actualOrigin, expectedOrigin }) {
|
|
1232
|
+
super({
|
|
1233
|
+
cause: null,
|
|
1234
|
+
code: "invalid_social_callback_origin_error",
|
|
1235
|
+
docsUrl: null,
|
|
1236
|
+
name: "InvalidSocialCallbackOriginError",
|
|
1237
|
+
shortMessage: `OAuth callback URL origin mismatch. Expected ${expectedOrigin}, got ${actualOrigin}. This may indicate a compromised auth session or misconfigured redirect URL.`
|
|
1238
|
+
});
|
|
1239
|
+
}
|
|
1240
|
+
};
|
|
1241
|
+
|
|
1242
|
+
//#endregion
|
|
1243
|
+
//#region src/errors/UserCancelledSocialPopUpError.ts
|
|
1244
|
+
var UserCancelledSocialPopUpError = class extends BaseError {
|
|
1245
|
+
constructor() {
|
|
1246
|
+
super({
|
|
1247
|
+
cause: null,
|
|
1248
|
+
code: "user_cancelled_social_popup_error",
|
|
1249
|
+
docsUrl: null,
|
|
1250
|
+
name: "UserCancelledSocialPopUpError",
|
|
1251
|
+
shortMessage: "The user cancelled (or dismissed) the social authentication pop-up."
|
|
1252
|
+
});
|
|
1253
|
+
}
|
|
1254
|
+
};
|
|
1255
|
+
|
|
1226
1256
|
//#endregion
|
|
1227
1257
|
//#region src/errors/MissingRedirectStorageStateError.ts
|
|
1228
1258
|
var MissingRedirectStorageStateError = class extends BaseError {
|
|
@@ -1879,15 +1909,16 @@ const getUserSocialAccounts = (client = getDefaultClient()) => {
|
|
|
1879
1909
|
//#endregion
|
|
1880
1910
|
//#region src/modules/auth/social/oauth/signInWithSocialRedirect/signInWithSocialRedirect.native.ts
|
|
1881
1911
|
/**
|
|
1882
|
-
* OAuth redirect flow is not
|
|
1883
|
-
*
|
|
1884
|
-
*
|
|
1912
|
+
* OAuth redirect flow is not supported on React Native — there is no shared
|
|
1913
|
+
* browser to navigate away to and back from. Use `signInWithSocialPopUp`
|
|
1914
|
+
* instead: it handles the entire social login flow (open auth session,
|
|
1915
|
+
* process callback, verify, update auth state) in a single call.
|
|
1885
1916
|
*
|
|
1886
1917
|
* @throws MethodNotImplementedError Always on React Native.
|
|
1887
1918
|
* @instrumented
|
|
1888
1919
|
*/
|
|
1889
1920
|
const signInWithSocialRedirect = async ({ provider, redirectUrl }, client = getDefaultClient()) => {
|
|
1890
|
-
throw new MethodNotImplementedError("signInWithSocialRedirect");
|
|
1921
|
+
throw new MethodNotImplementedError("signInWithSocialRedirect (use signInWithSocialPopUp on React Native instead)");
|
|
1891
1922
|
};
|
|
1892
1923
|
const __signInWithSocialRedirect_impl = signInWithSocialRedirect;
|
|
1893
1924
|
const __signInWithSocialRedirect_wrapped = instrumentFunction({
|
|
@@ -1902,31 +1933,317 @@ const __signInWithSocialRedirect_wrapped = instrumentFunction({
|
|
|
1902
1933
|
}
|
|
1903
1934
|
});
|
|
1904
1935
|
|
|
1936
|
+
//#endregion
|
|
1937
|
+
//#region src/modules/auth/social/oauth/redirectStateStorageSchema/redirectStateStorageSchema.ts
|
|
1938
|
+
/** The schema to track the state of the OAuth flow. */
|
|
1939
|
+
const redirectStateStorageKeySchema = createStorageKeySchema({
|
|
1940
|
+
key: "redirectState",
|
|
1941
|
+
schema: z.object({
|
|
1942
|
+
codeVerifier: z.optional(z.string()),
|
|
1943
|
+
provider: z.enum(ProviderEnum),
|
|
1944
|
+
state: z.string()
|
|
1945
|
+
})
|
|
1946
|
+
});
|
|
1947
|
+
|
|
1948
|
+
//#endregion
|
|
1949
|
+
//#region src/modules/auth/social/oauth/processSocialCallback/processSocialCallback.ts
|
|
1950
|
+
/**
|
|
1951
|
+
* Platform-agnostic OAuth callback processor used by both the web redirect
|
|
1952
|
+
* flow (`completeSocialRedirect`) and the native pop-up flow
|
|
1953
|
+
* (`signInWithSocialPopUp`). Intentionally has no `.native.ts` variant — the
|
|
1954
|
+
* logic (parse URL, validate state, call oauthSignIn/oauthVerify, update auth)
|
|
1955
|
+
* works identically on every platform.
|
|
1956
|
+
*
|
|
1957
|
+
* Not exported from the public SDK surface; public callers go through
|
|
1958
|
+
* `completeSocialRedirect` or `signInWithSocialPopUp` instead.
|
|
1959
|
+
*
|
|
1960
|
+
* @param params.url - The callback URL containing OAuth response parameters.
|
|
1961
|
+
* @param [params.requestedScopes] - Optional scopes to request an elevated access token when verifying (linking) a social account.
|
|
1962
|
+
* @param client - The Dynamic client instance.
|
|
1963
|
+
* @returns The authenticated user, or null if the verify response had none.
|
|
1964
|
+
* @throws MissingSocialUrlParamError If required OAuth parameters are missing.
|
|
1965
|
+
* @throws MissingRedirectStorageStateError If no stored redirect state exists.
|
|
1966
|
+
* @throws InvalidRedirectStorageStateError If the stored state doesn't match the URL state.
|
|
1967
|
+
* @instrumented
|
|
1968
|
+
*/
|
|
1969
|
+
const processSocialCallback = async ({ url, requestedScopes }, client) => {
|
|
1970
|
+
const core = getCore(client);
|
|
1971
|
+
const apiClient = createApiClient({}, client);
|
|
1972
|
+
await core.initTrack.waitForAll();
|
|
1973
|
+
const dynamicOauthState = url.searchParams.get("dynamicOauthState");
|
|
1974
|
+
const dynamicOauthCode = url.searchParams.get("dynamicOauthCode");
|
|
1975
|
+
if (!dynamicOauthState) throw new MissingSocialUrlParamError("dynamicOauthState");
|
|
1976
|
+
if (!dynamicOauthCode) throw new MissingSocialUrlParamError("dynamicOauthCode");
|
|
1977
|
+
const storedSocialRedirectState = await core.storage.getItem(redirectStateStorageKeySchema);
|
|
1978
|
+
if (!storedSocialRedirectState) throw new MissingRedirectStorageStateError();
|
|
1979
|
+
if (storedSocialRedirectState.state !== dynamicOauthState) throw new InvalidRedirectStorageStateError();
|
|
1980
|
+
const { provider, codeVerifier } = storedSocialRedirectState;
|
|
1981
|
+
await core.storage.removeItem(redirectStateStorageKeySchema);
|
|
1982
|
+
let response;
|
|
1983
|
+
if (client.user) response = await apiClient.oauthVerify({
|
|
1984
|
+
environmentId: core.environmentId,
|
|
1985
|
+
oauthRequest: {
|
|
1986
|
+
code: dynamicOauthCode,
|
|
1987
|
+
codeVerifier,
|
|
1988
|
+
requestedScopes,
|
|
1989
|
+
state: dynamicOauthState
|
|
1990
|
+
},
|
|
1991
|
+
providerType: provider
|
|
1992
|
+
});
|
|
1993
|
+
else response = await apiClient.oauthSignIn({
|
|
1994
|
+
environmentId: core.environmentId,
|
|
1995
|
+
oauthRequest: {
|
|
1996
|
+
captchaToken: consumeCaptchaToken(client),
|
|
1997
|
+
code: dynamicOauthCode,
|
|
1998
|
+
codeVerifier,
|
|
1999
|
+
state: dynamicOauthState
|
|
2000
|
+
},
|
|
2001
|
+
providerType: provider
|
|
2002
|
+
});
|
|
2003
|
+
updateAuthFromVerifyResponse({ response }, client);
|
|
2004
|
+
return response.user;
|
|
2005
|
+
};
|
|
2006
|
+
const __processSocialCallback_impl = processSocialCallback;
|
|
2007
|
+
const __processSocialCallback_wrapped = instrumentFunction({
|
|
2008
|
+
fn: __processSocialCallback_impl,
|
|
2009
|
+
functionName: "processSocialCallback",
|
|
2010
|
+
getCore: () => {
|
|
2011
|
+
try {
|
|
2012
|
+
return getCore(getDefaultClient());
|
|
2013
|
+
} catch {
|
|
2014
|
+
return;
|
|
2015
|
+
}
|
|
2016
|
+
}
|
|
2017
|
+
});
|
|
2018
|
+
|
|
2019
|
+
//#endregion
|
|
2020
|
+
//#region src/utils/digestSHA256/digestSHA256.ts
|
|
2021
|
+
/** @not-instrumented */
|
|
2022
|
+
const digestSHA256 = (str) => {
|
|
2023
|
+
const data = new TextEncoder().encode(str);
|
|
2024
|
+
return crypto.subtle.digest("SHA-256", data);
|
|
2025
|
+
};
|
|
2026
|
+
|
|
2027
|
+
//#endregion
|
|
2028
|
+
//#region src/utils/encodeBase64Url/encodeBase64Url.ts
|
|
2029
|
+
/**
|
|
2030
|
+
* Encodes a string to base64url.
|
|
2031
|
+
*
|
|
2032
|
+
* @param str - The string to encode as an ArrayBuffer.
|
|
2033
|
+
* @returns The base64url encoded string.
|
|
2034
|
+
* @not-instrumented
|
|
2035
|
+
*/
|
|
2036
|
+
const encodeBase64Url = (str) => {
|
|
2037
|
+
const numberArray = [];
|
|
2038
|
+
new Uint8Array(str).forEach((item) => numberArray.push(item));
|
|
2039
|
+
return btoa(String.fromCharCode.apply(null, numberArray)).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
2040
|
+
};
|
|
2041
|
+
|
|
2042
|
+
//#endregion
|
|
2043
|
+
//#region src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.ts
|
|
2044
|
+
const APPLE_RESPONSE_MODE = "form_post";
|
|
2045
|
+
const APPLE_RESPONSE_TYPE = "code id_token";
|
|
2046
|
+
/** Helper function to add OAuth URL parameters to a given base URL. * @not-instrumented
|
|
2047
|
+
*/
|
|
2048
|
+
const addOAuthUrlParams = ({ baseUrl, isGoogleDriveBackupEnabled, provider }) => {
|
|
2049
|
+
assertDefined(provider.clientId, "Client ID not found");
|
|
2050
|
+
assertDefined(provider.provider, "Provider type not found");
|
|
2051
|
+
assertDefined(provider.redirectUrl, "Redirect URL not found");
|
|
2052
|
+
const providerType = provider.provider;
|
|
2053
|
+
baseUrl.searchParams.set("client_id", provider.clientId);
|
|
2054
|
+
baseUrl.searchParams.set("response_type", "code");
|
|
2055
|
+
baseUrl.searchParams.set("redirect_uri", provider.redirectUrl);
|
|
2056
|
+
if (providerType === ProviderEnum.Tiktok) {
|
|
2057
|
+
baseUrl.searchParams.delete("client_id");
|
|
2058
|
+
baseUrl.searchParams.set("client_key", provider.clientId);
|
|
2059
|
+
}
|
|
2060
|
+
if (providerType === ProviderEnum.Google) {
|
|
2061
|
+
baseUrl.searchParams.set("access_type", "offline");
|
|
2062
|
+
if (isGoogleDriveBackupEnabled) baseUrl.searchParams.set("prompt", "consent");
|
|
2063
|
+
}
|
|
2064
|
+
if (providerType === ProviderEnum.Apple) {
|
|
2065
|
+
baseUrl.searchParams.set("response_mode", APPLE_RESPONSE_MODE);
|
|
2066
|
+
baseUrl.searchParams.set("response_type", APPLE_RESPONSE_TYPE);
|
|
2067
|
+
}
|
|
2068
|
+
if (provider.scopes) baseUrl.searchParams.set("scope", provider.scopes);
|
|
2069
|
+
return baseUrl;
|
|
2070
|
+
};
|
|
2071
|
+
|
|
2072
|
+
//#endregion
|
|
2073
|
+
//#region src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.ts
|
|
2074
|
+
/** Helper function to build the OAuth base URL for a given provider. * @not-instrumented
|
|
2075
|
+
*/
|
|
2076
|
+
const getOAuthBaseUrl = (provider) => {
|
|
2077
|
+
assertDefined(provider.provider, "Provider type not found");
|
|
2078
|
+
const providerType = provider.provider;
|
|
2079
|
+
if (providerType === ProviderEnum.Telegram) {
|
|
2080
|
+
assertDefined(provider.authorizationUrl, "Telegram authorization URL not found");
|
|
2081
|
+
return new URL(provider.authorizationUrl);
|
|
2082
|
+
}
|
|
2083
|
+
assertDefined(provider.baseAuthUrl, "Base auth URL not found");
|
|
2084
|
+
if (providerType === ProviderEnum.Shopify) {
|
|
2085
|
+
assertDefined(provider.shopifyStore, "Shopify store value not found in provider");
|
|
2086
|
+
const loginBaseUrl = provider.baseAuthUrl.replace("{{shopifyStore}}", provider.shopifyStore);
|
|
2087
|
+
return new URL(loginBaseUrl);
|
|
2088
|
+
}
|
|
2089
|
+
return new URL(provider.baseAuthUrl);
|
|
2090
|
+
};
|
|
2091
|
+
|
|
2092
|
+
//#endregion
|
|
2093
|
+
//#region src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/buildOAuthUrl.ts
|
|
2094
|
+
const providersRequiringPkce = ["twitter", "github"];
|
|
2095
|
+
/** Helper function to build the OAuth URL for a given provider. * @not-instrumented
|
|
2096
|
+
*/
|
|
2097
|
+
const buildOAuthUrl = async (core, provider) => {
|
|
2098
|
+
const { projectSettings } = core.state.get();
|
|
2099
|
+
assertDefined(projectSettings, "Project settings not found");
|
|
2100
|
+
assertDefined(projectSettings.providers, "Project providers not found");
|
|
2101
|
+
const socialProvider = projectSettings.providers.find((p) => p.provider === provider);
|
|
2102
|
+
assertDefined(socialProvider, `Social provider ${provider} not supported`);
|
|
2103
|
+
const isGoogleDriveBackupEnabled = projectSettings.sdk.waas?.backupOptions?.includes(WaasBackupOptionsEnum.GoogleDrive);
|
|
2104
|
+
const socialProviderUrl = addOAuthUrlParams({
|
|
2105
|
+
baseUrl: getOAuthBaseUrl(socialProvider),
|
|
2106
|
+
isGoogleDriveBackupEnabled,
|
|
2107
|
+
provider: socialProvider
|
|
2108
|
+
});
|
|
2109
|
+
const usingPkce = providersRequiringPkce.includes(provider);
|
|
2110
|
+
const state = randomString({ length: 32 });
|
|
2111
|
+
const codeVerifier = randomString({ length: 43 });
|
|
2112
|
+
socialProviderUrl.searchParams.set("state", state);
|
|
2113
|
+
socialProviderUrl.searchParams.set("response_type", "code");
|
|
2114
|
+
if (usingPkce) {
|
|
2115
|
+
const digest = await digestSHA256(codeVerifier);
|
|
2116
|
+
socialProviderUrl.searchParams.set("code_challenge", encodeBase64Url(digest));
|
|
2117
|
+
socialProviderUrl.searchParams.set("code_challenge_method", "S256");
|
|
2118
|
+
}
|
|
2119
|
+
return {
|
|
2120
|
+
codeVerifier: usingPkce ? codeVerifier : void 0,
|
|
2121
|
+
state,
|
|
2122
|
+
url: socialProviderUrl
|
|
2123
|
+
};
|
|
2124
|
+
};
|
|
2125
|
+
|
|
2126
|
+
//#endregion
|
|
2127
|
+
//#region src/modules/auth/social/oauth/signInWithSocialPopUp/signInWithSocialPopUp.native.ts
|
|
2128
|
+
/**
|
|
2129
|
+
* Default auth-session opener — uses `react-native-inappbrowser-reborn`
|
|
2130
|
+
* (ASWebAuthenticationSession on iOS, Chrome Custom Tabs on Android). Used
|
|
2131
|
+
* when the host app has not overridden `coreConfig.openAuthSession`.
|
|
2132
|
+
*/
|
|
2133
|
+
const openDefaultAuthSession = async ({ authUrl, redirectUrl }) => {
|
|
2134
|
+
const { default: InAppBrowser } = await import("react-native-inappbrowser-reborn");
|
|
2135
|
+
try {
|
|
2136
|
+
InAppBrowser.closeAuth();
|
|
2137
|
+
} catch {}
|
|
2138
|
+
const result = await InAppBrowser.openAuth(authUrl, redirectUrl);
|
|
2139
|
+
if (result.type === "success" && result.url) return {
|
|
2140
|
+
type: "success",
|
|
2141
|
+
url: result.url
|
|
2142
|
+
};
|
|
2143
|
+
return { type: "cancel" };
|
|
2144
|
+
};
|
|
2145
|
+
/**
|
|
2146
|
+
* Signs the user in with a social provider via an in-app authentication
|
|
2147
|
+
* session, then completes the flow and returns the authenticated user.
|
|
2148
|
+
*
|
|
2149
|
+
* Requires `metadata.nativeLink` to be set on the client — it is used as
|
|
2150
|
+
* the OAuth redirect URL; the provider redirects back to it after the user
|
|
2151
|
+
* authenticates. The auth session defaults to `react-native-inappbrowser-reborn`;
|
|
2152
|
+
* override via `coreConfig.openAuthSession` to plug in a different browser.
|
|
2153
|
+
*
|
|
2154
|
+
* Supports every provider in `SocialProvider` (Apple, Discord, Facebook,
|
|
2155
|
+
* Github, Google, Kraken, LinkedIn, Microsoft, Epic Games, Steam, TikTok,
|
|
2156
|
+
* Twitch, Twitter).
|
|
2157
|
+
*
|
|
2158
|
+
* @param params.provider - The social provider to authenticate with.
|
|
2159
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2160
|
+
* @returns The authenticated user, or null if the verify response had none.
|
|
2161
|
+
* @throws UserCancelledSocialPopUpError If the user dismisses the pop-up before completing auth.
|
|
2162
|
+
* @throws InvalidSocialCallbackOriginError If the callback URL origin does not match `metadata.nativeLink`.
|
|
2163
|
+
* @instrumented
|
|
2164
|
+
*/
|
|
2165
|
+
const signInWithSocialPopUp = async ({ provider }, client = getDefaultClient()) => {
|
|
2166
|
+
const core = getCore(client);
|
|
2167
|
+
const apiClient = createApiClient({}, client);
|
|
2168
|
+
const nativeLink = core.metadata?.nativeLink;
|
|
2169
|
+
assertDefined(nativeLink, "metadata.nativeLink must be set on the Dynamic client to use signInWithSocialPopUp");
|
|
2170
|
+
await core.initTrack.waitForAll();
|
|
2171
|
+
const providerType = provider;
|
|
2172
|
+
const { url, state, codeVerifier } = await buildOAuthUrl(core, providerType);
|
|
2173
|
+
await apiClient.initAuth({
|
|
2174
|
+
environmentId: core.environmentId,
|
|
2175
|
+
oauthInitAuthRequest: {
|
|
2176
|
+
redirectUrl: nativeLink,
|
|
2177
|
+
state
|
|
2178
|
+
},
|
|
2179
|
+
providerType
|
|
2180
|
+
});
|
|
2181
|
+
await core.storage.setItem(redirectStateStorageKeySchema, {
|
|
2182
|
+
codeVerifier,
|
|
2183
|
+
provider: providerType,
|
|
2184
|
+
state
|
|
2185
|
+
});
|
|
2186
|
+
const openSession = core.openAuthSession ?? openDefaultAuthSession;
|
|
2187
|
+
try {
|
|
2188
|
+
const result = await openSession({
|
|
2189
|
+
authUrl: url.toString(),
|
|
2190
|
+
redirectUrl: nativeLink
|
|
2191
|
+
});
|
|
2192
|
+
if (result.type === "cancel") throw new UserCancelledSocialPopUpError();
|
|
2193
|
+
const callbackUrl = new URL(result.url);
|
|
2194
|
+
const expectedUrl = new URL(nativeLink);
|
|
2195
|
+
const callbackOrigin = `${callbackUrl.protocol}//${callbackUrl.host}`;
|
|
2196
|
+
const expectedOrigin = `${expectedUrl.protocol}//${expectedUrl.host}`;
|
|
2197
|
+
if (callbackOrigin !== expectedOrigin) throw new InvalidSocialCallbackOriginError({
|
|
2198
|
+
actualOrigin: callbackOrigin,
|
|
2199
|
+
expectedOrigin
|
|
2200
|
+
});
|
|
2201
|
+
return await __processSocialCallback_wrapped({ url: callbackUrl }, client);
|
|
2202
|
+
} catch (error) {
|
|
2203
|
+
await core.storage.removeItem(redirectStateStorageKeySchema);
|
|
2204
|
+
throw error;
|
|
2205
|
+
}
|
|
2206
|
+
};
|
|
2207
|
+
const __signInWithSocialPopUp_impl = signInWithSocialPopUp;
|
|
2208
|
+
const __signInWithSocialPopUp_wrapped = instrumentFunction({
|
|
2209
|
+
fn: __signInWithSocialPopUp_impl,
|
|
2210
|
+
functionName: "signInWithSocialPopUp",
|
|
2211
|
+
getCore: () => {
|
|
2212
|
+
try {
|
|
2213
|
+
return getCore(getDefaultClient());
|
|
2214
|
+
} catch {
|
|
2215
|
+
return;
|
|
2216
|
+
}
|
|
2217
|
+
}
|
|
2218
|
+
});
|
|
2219
|
+
|
|
1905
2220
|
//#endregion
|
|
1906
2221
|
//#region src/modules/auth/social/oauth/detectSocialRedirectUrl/detectSocialRedirectUrl.native.ts
|
|
1907
2222
|
/**
|
|
1908
|
-
* OAuth redirect detection is not
|
|
1909
|
-
*
|
|
2223
|
+
* OAuth redirect detection is not supported on React Native. There is no
|
|
2224
|
+
* browser redirect to detect because `signInWithSocialPopUp` processes the
|
|
2225
|
+
* pop-up callback inline and returns the authenticated user directly.
|
|
1910
2226
|
*
|
|
1911
2227
|
* @throws MethodNotImplementedError Always on React Native.
|
|
1912
2228
|
* @not-instrumented
|
|
1913
2229
|
*/
|
|
1914
2230
|
const detectSocialRedirectUrl = async ({ url }, client = getDefaultClient()) => {
|
|
1915
|
-
throw new MethodNotImplementedError("detectSocialRedirectUrl");
|
|
2231
|
+
throw new MethodNotImplementedError("detectSocialRedirectUrl (not needed on React Native — signInWithSocialPopUp processes the callback inline)");
|
|
1916
2232
|
};
|
|
1917
2233
|
|
|
1918
2234
|
//#endregion
|
|
1919
2235
|
//#region src/modules/auth/social/oauth/completeSocialRedirect/completeSocialRedirect.native.ts
|
|
1920
2236
|
/**
|
|
1921
|
-
* Completing an OAuth redirect is not
|
|
1922
|
-
*
|
|
1923
|
-
*
|
|
2237
|
+
* Completing an OAuth redirect is not supported on React Native. Use
|
|
2238
|
+
* `signInWithSocialPopUp` instead: it opens the in-app auth session,
|
|
2239
|
+
* processes the callback, and returns the authenticated user in one call —
|
|
2240
|
+
* there is no separate "complete" step on native.
|
|
1924
2241
|
*
|
|
1925
2242
|
* @throws MethodNotImplementedError Always on React Native.
|
|
1926
2243
|
* @instrumented
|
|
1927
2244
|
*/
|
|
1928
2245
|
const completeSocialRedirect = async ({ url, requestedScopes }, client = getDefaultClient()) => {
|
|
1929
|
-
throw new MethodNotImplementedError("completeSocialRedirect");
|
|
2246
|
+
throw new MethodNotImplementedError("completeSocialRedirect (not needed on React Native — signInWithSocialPopUp processes the callback inline)");
|
|
1930
2247
|
};
|
|
1931
2248
|
const __completeSocialRedirect_impl = completeSocialRedirect;
|
|
1932
2249
|
const __completeSocialRedirect_wrapped = instrumentFunction({
|
|
@@ -2248,97 +2565,6 @@ const getCheckouts = async (client) => {
|
|
|
2248
2565
|
return projectSettings.checkouts ?? [];
|
|
2249
2566
|
};
|
|
2250
2567
|
|
|
2251
|
-
//#endregion
|
|
2252
|
-
//#region src/modules/checkout/utils/createCheckoutTransactionChannelSchema/createCheckoutTransactionChannelSchema.ts
|
|
2253
|
-
/**
|
|
2254
|
-
* Zod schema for realtime events published to a checkout transaction's channel.
|
|
2255
|
-
* Uses z.string() for axis and state fields to remain valid when new states are
|
|
2256
|
-
* added to the backend without requiring a SDK update.
|
|
2257
|
-
*/
|
|
2258
|
-
const checkoutTransactionEventSchema = z.object({
|
|
2259
|
-
axis: z.string(),
|
|
2260
|
-
newState: z.string(),
|
|
2261
|
-
previousState: z.string(),
|
|
2262
|
-
timestamp: z.string(),
|
|
2263
|
-
transactionId: z.string()
|
|
2264
|
-
});
|
|
2265
|
-
/**
|
|
2266
|
-
* Creates a typed realtime channel schema for a given checkout transaction.
|
|
2267
|
-
* Channel name follows the backend convention: `transaction:{transactionId}`.
|
|
2268
|
-
* @not-instrumented
|
|
2269
|
-
*/
|
|
2270
|
-
const createCheckoutTransactionChannelSchema = (transactionId) => createRealtimeChannelSchema({
|
|
2271
|
-
channel: `transaction:${transactionId}`,
|
|
2272
|
-
schema: checkoutTransactionEventSchema
|
|
2273
|
-
});
|
|
2274
|
-
|
|
2275
|
-
//#endregion
|
|
2276
|
-
//#region src/modules/checkout/utils/subscribeToCheckoutTransaction/subscribeToCheckoutTransaction.ts
|
|
2277
|
-
const TERMINAL_EXECUTION_STATES = new Set([
|
|
2278
|
-
"cancelled",
|
|
2279
|
-
"expired",
|
|
2280
|
-
"failed"
|
|
2281
|
-
]);
|
|
2282
|
-
const TERMINAL_SETTLEMENT_STATES = new Set(["completed", "failed"]);
|
|
2283
|
-
const isTerminalEvent = (data) => {
|
|
2284
|
-
if (data.axis === "execution") return TERMINAL_EXECUTION_STATES.has(data.newState);
|
|
2285
|
-
if (data.axis === "settlement") return TERMINAL_SETTLEMENT_STATES.has(data.newState);
|
|
2286
|
-
return false;
|
|
2287
|
-
};
|
|
2288
|
-
/**
|
|
2289
|
-
* Connects to the realtime service if not already connected and subscribes to
|
|
2290
|
-
* all state transition events for the given checkout transaction.
|
|
2291
|
-
*
|
|
2292
|
-
* Settlement and execution axis events are forwarded as public SDK events.
|
|
2293
|
-
* The subscription is torn down automatically when a terminal event is received.
|
|
2294
|
-
* @not-instrumented
|
|
2295
|
-
*/
|
|
2296
|
-
const subscribeToCheckoutTransaction = async ({ transactionId }, client) => {
|
|
2297
|
-
const core = getCore(client);
|
|
2298
|
-
const { realtime } = core;
|
|
2299
|
-
if (realtime.getConnectionState() === "idle") {
|
|
2300
|
-
const sessionToken = await core.storage.getItem(createCheckoutSessionTokenStorageKey(transactionId));
|
|
2301
|
-
const headers = {};
|
|
2302
|
-
if (sessionToken) {
|
|
2303
|
-
headers["x-dynamic-checkout-session-token"] = sessionToken;
|
|
2304
|
-
headers["x-dynamic-checkout-transaction-id"] = transactionId;
|
|
2305
|
-
}
|
|
2306
|
-
await realtime.connect({
|
|
2307
|
-
client,
|
|
2308
|
-
headers
|
|
2309
|
-
});
|
|
2310
|
-
}
|
|
2311
|
-
const channelSchema = createCheckoutTransactionChannelSchema(transactionId);
|
|
2312
|
-
const handler = ({ data }) => {
|
|
2313
|
-
if (data.axis === "execution") emitEvent({
|
|
2314
|
-
args: {
|
|
2315
|
-
newState: data.newState,
|
|
2316
|
-
previousState: data.previousState,
|
|
2317
|
-
timestamp: data.timestamp,
|
|
2318
|
-
transactionId: data.transactionId
|
|
2319
|
-
},
|
|
2320
|
-
event: "checkoutTransactionExecutionStateChanged"
|
|
2321
|
-
}, client);
|
|
2322
|
-
if (data.axis === "settlement") emitEvent({
|
|
2323
|
-
args: {
|
|
2324
|
-
newState: data.newState,
|
|
2325
|
-
previousState: data.previousState,
|
|
2326
|
-
timestamp: data.timestamp,
|
|
2327
|
-
transactionId: data.transactionId
|
|
2328
|
-
},
|
|
2329
|
-
event: "checkoutTransactionSettlementStateChanged"
|
|
2330
|
-
}, client);
|
|
2331
|
-
if (isTerminalEvent(data)) realtime.unsubscribe({
|
|
2332
|
-
callback: handler,
|
|
2333
|
-
channelSchema
|
|
2334
|
-
});
|
|
2335
|
-
};
|
|
2336
|
-
await realtime.subscribe({
|
|
2337
|
-
callback: handler,
|
|
2338
|
-
channelSchema
|
|
2339
|
-
});
|
|
2340
|
-
};
|
|
2341
|
-
|
|
2342
2568
|
//#endregion
|
|
2343
2569
|
//#region src/modules/checkout/createCheckoutTransaction/createCheckoutTransaction.ts
|
|
2344
2570
|
/**
|
|
@@ -2370,9 +2596,6 @@ const createCheckoutTransaction = async (params, client = getDefaultClient()) =>
|
|
|
2370
2596
|
environmentId: core.environmentId
|
|
2371
2597
|
});
|
|
2372
2598
|
await core.storage.setItem(createCheckoutSessionTokenStorageKey(result.transaction.id), result.sessionToken);
|
|
2373
|
-
subscribeToCheckoutTransaction({ transactionId: result.transaction.id }, client).catch((error) => {
|
|
2374
|
-
core.logger.error("Failed to subscribe to checkout transaction realtime channel", error);
|
|
2375
|
-
});
|
|
2376
2599
|
return result;
|
|
2377
2600
|
};
|
|
2378
2601
|
const __createCheckoutTransaction_impl = createCheckoutTransaction;
|
|
@@ -2598,11 +2821,17 @@ const __submitCheckoutTransaction_wrapped = instrumentFunction({
|
|
|
2598
2821
|
* subscribed — calling this again for those is unnecessary unless the page
|
|
2599
2822
|
* has been reloaded.
|
|
2600
2823
|
*
|
|
2824
|
+
* NOTE: Temporarily a no-op while the Ably API key is being provisioned for
|
|
2825
|
+
* the realtime checkout transaction channel. Will be re-enabled once the
|
|
2826
|
+
* dashboard-api environment has the Ably wiring in place.
|
|
2827
|
+
*
|
|
2601
2828
|
* @param params.transactionId - The ID of the checkout transaction to track.
|
|
2602
2829
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2603
2830
|
* @not-instrumented
|
|
2604
2831
|
*/
|
|
2605
|
-
const trackCheckoutTransaction = (
|
|
2832
|
+
const trackCheckoutTransaction = (_params, client = getDefaultClient()) => {
|
|
2833
|
+
return Promise.resolve();
|
|
2834
|
+
};
|
|
2606
2835
|
|
|
2607
2836
|
//#endregion
|
|
2608
2837
|
//#region src/modules/checkout/utils/requiresConversion/requiresConversion.ts
|
|
@@ -5180,6 +5409,184 @@ const isUserOnboardingComplete = (client = getDefaultClient()) => {
|
|
|
5180
5409
|
return !hasMissingKycFields && !hasPendingMfaAuth && !hasPendingRecoveryCodes;
|
|
5181
5410
|
};
|
|
5182
5411
|
|
|
5412
|
+
//#endregion
|
|
5413
|
+
//#region src/modules/walletBackup/googleDrive/constants.ts
|
|
5414
|
+
/**
|
|
5415
|
+
* OAuth scopes that must be granted on the user's Google account in order
|
|
5416
|
+
* for the keyshare backup upload to Google Drive to succeed.
|
|
5417
|
+
*
|
|
5418
|
+
* Exported so host apps can pre-flight check or display these in their own
|
|
5419
|
+
* UX. Kept as a `readonly` tuple to discourage mutation.
|
|
5420
|
+
*/
|
|
5421
|
+
const GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES = ["https://www.googleapis.com/auth/drive.appdata", "https://www.googleapis.com/auth/drive.file"];
|
|
5422
|
+
/**
|
|
5423
|
+
* Stable phrase the WaaS layer includes in Google Drive 401 / scope-insufficient
|
|
5424
|
+
* upload failure messages. Match by `.includes(...)` rather than equality
|
|
5425
|
+
* because the iframe message-handler fallback path rewraps the original error
|
|
5426
|
+
* as `new Error(String(response.error))`, which prefixes the message with
|
|
5427
|
+
* "Error: ". The phrase remains unique to the auth/scope case across all the
|
|
5428
|
+
* Drive failure reasons (rate-limit, storage-full, 5xx, network all use
|
|
5429
|
+
* distinct prefixes), so message-only matching is sufficient to discriminate.
|
|
5430
|
+
*/
|
|
5431
|
+
const ACCESS_DENIED_PHRASE = "Google Drive access denied";
|
|
5432
|
+
|
|
5433
|
+
//#endregion
|
|
5434
|
+
//#region src/modules/walletBackup/googleDrive/findMissingGoogleDriveBackupScopes/findMissingGoogleDriveBackupScopes.ts
|
|
5435
|
+
/**
|
|
5436
|
+
* Returns the Google OAuth scopes from `GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES`
|
|
5437
|
+
* that are NOT present in `grantedScopes`. An empty array means all required
|
|
5438
|
+
* scopes have been granted.
|
|
5439
|
+
*
|
|
5440
|
+
* @param grantedScopes - Scopes the user has granted to their Google account.
|
|
5441
|
+
* @returns The subset of required scopes that are still missing.
|
|
5442
|
+
* @not-instrumented
|
|
5443
|
+
*/
|
|
5444
|
+
const findMissingGoogleDriveBackupScopes = (grantedScopes) => GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES.filter((required) => !grantedScopes.includes(required));
|
|
5445
|
+
|
|
5446
|
+
//#endregion
|
|
5447
|
+
//#region src/modules/walletBackup/googleDrive/utils/fetchGoogleDriveOauthAccess/fetchGoogleDriveOauthAccess.ts
|
|
5448
|
+
/**
|
|
5449
|
+
* Fetches the user's stored Google OAuth access token together with the
|
|
5450
|
+
* scopes that were granted when the token was issued.
|
|
5451
|
+
*
|
|
5452
|
+
* Internal to the Google Drive backup readiness check — not exported as a
|
|
5453
|
+
* public API. The returned `scopes` array can be empty for legacy tokens
|
|
5454
|
+
* captured before the API began tracking granted scopes.
|
|
5455
|
+
*
|
|
5456
|
+
* @param params.oauthAccountId - The verified-credential id of the linked
|
|
5457
|
+
* Google account (see `findGoogleOauthAccountId`).
|
|
5458
|
+
* @param client - The Dynamic client instance.
|
|
5459
|
+
* @returns The OAuth access token and granted scopes.
|
|
5460
|
+
* @not-instrumented
|
|
5461
|
+
*/
|
|
5462
|
+
const fetchGoogleDriveOauthAccess = async ({ oauthAccountId }, client) => {
|
|
5463
|
+
const core = getCore(client);
|
|
5464
|
+
return createApiClient({}, client).getEndUserOauthAccessToken({
|
|
5465
|
+
environmentId: core.environmentId,
|
|
5466
|
+
oauthAccountId
|
|
5467
|
+
});
|
|
5468
|
+
};
|
|
5469
|
+
|
|
5470
|
+
//#endregion
|
|
5471
|
+
//#region src/modules/walletBackup/googleDrive/utils/findGoogleOauthAccountId/findGoogleOauthAccountId.ts
|
|
5472
|
+
/**
|
|
5473
|
+
* Returns the verified-credential `id` (UUID of the user_oauth_accounts row)
|
|
5474
|
+
* for the user's linked Google account, or `undefined` if no Google account
|
|
5475
|
+
* is linked.
|
|
5476
|
+
*
|
|
5477
|
+
* The `getEndUserOauthAccessToken` API path parameter expects this UUID, NOT
|
|
5478
|
+
* the third-party `oauthAccountId` (Google's numeric profile ID) — those are
|
|
5479
|
+
* stored in the same credential under different fields.
|
|
5480
|
+
*
|
|
5481
|
+
* @param credentials - The user's verified credentials, typically from
|
|
5482
|
+
* `client.user?.verifiedCredentials`.
|
|
5483
|
+
* @returns The credential id of the linked Google oauth account, or
|
|
5484
|
+
* `undefined`.
|
|
5485
|
+
* @not-instrumented
|
|
5486
|
+
*/
|
|
5487
|
+
const findGoogleOauthAccountId = (credentials) => credentials?.find((cred) => cred.format === JwtVerifiedCredentialFormatEnum.Oauth && cred.oauthProvider === ProviderEnum.Google)?.id;
|
|
5488
|
+
|
|
5489
|
+
//#endregion
|
|
5490
|
+
//#region src/modules/walletBackup/googleDrive/getGoogleDriveBackupReadiness/getGoogleDriveBackupReadiness.ts
|
|
5491
|
+
/**
|
|
5492
|
+
* Pre-flight readiness check for backing up MPC keyshares to Google Drive.
|
|
5493
|
+
*
|
|
5494
|
+
* Call this before initiating the keyshare backup ceremony. When the result
|
|
5495
|
+
* is `'needs-access'`, have the user re-link their Google account so the
|
|
5496
|
+
* required Drive scopes are granted, then call this again before retrying
|
|
5497
|
+
* the backup. This avoids spending an MPC reshare ceremony on a backup that
|
|
5498
|
+
* will predictably fail.
|
|
5499
|
+
*
|
|
5500
|
+
* Status values:
|
|
5501
|
+
* - `'ready'`: stored scopes include both required Drive scopes; backup
|
|
5502
|
+
* should succeed (barring transient errors).
|
|
5503
|
+
* - `'needs-access'`: backup likely won't succeed without user intervention.
|
|
5504
|
+
* Three sub-cases, distinguished by `missingScopes`:
|
|
5505
|
+
* - No Google account linked → `missingScopes` is the full required set.
|
|
5506
|
+
* - Some scopes granted but not all → `missingScopes` lists the gap.
|
|
5507
|
+
* - Legacy token captured before scope tracking shipped (`scopes: []` from
|
|
5508
|
+
* the API) → `missingScopes` is empty. Forcing a fresh consent will
|
|
5509
|
+
* populate the scopes column for subsequent calls.
|
|
5510
|
+
*
|
|
5511
|
+
* Failures of the underlying access-token fetch propagate as Promise
|
|
5512
|
+
* rejections — the caller is expected to surface or retry them.
|
|
5513
|
+
*
|
|
5514
|
+
* Pair with `isInsufficientGoogleDriveScopesError` to detect post-flight
|
|
5515
|
+
* scope failures (e.g. for the legacy "unknown scopes" case where pre-flight
|
|
5516
|
+
* cannot prove failure).
|
|
5517
|
+
*
|
|
5518
|
+
* @param [client] - The Dynamic client instance. Only required when using
|
|
5519
|
+
* multiple Dynamic clients.
|
|
5520
|
+
* @returns The readiness result.
|
|
5521
|
+
* @instrumented
|
|
5522
|
+
*/
|
|
5523
|
+
const getGoogleDriveBackupReadiness = async (client = getDefaultClient()) => {
|
|
5524
|
+
const { user } = client;
|
|
5525
|
+
const oauthAccountId = findGoogleOauthAccountId(user?.verifiedCredentials);
|
|
5526
|
+
if (!oauthAccountId) return {
|
|
5527
|
+
missingScopes: GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES,
|
|
5528
|
+
status: "needs-access"
|
|
5529
|
+
};
|
|
5530
|
+
const { accessToken, scopes } = await fetchGoogleDriveOauthAccess({ oauthAccountId }, client);
|
|
5531
|
+
if (scopes.length === 0) return {
|
|
5532
|
+
accessToken,
|
|
5533
|
+
missingScopes: [],
|
|
5534
|
+
status: "needs-access"
|
|
5535
|
+
};
|
|
5536
|
+
const missing = findMissingGoogleDriveBackupScopes(scopes);
|
|
5537
|
+
if (missing.length === 0) return {
|
|
5538
|
+
accessToken,
|
|
5539
|
+
missingScopes: [],
|
|
5540
|
+
status: "ready"
|
|
5541
|
+
};
|
|
5542
|
+
return {
|
|
5543
|
+
accessToken,
|
|
5544
|
+
missingScopes: missing,
|
|
5545
|
+
status: "needs-access"
|
|
5546
|
+
};
|
|
5547
|
+
};
|
|
5548
|
+
const __getGoogleDriveBackupReadiness_impl = getGoogleDriveBackupReadiness;
|
|
5549
|
+
const __getGoogleDriveBackupReadiness_wrapped = instrumentFunction({
|
|
5550
|
+
fn: __getGoogleDriveBackupReadiness_impl,
|
|
5551
|
+
functionName: "getGoogleDriveBackupReadiness",
|
|
5552
|
+
getCore: () => {
|
|
5553
|
+
try {
|
|
5554
|
+
return getCore(getDefaultClient());
|
|
5555
|
+
} catch {
|
|
5556
|
+
return;
|
|
5557
|
+
}
|
|
5558
|
+
}
|
|
5559
|
+
});
|
|
5560
|
+
|
|
5561
|
+
//#endregion
|
|
5562
|
+
//#region src/modules/walletBackup/googleDrive/hasAllGoogleDriveBackupScopes/hasAllGoogleDriveBackupScopes.ts
|
|
5563
|
+
/**
|
|
5564
|
+
* Returns whether `grantedScopes` covers every Google OAuth scope required
|
|
5565
|
+
* to upload a keyshare backup to Google Drive.
|
|
5566
|
+
*
|
|
5567
|
+
* @param grantedScopes - Scopes the user has granted to their Google account.
|
|
5568
|
+
* @returns `true` when every required scope is granted, otherwise `false`.
|
|
5569
|
+
* @not-instrumented
|
|
5570
|
+
*/
|
|
5571
|
+
const hasAllGoogleDriveBackupScopes = (grantedScopes) => findMissingGoogleDriveBackupScopes(grantedScopes).length === 0;
|
|
5572
|
+
|
|
5573
|
+
//#endregion
|
|
5574
|
+
//#region src/modules/walletBackup/googleDrive/isInsufficientGoogleDriveScopesError/isInsufficientGoogleDriveScopesError.ts
|
|
5575
|
+
/**
|
|
5576
|
+
* Type-guard for Google Drive backup failures caused by missing or
|
|
5577
|
+
* insufficient OAuth scopes (or otherwise denied access).
|
|
5578
|
+
*
|
|
5579
|
+
* Recover by having the user re-link their Google account and retrying the
|
|
5580
|
+
* backup once the granted scopes include
|
|
5581
|
+
* `GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES`.
|
|
5582
|
+
*
|
|
5583
|
+
* @param err - The unknown value to check.
|
|
5584
|
+
* @returns `true` when `err` is an `Error` whose message indicates Google
|
|
5585
|
+
* Drive access was denied.
|
|
5586
|
+
* @not-instrumented
|
|
5587
|
+
*/
|
|
5588
|
+
const isInsufficientGoogleDriveScopesError = (err) => err instanceof Error && err.message.includes(ACCESS_DENIED_PHRASE);
|
|
5589
|
+
|
|
5183
5590
|
//#endregion
|
|
5184
5591
|
//#region src/modules/wallets/assertWalletAccountSigningAvailability/assertWalletAccountSigningAvailability.ts
|
|
5185
5592
|
/**
|
|
@@ -6253,5 +6660,5 @@ const parseUserAgent = ({ userAgent }) => {
|
|
|
6253
6660
|
assertPackageVersion(name, version);
|
|
6254
6661
|
|
|
6255
6662
|
//#endregion
|
|
6256
|
-
export { BaseError, CheckoutSessionTokenMissingError, ClientAlreadyInitializedError, DeeplinkConnectAndVerifyUnsupportedError, FeeEstimationFailedError, InvalidDeviceRegistrationRedirectError, InvalidExternalAuthError, InvalidParamError, InvalidRedirectStorageStateError, LinkCredentialError, MFAAction, MfaInvalidOtpError, MfaRateLimitedError, MissingRedirectStorageStateError, MissingSocialUrlParamError, MissingUserVerificationError, NetworkAddingUnavailableError, NetworkNotAddedError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoNetworkProvidersError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, NotWaasWalletAccountError, SandboxMaximumThresholdReachedError, SimulationFailedError, TokenSwapError, UnauthorizedError, UnavailableInServerSideError, UnrecognizedNetworkError, UserNotAuthenticatedError, UserRejectedError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletAlreadyLinkedToAnotherUserError, WalletProviderMethodUnavailableError, __acknowledgeRecoveryCodes_wrapped as acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, __addNetwork_wrapped as addNetwork, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, __attachCheckoutTransactionSource_wrapped as attachCheckoutTransactionSource, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, __authenticateWithSocial_wrapped as authenticateWithSocial, __broadcastCheckoutTransaction_wrapped as broadcastCheckoutTransaction, canConnectWithHardwareWallet, __cancelCheckoutTransaction_wrapped as cancelCheckoutTransaction, __checkStepUpAuth_wrapped as checkStepUpAuth, __completeDeviceRegistration_wrapped as completeDeviceRegistration, __completeSocialAuthentication_wrapped as completeSocialAuthentication, __completeSocialRedirect_wrapped as completeSocialRedirect, __confirmTransaction_wrapped as confirmTransaction, __connectAndVerifyWithWalletProvider_wrapped as connectAndVerifyWithWalletProvider, __connectWithWalletProvider_wrapped as connectWithWalletProvider, __consumeMfaToken_wrapped as consumeMfaToken, __createCheckoutTransaction_wrapped as createCheckoutTransaction, __createCoinbaseOnrampOrder_wrapped as createCoinbaseOnrampOrder, __createCryptoDotComPayment_wrapped as createCryptoDotComPayment, __createDynamicClient_wrapped as createDynamicClient, __createKrakenExchangeTransfer_wrapped as createKrakenExchangeTransfer, __createNewMfaRecoveryCodes_wrapped as createNewMfaRecoveryCodes, __deleteMfaDevice_wrapped as deleteMfaDevice, __deletePasskey_wrapped as deletePasskey, __deleteUser_wrapped as deleteUser, detectDeviceRegistrationRedirect, detectOAuthRedirect, detectSocialRedirectUrl, __executeSwapTransaction_wrapped as executeSwapTransaction, fetchProjectSettings, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalance, getBalanceForAddress, getBalances, getCheckoutTransaction, getCheckoutTransactionQuote, getCoinbaseBuyUrl, getConnectedAddresses, getDefaultClient, getDeviceRegistrationTokenFromUrl, __getElevatedAccessToken_wrapped as getElevatedAccessToken, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMissingVerificationForCoinbaseOnrampOrder, getMultichainBalances, getNetworksData, getOwnerWalletAccountForSmartWalletAccount, getPasskeys, getPrimaryWalletAccount, getRegisteredDevices, getSwapQuote, getSwapStatus, getTransactionHistory, getUserSocialAccounts, getWalletAccountAddressByType, getWalletAccountFromAddress, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletProviderDataByKey, hasExtension, __initializeClient_wrapped as initializeClient, isCaptchaRequired, isDeeplinkWalletProvider, isDeviceRegistrationRequired, isHardwareWalletAccount, isMfaRequiredForAction, isMobile, isPendingRecoveryCodesAcknowledgment, isProgrammaticNetworkSwitchAvailable, isSignedIn, isUserMissingMfaAuth, isUserOnboardingComplete, isWalletAccountVerified, logout, offEvent, offWalletProviderEvent, onEvent, onWalletProviderEvent, onceEvent, parseUserAgent, __prepareCheckoutTransaction_wrapped as prepareCheckoutTransaction, __proveWalletAccountOwnership_wrapped as proveWalletAccountOwnership, __refreshAuth_wrapped as refreshAuth, __refreshUser_wrapped as refreshUser, __registerPasskey_wrapped as registerPasskey, __registerTotpMfaDevice_wrapped as registerTotpMfaDevice, __removeWalletAccount_wrapped as removeWalletAccount, __requestExternalAuthElevatedToken_wrapped as requestExternalAuthElevatedToken, requiresConversion, __revokeAllRegisteredDevices_wrapped as revokeAllRegisteredDevices, __revokeRegisteredDevice_wrapped as revokeRegisteredDevice, __selectPrimaryWalletAccount_wrapped as selectPrimaryWalletAccount, __sendEmailOTP_wrapped as sendEmailOTP, __sendSmsOTP_wrapped as sendSmsOTP, __setCaptchaToken_wrapped as setCaptchaToken, __setDefaultMfaDevice_wrapped as setDefaultMfaDevice, __setInstrumentationEnabled_wrapped as setInstrumentationEnabled, __signInWithExternalJwt_wrapped as signInWithExternalJwt, __signInWithPasskey_wrapped as signInWithPasskey, __signInWithSocialRedirect_wrapped as signInWithSocialRedirect, __signMessage_wrapped as signMessage, __submitCheckoutTransaction_wrapped as submitCheckoutTransaction, supportedCountries, __switchActiveNetwork_wrapped as switchActiveNetwork, trackCheckoutTransaction, __transferAmount_wrapped as transferAmount, __transferWalletAccount_wrapped as transferWalletAccount, __unlinkSocialAccount_wrapped as unlinkSocialAccount, __updateUser_wrapped as updateUser, __verifyOTP_wrapped as verifyOTP, __verifyWalletAccount_wrapped as verifyWalletAccount, waitForClientInitialized };
|
|
6663
|
+
export { BaseError, CheckoutSessionTokenMissingError, ClientAlreadyInitializedError, DeeplinkConnectAndVerifyUnsupportedError, FeeEstimationFailedError, GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES, InvalidDeviceRegistrationRedirectError, InvalidExternalAuthError, InvalidParamError, InvalidRedirectStorageStateError, InvalidSocialCallbackOriginError, LinkCredentialError, MFAAction, MfaInvalidOtpError, MfaRateLimitedError, MissingRedirectStorageStateError, MissingSocialUrlParamError, MissingUserVerificationError, NetworkAddingUnavailableError, NetworkNotAddedError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoNetworkProvidersError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, NotWaasWalletAccountError, SandboxMaximumThresholdReachedError, SimulationFailedError, TokenSwapError, UnauthorizedError, UnavailableInServerSideError, UnrecognizedNetworkError, UserCancelledSocialPopUpError, UserNotAuthenticatedError, UserRejectedError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletAlreadyLinkedToAnotherUserError, WalletProviderMethodUnavailableError, __acknowledgeRecoveryCodes_wrapped as acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, __addNetwork_wrapped as addNetwork, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, __attachCheckoutTransactionSource_wrapped as attachCheckoutTransactionSource, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, __authenticateWithSocial_wrapped as authenticateWithSocial, __broadcastCheckoutTransaction_wrapped as broadcastCheckoutTransaction, canConnectWithHardwareWallet, __cancelCheckoutTransaction_wrapped as cancelCheckoutTransaction, __checkStepUpAuth_wrapped as checkStepUpAuth, __completeDeviceRegistration_wrapped as completeDeviceRegistration, __completeSocialAuthentication_wrapped as completeSocialAuthentication, __completeSocialRedirect_wrapped as completeSocialRedirect, __confirmTransaction_wrapped as confirmTransaction, __connectAndVerifyWithWalletProvider_wrapped as connectAndVerifyWithWalletProvider, __connectWithWalletProvider_wrapped as connectWithWalletProvider, __consumeMfaToken_wrapped as consumeMfaToken, __createCheckoutTransaction_wrapped as createCheckoutTransaction, __createCoinbaseOnrampOrder_wrapped as createCoinbaseOnrampOrder, __createCryptoDotComPayment_wrapped as createCryptoDotComPayment, __createDynamicClient_wrapped as createDynamicClient, __createKrakenExchangeTransfer_wrapped as createKrakenExchangeTransfer, __createNewMfaRecoveryCodes_wrapped as createNewMfaRecoveryCodes, __deleteMfaDevice_wrapped as deleteMfaDevice, __deletePasskey_wrapped as deletePasskey, __deleteUser_wrapped as deleteUser, detectDeviceRegistrationRedirect, detectOAuthRedirect, detectSocialRedirectUrl, __executeSwapTransaction_wrapped as executeSwapTransaction, fetchProjectSettings, findMissingGoogleDriveBackupScopes, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalance, getBalanceForAddress, getBalances, getCheckoutTransaction, getCheckoutTransactionQuote, getCoinbaseBuyUrl, getConnectedAddresses, getDefaultClient, getDeviceRegistrationTokenFromUrl, __getElevatedAccessToken_wrapped as getElevatedAccessToken, __getGoogleDriveBackupReadiness_wrapped as getGoogleDriveBackupReadiness, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMissingVerificationForCoinbaseOnrampOrder, getMultichainBalances, getNetworksData, getOwnerWalletAccountForSmartWalletAccount, getPasskeys, getPrimaryWalletAccount, getRegisteredDevices, getSwapQuote, getSwapStatus, getTransactionHistory, getUserSocialAccounts, getWalletAccountAddressByType, getWalletAccountFromAddress, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletProviderDataByKey, hasAllGoogleDriveBackupScopes, hasExtension, __initializeClient_wrapped as initializeClient, isCaptchaRequired, isDeeplinkWalletProvider, isDeviceRegistrationRequired, isHardwareWalletAccount, isInsufficientGoogleDriveScopesError, isMfaRequiredForAction, isMobile, isPendingRecoveryCodesAcknowledgment, isProgrammaticNetworkSwitchAvailable, isSignedIn, isUserMissingMfaAuth, isUserOnboardingComplete, isWalletAccountVerified, logout, offEvent, offWalletProviderEvent, onEvent, onWalletProviderEvent, onceEvent, parseUserAgent, __prepareCheckoutTransaction_wrapped as prepareCheckoutTransaction, __proveWalletAccountOwnership_wrapped as proveWalletAccountOwnership, __refreshAuth_wrapped as refreshAuth, __refreshUser_wrapped as refreshUser, __registerPasskey_wrapped as registerPasskey, __registerTotpMfaDevice_wrapped as registerTotpMfaDevice, __removeWalletAccount_wrapped as removeWalletAccount, __requestExternalAuthElevatedToken_wrapped as requestExternalAuthElevatedToken, requiresConversion, __revokeAllRegisteredDevices_wrapped as revokeAllRegisteredDevices, __revokeRegisteredDevice_wrapped as revokeRegisteredDevice, __selectPrimaryWalletAccount_wrapped as selectPrimaryWalletAccount, __sendEmailOTP_wrapped as sendEmailOTP, __sendSmsOTP_wrapped as sendSmsOTP, __setCaptchaToken_wrapped as setCaptchaToken, __setDefaultMfaDevice_wrapped as setDefaultMfaDevice, __setInstrumentationEnabled_wrapped as setInstrumentationEnabled, __signInWithExternalJwt_wrapped as signInWithExternalJwt, __signInWithPasskey_wrapped as signInWithPasskey, __signInWithSocialPopUp_wrapped as signInWithSocialPopUp, __signInWithSocialRedirect_wrapped as signInWithSocialRedirect, __signMessage_wrapped as signMessage, __submitCheckoutTransaction_wrapped as submitCheckoutTransaction, supportedCountries, __switchActiveNetwork_wrapped as switchActiveNetwork, trackCheckoutTransaction, __transferAmount_wrapped as transferAmount, __transferWalletAccount_wrapped as transferWalletAccount, __unlinkSocialAccount_wrapped as unlinkSocialAccount, __updateUser_wrapped as updateUser, __verifyOTP_wrapped as verifyOTP, __verifyWalletAccount_wrapped as verifyWalletAccount, waitForClientInitialized };
|
|
6257
6664
|
//# sourceMappingURL=index.native.esm.js.map
|