@bounded-sh/core 0.0.115 → 0.0.117-sync.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.
Files changed (29) hide show
  1. package/dist/client/operations.d.ts +6 -5
  2. package/dist/{index-5TMFraRK.js → index-BcJOeks0.js} +118 -43
  3. package/dist/index-BcJOeks0.js.map +1 -0
  4. package/dist/{index-BilGFb3V.mjs → index-l5JPD7_a.mjs} +116 -44
  5. package/dist/index-l5JPD7_a.mjs.map +1 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.js +4 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +1 -1
  10. package/dist/{realtime-store-BiChlioj.js → realtime-store-5vXHb5Br.js} +2 -2
  11. package/dist/{realtime-store-BiChlioj.js.map → realtime-store-5vXHb5Br.js.map} +1 -1
  12. package/dist/{realtime-store-Bc71mTWr.mjs → realtime-store-CofPUMMC.mjs} +2 -2
  13. package/dist/{realtime-store-Bc71mTWr.mjs.map → realtime-store-CofPUMMC.mjs.map} +1 -1
  14. package/dist/{solana-message-BVwD6WVm.js → solana-message-CaPunjVI.js} +2 -2
  15. package/dist/{solana-message-BVwD6WVm.js.map → solana-message-CaPunjVI.js.map} +1 -1
  16. package/dist/{solana-message-BNGEBst_.mjs → solana-message-DXWlEuK5.mjs} +2 -2
  17. package/dist/{solana-message-BNGEBst_.mjs.map → solana-message-DXWlEuK5.mjs.map} +1 -1
  18. package/dist/{solana-operations-B3u6Arbf.js → solana-operations-BPOTddBI.js} +3 -3
  19. package/dist/{solana-operations-B3u6Arbf.js.map → solana-operations-BPOTddBI.js.map} +1 -1
  20. package/dist/{solana-operations-BLbRO1rE.mjs → solana-operations-CuWKt_pG.mjs} +3 -3
  21. package/dist/{solana-operations-BLbRO1rE.mjs.map → solana-operations-CuWKt_pG.mjs.map} +1 -1
  22. package/dist/{solana-v1-operations-BxTmxUMN.js → solana-v1-operations-DTXPM_aZ.js} +3 -3
  23. package/dist/{solana-v1-operations-BxTmxUMN.js.map → solana-v1-operations-DTXPM_aZ.js.map} +1 -1
  24. package/dist/{solana-v1-operations-b1rmLBUP.mjs → solana-v1-operations-MbUM3wgC.mjs} +3 -3
  25. package/dist/{solana-v1-operations-b1rmLBUP.mjs.map → solana-v1-operations-MbUM3wgC.mjs.map} +1 -1
  26. package/dist/utils/session-signal.d.ts +7 -0
  27. package/package.json +2 -2
  28. package/dist/index-5TMFraRK.js.map +0 -1
  29. package/dist/index-BilGFb3V.mjs.map +0 -1
@@ -824,6 +824,63 @@ function notifySessionCleared() {
824
824
  }
825
825
  }
826
826
 
