@bounded-sh/client 0.0.60 → 0.0.62
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/auth/bounded-login-widget.d.ts +1 -1
- package/dist/auth/index.d.ts +4 -5
- package/dist/{email-auth-provider-BCEdcnRu.js → email-auth-provider-BttT2sZK.js} +2 -2
- package/dist/{email-auth-provider-BCEdcnRu.js.map → email-auth-provider-BttT2sZK.js.map} +1 -1
- package/dist/{email-auth-provider-B5yIZe1l.js → email-auth-provider-BxV1zZA_.js} +2 -2
- package/dist/{email-auth-provider-B5yIZe1l.js.map → email-auth-provider-BxV1zZA_.js.map} +1 -1
- package/dist/{email-auth-provider-BF-vvbAt.mjs → email-auth-provider-Cb4VKA1E.mjs} +2 -2
- package/dist/{email-auth-provider-BF-vvbAt.mjs.map → email-auth-provider-Cb4VKA1E.mjs.map} +1 -1
- package/dist/{email-auth-provider-nBv7mW9q.mjs → email-auth-provider-vWv0rnbd.mjs} +2 -2
- package/dist/{email-auth-provider-nBv7mW9q.mjs.map → email-auth-provider-vWv0rnbd.mjs.map} +1 -1
- package/dist/{guest-auth-provider-DFNAHmtY.mjs → guest-auth-provider-BBPpydtM.mjs} +2 -2
- package/dist/{guest-auth-provider-DFNAHmtY.mjs.map → guest-auth-provider-BBPpydtM.mjs.map} +1 -1
- package/dist/{guest-auth-provider-CrRreOyf.js → guest-auth-provider-BcR-MQ0g.js} +2 -2
- package/dist/{guest-auth-provider-CrRreOyf.js.map → guest-auth-provider-BcR-MQ0g.js.map} +1 -1
- package/dist/{guest-auth-provider-DGvQgIwm.mjs → guest-auth-provider-CeIZw5x6.mjs} +2 -2
- package/dist/{guest-auth-provider-DGvQgIwm.mjs.map → guest-auth-provider-CeIZw5x6.mjs.map} +1 -1
- package/dist/{guest-auth-provider-CZ-CpNhD.js → guest-auth-provider-peD5Zasl.js} +2 -2
- package/dist/{guest-auth-provider-CZ-CpNhD.js.map → guest-auth-provider-peD5Zasl.js.map} +1 -1
- package/dist/{index-iu8vB4ye.js → index-DEDYfO2p.js} +51 -22
- package/dist/index-DEDYfO2p.js.map +1 -0
- package/dist/{index-CQtGkKVd.mjs → index-DpJl_Cpa.mjs} +51 -22
- package/dist/index-DpJl_Cpa.mjs.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{index.native-Crfn_NOB.mjs → index.native-BIUs8t7F.mjs} +38 -15
- package/dist/index.native-BIUs8t7F.mjs.map +1 -0
- package/dist/{index.native-CDfx0N6p.js → index.native-BSheiGj2.js} +38 -15
- package/dist/index.native-BSheiGj2.js.map +1 -0
- package/dist/index.native.js +1 -1
- package/dist/index.native.mjs +1 -1
- package/dist/{injected-evm-wallet-provider-CGa692L1.js → injected-evm-wallet-provider-7XawIUdJ.js} +2 -2
- package/dist/{injected-evm-wallet-provider-CGa692L1.js.map → injected-evm-wallet-provider-7XawIUdJ.js.map} +1 -1
- package/dist/{injected-evm-wallet-provider-LTWiACl5.js → injected-evm-wallet-provider-B-9VXQcH.js} +2 -2
- package/dist/{injected-evm-wallet-provider-LTWiACl5.js.map → injected-evm-wallet-provider-B-9VXQcH.js.map} +1 -1
- package/dist/{injected-evm-wallet-provider-D8lYGcM2.mjs → injected-evm-wallet-provider-BVsxOzYr.mjs} +2 -2
- package/dist/{injected-evm-wallet-provider-D8lYGcM2.mjs.map → injected-evm-wallet-provider-BVsxOzYr.mjs.map} +1 -1
- package/dist/{injected-evm-wallet-provider-Bi9G3X35.mjs → injected-evm-wallet-provider-DnOrVMDX.mjs} +2 -2
- package/dist/{injected-evm-wallet-provider-Bi9G3X35.mjs.map → injected-evm-wallet-provider-DnOrVMDX.mjs.map} +1 -1
- package/dist/{injected-wallet-provider-TPx8Wzvq.js → injected-wallet-provider-BMDJntMD.js} +2 -2
- package/dist/{injected-wallet-provider-TPx8Wzvq.js.map → injected-wallet-provider-BMDJntMD.js.map} +1 -1
- package/dist/{injected-wallet-provider-kx8tcMKM.mjs → injected-wallet-provider-Bqk33sir.mjs} +2 -2
- package/dist/{injected-wallet-provider-kx8tcMKM.mjs.map → injected-wallet-provider-Bqk33sir.mjs.map} +1 -1
- package/dist/{injected-wallet-provider-DYZFxIdd.js → injected-wallet-provider-D574oPzH.js} +2 -2
- package/dist/{injected-wallet-provider-DYZFxIdd.js.map → injected-wallet-provider-D574oPzH.js.map} +1 -1
- package/dist/{injected-wallet-provider-CcyA5JBS.mjs → injected-wallet-provider-ZkPzVj5W.mjs} +2 -2
- package/dist/{injected-wallet-provider-CcyA5JBS.mjs.map → injected-wallet-provider-ZkPzVj5W.mjs.map} +1 -1
- package/package.json +2 -2
- package/dist/index-CQtGkKVd.mjs.map +0 -1
- package/dist/index-iu8vB4ye.js.map +0 -1
- package/dist/index.native-CDfx0N6p.js.map +0 -1
- package/dist/index.native-Crfn_NOB.mjs.map +0 -1
|
@@ -3686,6 +3686,7 @@ const OIDC_NO_WALLET = 'This login has no embedded wallet. Enable `"auth": { "wa
|
|
|
3686
3686
|
'then sign from a user gesture.';
|
|
3687
3687
|
const PKCE_STORE_KEY = 'bounded.oidc.pkce';
|
|
3688
3688
|
const STORED_AUTH_METHOD_KEY$1 = 'bounded_last_auth_method';
|
|
3689
|
+
const ISSUER_SESSION_KIND_KEY$1 = 'bounded_issuer_session_kind';
|
|
3689
3690
|
// Active session store (Web on web, RN on React Native) — selected by config,
|
|
3690
3691
|
// not by `typeof window` (truthy on RN). OIDC redirect/popup is web-only, but the
|
|
3691
3692
|
// session it mints is read back through this same selector everywhere.
|
|
@@ -4174,6 +4175,13 @@ async function establishInlineSession(data) {
|
|
|
4174
4175
|
getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY$1, 'email');
|
|
4175
4176
|
}
|
|
4176
4177
|
catch ( /* storage unavailable */_a) { /* storage unavailable */ }
|
|
4178
|
+
// Turnkey-native OTP mints an app session directly. It does not establish a
|
|
4179
|
+
// Better Auth browser cookie on the issuer, so logout must not navigate
|
|
4180
|
+
// through the issuer's cookie-clearing /logout endpoint.
|
|
4181
|
+
try {
|
|
4182
|
+
getPlatform().storage.setItem(ISSUER_SESSION_KIND_KEY$1, 'inline');
|
|
4183
|
+
}
|
|
4184
|
+
catch ( /* storage unavailable */_b) { /* storage unavailable */ }
|
|
4177
4185
|
setCurrentUser(user);
|
|
4178
4186
|
setAuthProviderInstance(oidcProviderSingleton);
|
|
4179
4187
|
return user;
|
|
@@ -4220,6 +4228,13 @@ async function exchangeCode(code, verifier, redirectUri) {
|
|
|
4220
4228
|
getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY$1, 'email');
|
|
4221
4229
|
}
|
|
4222
4230
|
catch ( /* storage unavailable */_b) { /* storage unavailable */ }
|
|
4231
|
+
// OIDC login does establish the issuer's Better Auth browser cookie. Record
|
|
4232
|
+
// that fact separately from the provider name so logout clears the cookie
|
|
4233
|
+
// and returns through the registered app origin.
|
|
4234
|
+
try {
|
|
4235
|
+
getPlatform().storage.setItem(ISSUER_SESSION_KIND_KEY$1, 'hosted');
|
|
4236
|
+
}
|
|
4237
|
+
catch ( /* storage unavailable */_c) { /* storage unavailable */ }
|
|
4223
4238
|
setCurrentUser(user);
|
|
4224
4239
|
setAuthProviderInstance(oidcProviderSingleton);
|
|
4225
4240
|
return user;
|
|
@@ -4236,6 +4251,7 @@ const objectIdentityKeys = new WeakMap();
|
|
|
4236
4251
|
let nextObjectIdentityKey = 1;
|
|
4237
4252
|
// --- localStorage helpers: track which auth method created the active session ---
|
|
4238
4253
|
const STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';
|
|
4254
|
+
const ISSUER_SESSION_KIND_KEY = 'bounded_issuer_session_kind';
|
|
4239
4255
|
function getStoredAuthMethod() {
|
|
4240
4256
|
try {
|
|
4241
4257
|
return getPlatform().storage.getItem(STORED_AUTH_METHOD_KEY);
|
|
@@ -4252,11 +4268,25 @@ function setStoredAuthMethod(method) {
|
|
|
4252
4268
|
else {
|
|
4253
4269
|
getPlatform().storage.removeItem(STORED_AUTH_METHOD_KEY);
|
|
4254
4270
|
}
|
|
4271
|
+
// Non-email providers cannot own a Better Auth browser session. Clear
|
|
4272
|
+
// any prior hosted/inline classification when the active provider is
|
|
4273
|
+
// replaced or the session is removed.
|
|
4274
|
+
if (method !== 'email') {
|
|
4275
|
+
getPlatform().storage.removeItem(ISSUER_SESSION_KIND_KEY);
|
|
4276
|
+
}
|
|
4255
4277
|
}
|
|
4256
4278
|
catch (_a) {
|
|
4257
4279
|
// storage might not be available
|
|
4258
4280
|
}
|
|
4259
4281
|
}
|
|
4282
|
+
function getIssuerSessionKind() {
|
|
4283
|
+
try {
|
|
4284
|
+
return getPlatform().storage.getItem(ISSUER_SESSION_KIND_KEY);
|
|
4285
|
+
}
|
|
4286
|
+
catch (_a) {
|
|
4287
|
+
return null;
|
|
4288
|
+
}
|
|
4289
|
+
}
|
|
4260
4290
|
function getStoredIdToken() {
|
|
4261
4291
|
try {
|
|
4262
4292
|
return getActiveSessionManager().getIdToken();
|
|
@@ -4447,14 +4477,13 @@ function getInitConfig() {
|
|
|
4447
4477
|
return initConfig;
|
|
4448
4478
|
}
|
|
4449
4479
|
/**
|
|
4450
|
-
* Which LOGIN mode the app runs (default "
|
|
4451
|
-
*
|
|
4452
|
-
*
|
|
4453
|
-
*
|
|
4454
|
-
* option can override it per call. Anything other than "turnkey" is "bounded".
|
|
4480
|
+
* Which LOGIN mode the app runs (default "turnkey"). Turnkey-native email OTP keeps
|
|
4481
|
+
* code entry inline in the unified widget (no OIDC popup), and Bounded mints the
|
|
4482
|
+
* session from Turnkey's verification. Apps can explicitly select "bounded" for the
|
|
4483
|
+
* legacy Better Auth email flow. A per-call openBoundedWidget option can override it.
|
|
4455
4484
|
*/
|
|
4456
4485
|
function resolveAuthMode(config) {
|
|
4457
|
-
return config.authMode === '
|
|
4486
|
+
return config.authMode === 'bounded' ? 'bounded' : 'turnkey';
|
|
4458
4487
|
}
|
|
4459
4488
|
/**
|
|
4460
4489
|
* Resolve the injected-wallet-config the provider should use, merging the
|
|
@@ -4515,7 +4544,7 @@ async function getAuthProvider(config) {
|
|
|
4515
4544
|
// manager as legacy email sessions. Human login should be started
|
|
4516
4545
|
// with loginWithRedirect(); this provider is kept as the restore and
|
|
4517
4546
|
// logout surface for those sessions.
|
|
4518
|
-
currentAuthProvider = new (await import('./email-auth-provider-
|
|
4547
|
+
currentAuthProvider = new (await import('./email-auth-provider-vWv0rnbd.mjs')).EmailAuthProvider();
|
|
4519
4548
|
break;
|
|
4520
4549
|
case "wallet":
|
|
4521
4550
|
case "phantom": {
|
|
@@ -4534,7 +4563,7 @@ async function getAuthProvider(config) {
|
|
|
4534
4563
|
if (!isWalletLoginEnabled(config)) {
|
|
4535
4564
|
throw walletLoginNotEnabledError(authMethod);
|
|
4536
4565
|
}
|
|
4537
|
-
const { InjectedWalletProvider } = await import('./injected-wallet-provider-
|
|
4566
|
+
const { InjectedWalletProvider } = await import('./injected-wallet-provider-Bqk33sir.mjs');
|
|
4538
4567
|
currentAuthProvider = new InjectedWalletProvider(resolveInjectedWalletConfig(config), rpcUrl, configuredNetwork);
|
|
4539
4568
|
break;
|
|
4540
4569
|
}
|
|
@@ -4547,7 +4576,7 @@ async function getAuthProvider(config) {
|
|
|
4547
4576
|
// Selecting authMethod:'evm-wallet' IS the opt-in — pass evmWalletConfig
|
|
4548
4577
|
// to point at a specific wallet or set chainId/domain.
|
|
4549
4578
|
const evmWalletConfig = ((_a = config.evmWalletConfig) !== null && _a !== void 0 ? _a : {});
|
|
4550
|
-
const { InjectedEvmWalletProvider } = await import('./injected-evm-wallet-provider-
|
|
4579
|
+
const { InjectedEvmWalletProvider } = await import('./injected-evm-wallet-provider-BVsxOzYr.mjs');
|
|
4551
4580
|
currentAuthProvider = new InjectedEvmWalletProvider(evmWalletConfig);
|
|
4552
4581
|
break;
|
|
4553
4582
|
}
|
|
@@ -4575,7 +4604,7 @@ async function getAuthProvider(config) {
|
|
|
4575
4604
|
break;
|
|
4576
4605
|
case "guest":
|
|
4577
4606
|
// Anonymous auth: a device-local ed25519 keypair signs the challenge.
|
|
4578
|
-
currentAuthProvider = new (await import('./guest-auth-provider-
|
|
4607
|
+
currentAuthProvider = new (await import('./guest-auth-provider-CeIZw5x6.mjs')).GuestAuthProvider();
|
|
4579
4608
|
break;
|
|
4580
4609
|
}
|
|
4581
4610
|
if (!currentAuthProvider) {
|
|
@@ -4631,7 +4660,7 @@ async function signInAnonymously() {
|
|
|
4631
4660
|
// Lazy-load the guest provider so its ed25519/web3 dependencies stay out of
|
|
4632
4661
|
// the main bundle for data-only apps. Specifier is a static string literal
|
|
4633
4662
|
// so bundle-splitting can see it.
|
|
4634
|
-
const provider = new (await import('./guest-auth-provider-
|
|
4663
|
+
const provider = new (await import('./guest-auth-provider-CeIZw5x6.mjs')).GuestAuthProvider();
|
|
4635
4664
|
setAuthLoading(true); // reflect "signing in…" while the guest keypair session is minted
|
|
4636
4665
|
const commit = (user) => {
|
|
4637
4666
|
// No await/interleaving inside this block: provider/method/config/marker
|
|
@@ -4782,7 +4811,7 @@ async function loginWithWallet(options) {
|
|
|
4782
4811
|
? Object.assign(Object.assign({}, base), { getProvider: options.getProvider }) : base;
|
|
4783
4812
|
const rpcUrl = normalizeSolanaRpcUrl(cfg.rpcUrl);
|
|
4784
4813
|
const network = getConfiguredSolanaNetwork(cfg);
|
|
4785
|
-
const { InjectedWalletProvider } = await import('./injected-wallet-provider-
|
|
4814
|
+
const { InjectedWalletProvider } = await import('./injected-wallet-provider-Bqk33sir.mjs');
|
|
4786
4815
|
let provider = new InjectedWalletProvider(injectedConfig, rpcUrl, network);
|
|
4787
4816
|
if (coreConfig.chain === 'offchain')
|
|
4788
4817
|
provider = new OffchainAuthProvider(provider);
|
|
@@ -4927,15 +4956,15 @@ async function logout$1(options) {
|
|
|
4927
4956
|
const idTokenHint = idTokenHintOrNull(sm);
|
|
4928
4957
|
if (refreshToken)
|
|
4929
4958
|
await revokeSession(refreshToken, sessionIssuer !== null && sessionIssuer !== void 0 ? sessionIssuer : undefined);
|
|
4930
|
-
//
|
|
4931
|
-
//
|
|
4932
|
-
//
|
|
4933
|
-
//
|
|
4934
|
-
//
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4959
|
+
// Only OIDC-hosted sessions own an issuer browser cookie. Turnkey-native
|
|
4960
|
+
// email OTP is also an email auth method, but it mints the app session
|
|
4961
|
+
// inline and has no issuer cookie to clear. Use the explicit session-kind
|
|
4962
|
+
// marker when present. The auth-method fallback preserves correct logout
|
|
4963
|
+
// behavior for hosted sessions created by older SDK versions.
|
|
4964
|
+
const issuerSessionKind = getIssuerSessionKind();
|
|
4965
|
+
const wasHosted = issuerSessionKind === 'hosted'
|
|
4966
|
+
|| (issuerSessionKind === null
|
|
4967
|
+
&& (currentAuthMethod === 'email' || getStoredAuthMethod() === 'email'));
|
|
4939
4968
|
await currentAuthProvider.logout();
|
|
4940
4969
|
setStoredAuthMethod(null);
|
|
4941
4970
|
currentAuthProvider = null;
|
|
@@ -8034,4 +8063,4 @@ function defaultInjectedEvmProvider() {
|
|
|
8034
8063
|
}
|
|
8035
8064
|
|
|
8036
8065
|
export { FAILURE_REASONS as $, completeLoginFromRedirect as A, loginWithPopup as B, completeLoginInPopup as C, openBoundedWidget as D, EMBEDDED_WALLET_UNSUPPORTED as E, useAuth as F, useQuery as G, useBuildRun as H, apps as I, deserializeTransaction as J, signSolanaMessageViaTurnkey as K, getOrCreateTurnkeyWallet as L, startTurnkeyEmailLogin as M, getIdToken as N, onramp as O, onrampQuote as P, onrampStatus as Q, setPlatform as R, OffchainAuthProvider as S, PrivyExpoProvider as T, requestEip6963Providers as U, builds as V, BuildsApiError as W, NON_TERMINAL_STATES as X, TERMINAL_STATES as Y, RUN_STATES as Z, PARK_REASONS as _, hasEmbeddedEvmWallet as a, BUILD_REVIEW_CAPABILITY_SCHEMA as a0, BUILD_REVIEW_CAPABILITY_REFRESH_SCHEMA as a1, BUILD_DELEGATED_REVIEW_CAPABILITY_SCHEMA as a2, embeddedSignAndSubmit as b, setAuthLoading as c, defaultInjectedProvider as d, embeddedRunEvmTransaction as e, bufferExports as f, getPlatform as g, hasEmbeddedWallet as h, bs58 as i, confirmAndCheckTransaction as j, defaultInjectedEvmProvider as k, init as l, getCurrentUser as m, normalizeSolanaRpcUrl as n, onAuthStateChanged as o, onAuthLoadingChanged as p, getAuthLoading as q, resolveSolanaRpcUrl as r, setCurrentUser as s, login as t, logout as u, getAuthProvider as v, signInAnonymously as w, loginWithPrivy as x, loginWithWallet as y, loginWithRedirect as z };
|
|
8037
|
-
//# sourceMappingURL=index-
|
|
8066
|
+
//# sourceMappingURL=index-DpJl_Cpa.mjs.map
|