@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.
Files changed (51) hide show
  1. package/dist/auth/bounded-login-widget.d.ts +1 -1
  2. package/dist/auth/index.d.ts +4 -5
  3. package/dist/{email-auth-provider-BCEdcnRu.js → email-auth-provider-BttT2sZK.js} +2 -2
  4. package/dist/{email-auth-provider-BCEdcnRu.js.map → email-auth-provider-BttT2sZK.js.map} +1 -1
  5. package/dist/{email-auth-provider-B5yIZe1l.js → email-auth-provider-BxV1zZA_.js} +2 -2
  6. package/dist/{email-auth-provider-B5yIZe1l.js.map → email-auth-provider-BxV1zZA_.js.map} +1 -1
  7. package/dist/{email-auth-provider-BF-vvbAt.mjs → email-auth-provider-Cb4VKA1E.mjs} +2 -2
  8. package/dist/{email-auth-provider-BF-vvbAt.mjs.map → email-auth-provider-Cb4VKA1E.mjs.map} +1 -1
  9. package/dist/{email-auth-provider-nBv7mW9q.mjs → email-auth-provider-vWv0rnbd.mjs} +2 -2
  10. package/dist/{email-auth-provider-nBv7mW9q.mjs.map → email-auth-provider-vWv0rnbd.mjs.map} +1 -1
  11. package/dist/{guest-auth-provider-DFNAHmtY.mjs → guest-auth-provider-BBPpydtM.mjs} +2 -2
  12. package/dist/{guest-auth-provider-DFNAHmtY.mjs.map → guest-auth-provider-BBPpydtM.mjs.map} +1 -1
  13. package/dist/{guest-auth-provider-CrRreOyf.js → guest-auth-provider-BcR-MQ0g.js} +2 -2
  14. package/dist/{guest-auth-provider-CrRreOyf.js.map → guest-auth-provider-BcR-MQ0g.js.map} +1 -1
  15. package/dist/{guest-auth-provider-DGvQgIwm.mjs → guest-auth-provider-CeIZw5x6.mjs} +2 -2
  16. package/dist/{guest-auth-provider-DGvQgIwm.mjs.map → guest-auth-provider-CeIZw5x6.mjs.map} +1 -1
  17. package/dist/{guest-auth-provider-CZ-CpNhD.js → guest-auth-provider-peD5Zasl.js} +2 -2
  18. package/dist/{guest-auth-provider-CZ-CpNhD.js.map → guest-auth-provider-peD5Zasl.js.map} +1 -1
  19. package/dist/{index-iu8vB4ye.js → index-DEDYfO2p.js} +51 -22
  20. package/dist/index-DEDYfO2p.js.map +1 -0
  21. package/dist/{index-CQtGkKVd.mjs → index-DpJl_Cpa.mjs} +51 -22
  22. package/dist/index-DpJl_Cpa.mjs.map +1 -0
  23. package/dist/index.js +1 -1
  24. package/dist/index.mjs +1 -1
  25. package/dist/{index.native-Crfn_NOB.mjs → index.native-BIUs8t7F.mjs} +38 -15
  26. package/dist/index.native-BIUs8t7F.mjs.map +1 -0
  27. package/dist/{index.native-CDfx0N6p.js → index.native-BSheiGj2.js} +38 -15
  28. package/dist/index.native-BSheiGj2.js.map +1 -0
  29. package/dist/index.native.js +1 -1
  30. package/dist/index.native.mjs +1 -1
  31. package/dist/{injected-evm-wallet-provider-CGa692L1.js → injected-evm-wallet-provider-7XawIUdJ.js} +2 -2
  32. package/dist/{injected-evm-wallet-provider-CGa692L1.js.map → injected-evm-wallet-provider-7XawIUdJ.js.map} +1 -1
  33. package/dist/{injected-evm-wallet-provider-LTWiACl5.js → injected-evm-wallet-provider-B-9VXQcH.js} +2 -2
  34. package/dist/{injected-evm-wallet-provider-LTWiACl5.js.map → injected-evm-wallet-provider-B-9VXQcH.js.map} +1 -1
  35. package/dist/{injected-evm-wallet-provider-D8lYGcM2.mjs → injected-evm-wallet-provider-BVsxOzYr.mjs} +2 -2
  36. package/dist/{injected-evm-wallet-provider-D8lYGcM2.mjs.map → injected-evm-wallet-provider-BVsxOzYr.mjs.map} +1 -1
  37. package/dist/{injected-evm-wallet-provider-Bi9G3X35.mjs → injected-evm-wallet-provider-DnOrVMDX.mjs} +2 -2
  38. package/dist/{injected-evm-wallet-provider-Bi9G3X35.mjs.map → injected-evm-wallet-provider-DnOrVMDX.mjs.map} +1 -1
  39. package/dist/{injected-wallet-provider-TPx8Wzvq.js → injected-wallet-provider-BMDJntMD.js} +2 -2
  40. package/dist/{injected-wallet-provider-TPx8Wzvq.js.map → injected-wallet-provider-BMDJntMD.js.map} +1 -1
  41. package/dist/{injected-wallet-provider-kx8tcMKM.mjs → injected-wallet-provider-Bqk33sir.mjs} +2 -2
  42. package/dist/{injected-wallet-provider-kx8tcMKM.mjs.map → injected-wallet-provider-Bqk33sir.mjs.map} +1 -1
  43. package/dist/{injected-wallet-provider-DYZFxIdd.js → injected-wallet-provider-D574oPzH.js} +2 -2
  44. package/dist/{injected-wallet-provider-DYZFxIdd.js.map → injected-wallet-provider-D574oPzH.js.map} +1 -1
  45. package/dist/{injected-wallet-provider-CcyA5JBS.mjs → injected-wallet-provider-ZkPzVj5W.mjs} +2 -2
  46. package/dist/{injected-wallet-provider-CcyA5JBS.mjs.map → injected-wallet-provider-ZkPzVj5W.mjs.map} +1 -1
  47. package/package.json +2 -2
  48. package/dist/index-CQtGkKVd.mjs.map +0 -1
  49. package/dist/index-iu8vB4ye.js.map +0 -1
  50. package/dist/index.native-CDfx0N6p.js.map +0 -1
  51. package/dist/index.native-Crfn_NOB.mjs.map +0 -1
