@pooflabs/web 0.0.77 → 0.0.79-rc.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.
Files changed (44) hide show
  1. package/dist/index-6pNPzV1t.esm.js +6 -0
  2. package/dist/index-6pNPzV1t.esm.js.map +1 -0
  3. package/dist/{index-Bfk81d8_.js → index-BHGEc97p.js} +3 -3
  4. package/dist/{index-Bfk81d8_.js.map → index-BHGEc97p.js.map} +1 -1
  5. package/dist/{index-R7t9pRt_.esm.js → index-CiwYJvf8.esm.js} +3 -3
  6. package/dist/{index-R7t9pRt_.esm.js.map → index-CiwYJvf8.esm.js.map} +1 -1
  7. package/dist/{index-CFh1x-M0.esm.js → index-CsIXFm8d.esm.js} +50 -3
  8. package/dist/{index-CFh1x-M0.esm.js.map → index-CsIXFm8d.esm.js.map} +1 -1
  9. package/dist/{index-DDXzCx2W.js → index-D9BY44i-.js} +2 -2
  10. package/dist/index-D9BY44i-.js.map +1 -0
  11. package/dist/{index-DQVpAl5t.js → index-DwU9hjtr.js} +50 -3
  12. package/dist/{index-DQVpAl5t.js.map → index-DwU9hjtr.js.map} +1 -1
  13. package/dist/{index-CeQ8hE3s.esm.js → index-U-xlsKRI.esm.js} +2 -2
  14. package/dist/{index-CeQ8hE3s.esm.js.map → index-U-xlsKRI.esm.js.map} +1 -1
  15. package/dist/{index-KUU0aVzP.js → index-zS_Y-wbi.js} +2 -2
  16. package/dist/{index-KUU0aVzP.js.map → index-zS_Y-wbi.js.map} +1 -1
  17. package/dist/{index.browser-BE44CEaJ.esm.js → index.browser-CMEwqnEe.esm.js} +2 -2
  18. package/dist/{index.browser-BE44CEaJ.esm.js.map → index.browser-CMEwqnEe.esm.js.map} +1 -1
  19. package/dist/{index.browser-Di1_YZpi.js → index.browser-Cpi4W_1r.js} +2 -2
  20. package/dist/{index.browser-Di1_YZpi.js.map → index.browser-Cpi4W_1r.js.map} +1 -1
  21. package/dist/index.esm.js +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/{index.native-DAyMVhFq.esm.js → index.native-CEf5PJ_g.esm.js} +4 -4
  24. package/dist/{index.native-DAyMVhFq.esm.js.map → index.native-CEf5PJ_g.esm.js.map} +1 -1
  25. package/dist/{index.native-CKd2b3_F.js → index.native-DtxPWD00.js} +4 -4
  26. package/dist/{index.native-CKd2b3_F.js.map → index.native-DtxPWD00.js.map} +1 -1
  27. package/dist/index.native.esm.js +1 -1
  28. package/dist/index.native.js +1 -1
  29. package/dist/{phantom-wallet-provider-DQ0uhl2v.esm.js → phantom-wallet-provider-B0UmUtfB.esm.js} +51 -4
  30. package/dist/{phantom-wallet-provider-DQ0uhl2v.esm.js.map → phantom-wallet-provider-B0UmUtfB.esm.js.map} +1 -1
  31. package/dist/{phantom-wallet-provider-DJ6qf2VB.js → phantom-wallet-provider-BbyQIlro.js} +51 -4
  32. package/dist/{phantom-wallet-provider-DJ6qf2VB.js.map → phantom-wallet-provider-BbyQIlro.js.map} +1 -1
  33. package/dist/{privy-wallet-provider-CMCv5g3O.js → privy-wallet-provider-CoQzq0F4.js} +3 -3
  34. package/dist/{privy-wallet-provider-CMCv5g3O.js.map → privy-wallet-provider-CoQzq0F4.js.map} +1 -1
  35. package/dist/{privy-wallet-provider-BhiHnphv.esm.js → privy-wallet-provider-DGjYglh7.esm.js} +3 -3
  36. package/dist/{privy-wallet-provider-BhiHnphv.esm.js.map → privy-wallet-provider-DGjYglh7.esm.js.map} +1 -1
  37. package/dist/{solana-mobile-wallet-provider-DaFNesCe.js → solana-mobile-wallet-provider-BLoovRsJ.js} +3 -3
  38. package/dist/{solana-mobile-wallet-provider-DaFNesCe.js.map → solana-mobile-wallet-provider-BLoovRsJ.js.map} +1 -1
  39. package/dist/{solana-mobile-wallet-provider-DSSk_6CR.esm.js → solana-mobile-wallet-provider-DIyP-Az5.esm.js} +3 -3
  40. package/dist/{solana-mobile-wallet-provider-DSSk_6CR.esm.js.map → solana-mobile-wallet-provider-DIyP-Az5.esm.js.map} +1 -1
  41. package/package.json +2 -2
  42. package/dist/index-CdOv7Nw2.esm.js +0 -6
  43. package/dist/index-CdOv7Nw2.esm.js.map +0 -1
  44. package/dist/index-DDXzCx2W.js.map +0 -1
