@bounded-sh/client 0.0.20 → 0.0.21

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 (26) hide show
  1. package/README.md +2 -2
  2. package/dist/index.js +148 -33
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +148 -33
  5. package/dist/index.mjs.map +1 -1
  6. package/dist/{index.native-BtM38BVP.js → index.native-DdKzAUjN.js} +152 -37
  7. package/dist/index.native-DdKzAUjN.js.map +1 -0
  8. package/dist/{index.native-w12aoVNW.mjs → index.native-N3xLU862.mjs} +152 -37
  9. package/dist/index.native-N3xLU862.mjs.map +1 -0
  10. package/dist/index.native.js +1 -1
  11. package/dist/index.native.mjs +1 -1
  12. package/dist/{phantom-wallet-provider-BT2V4EU5.mjs → phantom-wallet-provider-DcE4A2_e.mjs} +2 -2
  13. package/dist/{phantom-wallet-provider-BT2V4EU5.mjs.map → phantom-wallet-provider-DcE4A2_e.mjs.map} +1 -1
  14. package/dist/{phantom-wallet-provider-BJWelaiH.js → phantom-wallet-provider-Dz9lQvNv.js} +2 -2
  15. package/dist/{phantom-wallet-provider-BJWelaiH.js.map → phantom-wallet-provider-Dz9lQvNv.js.map} +1 -1
  16. package/dist/{privy-wallet-provider-BSh0aZVL.js → privy-wallet-provider-DUvjxNXK.js} +3 -3
  17. package/dist/{privy-wallet-provider-BSh0aZVL.js.map → privy-wallet-provider-DUvjxNXK.js.map} +1 -1
  18. package/dist/{privy-wallet-provider-LV1X7hZe.mjs → privy-wallet-provider-oG3o5vko.mjs} +3 -3
  19. package/dist/{privy-wallet-provider-LV1X7hZe.mjs.map → privy-wallet-provider-oG3o5vko.mjs.map} +1 -1
  20. package/dist/{solana-mobile-wallet-provider-CKsfiyDd.js → solana-mobile-wallet-provider-DdBoG6c2.js} +2 -2
  21. package/dist/{solana-mobile-wallet-provider-CKsfiyDd.js.map → solana-mobile-wallet-provider-DdBoG6c2.js.map} +1 -1
  22. package/dist/{solana-mobile-wallet-provider-NLe9_mEn.mjs → solana-mobile-wallet-provider-aS60_GZR.mjs} +2 -2
  23. package/dist/{solana-mobile-wallet-provider-NLe9_mEn.mjs.map → solana-mobile-wallet-provider-aS60_GZR.mjs.map} +1 -1
  24. package/package.json +2 -2
  25. package/dist/index.native-BtM38BVP.js.map +0 -1
  26. package/dist/index.native-w12aoVNW.mjs.map +0 -1
