@bounded-sh/client 0.0.96 → 0.0.98

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 (54) hide show
  1. package/dist/auth/turnkey-auth.d.ts +9 -7
  2. package/dist/bounded-widget-modal-C0Z7gmxH.mjs +31 -0
  3. package/dist/bounded-widget-modal-C0Z7gmxH.mjs.map +1 -0
  4. package/dist/bounded-widget-modal-s0PL86Y-.js +33 -0
  5. package/dist/bounded-widget-modal-s0PL86Y-.js.map +1 -0
  6. package/dist/{email-auth-provider-B1wYw68c.js → email-auth-provider-BhYzRN0r.js} +2 -2
  7. package/dist/{email-auth-provider-B1wYw68c.js.map → email-auth-provider-BhYzRN0r.js.map} +1 -1
  8. package/dist/{email-auth-provider-BgxLdrbB.mjs → email-auth-provider-CiPAD3vz.mjs} +2 -2
  9. package/dist/{email-auth-provider-Dhu15el8.mjs.map → email-auth-provider-CiPAD3vz.mjs.map} +1 -1
  10. package/dist/{email-auth-provider-Dhu15el8.mjs → email-auth-provider-DF7Urh8i.mjs} +2 -2
  11. package/dist/{email-auth-provider-BgxLdrbB.mjs.map → email-auth-provider-DF7Urh8i.mjs.map} +1 -1
  12. package/dist/{email-auth-provider-CiMNpEWJ.js → email-auth-provider-DxB_pJKO.js} +2 -2
  13. package/dist/{email-auth-provider-CiMNpEWJ.js.map → email-auth-provider-DxB_pJKO.js.map} +1 -1
  14. package/dist/{guest-auth-provider-BrMhyIse.js → guest-auth-provider-B9C3Iub_.js} +2 -2
  15. package/dist/{guest-auth-provider-BrMhyIse.js.map → guest-auth-provider-B9C3Iub_.js.map} +1 -1
  16. package/dist/{guest-auth-provider-BGBcSwsM.js → guest-auth-provider-BiM35KHb.js} +2 -2
  17. package/dist/{guest-auth-provider-BGBcSwsM.js.map → guest-auth-provider-BiM35KHb.js.map} +1 -1
  18. package/dist/{guest-auth-provider-U-zsTm0z.mjs → guest-auth-provider-DVw-tITC.mjs} +2 -2
  19. package/dist/{guest-auth-provider-U-zsTm0z.mjs.map → guest-auth-provider-DVw-tITC.mjs.map} +1 -1
  20. package/dist/{guest-auth-provider-BXJ2xm3C.mjs → guest-auth-provider-Dtsq4QaY.mjs} +2 -2
  21. package/dist/{guest-auth-provider-BXJ2xm3C.mjs.map → guest-auth-provider-Dtsq4QaY.mjs.map} +1 -1
  22. package/dist/{index-DWUx-v0z.js → index-CYdYsf8s.js} +514 -662
  23. package/dist/index-CYdYsf8s.js.map +1 -0
  24. package/dist/{index-B5Luqobz.mjs → index-Cflemdaf.mjs} +514 -662
  25. package/dist/index-Cflemdaf.mjs.map +1 -0
  26. package/dist/index.js +1 -1
  27. package/dist/index.mjs +1 -1
  28. package/dist/{index.native-DVMCCbwq.js → index.native-BZOWS_sR.js} +16 -332
  29. package/dist/index.native-BZOWS_sR.js.map +1 -0
  30. package/dist/{index.native-CAkdhYaP.mjs → index.native-gVbAsohv.mjs} +16 -332
  31. package/dist/index.native-gVbAsohv.mjs.map +1 -0
  32. package/dist/index.native.js +1 -1
  33. package/dist/index.native.mjs +1 -1
  34. package/dist/{injected-evm-wallet-provider-DvoG_pvE.js → injected-evm-wallet-provider-Bv8VLuB1.js} +2 -2
  35. package/dist/{injected-evm-wallet-provider-DvoG_pvE.js.map → injected-evm-wallet-provider-Bv8VLuB1.js.map} +1 -1
  36. package/dist/{injected-evm-wallet-provider-CgUCo_6H.js → injected-evm-wallet-provider-C3MwUTRd.js} +2 -2
  37. package/dist/{injected-evm-wallet-provider-CgUCo_6H.js.map → injected-evm-wallet-provider-C3MwUTRd.js.map} +1 -1
  38. package/dist/{injected-evm-wallet-provider-Da6kghfZ.mjs → injected-evm-wallet-provider-CMqUqqxN.mjs} +2 -2
  39. package/dist/{injected-evm-wallet-provider-Da6kghfZ.mjs.map → injected-evm-wallet-provider-CMqUqqxN.mjs.map} +1 -1
  40. package/dist/{injected-evm-wallet-provider-BmWa3lHu.mjs → injected-evm-wallet-provider-K0j697jt.mjs} +2 -2
  41. package/dist/{injected-evm-wallet-provider-BmWa3lHu.mjs.map → injected-evm-wallet-provider-K0j697jt.mjs.map} +1 -1
  42. package/dist/{injected-wallet-provider-B7xVks8k.js → injected-wallet-provider-BDt4CN0b.js} +2 -2
  43. package/dist/{injected-wallet-provider-B7xVks8k.js.map → injected-wallet-provider-BDt4CN0b.js.map} +1 -1
  44. package/dist/{injected-wallet-provider-DBWcA9tW.js → injected-wallet-provider-CG3oKdp_.js} +2 -2
  45. package/dist/{injected-wallet-provider-DBWcA9tW.js.map → injected-wallet-provider-CG3oKdp_.js.map} +1 -1
  46. package/dist/{injected-wallet-provider-TvPTmUdy.mjs → injected-wallet-provider-DH8yLpyf.mjs} +2 -2
  47. package/dist/{injected-wallet-provider-TvPTmUdy.mjs.map → injected-wallet-provider-DH8yLpyf.mjs.map} +1 -1
  48. package/dist/{injected-wallet-provider-CJFZ9O7q.mjs → injected-wallet-provider-Dlo96aV9.mjs} +2 -2
  49. package/dist/{injected-wallet-provider-CJFZ9O7q.mjs.map → injected-wallet-provider-Dlo96aV9.mjs.map} +1 -1
  50. package/package.json +2 -2
  51. package/dist/index-B5Luqobz.mjs.map +0 -1
  52. package/dist/index-DWUx-v0z.js.map +0 -1
  53. package/dist/index.native-CAkdhYaP.mjs.map +0 -1
  54. package/dist/index.native-DVMCCbwq.js.map +0 -1