@@ -15275,6 +15275,32 @@ async function confirmAndCheckTransaction(connection, signature) {
15275
15275
  }
15276
15276
 
15277
15277
  const VALID_PROVIDERS = ['injected', 'google', 'apple', 'deeplink', 'phantom'];
15278
+ // When the dApp runs inside an iframe whose parent origin is different from
15279
+ // (or can't inject into) the child frame — notably Phantom's Android in-app
15280
+ // browser, which injects window.phantom.solana only into the top frame —
15281
+ // the Phantom deeplink path tries to navigate phantom.app/ul/browse/... from
15282
+ // inside the iframe. Android App Links only hand off on top-level navigations,
15283
+ // and phantom.app refuses to be framed (X-Frame-Options: DENY), so the connect
15284
+ // fails. To get back to a working context we navigate the top window to the
15285
+ // dApp's own URL, dropping the iframe shell. Once top-level, the wallet
15286
+ // browser injects its provider and the normal injected flow succeeds.
15287
+ function isInIframe() {
15288
+ if (typeof window === 'undefined')
15289
+ return false;
15290
+ try {
15291
+ return window.top !== window.self;
15292
+ }
15293
+ catch (_a) {
15294
+ // Cross-origin access to window.top throws — if we can't read it, we're iframed.
15295
+ return true;
15296
+ }
15297
+ }
15298
+ function shouldBreakOutOfIframe(provider) {
15299
+ // Only break out when the user chose the deeplink provider. The modal only
15300
+ // offers deeplink on mobile when no injected Phantom is present, so this is
15301
+ // exactly the iframe-without-provider case we need to escape.
15302
+ return provider === 'deeplink' && isInIframe();
15303
+ }
15278
15304
  // Dynamically import React and Phantom SDK - only when needed
15279
15305
  let React$1;
15280
15306
  let ReactDOM$1;