@@ -3965,13 +3965,33 @@ function createEmailModalTree() {
3965
3965
  close.type = 'button';
3966
3966
  close.textContent = '×';
3967
3967
  card.appendChild(close);
3968
+ // Brand row — the real Bounded mark (same geometry as bounded.sh) + wordmark.
3968
3969
  const brand = document.createElement('div');
3969
3970
  brand.className = 'ba-brand';
3970
- const dot = document.createElement('span');
3971
- dot.className = 'ba-dot';
3972
- brand.appendChild(dot);
3973
- brand.appendChild(document.createTextNode(' Sign in'));
3971
+ const mark = document.createElement('span');
3972
+ mark.className = 'ba-mark';
3973
+ mark.setAttribute('aria-hidden', 'true');
3974
+ mark.innerHTML =
3975
+ '<svg width="24" height="24" viewBox="0 0 32 32" fill="none">' +
3976
+ '<path class="ba-c ba-c1" d="M16 5 H5 V16"/>' +
3977
+ '<path class="ba-c ba-c2" d="M16 5 H27 V16"/>' +
3978
+ '<path class="ba-c ba-c3" d="M5 16 V27 H16"/>' +
3979
+ '<path class="ba-c ba-c4" d="M27 16 V27 H16"/>' +
3980
+ '</svg>';
3981
+ brand.appendChild(mark);
3982
+ const word = document.createElement('span');
3983
+ word.className = 'ba-word';
3984
+ word.textContent = 'bounded';
3985
+ brand.appendChild(word);
3974
3986
  card.appendChild(brand);
3987
+ const title = document.createElement('h1');
3988
+ title.className = 'ba-title';
3989
+ title.textContent = 'Sign in';
3990
+ card.appendChild(title);
3991
+ const sub = document.createElement('p');
3992
+ sub.className = 'ba-subtitle';
3993
+ sub.textContent = 'Continue with your email — no wallet needed.';
3994
+ card.appendChild(sub);
3975
3995
  const emailStep = document.createElement('div');
3976
3996
  emailStep.id = 'ba-email-step';
3977
3997
  card.appendChild(emailStep);
@@ -3992,7 +4012,7 @@ function createEmailModalTree() {
3992
4012
  emailButton.id = 'ba-email-btn';
3993
4013
  emailButton.className = 'ba-btn';
3994
4014
  emailButton.type = 'button';
3995
- emailButton.textContent = 'Continue';
4015
+ emailButton.textContent = 'Continue with email';
3996
4016
  emailStep.appendChild(emailButton);
3997
4017
  const otpStep = document.createElement('div');
3998
4018
  otpStep.id = 'ba-otp-step';
@@ -4037,37 +4057,67 @@ function createEmailModalTree() {
4037
4057
  card.appendChild(foot);
4038
4058
  return root;
4039
4059
  }
4060
+ // Design language matches the hosted Bounded login (auth.bounded.sh) and bounded.sh:
4061
+ // dark editorial panel, green accent, Schibsted Grotesk / Newsreader / JetBrains Mono,
4062
+ // the Bounded mark drawing itself in. Fonts load best-effort (scoped @import); every
4063
+ // rule has a system fallback so the modal looks right even if Google Fonts is blocked.
4064
+ // All selectors are scoped under #bounded-auth-modal so we never leak into the host page.
4040
4065
  const MODAL_CSS = `
4041
- #bounded-auth-modal .ba-overlay{position:fixed;inset:0;background:rgba(8,10,18,.62);backdrop-filter:blur(4px);
4066
+ @import url('https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,400;6..72,500&family=Schibsted+Grotesk:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');
4067
+ #bounded-auth-modal{--ba-bg:#0a0a0b;--ba-panel:#0e0f11;--ba-inset:#060607;--ba-raise:#131416;
4068
+ --ba-line:rgba(232,230,222,.08);--ba-line-strong:rgba(232,230,222,.16);
4069
+ --ba-text:#e8e6de;--ba-dim:#9b9991;--ba-faint:#85837c;--ba-green:#58c98f;
4070
+ --ba-green-bg:rgba(88,201,143,.09);--ba-green-line:rgba(88,201,143,.28);--ba-red:#ec8488;
4071
+ --ba-body:'Schibsted Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
4072
+ --ba-display:'Newsreader','Iowan Old Style',Georgia,serif;
4073
+ --ba-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;}
4074
+ #bounded-auth-modal .ba-overlay{position:fixed;inset:0;background:rgba(6,6,7,.66);backdrop-filter:blur(4px);
4042
4075
  display:flex;align-items:center;justify-content:center;z-index:2147483000;opacity:1;transition:opacity .16s ease;
4043
- font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;padding:16px;}
4076
+ font-family:var(--ba-body);padding:16px;}
4044
4077
  #bounded-auth-modal .ba-overlay.out{opacity:0;}
4045
- #bounded-auth-modal .ba-card{width:100%;max-width:380px;background:#0f1117;color:#f4f5f7;border:1px solid #232838;
4046
- border-radius:18px;padding:24px 22px 18px;box-shadow:0 24px 70px rgba(0,0,0,.5);position:relative;
4047
- animation:ba-in .18s ease;}
4048
- @keyframes ba-in{from{transform:translateY(10px);opacity:.6}to{transform:translateY(0);opacity:1}}
4049
- #bounded-auth-modal .ba-x{position:absolute;top:12px;right:12px;width:30px;height:30px;border:none;background:#1a1e2b;
4050
- color:#9aa3b2;border-radius:9px;font-size:20px;line-height:1;cursor:pointer;}
4051
- #bounded-auth-modal .ba-x:hover{background:#222838;color:#fff;}
4052
- #bounded-auth-modal .ba-brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;margin:0 0 18px;}
4053
- #bounded-auth-modal .ba-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#22d3ee);}
4054
- #bounded-auth-modal .ba-label{display:block;font-size:13px;color:#aab2c0;margin:0 0 8px;}
4055
- #bounded-auth-modal .ba-em{color:#fff;font-weight:600;}
4056
- #bounded-auth-modal .ba-input{width:100%;box-sizing:border-box;background:#171b26;border:1px solid #2a3040;color:#fff;
4057
- border-radius:11px;padding:13px 14px;font-size:16px;outline:none;transition:border-color .12s;}
4058
- #bounded-auth-modal .ba-input:focus{border-color:#7c5cff;}
4059
- #bounded-auth-modal .ba-code{letter-spacing:8px;text-align:center;font-size:22px;font-variant-numeric:tabular-nums;}
4060
- #bounded-auth-modal .ba-btn{width:100%;margin-top:12px;background:linear-gradient(135deg,#7c5cff,#5b8cff);color:#fff;
4061
- border:none;border-radius:11px;padding:13px;font-size:15px;font-weight:600;cursor:pointer;transition:filter .12s;}
4062
- #bounded-auth-modal .ba-btn:hover{filter:brightness(1.08);}
4063
- #bounded-auth-modal .ba-btn:disabled{opacity:.6;cursor:default;}
4064
- #bounded-auth-modal .ba-link{width:100%;margin-top:10px;background:none;border:none;color:#8aa0c6;font-size:13px;cursor:pointer;}
4065
- #bounded-auth-modal .ba-link:hover{color:#bcd0f0;}
4066
- #bounded-auth-modal .ba-msg{min-height:18px;margin-top:10px;font-size:13px;color:#8aa0c6;text-align:center;}
4067
- #bounded-auth-modal .ba-msg.err{color:#ff8a8a;}
4068
- #bounded-auth-modal .ba-foot{margin-top:14px;text-align:center;font-size:11px;color:#5a6273;}
4078
+ #bounded-auth-modal *{box-sizing:border-box;}
4079
+ #bounded-auth-modal .ba-card{width:100%;max-width:372px;background:var(--ba-panel);color:var(--ba-text);
4080
+ border:1px solid var(--ba-line);border-radius:12px;padding:28px 28px 22px;position:relative;
4081
+ box-shadow:0 1px 0 rgba(232,230,222,.03) inset,0 30px 80px -40px rgba(0,0,0,.8);animation:ba-in .18s ease;}
4082
+ @keyframes ba-in{from{transform:translateY(8px);opacity:.5}to{transform:translateY(0);opacity:1}}
4083
+ #bounded-auth-modal .ba-x{position:absolute;top:14px;right:14px;width:28px;height:28px;border:1px solid var(--ba-line);
4084
+ background:var(--ba-raise);color:var(--ba-faint);border-radius:7px;font-size:18px;line-height:1;cursor:pointer;
4085
+ transition:color .15s,border-color .15s;}
4086
+ #bounded-auth-modal .ba-x:hover{color:var(--ba-text);border-color:var(--ba-faint);}
4087
+ #bounded-auth-modal .ba-brand{display:flex;align-items:center;gap:10px;margin:0 0 24px;}
4088
+ #bounded-auth-modal .ba-mark{display:flex;color:var(--ba-text);}
4089
+ #bounded-auth-modal .ba-mark svg{overflow:visible;display:block;}
4090
+ #bounded-auth-modal .ba-c{stroke:currentColor;stroke-width:2.4;fill:none;}
4091
+ @media (prefers-reduced-motion:no-preference){
4092
+ #bounded-auth-modal .ba-c{stroke-dasharray:23;stroke-dashoffset:23;animation:ba-draw .4s cubic-bezier(.45,0,.2,1) forwards;}
4093
+ #bounded-auth-modal .ba-c1{animation-delay:.1s}#bounded-auth-modal .ba-c2{animation-delay:.38s}
4094
+ #bounded-auth-modal .ba-c3{animation-delay:.66s}#bounded-auth-modal .ba-c4{animation-delay:.94s}}
4095
+ @keyframes ba-draw{to{stroke-dashoffset:0}}
4096
+ #bounded-auth-modal .ba-word{font-family:var(--ba-body);font-weight:500;font-size:15px;letter-spacing:.2px;color:var(--ba-text);}
4097
+ #bounded-auth-modal .ba-title{font-family:var(--ba-display);font-weight:400;font-size:25px;letter-spacing:-.01em;margin:0 0 5px;}
4098
+ #bounded-auth-modal .ba-subtitle{color:var(--ba-dim);font-size:14px;margin:0 0 22px;}
4099
+ #bounded-auth-modal .ba-label{display:block;font-size:12px;color:var(--ba-dim);margin:0 0 7px;}
4100
+ #bounded-auth-modal .ba-em{color:var(--ba-text);font-weight:600;}
4101
+ #bounded-auth-modal .ba-input{width:100%;background:var(--ba-inset);border:1px solid var(--ba-line-strong);color:var(--ba-text);
4102
+ border-radius:6px;padding:11px 13px;font-family:var(--ba-body);font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s;}
4103
+ #bounded-auth-modal .ba-input::placeholder{color:var(--ba-faint);}
4104
+ #bounded-auth-modal .ba-input:focus{border-color:var(--ba-green-line);box-shadow:0 0 0 3px var(--ba-green-bg);}
4105
+ #bounded-auth-modal .ba-code{font-family:var(--ba-mono);letter-spacing:8px;text-align:center;font-size:21px;padding-left:8px;}
4106
+ #bounded-auth-modal .ba-btn{width:100%;margin-top:16px;background:var(--ba-text);color:var(--ba-bg);
4107
+ border:0;border-radius:6px;padding:12px;font-family:var(--ba-body);font-size:14px;font-weight:600;cursor:pointer;
4108
+ transition:opacity .15s,transform .04s;}
4109
+ #bounded-auth-modal .ba-btn:hover{opacity:.9;}
4110
+ #bounded-auth-modal .ba-btn:active{transform:translateY(.5px);}
4111
+ #bounded-auth-modal .ba-btn:disabled{opacity:.45;cursor:default;}
4112
+ #bounded-auth-modal .ba-link{width:100%;margin-top:14px;background:none;border:none;color:var(--ba-dim);
4113
+ font-family:var(--ba-body);font-size:12.5px;cursor:pointer;}
4114
+ #bounded-auth-modal .ba-link:hover{color:var(--ba-text);}
4115
+ #bounded-auth-modal .ba-msg{min-height:16px;margin-top:16px;font-size:12.5px;color:var(--ba-dim);text-align:center;}
4116
+ #bounded-auth-modal .ba-msg.err{color:var(--ba-red);}
4117
+ #bounded-auth-modal .ba-foot{margin-top:26px;padding-top:16px;border-top:1px solid var(--ba-line);
4118
+ text-align:center;font-size:11px;color:var(--ba-faint);}
4069
4119
  #bounded-auth-modal .hidden{display:none;}
4070
- @media (max-width:480px){#bounded-auth-modal .ba-card{max-width:none;border-radius:16px;}}`;
4120
+ @media (max-width:480px){#bounded-auth-modal .ba-card{max-width:none;}}`;
4071
4121
 
4072
4122
  const SURFNET_RPC_URL = "https://surfpool.fly.dev";
4073
4123
  const SUPPORTED_SOLANA_NETWORKS = new Set([
@@ -4114,6 +4164,7 @@ function resolveSolanaRpcUrl(explicitRpcUrl, network, context) {
4114
4164
  }
4115
4165
 
4116
4166
  const PKCE_STORE_KEY = 'bounded.oidc.pkce';
4167
+ const STORED_AUTH_METHOD_KEY$1 = 'bounded_last_auth_method';
4117
4168
  // Active session store (Web on web, RN on React Native) — selected by config,
4118
4169
  // not by `typeof window` (truthy on RN). OIDC redirect/popup is web-only, but the
4119
4170
  // session it mints is read back through this same selector everywhere.
@@ -4408,6 +4459,10 @@ async function exchangeCode(code, verifier, redirectUri) {
4408
4459
  const refreshToken = tokenField(data, 'refresh_token', 'refreshToken');
4409
4460
  const user = userFromIdToken(idToken);
4410
4461
  await sessionManager().storeSession(String(user.address || ''), accessToken, idToken, refreshToken, base);
4462
+ try {
4463
+ getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY$1, 'email');
4464
+ }
4465
+ catch ( /* storage unavailable */_b) { /* storage unavailable */ }
4411
4466
  setCurrentUser(user);
4412
4467
  setAuthProviderInstance(oidcProviderSingleton);
4413
4468
  return user;
@@ -4418,7 +4473,10 @@ async function exchangeCode(code, verifier, redirectUri) {
4418
4473
  // (react-dom) when this module is imported on RN.
4419
4474
  let currentAuthProvider = null;
4420
4475
  let currentAuthMethod = null;
4476
+ let currentAuthProviderConfigKey = null;
4421
4477
  let initConfig = null;
4478
+ const objectIdentityKeys = new WeakMap();
4479
+ let nextObjectIdentityKey = 1;
4422
4480
  // --- localStorage helpers: track which auth method created the active session ---
4423
4481
  const STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';
4424
4482
  function getStoredAuthMethod() {
@@ -4442,6 +4500,51 @@ function setStoredAuthMethod(method) {
4442
4500
  // storage might not be available
4443
4501
  }
4444
4502
  }
4503
+ function objectIdentityKey(value) {
4504
+ if (!value || (typeof value !== 'object' && typeof value !== 'function'))
4505
+ return null;
4506
+ const obj = value;
4507
+ let id = objectIdentityKeys.get(obj);
4508
+ if (!id) {
4509
+ id = nextObjectIdentityKey++;
4510
+ objectIdentityKeys.set(obj, id);
4511
+ }
4512
+ return `object:${id}`;
4513
+ }
4514
+ function stableConfigValue(value, seen = new WeakSet()) {
4515
+ if (value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean')
4516
+ return value;
4517
+ if (typeof value === 'function')
4518
+ return '[function]';
4519
+ if (Array.isArray(value))
4520
+ return value.map((item) => stableConfigValue(item, seen));
4521
+ if (typeof value === 'object') {
4522
+ if (seen.has(value))
4523
+ return '[circular]';
4524
+ seen.add(value);
4525
+ const out = {};
4526
+ for (const key of Object.keys(value).sort()) {
4527
+ out[key] = stableConfigValue(value[key], seen);
4528
+ }
4529
+ seen.delete(value);
4530
+ return out;
4531
+ }
4532
+ return String(value);
4533
+ }
4534
+ function authProviderConfigKey(config) {
4535
+ var _a, _b, _c, _d, _e, _f, _g, _h;
4536
+ return JSON.stringify({
4537
+ authMethod: (_a = config.authMethod) !== null && _a !== void 0 ? _a : null,
4538
+ chain: (_b = config.chain) !== null && _b !== void 0 ? _b : null,
4539
+ rpcUrl: normalizeSolanaRpcUrl(config.rpcUrl),
4540
+ name: (_c = config.name) !== null && _c !== void 0 ? _c : null,
4541
+ logoUrl: (_d = config.logoUrl) !== null && _d !== void 0 ? _d : null,
4542
+ phantomConfig: stableConfigValue((_e = config.phantomConfig) !== null && _e !== void 0 ? _e : null),
4543
+ privyConfig: stableConfigValue((_f = config.privyConfig) !== null && _f !== void 0 ? _f : null),
4544
+ mobileWalletConfig: stableConfigValue((_g = config.mobileWalletConfig) !== null && _g !== void 0 ? _g : null),
4545
+ privyExpoProvider: objectIdentityKey((_h = config.privyExpoProvider) !== null && _h !== void 0 ? _h : null),
4546
+ });
4547
+ }
4445
4548
  /**
4446
4549
  * Clears the session if it was created by a different auth method.
4447
4550
  * Returns true if the session was cleared, false if the session is compatible.
@@ -4467,17 +4570,17 @@ function clearIncompatibleSession() {
4467
4570
  // Lazy loaders for web-only providers.
4468
4571
  // Using dynamic import() ensures Metro (RN) never resolves these modules.
4469
4572
  async function loadPhantomWalletProvider() {
4470
- const mod = await import('./phantom-wallet-provider-BT2V4EU5.mjs');
4573
+ const mod = await import('./phantom-wallet-provider-DcE4A2_e.mjs');
4471
4574
  return { PhantomWalletProvider: mod.PhantomWalletProvider };
4472
4575
  }
4473
4576
  // Web Privy provider (depends on react-dom + @privy-io/react-auth). Lazy so Metro
4474
4577
  // never bundles it into the RN build — RN uses the @privy-io/expo provider instead.
4475
4578
  async function loadPrivyWalletProvider() {
4476
- const mod = await import('./privy-wallet-provider-LV1X7hZe.mjs');
4579
+ const mod = await import('./privy-wallet-provider-oG3o5vko.mjs');
4477
4580
  return mod.PrivyWalletProvider;
4478
4581
  }
4479
4582
  async function loadSolanaMobileWalletProvider() {
4480
- const mod = await import('./solana-mobile-wallet-provider-NLe9_mEn.mjs');
4583
+ const mod = await import('./solana-mobile-wallet-provider-aS60_GZR.mjs');
4481
4584
  return mod.SolanaMobileWalletProvider;
4482
4585
  }
4483
4586
  function requireWebPrivyConfig(config) {
@@ -4547,6 +4650,7 @@ async function hotSwapToMWAProvider(config) {
4547
4650
  }
4548
4651
  currentAuthProvider = provider;
4549
4652
  currentAuthMethod = 'mobile-wallet-adapter';
4653
+ currentAuthProviderConfigKey = authProviderConfigKey(Object.assign(Object.assign({}, config), { authMethod: 'mobile-wallet-adapter' }));
4550
4654
  const coreConfig = await getConfig();
4551
4655
  coreConfig.authProvider = provider;
4552
4656
  // Send 'phantom' as authMethod so the server routes to Solana verification.
@@ -4557,12 +4661,18 @@ async function hotSwapToMWAProvider(config) {
4557
4661
  }
4558
4662
  async function getAuthProvider(config) {
4559
4663
  var _a, _b;
4560
- if (currentAuthProvider) {
4664
+ const nextProviderConfigKey = config ? authProviderConfigKey(config) : null;
4665
+ if (currentAuthProvider && (!config || currentAuthProviderConfigKey === nextProviderConfigKey)) {
4561
4666
  return currentAuthProvider;
4562
4667
  }
4563
4668
  if (!config) {
4564
4669
  throw new Error("Config is required to initialize auth provider");
4565
4670
  }
4671
+ if (currentAuthProvider && currentAuthProviderConfigKey !== nextProviderConfigKey) {
4672
+ currentAuthProvider = null;
4673
+ currentAuthMethod = null;
4674
+ currentAuthProviderConfigKey = null;
4675
+ }
4566
4676
  initConfig = config;
4567
4677
  const authMethod = config.authMethod;
4568
4678
  if (!authMethod) {
@@ -4645,6 +4755,7 @@ async function getAuthProvider(config) {
4645
4755
  console.log("[Offchain] Wrapping auth provider for Poofnet transaction tracking");
4646
4756
  currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);
4647
4757
  }
4758
+ currentAuthProviderConfigKey = nextProviderConfigKey;
4648
4759
  return currentAuthProvider;
4649
4760
  }
4650
4761
  /**
@@ -4674,6 +4785,7 @@ async function signInAnonymously() {
4674
4785
  const provider = new GuestAuthProvider();
4675
4786
  currentAuthProvider = provider;
4676
4787
  currentAuthMethod = 'guest';
4788
+ currentAuthProviderConfigKey = 'direct:guest';
4677
4789
  const coreConfig = await getConfig();
4678
4790
  coreConfig.authProvider = provider;
4679
4791
  coreConfig.authMethod = 'guest';
@@ -4718,6 +4830,7 @@ async function loginWithPrivy(options) {
4718
4830
  provider = new OffchainAuthProvider(provider);
4719
4831
  }
4720
4832
  currentAuthProvider = provider;
4833
+ currentAuthProviderConfigKey = authProviderConfigKey(Object.assign(Object.assign({}, coreConfig), { authMethod: currentAuthMethod }));
4721
4834
  coreConfig.authProvider = provider;
4722
4835
  coreConfig.authMethod = currentAuthMethod;
4723
4836
  setAuthProviderInstance(provider);
@@ -4734,6 +4847,7 @@ async function activateEmailProvider() {
4734
4847
  const provider = new EmailAuthProvider();
4735
4848
  currentAuthProvider = provider;
4736
4849
  currentAuthMethod = 'email';
4850
+ currentAuthProviderConfigKey = 'direct:email';
4737
4851
  const coreConfig = await getConfig();
4738
4852
  coreConfig.authProvider = provider;
4739
4853
  coreConfig.authMethod = 'email';
@@ -4860,6 +4974,7 @@ async function logout$1() {
4860
4974
  setStoredAuthMethod(null);
4861
4975
  currentAuthProvider = null;
4862
4976
  currentAuthMethod = null;
4977
+ currentAuthProviderConfigKey = null;
4863
4978
  }
4864
4979
 
4865
4980
  /**
@@ -5507,4 +5622,4 @@ class PrivyExpoProvider {
5507
5622
  }
5508
5623
 
5509
5624
  export { loginWithRedirect as A, linkWithRedirect as B, completeLoginFromRedirect as C, loginWithPopup as D, completeLoginInPopup as E, useAuth as F, deserializeTransaction as G, getIdToken as H, setPlatform as I, index as J, OffchainAuthProvider as O, PrivyExpoProvider as P, SURFNET_RPC_URL as S, detectAndroid as a, bufferExports as b, confirmAndCheckTransaction as c, detectMobile as d, setAuthLoading as e, resolveSolanaWalletStandardChain as f, getPlatform as g, bs58 as h, init as i, getCurrentUser as j, onAuthLoadingChanged as k, getAuthLoading as l, login as m, normalizeSolanaRpcUrl as n, onAuthStateChanged as o, logout as p, getAuthProvider as q, resolveSolanaRpcUrl as r, setCurrentUser as s, signInAnonymously as t, sendEmailOtp as u, sendTextOtp as v, verifyEmailOtp as w, verifyTextOtp as x, linkEmail as y, loginWithPrivy as z };
5510
- //# sourceMappingURL=index.native-w12aoVNW.mjs.map
5625
+ //# sourceMappingURL=index.native-N3xLU862.mjs.map