@@ -4167,322 +4167,6 @@ async function ensureSolanaMobileWalletRegistered(config, network) {
4167
4167
 
4168
4168
  var bufferExports = requireBuffer();
4169
4169
 
4170
- // bounded-widget-modal.ts - the shared in-app WIDGET shell for Bounded's login
4171
- // and signing surfaces. One Shadow-DOM overlay + panel that matches the Bounded
4172
- // widget (Seal) look and MOTION: a backdrop fade, a panel rise on desktop, a
4173
- // bottom-sheet on mobile, a height tween as content swaps, and a clean close.
4174
- //
4175
- // It hosts EITHER:
4176
- // - NATIVE content (the login card the SDK renders itself), or
4177
- // - an IFRAME (the Bounded-owned signer page, which must run on the single
4178
- // signer origin because the wallet's 24h signing session lives in that
4179
- // origin's storage, out of every app's reach).
4180
- //
4181
- // The modal is a warm singleton: it stays mounted (hidden) between uses so a
4182
- // second open - or a signature right after login - is instant and, when it is
4183
- // already open, a clean in-place view swap rather than a reopen.
4184
- function hasDOM$4() {
4185
- return typeof window !== "undefined" && typeof document !== "undefined";
4186
- }
4187
- const OVERLAY_CSS = `
4188
- :host{all:initial}
4189
- *{box-sizing:border-box}
4190
- .bw-ov{position:fixed;inset:0;z-index:2147483647;display:none;
4191
- font-family:"Schibsted Grotesk","Helvetica Neue",Arial,sans-serif}
4192
- .bw-ov.mounted{display:block}
4193
- .bw-back{position:fixed;inset:0;background:rgba(4,4,5,.62);opacity:0;
4194
- transition:opacity .24s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
4195
- .bw-wrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px}
4196
- .bw-panel{position:relative;width:420px;max-width:calc(100vw - 28px);height:280px;
4197
- border-radius:14px;overflow:hidden;background:#0e0f11;border:1px solid rgba(232,230,222,.08);
4198
- box-shadow:0 1px 0 rgba(232,230,222,.03) inset,0 40px 90px -45px rgba(0,0,0,.85);
4199
- opacity:0;transform:translateY(14px) scale(.98);will-change:transform,opacity,height;
4200
- transition:opacity .28s cubic-bezier(.2,.8,.2,1),transform .28s cubic-bezier(.2,.8,.2,1),
4201
- height .3s cubic-bezier(.2,.8,.2,1)}
4202
- .bw-ov.show .bw-back{opacity:1}
4203
- .bw-ov.show .bw-panel{opacity:1;transform:none}
4204
- .bw-ov.closing .bw-back{opacity:0}
4205
- .bw-ov.closing .bw-panel{opacity:0;transform:translateY(12px) scale(.99)}
4206
- .bw-content{position:absolute;inset:0;overflow:hidden}
4207
- .bw-frame{display:block;width:100%;height:100%;border:0;background:transparent;color-scheme:dark}
4208
- /* editorial corner crop-marks, matching the reference frame */
4209
- .bw-mk{position:absolute;width:13px;height:13px;pointer-events:none;z-index:2;
4210
- border-color:rgba(232,230,222,.22);border-style:solid;border-width:0}
4211
- .bw-mk.tl{top:11px;left:11px;border-top-width:1px;border-left-width:1px}
4212
- .bw-mk.tr{top:11px;right:11px;border-top-width:1px;border-right-width:1px}
4213
- .bw-mk.bl{bottom:11px;left:11px;border-bottom-width:1px;border-left-width:1px}
4214
- .bw-mk.br{bottom:11px;right:11px;border-bottom-width:1px;border-right-width:1px}
4215
- @media(max-width:560px){
4216
- .bw-wrap{align-items:flex-end;padding:0}
4217
- .bw-panel{width:100%;max-width:100%;border-radius:18px 18px 0 0;border-bottom:0}
4218
- .bw-content{overflow-y:auto}
4219
- .bw-ov.show .bw-panel{transform:none}
4220
- .bw-ov:not(.show) .bw-panel,.bw-ov.closing .bw-panel{transform:translateY(18%)}
4221
- }
4222
- @media(prefers-reduced-motion:reduce){.bw-back,.bw-panel{transition:opacity .12s linear!important}}
4223
- `;
4224
- let modal = null;
4225
- function getModal() {
4226
- if (modal)
4227
- return modal;
4228
- const root = document.createElement("div");
4229
- root.setAttribute("data-bounded-widget", "");
4230
- const shadow = root.attachShadow({ mode: "open" });
4231
- const style = document.createElement("style");
4232
- style.textContent = OVERLAY_CSS;
4233
- shadow.appendChild(style);
4234
- const overlay = document.createElement("div");
4235
- overlay.className = "bw-ov";
4236
- const back = document.createElement("div");
4237
- back.className = "bw-back";
4238
- const wrap = document.createElement("div");
4239
- wrap.className = "bw-wrap";
4240
- const panel = document.createElement("div");
4241
- panel.className = "bw-panel";
4242
- const content = document.createElement("div");
4243
- content.className = "bw-content";
4244
- panel.appendChild(content);
4245
- for (const corner of ["tl", "tr", "bl", "br"]) {
4246
- const mk = document.createElement("span");
4247
- mk.className = "bw-mk " + corner;
4248
- panel.appendChild(mk);
4249
- }
4250
- wrap.appendChild(panel);
4251
- overlay.appendChild(back);
4252
- overlay.appendChild(wrap);
4253
- shadow.appendChild(overlay);
4254
- (document.body || document.documentElement).appendChild(root);
4255
- const m = {
4256
- root,
4257
- overlay,
4258
- panel,
4259
- content,
4260
- iframe: null,
4261
- iframeOrigin: "",
4262
- iframeReady: false,
4263
- onBackdrop: null,
4264
- onIframeMessage: null,
4265
- chain: Promise.resolve(),
4266
- fitObserver: null,
4267
- generation: 0,
4268
- onSupersede: null,
4269
- };
4270
- // The dismiss handler lives on `.bw-wrap`: it is the full-viewport flex layer
4271
- // that sits ABOVE `.bw-back`, so it (not the backdrop element) receives clicks
4272
- // outside the panel. Fire only when the click lands on the wrap itself, never
4273
- // when it bubbles up from the panel or its content.
4274
- wrap.addEventListener("click", (event) => {
4275
- if (event.target === wrap && m.onBackdrop)
4276
- m.onBackdrop();
4277
- });
4278
- window.addEventListener("message", (event) => {
4279
- if (!m.iframe)
4280
- return;
4281
- if (event.origin !== m.iframeOrigin)
4282
- return;
4283
- if (event.source !== m.iframe.contentWindow)
4284
- return;
4285
- const d = event.data;
4286
- if (!d || typeof d !== "object")
4287
- return;
4288
- if (m.onIframeMessage)
4289
- m.onIframeMessage(d);
4290
- });
4291
- modal = m;
4292
- return m;
4293
- }
4294
- function showModal(m) {
4295
- m.overlay.classList.remove("closing");
4296
- m.overlay.classList.add("mounted");
4297
- // Force a reflow so the .show transition runs from the hidden state every open.
4298
- void m.panel.offsetWidth;
4299
- m.overlay.classList.add("show");
4300
- }
4301
- function hideModal(m, after) {
4302
- m.overlay.classList.remove("show");
4303
- m.overlay.classList.add("closing");
4304
- // Capture the generation at hide time. If a newer open re-shows the modal within
4305
- // the close tween, this stale timer must NOT strip `.mounted`/`.closing` off the
4306
- // freshly reopened widget - only tear down when we are still the same open.
4307
- const gen = m.generation;
4308
- window.setTimeout(() => {
4309
- if (m.generation === gen)
4310
- m.overlay.classList.remove("mounted", "closing");
4311
- }, 260);
4312
- }
4313
- function setPanelHeight(m, px) {
4314
- const h = Math.max(140, Math.min(680, Math.round(px)));
4315
- m.panel.style.height = h + "px";
4316
- }
4317
- /** Get (or lazily create) the warm iframe for signer/hosted-page mode. */
4318
- function ensureIframe(m, url, origin) {
4319
- var _a;
4320
- if (m.iframe && m.iframeOrigin === origin && m.iframe.src === url)
4321
- return m.iframe;
4322
- detachIframe(m);
4323
- (_a = m.fitObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
4324
- m.fitObserver = null;
4325
- m.content.style.display = "none";
4326
- const iframe = document.createElement("iframe");
4327
- iframe.className = "bw-frame";
4328
- iframe.setAttribute("title", "Bounded");
4329
- iframe.setAttribute("allow", "clipboard-write");
4330
- iframe.src = url;
4331
- m.iframeOrigin = origin;
4332
- m.iframeReady = false;
4333
- m.panel.appendChild(iframe);
4334
- m.iframe = iframe;
4335
- return iframe;
4336
- }
4337
- /**
4338
- * Destroy the warm signer iframe if one is currently mounted for `origin`, and report
4339
- * whether there was one. Logout needs this: a signing session can live in that document's
4340
- * MEMORY (the signer keeps an in-memory mirror when the browser blocks its storage), and a
4341
- * throwaway iframe opened by the sweep can only ever clear the shared store, never another
4342
- * document's memory. Removing the iframe discards its browsing context, which takes the
4343
- * mirror with it.
4344
- *
4345
- * Deliberately does NOT call getModal(): that would BUILD a modal just to tear it down, on
4346
- * every logout of every app, most of which never mounted one.
4347
- */
4348
- function detachWarmSignerIframe(origin) {
4349
- if (!modal || !modal.iframe || modal.iframeOrigin !== origin)
4350
- return false;
4351
- detachIframe(modal);
4352
- return true;
4353
- }
4354
- function detachIframe(m) {
4355
- if (m.iframe) {
4356
- try {
4357
- m.iframe.remove();
4358
- }
4359
- catch (_a) {
4360
- /* ignore */
4361
- }
4362
- }
4363
- m.iframe = null;
4364
- m.iframeReady = false;
4365
- m.iframeOrigin = "";
4366
- m.onIframeMessage = null;
4367
- }
4368
-
4369
- var boundedWidgetModal = /*#__PURE__*/Object.freeze({
4370
- __proto__: null,
4371
- detachIframe: detachIframe,
4372
- detachWarmSignerIframe: detachWarmSignerIframe,
4373
- ensureIframe: ensureIframe,
4374
- getModal: getModal,
4375
- hasDOM: hasDOM$4,
4376
- hideModal: hideModal,
4377
- setPanelHeight: setPanelHeight,
4378
- showModal: showModal
4379
- });
4380
-
4381
- // turnkey-wallet-widget.ts - runs one Turnkey signer exchange inside the shared
4382
- // in-app WIDGET (bounded-widget-modal.ts). The Bounded-owned signer page is loaded
4383
- // in a warm iframe behind the modal so signing feels native: an in-app approve
4384
- // card (with inline code entry when the 24h signing session must first be
4385
- // established), never a jarring popup.
4386
- //
4387
- // WHY AN IFRAME: the wallet's signing session lives in the single Bounded signer
4388
- // origin's storage, out of every app's reach, so signing MUST run on that origin;
4389
- // the iframe brings it in-app.
4390
- //
4391
- // Restricted embedders: if the frame never loads, the SAME request reruns through
4392
- // `popupFallback` (a real window). Callers pass a popup implementation and never
4393
- // see the difference.
4394
- /**
4395
- * Run one signer exchange through the in-app widget. Resolves when `onResult`
4396
- * accepts a result; falls back to `popupFallback` if the frame cannot be mounted
4397
- * or never loads.
4398
- */
4399
- async function runWidget(url, signerOrigin, ex, popupFallback) {
4400
- if (!hasDOM$4())
4401
- return popupFallback();
4402
- const m = getModal();
4403
- const requestId = String(ex.request.requestId);
4404
- // Serialize: the approve card is modal, and one warm frame handles one request at a time.
4405
- const run = m.chain.then(() => new Promise((resolve, reject) => {
4406
- let settled = false;
4407
- let usedFallback = false;
4408
- const iframe = ensureIframe(m, url, signerOrigin);
4409
- const send = () => {
4410
- if (!iframe.contentWindow)
4411
- return;
4412
- try {
4413
- iframe.contentWindow.postMessage(ex.request, signerOrigin);
4414
- }
4415
- catch (_a) {
4416
- /* frame gone */
4417
- }
4418
- };
4419
- let loadTimer = 0;
4420
- let ceilingTimer = 0;
4421
- const finish = (fn) => {
4422
- if (settled)
4423
- return;
4424
- settled = true;
4425
- m.onIframeMessage = null;
4426
- m.onBackdrop = null;
4427
- window.clearTimeout(loadTimer);
4428
- window.clearTimeout(ceilingTimer);
4429
- fn();
4430
- };
4431
- const goFallback = () => {
4432
- if (usedFallback || settled)
4433
- return;
4434
- usedFallback = true;
4435
- hideModal(m);
4436
- finish(() => popupFallback().then(resolve, reject));
4437
- };
4438
- m.onBackdrop = () => {
4439
- hideModal(m);
4440
- finish(() => reject(new Error("cancelled")));
4441
- };
4442
- m.onIframeMessage = (d) => {
4443
- if (d.type === "bounded:turnkey:ready") {
4444
- m.iframeReady = true;
4445
- send();
4446
- return;
4447
- }
4448
- if (d.type === "bounded:turnkey:resize" && typeof d.height === "number") {
4449
- setPanelHeight(m, d.height);
4450
- return;
4451
- }
4452
- if (d.type === "bounded:turnkey:result" && d.requestId === requestId) {
4453
- const outcome = ex.onResult(d);
4454
- if ("error" in outcome) {
4455
- hideModal(m);
4456
- finish(() => reject(new Error(outcome.error)));
4457
- return;
4458
- }
4459
- if (outcome.done) {
4460
- hideModal(m);
4461
- finish(() => resolve(outcome.value));
4462
- }
4463
- }
4464
- };
4465
- showModal(m);
4466
- if (m.iframeReady)
4467
- send();
4468
- // If the frame never loads, degrade to the popup (best-effort - a post-load
4469
- // popup may be blocked without a gesture, in which case the fallback rejects).
4470
- loadTimer = window.setTimeout(() => {
4471
- if (!m.iframeReady && !settled)
4472
- goFallback();
4473
- }, 8000);
4474
- // Absolute ceiling so a stuck flow cannot hang forever.
4475
- ceilingTimer = window.setTimeout(() => {
4476
- if (!settled) {
4477
- hideModal(m);
4478
- finish(() => reject(new Error("Wallet approval timed out.")));
4479
- }
4480
- }, 5 * 60 * 1000);
4481
- }));
4482
- m.chain = run.then(() => undefined, () => undefined);
4483
- return run;
4484
- }
4485
-
4486
4170
  // turnkey-signer-frame.ts - a HIDDEN, offscreen iframe of the Bounded signer page
4487
4171
  // for UI-less signer exchanges: sealing a login code (bounded:turnkey:encryptOtp),
4488
4172
  // establishing the 24h signing session right after login
@@ -4699,14 +4383,14 @@ async function requestTurnkeyActionAuthorization(opts) {
4699
4383
  function hasDOM$2() {
4700
4384
  return typeof window !== 'undefined' && typeof document !== 'undefined';
4701
4385
  }
4702
- // Dispatch one signer exchange through the in-app WIDGET, degrading to the POPUP
4703
- // when we cannot embed (no DOM, or the frame never mounts/loads). Nothing in the
4704
- // email-session flow needs a popup by preference: the code entry and the approval
4705
- // click both run fine inside a cross-origin iframe on every engine (the old
4706
- // Safari popup preference existed only for in-iframe WebAuthn CREATE).
4386
+ // BSA-2026-006: dispatch every signing / get-or-create exchange through a TOP-LEVEL
4387
+ // POPUP the caller opened from the user gesture - NEVER a framed widget. An authorized
4388
+ // tenant that embedded the signer could overlay its predictable Approve control and steal
4389
+ // one concealed click into a fund-moving signature; a top-level window it cannot reach or
4390
+ // visually redress closes that. A blocked popup surfaces `popup_blocked` (runPopup) and we
4391
+ // never silently fall back to an iframe.
4707
4392
  async function deliver(url, origin, ex) {
4708
- const popup = () => runPopup(url, origin, ex);
4709
- return runWidget(url, origin, { request: ex.request, onResult: ex.onResult }, popup);
4393
+ return runPopup(url, origin, ex);
4710
4394
  }
4711
4395
  async function turnkeySignerPage() {
4712
4396
  const cfg = await getConfig();
@@ -4767,7 +4451,7 @@ async function runPopup(url, signerOrigin, ex) {
4767
4451
  const top = window.screenY + Math.max(0, (window.outerHeight - h) / 2);
4768
4452
  const popup = window.open(url, 'bounded-turnkey-signer', `width=${w},height=${h},left=${left},top=${top}`);
4769
4453
  if (!popup) {
4770
- throw new Error('Popup blocked - call this from a user gesture (e.g. a click handler) so the wallet approval window can open.');
4454
+ throw new Error('popup_blocked - the wallet approval window was blocked. Call this from a user gesture (e.g. a click handler) so it can open; we never fall back to an in-page frame.');
4771
4455
  }
4772
4456
  return await new Promise((resolve, reject) => {
4773
4457
  let settled = false;
@@ -4923,7 +4607,7 @@ async function clearTurnkeySigningSession() {
4923
4607
  // Done first, and synchronously, so it lands even if the frame exchange below fails.
4924
4608
  try {
4925
4609
  const { origin } = await turnkeySignerPage();
4926
- (await Promise.resolve().then(function () { return boundedWidgetModal; })).detachWarmSignerIframe(origin);
4610
+ (await import('./bounded-widget-modal-C0Z7gmxH.mjs')).detachWarmSignerIframe(origin);
4927
4611
  }
4928
4612
  catch (_a) {
4929
4613
  /* no modal module / no warm frame: nothing to take */
@@ -6000,7 +5684,7 @@ async function getAuthProvider(config) {
6000
5684
  // manager as legacy email sessions. Human login should be started
6001
5685
  // with loginWithRedirect(); this provider is kept as the restore and
6002
5686
  // logout surface for those sessions.
6003
- currentAuthProvider = new (await import('./email-auth-provider-BgxLdrbB.mjs')).EmailAuthProvider();
5687
+ currentAuthProvider = new (await import('./email-auth-provider-CiPAD3vz.mjs')).EmailAuthProvider();
6004
5688
  break;
6005
5689
  case "phantom": {
6006
5690
  // First-class Solana WALLET LOGIN (the poof/TaroBase-style "connect
@@ -6042,7 +5726,7 @@ async function getAuthProvider(config) {
6042
5726
  // (bounded-login-widget.ts), so registration never counts as
6043
5727
  // evidence the user has a wallet.
6044
5728
  await ensureSolanaMobileWalletRegistered(config, configuredNetwork);
6045
- const { InjectedWalletProvider } = await import('./injected-wallet-provider-TvPTmUdy.mjs');
5729
+ const { InjectedWalletProvider } = await import('./injected-wallet-provider-DH8yLpyf.mjs');
6046
5730
  currentAuthProvider = new InjectedWalletProvider(resolveInjectedWalletConfig(config), rpcUrl, configuredNetwork);
6047
5731
  break;
6048
5732
  }
@@ -6055,7 +5739,7 @@ async function getAuthProvider(config) {
6055
5739
  // Selecting authMethod:'evm-wallet' IS the opt-in — pass evmWalletConfig
6056
5740
  // to point at a specific wallet or set chainId/domain.
6057
5741
  const evmWalletConfig = ((_a = config.evmWalletConfig) !== null && _a !== void 0 ? _a : {});
6058
- const { InjectedEvmWalletProvider } = await import('./injected-evm-wallet-provider-BmWa3lHu.mjs');
5742
+ const { InjectedEvmWalletProvider } = await import('./injected-evm-wallet-provider-K0j697jt.mjs');
6059
5743
  currentAuthProvider = new InjectedEvmWalletProvider(evmWalletConfig);
6060
5744
  break;
6061
5745
  }
@@ -6080,7 +5764,7 @@ async function getAuthProvider(config) {
6080
5764
  break;
6081
5765
  case "guest":
6082
5766
  // Anonymous auth: a device-local ed25519 keypair signs the challenge.
6083
- currentAuthProvider = new (await import('./guest-auth-provider-BXJ2xm3C.mjs')).GuestAuthProvider();
5767
+ currentAuthProvider = new (await import('./guest-auth-provider-Dtsq4QaY.mjs')).GuestAuthProvider();
6084
5768
  break;
6085
5769
  }
6086
5770
  if (!currentAuthProvider) {
@@ -6142,7 +5826,7 @@ async function signInAnonymously() {
6142
5826
  // Lazy-load the guest provider so its ed25519/web3 dependencies stay out of
6143
5827
  // the main bundle for data-only apps. Specifier is a static string literal
6144
5828
  // so bundle-splitting can see it.
6145
- const provider = new (await import('./guest-auth-provider-BXJ2xm3C.mjs')).GuestAuthProvider();
5829
+ const provider = new (await import('./guest-auth-provider-Dtsq4QaY.mjs')).GuestAuthProvider();
6146
5830
  setAuthLoading(true); // reflect "signing in…" while the guest keypair session is minted
6147
5831
  // adoptSessionProvider awaits only getConfig() (already resolved here) and then
6148
5832
  // runs every write - provider/method/config/marker/user - in one synchronous
@@ -6313,7 +5997,7 @@ function ensureSharedWalletLoginReady() {
6313
5997
  if (!sharedWalletReady) {
6314
5998
  sharedWalletReady = (async () => {
6315
5999
  await getConfig();
6316
- await import('./injected-wallet-provider-TvPTmUdy.mjs');
6000
+ await import('./injected-wallet-provider-DH8yLpyf.mjs');
6317
6001
  })().catch((error) => {
6318
6002
  sharedWalletReady = null;
6319
6003
  throw error;
@@ -8280,4 +7964,4 @@ class PrivyExpoProvider {
8280
7964
  }
8281
7965
 
8282
7966
  export { BUILD_REVIEW_CAPABILITY_REFRESH_SCHEMA as $, logout as A, getAuthProvider as B, signInAnonymously as C, loginWithPrivy as D, loginWithRedirect as E, completeLoginFromRedirect as F, loginWithPopup as G, completeLoginInPopup as H, useAuth as I, useQuery as J, useBuildRun as K, apps as L, getIdToken as M, onramp as N, onrampQuote as O, onrampStatus as P, setPlatform as Q, OffchainAuthProvider as R, PrivyExpoProvider as S, builds as T, BuildsApiError as U, NON_TERMINAL_STATES as V, TERMINAL_STATES as W, RUN_STATES as X, PARK_REASONS as Y, FAILURE_REASONS as Z, BUILD_REVIEW_CAPABILITY_SCHEMA as _, signMessageWithTurnkey as a, BUILD_DELEGATED_REVIEW_CAPABILITY_SCHEMA as a0, signTransactionWithTurnkey as b, signTransactionV1WithTurnkey as c, signAndSubmitTransactionWithTurnkey as d, bs58 as e, getWallets as f, getPlatform as g, hasTurnkeyWallet as h, isSolanaMobileWallet as i, solanaMobileWalletLeavesPage as j, setAuthLoading as k, bufferExports as l, setStoredAuthMethod as m, normalizeSolanaRpcUrl as n, confirmAndCheckTransaction as o, resolveSolanaRpcUrl as p, init as q, resolveSolanaWalletStandardChain as r, setCurrentUser as s, transactionHasSignature as t, getCurrentUser as u, onAuthStateChanged as v, onAuthLoadingChanged as w, getAuthLoading as x, waitForAuthReady as y, login as z };
8283
- //# sourceMappingURL=index.native-CAkdhYaP.mjs.map
7967
+ //# sourceMappingURL=index.native-gVbAsohv.mjs.map