@@ -15295,7 +15321,7 @@ async function loadDependencies() {
15295
15321
  const [reactModule, reactDomModule, phantomModule] = await Promise.all([
15296
15322
  import('react'),
15297
15323
  import('react-dom/client'),
15298
- import('./index-CeQ8hE3s.esm.js')
15324
+ import('./index-U-xlsKRI.esm.js')
15299
15325
  ]);
15300
15326
  // Extract default export from ESM module namespace
15301
15327
  // Dynamic import() returns { default: Module, ...exports }, not the module directly
@@ -15643,6 +15669,27 @@ class PhantomWalletProvider {
15643
15669
  const handleWalletClick = async (options) => {
15644
15670
  walletClickedRef.current = true;
15645
15671
  setShowWalletModal(false);
15672
+ // If we're in an iframe and the user chose deeplink, Phantom's SDK
15673
+ // will navigate *this* iframe to phantom.app/ul/browse/..., which
15674
+ // Android App Links won't intercept and phantom.app won't let be
15675
+ // framed. Escape to top-level first so the wallet browser can
15676
+ // inject its provider and the normal injected flow takes over
15677
+ // on the user's next connect tap.
15678
+ if (shouldBreakOutOfIframe(options === null || options === void 0 ? void 0 : options.provider)) {
15679
+ try {
15680
+ // Same-site navigation (*.poof.new → *.poof.new) plus the
15681
+ // iframe's allow-top-navigation-by-user-activation sandbox
15682
+ // token make this go through.
15683
+ window.top.location.href = window.location.href;
15684
+ return;
15685
+ }
15686
+ catch (_a) {
15687
+ // Top-nav blocked (no sandbox grant, cross-origin top, etc.).
15688
+ // Fall through to the normal deeplink path — at least the
15689
+ // user gets the original broken-ish behavior instead of a
15690
+ // silently-dead button.
15691
+ }
15692
+ }
15646
15693
  try {
15647
15694
  if (options === null || options === void 0 ? void 0 : options.walletId) {
15648
15695
  await connect({ provider: 'injected', walletId: options.walletId });
@@ -20771,7 +20818,7 @@ async function registerMobileWalletAdapter(config) {
20771
20818
  if (typeof window === 'undefined')
20772
20819
  return;
20773
20820
  try {
20774
- const walletStandardMobile = await import('./index.browser-BE44CEaJ.esm.js');
20821
+ const walletStandardMobile = await import('./index.browser-CMEwqnEe.esm.js');
20775
20822
  const registerMwa = walletStandardMobile.registerMwa || ((_a = walletStandardMobile.default) === null || _a === void 0 ? void 0 : _a.registerMwa);
20776
20823
  if (!registerMwa) {
20777
20824
  console.warn('[SolanaMobileWallet] registerMwa not found in @solana-mobile/wallet-standard-mobile');
@@ -21680,4 +21727,4 @@ class PrivyExpoProvider {
21680
21727
  }
21681
21728
 
21682
21729
  export { getMany as $, useAuth as A, deserializeTransaction as B, getIdToken as C, setPlatform as D, getPlatform as E, PrivyWalletProvider as F, DEFAULT_TEST_ADDRESS as G, isMobileWalletAvailable as H, registerMobileWalletAdapter as I, PrivyExpoProvider as J, InsufficientBalanceError as K, ServerSessionManager as L, MockAuthProvider as M, buildSetDocumentsTransaction as N, OffchainAuthProvider as O, PhantomWalletProvider as P, clearCache as Q, ReactNativeSessionManager as R, SolanaMobileWalletProvider as S, closeAllSubscriptions as T, convertRemainingAccounts as U, createSessionWithPrivy as V, WebSessionManager as W, createSessionWithSignature as X, genAuthNonce as Y, genSolanaMessage as Z, getCachedData as _, getCurrentUser as a, reconnectWithNewAuth as a0, refreshSession as a1, signSessionCreateMessage as a2, bufferExports as b, onAuthLoadingChanged as c, getAuthLoading as d, logout as e, getConfig as f, getDefaultExportFromCjs$1 as g, getAuthProvider as h, init as i, get as j, setMany as k, login as l, setFile as m, getFiles as n, onAuthStateChanged as o, runQueryMany as p, runExpression as q, runQuery as r, set as s, runExpressionMany as t, signMessage as u, signTransaction as v, signAndSubmitTransaction as w, count as x, aggregate as y, subscribe as z };
21683
- //# sourceMappingURL=index-CFh1x-M0.esm.js.map
21730
+ //# sourceMappingURL=index-CsIXFm8d.esm.js.map