@@ -3707,6 +3707,7 @@ const OIDC_NO_WALLET = 'This login has no embedded wallet. Enable `"auth": { "wa
3707
3707
  'then sign from a user gesture.';
3708
3708
  const PKCE_STORE_KEY = 'bounded.oidc.pkce';
3709
3709
  const STORED_AUTH_METHOD_KEY$1 = 'bounded_last_auth_method';
3710
+ const ISSUER_SESSION_KIND_KEY$1 = 'bounded_issuer_session_kind';
3710
3711
  // Active session store (Web on web, RN on React Native) — selected by config,
3711
3712
  // not by `typeof window` (truthy on RN). OIDC redirect/popup is web-only, but the
3712
3713
  // session it mints is read back through this same selector everywhere.
@@ -4213,6 +4214,13 @@ async function exchangeCode(code, verifier, redirectUri) {
4213
4214
  getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY$1, 'email');
4214
4215
  }
4215
4216
  catch ( /* storage unavailable */_b) { /* storage unavailable */ }
4217
+ // OIDC login does establish the issuer's Better Auth browser cookie. Record
4218
+ // that fact separately from the provider name so logout clears the cookie
4219
+ // and returns through the registered app origin.
4220
+ try {
4221
+ getPlatform().storage.setItem(ISSUER_SESSION_KIND_KEY$1, 'hosted');
4222
+ }
4223
+ catch ( /* storage unavailable */_c) { /* storage unavailable */ }
4216
4224
  setCurrentUser(user);