827
+ // Same-tab session change signal.
828
+ //
829
+ // A page can run more than one copy of the SDK: the app's own bundle and the hosted widget
830
+ // bounded-router injects (which bundles its own, pinned copy). They share one session record in
831
+ // localStorage, keyed by issuer and app id, but the browser fires `storage` events only in OTHER
832
+ // tabs, so a copy that signs in never tells the other copy in the same tab. Until a reload, the
833
+ // app stayed signed out after a widget sign-in and the widget stayed signed out after an app
834
+ // sign-in (observed on staging, 2026-10-07).
835
+ //
836
+ // This announces "the record changed" on a BroadcastChannel, which reaches every other channel
837
+ // on the origin, same tab included, and never the announcing instance itself. The message is a
838
+ // nudge, not an authority: it carries no token and no identity, and a listener only re-reads the
839
+ // record through its ordinary restore path. Nothing signs in or out because of the message alone.
840
+ const SESSION_SIGNAL_CHANNEL = "bounded.session";
841
+ let channel;
842
+ function openChannel() {
843
+ var _a;
844
+ if (channel !== undefined)
845
+ return channel;
846
+ try {
847
+ channel = typeof BroadcastChannel === "function" ? new BroadcastChannel(SESSION_SIGNAL_CHANNEL) : null;
848
+ // Node's BroadcastChannel holds the event loop open until closed; a Node consumer (tests,
849
+ // tarobase-server) must not hang on exit because of a nudge channel. Browsers have no unref.
850
+ (_a = channel === null || channel === void 0 ? void 0 : channel.unref) === null || _a === void 0 ? void 0 : _a.call(channel);
851
+ }
852
+ catch (_b) {
853
+ channel = null;
854
+ }
855
+ return channel;
856
+ }
857
+ /** Tell the other SDK copies on this origin that the session record under `key` changed. */
858
+ function announceSessionChange(key) {
859
+ const ch = openChannel();
860
+ if (!ch)
861
+ return;
862
+ try {
863
+ ch.postMessage({ type: "session-changed", key });
864
+ }
865
+ catch (_a) {
866
+ // A closed or unavailable channel loses the nudge; the record itself is unaffected.
867
+ }
868
+ }
869
+ /** Run `listener` when another SDK copy announces a session change. Returns the unsubscribe. */
870
+ function onSessionChange(listener) {
871
+ const ch = openChannel();
872
+ if (!ch)
873
+ return () => { };
874
+ const handler = (event) => {
875
+ const data = event.data;
876
+ if (!data || data.type !== "session-changed" || typeof data.key !== "string")
877
+ return;
878
+ listener(data.key);
879
+ };
880
+ ch.addEventListener("message", handler);
881
+ return () => ch.removeEventListener("message", handler);
882
+ }
883
+
827
884
  /**
828
885
  * The one protocol every session-storage mutation goes through.
829
886
  *
@@ -1020,6 +1077,7 @@ class WebSessionManager {
1020
1077
  }
1021
1078
  static writeRaw(sessionObj) {
1022
1079
  localStorage.setItem(this.BOUNDED_SESSION_STORAGE_KEY, JSON.stringify(sessionObj));
1080
+ announceSessionChange(this.BOUNDED_SESSION_STORAGE_KEY);
1023
1081
  }
1024
1082
  /**
1025
1083
  * Read the session, stamping a `sessionGeneration` if it predates them.
@@ -1116,6 +1174,7 @@ class WebSessionManager {
1116
1174
  idToken,
1117
1175
  refreshToken, appId: currentAppId, sessionGeneration: generation }, (sessionIssuer ? { issuer: sessionIssuer } : {}))));
1118
1176
  });
1177
+ announceSessionChange(storageKey);
1119
1178
  // Adoption can fail after persistence (for example, logout while the
1120
1179
  // provider is loading). Remove only this incomplete login, even if the
1121
1180
  // caller has since switched app configuration or another tab signed in.
@@ -1127,6 +1186,8 @@ class WebSessionManager {
1127
1186
  localStorage.removeItem(storageKey);
1128
1187
  return true;
1129
1188
  });
1189
+ if (removed)
1190
+ announceSessionChange(storageKey);
1130
1191
  if (removed)
1131
1192
  notifySessionCleared();
1132
1193
  };
@@ -1256,8 +1317,10 @@ class WebSessionManager {
1256
1317
  });
1257
1318
  // Only announce a clear that actually happened, so a no-op cannot sign out
1258
1319
  // a UI that was already signed out.
1259
- if (removed)
1320
+ if (removed) {
1260
1321
  notifySessionCleared();
1322
+ announceSessionChange(key);
1323
+ }
1261
1324
  }
1262
1325
  /**
1263
1326
  * Remove the session only if it is still the one identified by `generation`.
@@ -1282,8 +1345,10 @@ class WebSessionManager {
1282
1345
  localStorage.removeItem(this.BOUNDED_SESSION_STORAGE_KEY);
1283
1346
  return true;
1284
1347
  });
1285
- if (removed)
1348
+ if (removed) {
1286
1349
  notifySessionCleared();
1350
+ announceSessionChange(this.BOUNDED_SESSION_STORAGE_KEY);
1351
+ }
1287
1352
  }
1288
1353
  /* ------------------------------------------------------------------ */
1289
1354
  /* IS-AUTH */
