@bounded-sh/client 0.0.117-sync.0 → 0.0.118-openapps.0
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 +5 -0
- package/dist/connections.d.ts +44 -0
- package/dist/{email-auth-provider-CmbRj-_I.mjs → email-auth-provider-C-SGTRZe.mjs} +2 -2
- package/dist/{email-auth-provider-CmbRj-_I.mjs.map → email-auth-provider-C-SGTRZe.mjs.map} +1 -1
- package/dist/{email-auth-provider-BFOw9iI9.js → email-auth-provider-CjbJ8wK1.js} +2 -2
- package/dist/{email-auth-provider-BFOw9iI9.js.map → email-auth-provider-CjbJ8wK1.js.map} +1 -1
- package/dist/{guest-auth-provider-Bvoaq-zC.mjs → guest-auth-provider-BwEXKnNK.mjs} +2 -2
- package/dist/{guest-auth-provider-Bvoaq-zC.mjs.map → guest-auth-provider-BwEXKnNK.mjs.map} +1 -1
- package/dist/{guest-auth-provider-DJD3zkBU.js → guest-auth-provider-ClCOa69H.js} +2 -2
- package/dist/{guest-auth-provider-DJD3zkBU.js.map → guest-auth-provider-ClCOa69H.js.map} +1 -1
- package/dist/{index-C2xAP67N.js → index-B2HWEA13.js} +170 -22
- package/dist/index-B2HWEA13.js.map +1 -0
- package/dist/{index-BmBLsYn2.mjs → index-q9BHoxbM.mjs} +166 -23
- package/dist/index-q9BHoxbM.mjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{injected-evm-wallet-provider-B2xteR2I.mjs → injected-evm-wallet-provider-AXc7Lmzk.mjs} +2 -2
- package/dist/{injected-evm-wallet-provider-B2xteR2I.mjs.map → injected-evm-wallet-provider-AXc7Lmzk.mjs.map} +1 -1
- package/dist/{injected-evm-wallet-provider-CL_FBjLe.js → injected-evm-wallet-provider-qB_GQ9ih.js} +2 -2
- package/dist/{injected-evm-wallet-provider-CL_FBjLe.js.map → injected-evm-wallet-provider-qB_GQ9ih.js.map} +1 -1
- package/dist/{injected-wallet-provider-Bc_xtyRd.js → injected-wallet-provider-BEaDBzcd.js} +2 -2
- package/dist/{injected-wallet-provider-Bc_xtyRd.js.map → injected-wallet-provider-BEaDBzcd.js.map} +1 -1
- package/dist/{injected-wallet-provider-DwozZ926.mjs → injected-wallet-provider-gmGZ254w.mjs} +2 -2
- package/dist/{injected-wallet-provider-DwozZ926.mjs.map → injected-wallet-provider-gmGZ254w.mjs.map} +1 -1
- package/package.json +2 -2
- package/dist/index-BmBLsYn2.mjs.map +0 -1
- package/dist/index-C2xAP67N.js.map +0 -1
|
@@ -6475,7 +6475,7 @@ async function getAuthProvider(config, fromStorage = false) {
|
|
|
6475
6475
|
// manager as legacy email sessions. Human login should be started
|
|
6476
6476
|
// with loginWithRedirect(); this provider is kept as the restore and
|
|
6477
6477
|
// logout surface for those sessions.
|
|
6478
|
-
currentAuthProvider = new (await import('./email-auth-provider-
|
|
6478
|
+
currentAuthProvider = new (await import('./email-auth-provider-C-SGTRZe.mjs')).EmailAuthProvider();
|
|
6479
6479
|
break;
|
|
6480
6480
|
case "phantom": {
|
|
6481
6481
|
// First-class Solana WALLET LOGIN (the poof/TaroBase-style "connect
|
|
@@ -6517,7 +6517,7 @@ async function getAuthProvider(config, fromStorage = false) {
|
|
|
6517
6517
|
// (bounded-login-widget.ts), so registration never counts as
|
|
6518
6518
|
// evidence the user has a wallet.
|
|
6519
6519
|
await ensureSolanaMobileWalletRegistered(config, configuredNetwork);
|
|
6520
|
-
const { InjectedWalletProvider } = await import('./injected-wallet-provider-
|
|
6520
|
+
const { InjectedWalletProvider } = await import('./injected-wallet-provider-gmGZ254w.mjs');
|
|
6521
6521
|
currentAuthProvider = new InjectedWalletProvider(resolveInjectedWalletConfig(config), rpcUrl, configuredNetwork);
|
|
6522
6522
|
break;
|
|
6523
6523
|
}
|
|
@@ -6530,7 +6530,7 @@ async function getAuthProvider(config, fromStorage = false) {
|
|
|
6530
6530
|
// Selecting authMethod:'evm-wallet' IS the opt-in — pass evmWalletConfig
|
|
6531
6531
|
// to point at a specific wallet or set chainId/domain.
|
|
6532
6532
|
const evmWalletConfig = ((_a = config.evmWalletConfig) !== null && _a !== void 0 ? _a : {});
|
|
6533
|
-
const { InjectedEvmWalletProvider } = await import('./injected-evm-wallet-provider-
|
|
6533
|
+
const { InjectedEvmWalletProvider } = await import('./injected-evm-wallet-provider-AXc7Lmzk.mjs');
|
|
6534
6534
|
currentAuthProvider = new InjectedEvmWalletProvider(evmWalletConfig);
|
|
6535
6535
|
break;
|
|
6536
6536
|
}
|
|
@@ -6555,7 +6555,7 @@ async function getAuthProvider(config, fromStorage = false) {
|
|
|
6555
6555
|
break;
|
|
6556
6556
|
case "guest":
|
|
6557
6557
|
// Anonymous auth: a device-local ed25519 keypair signs the challenge.
|
|
6558
|
-
currentAuthProvider = new (await import('./guest-auth-provider-
|
|
6558
|
+
currentAuthProvider = new (await import('./guest-auth-provider-BwEXKnNK.mjs')).GuestAuthProvider();
|
|
6559
6559
|
break;
|
|
6560
6560
|
}
|
|
6561
6561
|
if (!currentAuthProvider) {
|
|
@@ -6617,7 +6617,7 @@ async function signInAnonymously() {
|
|
|
6617
6617
|
// Lazy-load the guest provider so its ed25519/web3 dependencies stay out of
|
|
6618
6618
|
// the main bundle for data-only apps. Specifier is a static string literal
|
|
6619
6619
|
// so bundle-splitting can see it.
|
|
6620
|
-
const provider = new (await import('./guest-auth-provider-
|
|
6620
|
+
const provider = new (await import('./guest-auth-provider-BwEXKnNK.mjs')).GuestAuthProvider();
|
|
6621
6621
|
setAuthLoading(true); // reflect "signing in…" while the guest keypair session is minted
|
|
6622
6622
|
// adoptSessionProvider awaits only getConfig() (already resolved here) and then
|
|
6623
6623
|
// runs every write - provider/method/config/marker/user - in one synchronous
|
|
@@ -6788,7 +6788,7 @@ function ensureSharedWalletLoginReady() {
|
|
|
6788
6788
|
if (!sharedWalletReady) {
|
|
6789
6789
|
sharedWalletReady = (async () => {
|
|
6790
6790
|
await getConfig();
|
|
6791
|
-
await import('./injected-wallet-provider-
|
|
6791
|
+
await import('./injected-wallet-provider-gmGZ254w.mjs');
|
|
6792
6792
|
})().catch((error) => {
|
|
6793
6793
|
sharedWalletReady = null;
|
|
6794
6794
|
throw error;
|
|
@@ -6893,7 +6893,7 @@ async function loginWithWallet(options) {
|
|
|
6893
6893
|
await ensureSharedWalletLoginReady();
|
|
6894
6894
|
else
|
|
6895
6895
|
await ensureWalletLoginReady();
|
|
6896
|
-
const { InjectedWalletProvider } = await import('./injected-wallet-provider-
|
|
6896
|
+
const { InjectedWalletProvider } = await import('./injected-wallet-provider-gmGZ254w.mjs');
|
|
6897
6897
|
// Keep the RAW wallet provider: the offchain wrapper forwards only a fixed
|
|
6898
6898
|
// set of methods, so cleanup below must speak to the provider that actually
|
|
6899
6899
|
// holds the config rather than to whatever is wrapping it.
|
|
@@ -8431,6 +8431,18 @@ function walletGlyph() {
|
|
|
8431
8431
|
svg.append(rect, dot);
|
|
8432
8432
|
return svg;
|
|
8433
8433
|
}
|
|
8434
|
+
/** Whether the card shows "Powered by Bounded": the caller decides, else it is off on OpenApps pages. */
|
|
8435
|
+
function showsAttribution(opts) {
|
|
8436
|
+
if (typeof opts.attribution === "boolean")
|
|
8437
|
+
return opts.attribution;
|
|
8438
|
+
try {
|
|
8439
|
+
const host = location.hostname.toLowerCase();
|
|
8440
|
+
return !(host === "openapps.xyz" || host.endsWith(".openapps.xyz"));
|
|
8441
|
+
}
|
|
8442
|
+
catch (_a) {
|
|
8443
|
+
return true;
|
|
8444
|
+
}
|
|
8445
|
+
}
|
|
8434
8446
|
function isInjectedProvider(v) {
|
|
8435
8447
|
return supportsWalletSignIn(v);
|
|
8436
8448
|
}
|
|
@@ -9070,13 +9082,15 @@ async function prepareAndOpen(opts, pending) {
|
|
|
9070
9082
|
: "Add a method, or make sure wallet login is enabled and the mobile adapter is installed."));
|
|
9071
9083
|
}
|
|
9072
9084
|
card.appendChild(status);
|
|
9073
|
-
|
|
9074
|
-
|
|
9075
|
-
|
|
9076
|
-
|
|
9077
|
-
|
|
9078
|
-
|
|
9079
|
-
|
|
9085
|
+
if (showsAttribution(opts)) {
|
|
9086
|
+
const foot = el("div", "foot");
|
|
9087
|
+
const poweredBy = el("a", undefined, "Powered by Bounded");
|
|
9088
|
+
poweredBy.href = "https://bounded.sh";
|
|
9089
|
+
poweredBy.target = "_blank";
|
|
9090
|
+
poweredBy.rel = "noopener";
|
|
9091
|
+
foot.appendChild(poweredBy);
|
|
9092
|
+
card.appendChild(foot);
|
|
9093
|
+
}
|
|
9080
9094
|
return card;
|
|
9081
9095
|
};
|
|
9082
9096
|
// Solana Mobile leaves the page to sign in: the nonce fetch that precedes
|
|
@@ -9229,13 +9243,15 @@ async function prepareAndOpen(opts, pending) {
|
|
|
9229
9243
|
frame.style.cssText = "width:100%;height:210px;border:0;background:transparent;color-scheme:dark";
|
|
9230
9244
|
card.appendChild(frame);
|
|
9231
9245
|
card.appendChild(status);
|
|
9232
|
-
|
|
9233
|
-
|
|
9234
|
-
|
|
9235
|
-
|
|
9236
|
-
|
|
9237
|
-
|
|
9238
|
-
|
|
9246
|
+
if (showsAttribution(opts)) {
|
|
9247
|
+
const foot = el("div", "foot");
|
|
9248
|
+
const poweredBy = el("a", undefined, "Powered by Bounded");
|
|
9249
|
+
poweredBy.href = "https://bounded.sh";
|
|
9250
|
+
poweredBy.target = "_blank";
|
|
9251
|
+
poweredBy.rel = "noopener";
|
|
9252
|
+
foot.appendChild(poweredBy);
|
|
9253
|
+
card.appendChild(foot);
|
|
9254
|
+
}
|
|
9239
9255
|
// Running the frame MINTS a session, so it takes the lock like every other lane. Abandoning
|
|
9240
9256
|
// via Back settles it so the next lane the user picks is not refused by a claim nobody owns.
|
|
9241
9257
|
const attempt = beginAttempt();
|
|
@@ -10774,6 +10790,133 @@ async function onramp(options = {}) {
|
|
|
10774
10790
|
return Object.assign(Object.assign({}, base), { status: 'closed' });
|
|
10775
10791
|
}
|
|
10776
10792
|
|
|
10793
|
+
// Connections: the signed-in user proves they own an account on another service
|
|
10794
|
+
// (X today) and Bounded records it for THIS app at `__connections__/<userId>`.
|
|
10795
|
+
// Policy rules read it, e.g. `get(/__connections__/@user.id).xHandle`; only the
|
|
10796
|
+
// platform can write it, and only after the provider's own consent screen.
|
|
10797
|
+
//
|
|
10798
|
+
// await connect('x') // leaves the page for X's consent screen
|
|
10799
|
+
// const done = await completeConnection() // on the page X sent the user back to
|
|
10800
|
+
// const { x } = await getConnections() // { id, handle, imageUrl, linkedAt } | null
|
|
10801
|
+
// await disconnect('x')
|
|
10802
|
+
//
|
|
10803
|
+
// Only identity is kept: the provider token is discarded after one profile read.
|
|
10804
|
+
// The return page must be on an origin that serves this app (its bounded.page or
|
|
10805
|
+
// custom domain, or an origin the owner registered, such as localhost).
|
|
10806
|
+
/**
|
|
10807
|
+
* `code` is the platform's error code, e.g. `cancelled`, `x_link_expired`, `connection_return_origin_not_allowed`,
|
|
10808
|
+
* or `x_account_linked_elsewhere` when the app's policy sets `auth.connections.x.unique` and another user
|
|
10809
|
+
* of the app already linked that X account.
|
|
10810
|
+
*/
|
|
10811
|
+
class ConnectionError extends Error {
|
|
10812
|
+
constructor(code) {
|
|
10813
|
+
super(`Connection failed: ${code}`);
|
|
10814
|
+
this.code = code;
|
|
10815
|
+
this.name = 'ConnectionError';
|
|
10816
|
+
}
|
|
10817
|
+
}
|
|
10818
|
+
const RETURN_PARAMS = ['x_link', 'x_link_error'];
|
|
10819
|
+
async function request(path, init) {
|
|
10820
|
+
var _a;
|
|
10821
|
+
const base = (_a = (await getConfig()).devApiUrl) === null || _a === void 0 ? void 0 : _a.replace(/\/$/, '');
|
|
10822
|
+
if (!base)
|
|
10823
|
+
throw new ConnectionError('connection_unavailable');
|
|
10824
|
+
const generation = await getSessionGeneration(false);
|
|
10825
|
+
let token = await getFreshAuthToken(false);
|
|
10826
|
+
if (!token)
|
|
10827
|
+
throw new ConnectionError('connection_sign_in_required');
|
|
10828
|
+
const send = (bearer) => fetch(`${base}${path}`, Object.assign({ method: init.method, headers: Object.assign({ Authorization: `Bearer ${bearer}` }, (init.body === undefined ? {} : { 'Content-Type': 'application/json' })) }, (init.body === undefined ? {} : { body: JSON.stringify(init.body) })));
|
|
10829
|
+
let response = await send(token);
|
|
10830
|
+
if (response.status === 401) {
|
|
10831
|
+
// Retry once with a refreshed token, never under a different login.
|
|
10832
|
+
token = await getFreshAuthToken(false, { force: true });
|
|
10833
|
+
if (!token || await getSessionGeneration(false) !== generation)
|
|
10834
|
+
throw new ConnectionError('connection_sign_in_required');
|
|
10835
|
+
response = await send(token);
|
|
10836
|
+
}
|
|
10837
|
+
const data = await response.json().catch(() => null);
|
|
10838
|
+
if (!response.ok || (data === null || data === void 0 ? void 0 : data.ok) !== true) {
|
|
10839
|
+
throw new ConnectionError(typeof (data === null || data === void 0 ? void 0 : data.error) === 'string' ? data.error : 'connection_unavailable');
|
|
10840
|
+
}
|
|
10841
|
+
return data;
|
|
10842
|
+
}
|
|
10843
|
+
function parseConnection(raw) {
|
|
10844
|
+
if (!raw || typeof raw !== 'object')
|
|
10845
|
+
return null;
|
|
10846
|
+
const value = raw;
|
|
10847
|
+
if (typeof value.id !== 'string' || typeof value.handle !== 'string' || !Number.isSafeInteger(value.linkedAt))
|
|
10848
|
+
return null;
|
|
10849
|
+
return {
|
|
10850
|
+
id: value.id,
|
|
10851
|
+
handle: value.handle,
|
|
10852
|
+
imageUrl: typeof value.imageUrl === 'string' ? value.imageUrl : null,
|
|
10853
|
+
linkedAt: value.linkedAt,
|
|
10854
|
+
};
|
|
10855
|
+
}
|
|
10856
|
+
function assertProvider(provider) {
|
|
10857
|
+
if (provider !== 'x')
|
|
10858
|
+
throw new ConnectionError('connection_provider_unsupported');
|
|
10859
|
+
}
|
|
10860
|
+
/** The signed-in user's linked accounts for this app. */
|
|
10861
|
+
async function getConnections() {
|
|
10862
|
+
var _a;
|
|
10863
|
+
const data = await request('/connections', { method: 'GET' });
|
|
10864
|
+
const connections = ((_a = data.connections) !== null && _a !== void 0 ? _a : {});
|
|
10865
|
+
return { x: parseConnection(connections.x) };
|
|
10866
|
+
}
|
|
10867
|
+
/**
|
|
10868
|
+
* Send the user to the provider's consent screen. They come back to `returnUrl`
|
|
10869
|
+
* (default: this page), where `completeConnection()` finishes the link.
|
|
10870
|
+
*/
|
|
10871
|
+
async function connect(provider, options = {}) {
|
|
10872
|
+
var _a;
|
|
10873
|
+
assertProvider(provider);
|
|
10874
|
+
if (typeof window === 'undefined')
|
|
10875
|
+
throw new ConnectionError('connection_requires_browser');
|
|
10876
|
+
const returnUrl = new URL((_a = options.returnUrl) !== null && _a !== void 0 ? _a : window.location.href, window.location.href);
|
|
10877
|
+
for (const key of RETURN_PARAMS)
|
|
10878
|
+
returnUrl.searchParams.delete(key);
|
|
10879
|
+
const data = await request(`/connections/${provider}/start`, { method: 'POST', body: { returnUrl: returnUrl.href } });
|
|
10880
|
+
const target = typeof data.authorizationUrl === 'string' ? new URL(data.authorizationUrl) : null;
|
|
10881
|
+
if (!target || target.origin !== 'https://x.com')
|
|
10882
|
+
throw new ConnectionError('connection_unavailable');
|
|
10883
|
+
window.location.assign(target.href);
|
|
10884
|
+
}
|
|
10885
|
+
/**
|
|
10886
|
+
* Finish a link on the page the provider returned to. Returns null when this page is
|
|
10887
|
+
* not a connection return; throws ConnectionError when the user cancelled or it failed.
|
|
10888
|
+
* Call it once the user is signed in. The return parameters leave the address bar on
|
|
10889
|
+
* success or cancellation; after another failure they stay, so calling again retries.
|
|
10890
|
+
*/
|
|
10891
|
+
async function completeConnection() {
|
|
10892
|
+
if (typeof window === 'undefined')
|
|
10893
|
+
return null;
|
|
10894
|
+
const url = new URL(window.location.href);
|
|
10895
|
+
const token = url.searchParams.get('x_link');
|
|
10896
|
+
const error = url.searchParams.get('x_link_error');
|
|
10897
|
+
if (token === null && error === null)
|
|
10898
|
+
return null;
|
|
10899
|
+
const clear = () => {
|
|
10900
|
+
for (const key of RETURN_PARAMS)
|
|
10901
|
+
url.searchParams.delete(key);
|
|
10902
|
+
window.history.replaceState(window.history.state, '', url.href);
|
|
10903
|
+
};
|
|
10904
|
+
if (error !== null || !token) {
|
|
10905
|
+
clear();
|
|
10906
|
+
throw new ConnectionError(error || 'failed');
|
|
10907
|
+
}
|
|
10908
|
+
// Keep the return token in the address bar until the platform accepts it, so a
|
|
10909
|
+
// sign-in still loading or a transient failure can retry by calling this again.
|
|
10910
|
+
const data = await request('/connections/x/complete', { method: 'POST', body: { state: token } });
|
|
10911
|
+
clear();
|
|
10912
|
+
return { provider: 'x', connection: parseConnection(data.connection) };
|
|
10913
|
+
}
|
|
10914
|
+
/** Remove the user's linked account for this app. */
|
|
10915
|
+
async function disconnect(provider) {
|
|
10916
|
+
assertProvider(provider);
|
|
10917
|
+
await request(`/connections/${provider}`, { method: 'DELETE' });
|
|
10918
|
+
}
|
|
10919
|
+
|
|
10777
10920
|
// venue-escrow.ts - fund and dispute a venue escrow from inside an OpenApps app (VENUE-GRANT-DESIGN.md).
|
|
10778
10921
|
//
|
|
10779
10922
|
// An OpenApps app's escrow lives in its venue (`agentescrows/<rootAppId>/e/<escrowId>`), and this
|
|
@@ -12128,5 +12271,5 @@ function init(config = {}) {
|
|
|
12128
12271
|
return init$1(resolved);
|
|
12129
12272
|
}
|
|
12130
12273
|
|
|
12131
|
-
export { onramp as $, logout as A, getAuthProvider as B, signInAnonymously as C, loginWithPrivy as D, loginWithWallet as E, ensureWalletLoginReady as F, ensureSharedWalletLoginReady as G, preloadWalletLogin as H, loginWithRedirect as I, completeLoginFromRedirect as J, getLoginReturnError as K, loginWithPopup as L, openBoundedWidget as M, ensureSignedIn as N, useAuth as O, useQuery as P, useBuildRun as Q, apps as R, SELECTED_WALLET_UNAVAILABLE_ERR as S, signSolanaMessageViaTurnkey as T, getOrCreateTurnkeyWallet as U, openTurnkeyKeyExport as V, WalletConfigError as W, getTurnkeyWalletSessionState as X, getTurnkeyWalletRecoveryUrl as Y, startTurnkeyEmailLogin as Z, getIdToken as _, signMessageWithTurnkey as a, onrampQuote as a0, onrampStatus as a1,
|
|
12132
|
-
//# sourceMappingURL=index-
|
|
12274
|
+
export { onramp as $, logout as A, getAuthProvider as B, signInAnonymously as C, loginWithPrivy as D, loginWithWallet as E, ensureWalletLoginReady as F, ensureSharedWalletLoginReady as G, preloadWalletLogin as H, loginWithRedirect as I, completeLoginFromRedirect as J, getLoginReturnError as K, loginWithPopup as L, openBoundedWidget as M, ensureSignedIn as N, useAuth as O, useQuery as P, useBuildRun as Q, apps as R, SELECTED_WALLET_UNAVAILABLE_ERR as S, signSolanaMessageViaTurnkey as T, getOrCreateTurnkeyWallet as U, openTurnkeyKeyExport as V, WalletConfigError as W, getTurnkeyWalletSessionState as X, getTurnkeyWalletRecoveryUrl as Y, startTurnkeyEmailLogin as Z, getIdToken as _, signMessageWithTurnkey as a, onrampQuote as a0, onrampStatus as a1, connect as a2, completeConnection as a3, getConnections as a4, disconnect as a5, ConnectionError as a6, fundVenueEscrow as a7, disputeVenueEscrow as a8, getVenueEscrow as a9, VenueEscrowError as aa, setPlatform as ab, OffchainAuthProvider as ac, PrivyExpoProvider as ad, requestEip6963Providers as ae, connectBroadcast as af, connectServiceSession as ag, builds as ah, BuildsApiError as ai, mediaAgentTools as aj, NON_TERMINAL_STATES as ak, TERMINAL_STATES as al, RUN_STATES as am, PARK_REASONS as an, FAILURE_REASONS as ao, BUILD_REVIEW_CAPABILITY_SCHEMA as ap, BUILD_REVIEW_CAPABILITY_REFRESH_SCHEMA as aq, BUILD_DELEGATED_REVIEW_CAPABILITY_SCHEMA as ar, signTransactionWithTurnkey as b, signTransactionV1WithTurnkey as c, signAndSubmitTransactionWithTurnkey as d, bs58 as e, defaultInjectedProvider as f, getPlatform as g, hasTurnkeyWallet as h, firstStandardWalletProvider as i, setAuthLoading as j, supportsWalletSignIn as k, bufferExports as l, setStoredAuthMethod as m, normalizeSolanaRpcUrl as n, confirmAndCheckTransaction as o, defaultInjectedEvmProvider as p, init as q, resolveSolanaRpcUrl 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 };
|
|
12275
|
+
//# sourceMappingURL=index-q9BHoxbM.mjs.map
|