4217
4225
  setAuthProviderInstance(oidcProviderSingleton);
4218
4226
  return user;
@@ -4229,6 +4237,7 @@ const objectIdentityKeys = new WeakMap();
4229
4237
  let nextObjectIdentityKey = 1;
4230
4238
  // --- localStorage helpers: track which auth method created the active session ---
4231
4239
  const STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';
4240
+ const ISSUER_SESSION_KIND_KEY = 'bounded_issuer_session_kind';
4232
4241
  function getStoredAuthMethod() {
4233
4242
  try {
4234
4243
  return getPlatform().storage.getItem(STORED_AUTH_METHOD_KEY);
@@ -4245,11 +4254,25 @@ function setStoredAuthMethod(method) {
4245
4254
  else {
4246
4255
  getPlatform().storage.removeItem(STORED_AUTH_METHOD_KEY);
4247
4256
  }
4257
+ // Non-email providers cannot own a Better Auth browser session. Clear
4258
+ // any prior hosted/inline classification when the active provider is
4259
+ // replaced or the session is removed.
4260
+ if (method !== 'email') {
4261
+ getPlatform().storage.removeItem(ISSUER_SESSION_KIND_KEY);
4262
+ }
4248
4263
  }
4249
4264
  catch (_a) {
4250
4265
  // storage might not be available
4251
4266
  }
4252
4267
  }
4268
+ function getIssuerSessionKind() {
4269
+ try {
4270
+ return getPlatform().storage.getItem(ISSUER_SESSION_KIND_KEY);
4271
+ }
4272
+ catch (_a) {
4273
+ return null;
4274
+ }
4275
+ }
4253
4276
  function getStoredIdToken() {
4254
4277
  try {
4255
4278
  return core.getActiveSessionManager().getIdToken();
@@ -4474,7 +4497,7 @@ async function getAuthProvider(config) {
4474
4497
  // manager as legacy email sessions. Human login should be started
4475
4498
  // with loginWithRedirect(); this provider is kept as the restore and
4476
4499
  // logout surface for those sessions.
4477
- currentAuthProvider = new (await Promise.resolve().then(function () { return require('./email-auth-provider-BCEdcnRu.js'); })).EmailAuthProvider();
4500
+ currentAuthProvider = new (await Promise.resolve().then(function () { return require('./email-auth-provider-BttT2sZK.js'); })).EmailAuthProvider();
4478
4501
  break;
4479
4502
  case "wallet":
4480
4503
  case "phantom": {
@@ -4493,7 +4516,7 @@ async function getAuthProvider(config) {
4493
4516
  if (!isWalletLoginEnabled(config)) {
4494
4517
  throw walletLoginNotEnabledError(authMethod);
4495
4518
  }
4496
- const { InjectedWalletProvider } = await Promise.resolve().then(function () { return require('./injected-wallet-provider-TPx8Wzvq.js'); });
4519
+ const { InjectedWalletProvider } = await Promise.resolve().then(function () { return require('./injected-wallet-provider-BMDJntMD.js'); });
4497
4520
  currentAuthProvider = new InjectedWalletProvider(resolveInjectedWalletConfig(config), rpcUrl, configuredNetwork);
4498
4521
  break;
4499
4522
  }
@@ -4506,7 +4529,7 @@ async function getAuthProvider(config) {
4506
4529
  // Selecting authMethod:'evm-wallet' IS the opt-in — pass evmWalletConfig
4507
4530
  // to point at a specific wallet or set chainId/domain.
4508
4531
  const evmWalletConfig = ((_a = config.evmWalletConfig) !== null && _a !== void 0 ? _a : {});
4509
- const { InjectedEvmWalletProvider } = await Promise.resolve().then(function () { return require('./injected-evm-wallet-provider-CGa692L1.js'); });
4532
+ const { InjectedEvmWalletProvider } = await Promise.resolve().then(function () { return require('./injected-evm-wallet-provider-7XawIUdJ.js'); });
4510
4533
  currentAuthProvider = new InjectedEvmWalletProvider(evmWalletConfig);
4511
4534
  break;
4512
4535
  }
@@ -4534,7 +4557,7 @@ async function getAuthProvider(config) {
4534
4557
  break;
4535
4558
  case "guest":
4536
4559
  // Anonymous auth: a device-local ed25519 keypair signs the challenge.
4537
- currentAuthProvider = new (await Promise.resolve().then(function () { return require('./guest-auth-provider-CrRreOyf.js'); })).GuestAuthProvider();
4560
+ currentAuthProvider = new (await Promise.resolve().then(function () { return require('./guest-auth-provider-BcR-MQ0g.js'); })).GuestAuthProvider();
4538
4561
  break;
4539
4562
  }
4540
4563
  if (!currentAuthProvider) {
@@ -4590,7 +4613,7 @@ async function signInAnonymously() {
4590
4613
  // Lazy-load the guest provider so its ed25519/web3 dependencies stay out of
4591
4614
  // the main bundle for data-only apps. Specifier is a static string literal
4592
4615
  // so bundle-splitting can see it.
4593
- const provider = new (await Promise.resolve().then(function () { return require('./guest-auth-provider-CrRreOyf.js'); })).GuestAuthProvider();
4616
+ const provider = new (await Promise.resolve().then(function () { return require('./guest-auth-provider-BcR-MQ0g.js'); })).GuestAuthProvider();
4594
4617
  setAuthLoading(true); // reflect "signing in…" while the guest keypair session is minted
4595
4618
  const commit = (user) => {
4596
4619
  // No await/interleaving inside this block: provider/method/config/marker
@@ -4848,15 +4871,15 @@ async function logout$1(options) {
4848
4871
  const idTokenHint = idTokenHintOrNull(sm);
4849
4872
  if (refreshToken)
4850
4873
  await core.revokeSession(refreshToken, sessionIssuer !== null && sessionIssuer !== void 0 ? sessionIssuer : undefined);
4851
- // Hosted sessions ('email' covers the whole hosted surface: email OTP +
4852
- // social + the OIDC redirect/popup flows) are the ones with an issuer
4853
- // cookie; wallet and guest sessions have nothing hosted to end.
4854
- // Check the STORED marker as well as the in-memory method: the hosted
4855
- // OIDC flows (loginWithPopup / completeLoginFromRedirect) write the
4856
- // 'email' marker via exchangeCode() but never touch currentAuthMethod,
4857
- // which stays 'guest'/explicit even after a hosted upgrade. Worst case of
4858
- // a false positive is a harmless idempotent issuer bounce.
4859
- const wasHosted = currentAuthMethod === 'email' || getStoredAuthMethod() === 'email';
4874
+ // Only OIDC-hosted sessions own an issuer browser cookie. Turnkey-native
4875
+ // email OTP is also an email auth method, but it mints the app session
4876
+ // inline and has no issuer cookie to clear. Use the explicit session-kind
4877
+ // marker when present. The auth-method fallback preserves correct logout
4878
+ // behavior for hosted sessions created by older SDK versions.
4879
+ const issuerSessionKind = getIssuerSessionKind();
4880
+ const wasHosted = issuerSessionKind === 'hosted'
4881
+ || (issuerSessionKind === null
4882
+ && (currentAuthMethod === 'email' || getStoredAuthMethod() === 'email'));
4860
4883
  await currentAuthProvider.logout();
4861
4884
  setStoredAuthMethod(null);
4862
4885
  currentAuthProvider = null;
@@ -6465,4 +6488,4 @@ exports.signInAnonymously = signInAnonymously;
6465
6488
  exports.useAuth = useAuth;
6466
6489
  exports.useBuildRun = useBuildRun;
6467
6490
  exports.useQuery = useQuery;
6468
- //# sourceMappingURL=index.native-CDfx0N6p.js.map
6491
+ //# sourceMappingURL=index.native-BSheiGj2.js.map