@@ -4240,7 +4305,7 @@ class ServerSessionManager {
4240
4305
  const sessionConfig = (_a = this.sessionConfig) !== null && _a !== void 0 ? _a : undefined;
4241
4306
  /* fetch nonce from auth API (bound to the snapshotted app+issuer) */
4242
4307
  const nonce = await genAuthNonce(sessionConfig);
4243
- const { genSolanaMessage } = await import('./solana-message-BNGEBst_.mjs');
4308
+ const { genSolanaMessage } = await import('./solana-message-DXWlEuK5.mjs');
4244
4309
  const message = await genSolanaMessage(address, nonce, sessionConfig === null || sessionConfig === void 0 ? void 0 : sessionConfig.appId);
4245
4310
  /* sign the message */
4246
4311
  const sigBytes = nacl.sign.detached(new TextEncoder().encode(message), kp.secretKey);
@@ -4986,6 +5051,7 @@ class BoundedDeclineError extends Error {
4986
5051
 
4987
5052
  const apiClient = axios.create();
4988
5053
  const TRANSIENT_GET_STATUSES = new Set([500, 502, 503, 504]);
5054
+ const TRANSIENT_SYNC_STATUSES = new Set([502, 503, 504]);
4989
5055
  const RATE_LIMIT_RETRY_BASE_DELAY_MS = 100;
4990
5056
  /** The window event emitted when the API responds with HTTP 429. */
4991
5057
  const RATE_LIMIT_EVENT_NAME = 'bounded:ratelimit';
@@ -5034,7 +5100,7 @@ function getRateLimitAttempt(error) {
5034
5100
  axiosRetry(apiClient, {
5035
5101
  retries: 2,
5036
5102
  retryCondition: (error) => {
5037
- var _a, _b, _c, _d, _e, _f, _g, _h;
5103
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
5038
5104
  // A caller cancellation is final. In particular, never turn a route
5039
5105
  // unmount into a fresh GET after its AbortSignal has fired.
5040
5106
  const canceled = axios.isCancel(error)
@@ -5050,15 +5116,27 @@ axiosRetry(apiClient, {
5050
5116
  // safe for every method, including POST requests to the queries API.
5051
5117
  if (((_d = error.response) === null || _d === void 0 ? void 0 : _d.status) === 429)
5052
5118
  return true;
5053
- // Only retry idempotent GETs. Network failures and the small set of
5054
- // conventional transient gateway/runtime statuses get two bounded
5055
- // retries; auth, policy, invariant, and other terminal responses stay final.
5056
- // Writes are never retried because the server may already have applied
5057
- // them before the response was lost.
5058
- if (((_f = (_e = error.config) === null || _e === void 0 ? void 0 : _e.method) === null || _f === void 0 ? void 0 : _f.toLowerCase()) !== 'get')
5119
+ // Sync only indexes existing chain state, so repeating it cannot submit
5120
+ // a second transaction. Keep its retries in this same bounded transport
5121
+ // loop instead of multiplying them with another SDK retry loop.
5122
+ const method = (_f = (_e = error.config) === null || _e === void 0 ? void 0 : _e.method) === null || _f === void 0 ? void 0 : _f.toLowerCase();
5123
+ let isSync = false;
5124
+ if (method === 'put') {
5125
+ try {
5126
+ isSync = new URL(String((_g = error.config) === null || _g === void 0 ? void 0 : _g.url)).pathname === '/items/sync';
5127
+ }
5128
+ catch ( /* An unrecognized URL is never safe to retry. */_m) { /* An unrecognized URL is never safe to retry. */ }
5129
+ }
5130
+ if (isSync) {
5131
+ return axiosRetry.isNetworkError(error)
5132
+ || TRANSIENT_SYNC_STATUSES.has((_j = (_h = error.response) === null || _h === void 0 ? void 0 : _h.status) !== null && _j !== void 0 ? _j : 0);
5133
+ }
5134
+ // Ordinary writes are never retried: a lost response may follow commit.
5135
+ // GET network and selected gateway/runtime failures are safe to repeat.
5136
+ if (method !== 'get')
5059
5137
  return false;
5060
5138
  return axiosRetry.isNetworkError(error)
5061
- || TRANSIENT_GET_STATUSES.has((_h = (_g = error.response) === null || _g === void 0 ? void 0 : _g.status) !== null && _h !== void 0 ? _h : 0);
5139
+ || TRANSIENT_GET_STATUSES.has((_l = (_k = error.response) === null || _k === void 0 ? void 0 : _k.status) !== null && _l !== void 0 ? _l : 0);
5062
5140
  },
5063
5141
  retryDelay: (retryCount, error) => {
5064
5142
  var _a;
@@ -7599,7 +7677,7 @@ async function doReconnectWithNewAuth() {
7599
7677
  console.warn('[WS v2] Failed to clear HTTP read cache on auth change:', error);
7600
7678
  }
7601
7679
  try {
7602
- const { reconnectRealtimeStoreWithNewAuth } = await import('./realtime-store-Bc71mTWr.mjs');
7680
+ const { reconnectRealtimeStoreWithNewAuth } = await import('./realtime-store-CofPUMMC.mjs');
7603
7681
  await reconnectRealtimeStoreWithNewAuth();
7604
7682
  }
7605
7683
  catch (error) {
@@ -8785,12 +8863,6 @@ async function runExpressionMany(many) {
8785
8863
  }
8786
8864
  }
8787
8865
  /* ===================== WRITE RECEIPT HELPERS (W4) ======================== */
8788
- /**
8789
- * Settle delay before the best-effort mirror read on an on-chain write. It is
8790
- * an optimization, not a correctness guarantee: the receipt is captured first
8791
- * and returned regardless of what the mirror read reports.
8792
- */
8793
- const MIRROR_SYNC_SETTLE_MS = 1500;
8794
8866
  const SOLANA_CHAIN_TAGS = new Set(['solana_devnet', 'solana_mainnet']);
8795
8867
  /**
8796
8868
  * Read the execution-lane tag the WORKER reported. The SDK never infers it: a
@@ -8865,16 +8937,14 @@ function validatePathKeyedDocuments(paths, source) {
8865
8937
  return { observed: true, documents };
8866
8938
  }
8867
8939
  /**
8868
- * Best-effort mirror read. A confirmed transaction must NEVER be lost to a
8940
+ * Best-effort chain synchronization. A confirmed transaction must NEVER be lost to a
8869
8941
  * synchronization failure, so this reports its outcome in `mirrorSync` and
8870
- * never rejects. It reads the CONCRETE destination paths, so a collection
8871
- * insert with a generated id syncs the path that actually exists.
8942
+ * never rejects. The signature lets the server index the exact transaction,
8943
+ * including hook-mutated documents beyond the requested destination paths.
8872
8944
  */
8873
- async function attemptMirrorSync(paths, options, settleMs = MIRROR_SYNC_SETTLE_MS) {
8945
+ async function attemptMirrorSync(paths, options, transactionSignature) {
8874
8946
  try {
8875
- if (settleMs > 0)
8876
- await new Promise(resolve => setTimeout(resolve, settleMs));
8877
- const synced = await syncItems(paths, options);
8947
+ const synced = await syncItems(paths, options, transactionSignature);
8878
8948
  // The sync endpoint answers `{ data: <path-keyed map>, status }`; a document
8879
8949
  // path always contains a `/`, so a top-level `data` key is never one.
8880
8950
  const map = (synced && typeof synced === 'object' && !Array.isArray(synced) && 'data' in synced)
@@ -9099,7 +9169,7 @@ async function setMany(many, options) {
9099
9169
  if (typeof curTx.serializedTransaction !== 'string' || typeof curTx.poofnetIntentId !== 'string') {
9100
9170
  throw new Error('Unsupported 202 transaction shape: a poofnet write needs serializedTransaction and poofnetIntentId');
9101
9171
  }
9102
- const { signPoofnetTransaction, buildExpectedWriteIntent } = await import('./solana-operations-BLbRO1rE.mjs');
9172
+ const { signPoofnetTransaction, buildExpectedWriteIntent } = await import('./solana-operations-CuWKt_pG.mjs');
9103
9173
  const signedTransaction = await signPoofnetTransaction(curTx.serializedTransaction, authProvider, options, buildExpectedWriteIntent(documents));
9104
9174
  // Signing-only, exactly as on a real chain: signed and NOT committed.
9105
9175
  if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {
@@ -9137,7 +9207,7 @@ async function setMany(many, options) {
9137
9207
  'Nothing was signed or submitted.');
9138
9208
  }
9139
9209
  const solanaChain = workerChain;
9140
- const { handlePreBuiltTransaction, buildExpectedWriteIntent } = await import('./solana-operations-BLbRO1rE.mjs');
9210
+ const { handlePreBuiltTransaction, buildExpectedWriteIntent } = await import('./solana-operations-CuWKt_pG.mjs');
9141
9211
  // OA-0001: derive the expected intent from OUR OWN request (the one
9142
9212
  // ground truth a tampered builder response cannot change) so the
9143
9213
  // validator can reject any transaction whose operation semantics
@@ -9178,7 +9248,7 @@ async function setMany(many, options) {
9178
9248
  // best-effort enrichment reported in `mirrorSync`, never a rejection.
9179
9249
  const mirrorSync = grantLane
9180
9250
  ? { observed: false, reason: 'not attempted: a venue grant authorizes only the write' }
9181
- : await attemptMirrorSync(requestedPaths, options);
9251
+ : await attemptMirrorSync(requestedPaths, Object.assign(Object.assign({}, options), { _overrides: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options._overrides), { _config: config }) }), solanaOutcome.transactionSignature);
9182
9252
  return {
9183
9253
  status: 'confirmed', appId, requestedDocuments, chain: solanaChain,
9184
9254
  transactionId: solanaOutcome.transactionSignature,
@@ -9450,14 +9520,18 @@ async function signAndSubmitTransaction(transaction, feePayer) {
9450
9520
  }
9451
9521
  return config.authProvider.signAndSubmitTransaction(transaction, feePayer);
9452
9522
  }
9453
- async function syncItems(paths, options) {
9454
- try {
9455
- const response = await makeApiRequest('PUT', 'items/sync', { paths }, options === null || options === void 0 ? void 0 : options._overrides);
9456
- return response.data;
9457
- }
9458
- catch (error) {
9459
- throw error;
9523
+ /** Refresh concrete paths, or index a confirmed transaction and read its requested paths. */
9524
+ async function syncItems(paths, options, transactionSignature) {
9525
+ var _a, _b;
9526
+ const response = await makeApiRequest('PUT', 'items/sync', Object.assign({ paths }, (transactionSignature !== undefined ? { transactionSignature } : {})), options === null || options === void 0 ? void 0 : options._overrides);
9527
+ if (transactionSignature !== undefined && (response.status !== 200
9528
+ || ((_a = response.data) === null || _a === void 0 ? void 0 : _a.synchronized) !== true
9529
+ || ((_b = response.data) === null || _b === void 0 ? void 0 : _b.transactionSignature) !== transactionSignature)) {
9530
+ // An older server's local-read stub can return 200 with stale documents.
9531
+ // Only the matching server acknowledgment proves this transaction was indexed.
9532
+ throw new Error('the synchronization response did not acknowledge the confirmed transaction');
9460
9533
  }
9534
+ return response.data;
9461
9535
  }
9462
9536
 
9463
9537
  var operations = /*#__PURE__*/Object.freeze({
@@ -9490,8 +9564,6 @@ var operations = /*#__PURE__*/Object.freeze({
9490
9564
  const DEFAULT_TIMEOUT_MS = 60000;
9491
9565
  const DEFAULT_MAX_ATTEMPTS$1 = 20;
9492
9566
  const DEFAULT_POLL_INTERVAL_MS = 3000;
9493
- /** Mirror read after a late confirmation. No settle delay: the tx already landed. */
9494
- const RECONCILE_MIRROR_SETTLE_MS = 0;
9495
9567
  function errorText(error) {
9496
9568
  const message = error === null || error === void 0 ? void 0 : error.message;
9497
9569
  return typeof message === 'string' && message.length > 0 ? message : String(error);
@@ -9540,12 +9612,12 @@ function assertReceiptMatchesContext(receipt, config) {
9540
9612
  function stillSubmitted(receipt, reason) {
9541
9613
  return Object.assign(Object.assign({}, receipt), { confirmation: Object.assign(Object.assign({}, receipt.confirmation), { reason }) });
9542
9614
  }
9543
- async function mirrorFor(receipt, options) {
9615
+ async function mirrorFor(receipt, config, options) {
9544
9616
  const paths = receipt.requestedDocuments.map(entry => entry.path);
9545
9617
  if (paths.length === 0)
9546
9618
  return { observed: false, reason: 'the receipt carried no requested paths' };
9547
- const setOptions = (options === null || options === void 0 ? void 0 : options._overrides) ? { _overrides: options._overrides } : undefined;
9548
- return attemptMirrorSync(paths, setOptions, RECONCILE_MIRROR_SETTLE_MS);
9619
+ const setOptions = { _overrides: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options._overrides), { _config: config }) };
9620
+ return attemptMirrorSync(paths, setOptions, receipt.transactionId);
9549
9621
  }
9550
9622
  async function resolveSolanaRpc(config, options) {
9551
9623
  var _a, _b;
@@ -9627,7 +9699,7 @@ async function reconcileSolana(receipt, config, options) {
9627
9699
  signedTransaction: receipt.signedTransaction,
9628
9700
  fence: receipt.fence,
9629
9701
  confirmationContextSlot: typeof statusValue.slot === 'number' ? statusValue.slot : (contextSlot !== null && contextSlot !== void 0 ? contextSlot : 0),
9630
- mirrorSync: await mirrorFor(receipt, options),
9702
+ mirrorSync: await mirrorFor(receipt, config, options),
9631
9703
  };
9632
9704
  return confirmed;
9633
9705
  }
@@ -10981,7 +11053,7 @@ function toMillis(seconds) {
10981
11053
 
10982
11054
  /** SIWS message creation is async already, so its onchain module can be lazy. */
10983
11055
  async function genSolanaMessage(address, nonce) {
10984
- const implementation = await import('./solana-message-BNGEBst_.mjs');
11056
+ const implementation = await import('./solana-message-DXWlEuK5.mjs');
10985
11057
  return implementation.genSolanaMessage(address, nonce);
10986
11058
  }
10987
11059
 
@@ -11530,5 +11602,5 @@ function defineLiveModule(mod) {
11530
11602
  return mod;
11531
11603
  }
11532
11604
 
11533
- export { RATE_LIMIT_EVENT_NAME as $, isWriteNotApplied as A, writeNotAppliedPhase as B, subscribe as C, closeAllSubscriptions as D, clearCache as E, getCachedData as F, reconnectWithNewAuth as G, createClient as H, InsufficientBalanceError as I, exchangeAppToken as J, clearAppTokenCache as K, createAppTokenAuthHeaders as L, AppTokenExchangeError as M, setWithVenueGrant as N, resolveVenueRpcUrl as O, subscribeQuery as P, closeAllQuerySubscriptions as Q, canonicalizeArgs as R, ScopedClientReadOnlyError as S, canonicalizeResult as T, DEFAULT_QUERY_POLL_INTERVAL_MS as U, MIN_QUERY_POLL_INTERVAL_MS as V, BoundedDeclineError as W, deriveDecline as X, dispatchDeclineEvent as Y, DECLINE_EVENT_NAME as Z, dispatchRateLimitEvent as _, getWebhookKeysUrl as a, hasActiveConnection as a0, increment as a1, serverTimestamp as a2, now as a3, toSeconds as a4, toMillis as a5, getIdToken as a6, deriveUserIdentityFromIdToken as a7, getSessionGeneration as a8, WebSessionManager as a9, invoke as aA, FunctionInvokeError as aB, live as aC, intent as aD, status as aE, subscribeView as aF, LiveIntentError as aG, withEffects as aH, isEffectResult as aI, defineLiveModule as aJ, EFFECT_INTENT_ADDRESS as aK, ReactNativeSessionManager as aa, getActiveSessionManager as ab, onSessionCleared as ac, SessionEnvironmentError as ad, UNSUPPORTED_ENVIRONMENT_CODE as ae, AUTH_CHANGED_CODE as af, AUTH_EXPIRED_CODE as ag, isAuthExpiredError as ah, getFreshAuthToken as ai, ServerSessionManager as aj, createSessionWithSignature as ak, refreshSession as al, revokeSession as am, signSessionCreateMessage as an, genAuthNonce as ao, genSolanaMessage as ap, createSolanaSignInRequest as aq, createSolanaSignInMessageText as ar, genSolanaSignInRequest as as, genSolanaSignInMessage as at, browserSignInDomain as au, SOLANA_SIGN_IN_STATEMENT as av, genSiweMessage as aw, normalizeEvmAddress as ax, toLowerEvmAddress as ay, functions as az, bufferExports as b, getConfiguredAppId as c, get as d, getMany as e, docId as f, getConfig as g, setMany as h, init as i, setFile as j, getFiles as k, search as l, markWriteNotApplied as m, runQueryMany as n, runExpression as o, runExpressionMany as p, queryAggregate as q, runQuery as r, set as s, signMessage as t, signTransaction as u, signAndSubmitTransaction as v, count as w, aggregate as x, reconcileSetResult as y, waitForSetResult as z };
11534
- //# sourceMappingURL=index-BilGFb3V.mjs.map
11605
+ export { RATE_LIMIT_EVENT_NAME as $, isWriteNotApplied as A, writeNotAppliedPhase as B, subscribe as C, closeAllSubscriptions as D, clearCache as E, getCachedData as F, reconnectWithNewAuth as G, createClient as H, InsufficientBalanceError as I, exchangeAppToken as J, clearAppTokenCache as K, createAppTokenAuthHeaders as L, AppTokenExchangeError as M, setWithVenueGrant as N, resolveVenueRpcUrl as O, subscribeQuery as P, closeAllQuerySubscriptions as Q, canonicalizeArgs as R, ScopedClientReadOnlyError as S, canonicalizeResult as T, DEFAULT_QUERY_POLL_INTERVAL_MS as U, MIN_QUERY_POLL_INTERVAL_MS as V, BoundedDeclineError as W, deriveDecline as X, dispatchDeclineEvent as Y, DECLINE_EVENT_NAME as Z, dispatchRateLimitEvent as _, getWebhookKeysUrl as a, hasActiveConnection as a0, increment as a1, serverTimestamp as a2, now as a3, toSeconds as a4, toMillis as a5, getIdToken as a6, deriveUserIdentityFromIdToken as a7, getSessionGeneration as a8, WebSessionManager as a9, normalizeEvmAddress as aA, toLowerEvmAddress as aB, functions as aC, invoke as aD, FunctionInvokeError as aE, live as aF, intent as aG, status as aH, subscribeView as aI, LiveIntentError as aJ, withEffects as aK, isEffectResult as aL, defineLiveModule as aM, EFFECT_INTENT_ADDRESS as aN, ReactNativeSessionManager as aa, getActiveSessionManager as ab, onSessionCleared as ac, announceSessionChange as ad, onSessionChange as ae, SESSION_SIGNAL_CHANNEL as af, SessionEnvironmentError as ag, UNSUPPORTED_ENVIRONMENT_CODE as ah, AUTH_CHANGED_CODE as ai, AUTH_EXPIRED_CODE as aj, isAuthExpiredError as ak, getFreshAuthToken as al, ServerSessionManager as am, createSessionWithSignature as an, refreshSession as ao, revokeSession as ap, signSessionCreateMessage as aq, genAuthNonce as ar, genSolanaMessage as as, createSolanaSignInRequest as at, createSolanaSignInMessageText as au, genSolanaSignInRequest as av, genSolanaSignInMessage as aw, browserSignInDomain as ax, SOLANA_SIGN_IN_STATEMENT as ay, genSiweMessage as az, bufferExports as b, getConfiguredAppId as c, get as d, getMany as e, docId as f, getConfig as g, setMany as h, init as i, setFile as j, getFiles as k, search as l, markWriteNotApplied as m, runQueryMany as n, runExpression as o, runExpressionMany as p, queryAggregate as q, runQuery as r, set as s, signMessage as t, signTransaction as u, signAndSubmitTransaction as v, count as w, aggregate as x, reconcileSetResult as y, waitForSetResult as z };
11606
+ //# sourceMappingURL=index-l5JPD7_a.mjs.map