@bounded-sh/core 0.0.112-ux-audit.1 → 0.0.112

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/dist/{index-CVWqE5hO.mjs → index-CkgEqMkJ.mjs} +113 -60
  2. package/dist/index-CkgEqMkJ.mjs.map +1 -0
  3. package/dist/{index-DOKk4VdC.js → index-WIHuQp4L.js} +113 -60
  4. package/dist/index-WIHuQp4L.js.map +1 -0
  5. package/dist/index.js +1 -1
  6. package/dist/index.mjs +1 -1
  7. package/dist/{realtime-store-CIrvP17-.js → realtime-store-7itLaAao.js} +2 -2
  8. package/dist/{realtime-store-CIrvP17-.js.map → realtime-store-7itLaAao.js.map} +1 -1
  9. package/dist/{realtime-store-Cno1p315.mjs → realtime-store-BIB8v265.mjs} +2 -2
  10. package/dist/{realtime-store-Cno1p315.mjs.map → realtime-store-BIB8v265.mjs.map} +1 -1
  11. package/dist/{solana-message-BTs3b7JU.mjs → solana-message-BBMxFFjM.mjs} +2 -2
  12. package/dist/{solana-message-BTs3b7JU.mjs.map → solana-message-BBMxFFjM.mjs.map} +1 -1
  13. package/dist/{solana-message-BMaEWGOW.js → solana-message-Ce6_jR6H.js} +2 -2
  14. package/dist/{solana-message-BMaEWGOW.js.map → solana-message-Ce6_jR6H.js.map} +1 -1
  15. package/dist/{solana-operations-BcFqY34S.js → solana-operations-CNeO_lJ2.js} +3 -3
  16. package/dist/{solana-operations-BcFqY34S.js.map → solana-operations-CNeO_lJ2.js.map} +1 -1
  17. package/dist/{solana-operations-CU-8CFHk.mjs → solana-operations-Cshh2EfH.mjs} +3 -3
  18. package/dist/{solana-operations-CU-8CFHk.mjs.map → solana-operations-Cshh2EfH.mjs.map} +1 -1
  19. package/dist/{solana-v1-operations-BNLWUYEm.mjs → solana-v1-operations-B8vV5teG.mjs} +3 -3
  20. package/dist/{solana-v1-operations-BNLWUYEm.mjs.map → solana-v1-operations-B8vV5teG.mjs.map} +1 -1
  21. package/dist/{solana-v1-operations-RNpyoM03.js → solana-v1-operations-c0p0YESV.js} +3 -3
  22. package/dist/{solana-v1-operations-RNpyoM03.js.map → solana-v1-operations-c0p0YESV.js.map} +1 -1
  23. package/dist/utils/auth-token-freshness.d.ts +7 -1
  24. package/package.json +1 -1
  25. package/dist/index-CVWqE5hO.mjs.map +0 -1
  26. package/dist/index-DOKk4VdC.js.map +0 -1
@@ -4188,7 +4188,7 @@ class ServerSessionManager {
4188
4188
  const sessionConfig = (_a = this.sessionConfig) !== null && _a !== void 0 ? _a : undefined;
4189
4189
  /* fetch nonce from auth API (bound to the snapshotted app+issuer) */
4190
4190
  const nonce = await genAuthNonce(sessionConfig);
4191
- const { genSolanaMessage } = await import('./solana-message-BTs3b7JU.mjs');
4191
+ const { genSolanaMessage } = await import('./solana-message-BBMxFFjM.mjs');
4192
4192
  const message = await genSolanaMessage(address, nonce, sessionConfig === null || sessionConfig === void 0 ? void 0 : sessionConfig.appId);
4193
4193
  /* sign the message */
4194
4194
  const sigBytes = nacl.sign.detached(new TextEncoder().encode(message), kp.secretKey);
@@ -4518,7 +4518,7 @@ function normalizeAuthExpiredError(error, fallbackMessage) {
4518
4518
  }
4519
4519
  /** Refresh this many ms before `exp`, so a token cannot die mid-flight. */
4520
4520
  const TOKEN_EXPIRY_SKEW_MS = 60000;
4521
- function classifyToken(token, nowMs = Date.now()) {
4521
+ function classifyToken(token, nowMs = Date.now(), skewMs = TOKEN_EXPIRY_SKEW_MS) {
4522
4522
  let exp;
4523
4523
  try {
4524
4524
  const payload = JSON.parse(decodeBase64Url(token.split('.')[1]));
@@ -4533,7 +4533,7 @@ function classifyToken(token, nowMs = Date.now()) {
4533
4533
  const expiresAtMs = exp * 1000;
4534
4534
  if (nowMs >= expiresAtMs)
4535
4535
  return 'expired';
4536
- if (nowMs >= expiresAtMs - TOKEN_EXPIRY_SKEW_MS)
4536
+ if (nowMs >= expiresAtMs - skewMs)
4537
4537
  return 'expiring-soon';
4538
4538
  return 'fresh';
4539
4539
  }
@@ -4604,12 +4604,13 @@ async function commit(isServer, expected, refreshed) {
4604
4604
  * used; the caller must surface it rather than downgrade to anonymous.
4605
4605
  */
4606
4606
  async function getFreshAuthToken(isServer = false, options = {}) {
4607
+ var _a;
4607
4608
  const { idToken, refreshToken, issuer, generation } = await readSessionParts(isServer);
4608
4609
  // No session at all: anonymous is legitimate.
4609
4610
  if (!idToken)
4610
4611
  return null;
4611
4612
  const force = options.force === true;
4612
- const freshness = classifyToken(idToken);
4613
+ const freshness = classifyToken(idToken, Date.now(), Math.max(TOKEN_EXPIRY_SKEW_MS, (_a = options.refreshWithinMs) !== null && _a !== void 0 ? _a : 0));
4613
4614
  if (!force && freshness === 'fresh')
4614
4615
  return idToken;
4615
4616
  // Still valid for a little longer, so a failed refresh can fall back to it —
@@ -5332,8 +5333,11 @@ const connectionAcquisitions = new Map();
5332
5333
  // cache entry so collision isolation does not evict another principal's cache.
5333
5334
  const responseCache = new Map();
5334
5335
  const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
5335
- const TOKEN_REFRESH_BUFFER = 10 * 60 * 1000; // Refresh token 10 minutes before expiry
5336
5336
  const TOKEN_CHECK_INTERVAL = 5 * 60 * 1000; // Check token freshness every 5 minutes
5337
+ // The worker closes a socket once the token it authenticated with expires. A socket
5338
+ // opens with, and each check refreshes, any token that would expire before the next
5339
+ // check plus two minutes for a timer a background tab delays.
5340
+ const TOKEN_REFRESH_WITHIN_MS = TOKEN_CHECK_INTERVAL + 2 * 60 * 1000;
5337
5341
  function getResponseCacheEntry(cacheKey, identityToken) {
5338
5342
  var _a;
5339
5343
  return (_a = responseCache.get(cacheKey)) === null || _a === void 0 ? void 0 : _a.find(entry => entry.identityToken === identityToken);
@@ -5621,21 +5625,13 @@ let connectionEpoch = 0;
5621
5625
  // WebSocket paths cannot drift apart. `classifyToken` replaces the old boolean,
5622
5626
  // which collapsed "expiring soon" and "already expired" into one answer and read a
5623
5627
  // token with no numeric `exp` as fresh.
5624
- function getTokenExpirationTime(token) {
5625
- try {
5626
- const payload = JSON.parse(decodeBase64Url(token.split('.')[1]));
5627
- return payload.exp ? payload.exp * 1000 : null;
5628
- }
5629
- catch (_a) {
5630
- return null;
5631
- }
5632
- }
5633
5628
  function failConnectionAuth(connection, error) {
5634
5629
  connection.authFailure = error;
5635
5630
  connection.pendingAuthToken = null;
5636
5631
  connection.pendingAuthSnapshot = null;
5637
5632
  connection.authTokenValue = null;
5638
5633
  connection.authPrincipal = null;
5634
+ connection.reauthSnapshot = null;
5639
5635
  connection.isConnecting = false;
5640
5636
  connection.isConnected = false;
5641
5637
  connection.isAuthenticating = false;
@@ -5662,48 +5658,43 @@ function scheduleTokenRefresh(connection, isServer) {
5662
5658
  const currentToken = await getIdToken(isServer);
5663
5659
  if (!currentToken)
5664
5660
  return; // Unauthenticated, nothing to refresh
5665
- const expirationTime = getTokenExpirationTime(currentToken);
5666
- if (!expirationTime)
5667
- return;
5668
- const timeUntilExpiry = expirationTime - Date.now();
5669
- if (timeUntilExpiry <= TOKEN_REFRESH_BUFFER) {
5670
- console.info('[WS v2] Token expiring soon, proactively refreshing');
5671
- // Refresh the token and store it. Do NOT reconnect — the server only
5672
- // verifies JWT at $connect time, so the existing connection continues
5673
- // working. The fresh token is picked up by urlProvider the next time
5674
- // a reconnect naturally happens (network drop, keepalive timeout, etc.).
5675
- //
5676
- // Routed through the shared transaction. This used to read a refresh
5677
- // token, call refreshSession, and write the result with nothing binding
5678
- // it to the session it started from — so a timer that fired for S1 and
5679
- // completed after a same-wallet re-login could overwrite S2's rotated
5680
- // token, and the next refresh would trip the issuer's reuse detection
5681
- // and revoke the whole family.
5682
- try {
5683
- await getFreshAuthToken(isServer);
5684
- console.info('[WS v2] Token refreshed successfully, stored for next connection');
5685
- }
5686
- catch (refreshError) {
5687
- const definitive = (refreshError === null || refreshError === void 0 ? void 0 : refreshError.code) === AUTH_CHANGED_CODE
5688
- || !await getIdToken(isServer);
5689
- if (definitive) {
5690
- // The session is dead or belongs to someone else now. The shared
5691
- // helper has already cleared storage and notified auth-state
5692
- // listeners, so the UI stops showing a connection that is gone —
5693
- // this branch used to just stop the timer and leave the UI
5694
- // claiming to be connected.
5695
- console.warn('[WS v2] Session no longer usable, stopping periodic refresh');
5696
- if (connection.tokenRefreshTimer) {
5697
- clearInterval(connection.tokenRefreshTimer);
5698
- connection.tokenRefreshTimer = null;
5699
- }
5700
- return;
5661
+ // The worker closes a socket once the token it authenticated with
5662
+ // expires. Refresh any token the next check could reach too late, and
5663
+ // give the open socket the stored token whenever it changed: refreshed
5664
+ // here, in another tab, or by an HTTP call.
5665
+ //
5666
+ // Routed through the shared transaction. This used to read a refresh
5667
+ // token, call refreshSession, and write the result with nothing binding
5668
+ // it to the session it started from - so a timer that fired for S1 and
5669
+ // completed after a same-wallet re-login could overwrite S2's rotated
5670
+ // token, and the next refresh would trip the issuer's reuse detection
5671
+ // and revoke the whole family.
5672
+ try {
5673
+ const token = await getFreshAuthToken(isServer, { refreshWithinMs: TOKEN_REFRESH_WITHIN_MS });
5674
+ // A wallet-scoped socket authenticates through its own provider.
5675
+ if (token && !connection.authTokenProvider)
5676
+ reauthenticateOpenSocket(connection, token);
5677
+ }
5678
+ catch (refreshError) {
5679
+ const definitive = (refreshError === null || refreshError === void 0 ? void 0 : refreshError.code) === AUTH_CHANGED_CODE
5680
+ || !await getIdToken(isServer);
5681
+ if (definitive) {
5682
+ // The session is dead or belongs to someone else now. The shared
5683
+ // helper has already cleared storage and notified auth-state
5684
+ // listeners, so the UI stops showing a connection that is gone -
5685
+ // this branch used to just stop the timer and leave the UI
5686
+ // claiming to be connected.
5687
+ console.warn('[WS v2] Session no longer usable, stopping periodic refresh');
5688
+ if (connection.tokenRefreshTimer) {
5689
+ clearInterval(connection.tokenRefreshTimer);
5690
+ connection.tokenRefreshTimer = null;
5701
5691
  }
5702
- // Transient: keep the session and try again next interval.
5703
- // Status only — the raw axios error carries config.data (the refresh
5704
- // token) and must never hit the console / log sinks.
5705
- console.warn('[WS v2] Proactive token refresh failed, will retry next interval. status:', (_b = (_a = refreshError === null || refreshError === void 0 ? void 0 : refreshError.status) !== null && _a !== void 0 ? _a : refreshError === null || refreshError === void 0 ? void 0 : refreshError.code) !== null && _b !== void 0 ? _b : 'unknown');
5692
+ return;
5706
5693
  }
5694
+ // Transient: keep the session and try again next interval.
5695
+ // Status only - the raw axios error carries config.data (the refresh
5696
+ // token) and must never hit the console / log sinks.
5697
+ console.warn('[WS v2] Proactive token refresh failed, will retry next interval. status:', (_b = (_a = refreshError === null || refreshError === void 0 ? void 0 : refreshError.status) !== null && _a !== void 0 ? _a : refreshError === null || refreshError === void 0 ? void 0 : refreshError.code) !== null && _b !== void 0 ? _b : 'unknown');
5707
5698
  }
5708
5699
  }
5709
5700
  catch (error) {
@@ -5711,6 +5702,49 @@ function scheduleTokenRefresh(connection, isServer) {
5711
5702
  }
5712
5703
  }, TOKEN_CHECK_INTERVAL);
5713
5704
  }
5705
+ /**
5706
+ * The identity the worker keys a socket's subscriptions by (subscriptions.ts
5707
+ * connectionIdentityKey): the user id, wallet, email and EVM wallet its auth reads
5708
+ * from the token, normalized as it does, plus the guest flag. An auth frame that
5709
+ * changes it makes the worker drop every subscription on the socket.
5710
+ */
5711
+ function socketIdentityKey(idToken) {
5712
+ try {
5713
+ const { id, address, email, evmAddress } = deriveUserIdentityFromIdToken(idToken);
5714
+ const guest = JSON.parse(decodeBase64Url(idToken.split('.')[1])).is_anonymous === true;
5715
+ return id && JSON.stringify([id, address, email, evmAddress, guest]);
5716
+ }
5717
+ catch (_a) {
5718
+ return null;
5719
+ }
5720
+ }
5721
+ /**
5722
+ * Give an authenticated socket the stored token before the worker closes it at
5723
+ * its own token's expiry. For an unchanged worker identity an auth frame keeps
5724
+ * the subscriptions and moves the deadline. The same account with changed claims
5725
+ * (a refresh that bound a wallet, a guest that signed up) would lose them to that
5726
+ * frame, so it reconnects and replays them instead. Another account is the
5727
+ * auth-change path's job (reconnect with cleared read caches), never this one's.
5728
+ */
5729
+ function reauthenticateOpenSocket(connection, token) {
5730
+ // Only a socket that is OPEN: reconnecting-websocket queues anything else and
5731
+ // flushes it into the next socket ahead of that socket's own auth.
5732
+ if (!isWarmConnection(connection) || connection.reauthSnapshot)
5733
+ return;
5734
+ if (!connection.authTokenValue || connection.authTokenValue === token)
5735
+ return;
5736
+ const identity = socketIdentityKey(token);
5737
+ if (!identity)
5738
+ return;
5739
+ const snapshot = authSnapshotFromToken(token);
5740
+ if (identity === socketIdentityKey(connection.authTokenValue)) {
5741
+ connection.reauthSnapshot = snapshot;
5742
+ connection.ws.send(JSON.stringify({ type: 'auth', token }));
5743
+ }
5744
+ else if (snapshot.principal === connection.authPrincipal) {
5745
+ connection.ws.reconnect();
5746
+ }
5747
+ }
5714
5748
  /**
5715
5749
  * WS-local wrapper around the shared freshness helper.
5716
5750
  *
@@ -5721,7 +5755,8 @@ function scheduleTokenRefresh(connection, isServer) {
5721
5755
  async function getWsAuthToken(isServer) {
5722
5756
  var _a, _b;
5723
5757
  try {
5724
- return await getFreshAuthToken(isServer);
5758
+ // A socket must outlive its first token check, five minutes after it opens.
5759
+ return await getFreshAuthToken(isServer, { refreshWithinMs: TOKEN_REFRESH_WITHIN_MS });
5725
5760
  }
5726
5761
  catch (error) {
5727
5762
  // Status only — the raw axios error carries config.data (the refresh token)
@@ -6227,6 +6262,7 @@ async function getOrCreateConnectionOnce(appId, isServer, routePath, authTokenPr
6227
6262
  pendingAuthSnapshot: null,
6228
6263
  authTokenValue: null,
6229
6264
  authPrincipal: null,
6265
+ reauthSnapshot: null,
6230
6266
  socketGeneration: 0,
6231
6267
  heartbeat: null,
6232
6268
  heartbeatReconnectTimer: null,
@@ -6304,6 +6340,7 @@ async function getOrCreateConnectionOnce(appId, isServer, routePath, authTokenPr
6304
6340
  connection.socketGeneration += 1;
6305
6341
  connection.isConnecting = false;
6306
6342
  connection.isConnected = true;
6343
+ connection.reauthSnapshot = null;
6307
6344
  startHeartbeat(connection, ws);
6308
6345
  // NOTE: Do NOT reset consecutiveAuthFailures here. It is reset when a
6309
6346
  // fresh auth token is actually obtained or on an explicit auth change.
@@ -6370,6 +6407,7 @@ async function getOrCreateConnectionOnce(appId, isServer, routePath, authTokenPr
6370
6407
  stopHeartbeat(connection);
6371
6408
  connection.isConnected = false;
6372
6409
  connection.isAuthenticating = false;
6410
+ connection.reauthSnapshot = null;
6373
6411
  const disconnectError = new Error('WebSocket disconnected');
6374
6412
  for (const subscriptionId of Array.from(connection.pendingSubscriptions.keys())) {
6375
6413
  rejectPendingSubscriptionConfirmation(connection, subscriptionId, disconnectError);
@@ -6391,6 +6429,21 @@ function handleServerMessage(connection, message) {
6391
6429
  var _a, _b, _c, _d, _e, _f;
6392
6430
  switch (message.type) {
6393
6431
  case 'authenticated': {
6432
+ const reauth = connection.reauthSnapshot;
6433
+ if (reauth) {
6434
+ // The stored token on the open socket: its subscriptions are still
6435
+ // live server-side, so there is nothing to replay, and a subscribe
6436
+ // still awaiting confirmation keeps its one retry.
6437
+ const previous = connection.authTokenValue;
6438
+ connection.reauthSnapshot = null;
6439
+ connection.authTokenValue = reauth.tokenValue;
6440
+ connection.authPrincipal = reauth.principal;
6441
+ for (const pending of connection.pendingSubscriptions.values()) {
6442
+ if (pending.authTokenValue === previous)
6443
+ pending.authTokenValue = reauth.tokenValue;
6444
+ }
6445
+ break;
6446
+ }
6394
6447
  connection.isAuthenticating = false;
6395
6448
  connection.authTokenValue = (_b = (_a = connection.pendingAuthSnapshot) === null || _a === void 0 ? void 0 : _a.tokenValue) !== null && _b !== void 0 ? _b : null;
6396
6449
  connection.authPrincipal = (_d = (_c = connection.pendingAuthSnapshot) === null || _c === void 0 ? void 0 : _c.principal) !== null && _d !== void 0 ? _d : null;
@@ -7474,7 +7527,7 @@ async function doReconnectWithNewAuth() {
7474
7527
  console.warn('[WS v2] Failed to clear HTTP read cache on auth change:', error);
7475
7528
  }
7476
7529
  try {
7477
- const { reconnectRealtimeStoreWithNewAuth } = await import('./realtime-store-Cno1p315.mjs');
7530
+ const { reconnectRealtimeStoreWithNewAuth } = await import('./realtime-store-BIB8v265.mjs');
7478
7531
  await reconnectRealtimeStoreWithNewAuth();
7479
7532
  }
7480
7533
  catch (error) {
@@ -8972,7 +9025,7 @@ async function setMany(many, options) {
8972
9025
  if (typeof curTx.serializedTransaction !== 'string' || typeof curTx.poofnetIntentId !== 'string') {
8973
9026
  throw new Error('Unsupported 202 transaction shape: a poofnet write needs serializedTransaction and poofnetIntentId');
8974
9027
  }
8975
- const { signPoofnetTransaction, buildExpectedWriteIntent } = await import('./solana-operations-CU-8CFHk.mjs');
9028
+ const { signPoofnetTransaction, buildExpectedWriteIntent } = await import('./solana-operations-Cshh2EfH.mjs');
8976
9029
  const signedTransaction = await signPoofnetTransaction(curTx.serializedTransaction, authProvider, options, buildExpectedWriteIntent(documents));
8977
9030
  // Signing-only, exactly as on a real chain: signed and NOT committed.
8978
9031
  if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {
@@ -8997,7 +9050,7 @@ async function setMany(many, options) {
8997
9050
  'Nothing was signed or submitted.');
8998
9051
  }
8999
9052
  const solanaChain = workerChain;
9000
- const { handlePreBuiltTransaction, buildExpectedWriteIntent } = await import('./solana-operations-CU-8CFHk.mjs');
9053
+ const { handlePreBuiltTransaction, buildExpectedWriteIntent } = await import('./solana-operations-Cshh2EfH.mjs');
9001
9054
  // OA-0001: derive the expected intent from OUR OWN request (the one
9002
9055
  // ground truth a tampered builder response cannot change) so the
9003
9056
  // validator can reject any transaction whose operation semantics
@@ -10761,7 +10814,7 @@ function toMillis(seconds) {
10761
10814
 
10762
10815
  /** SIWS message creation is async already, so its onchain module can be lazy. */
10763
10816
  async function genSolanaMessage(address, nonce) {
10764
- const implementation = await import('./solana-message-BTs3b7JU.mjs');
10817
+ const implementation = await import('./solana-message-BBMxFFjM.mjs');
10765
10818
  return implementation.genSolanaMessage(address, nonce);
10766
10819
  }
10767
10820
 
@@ -11311,4 +11364,4 @@ function defineLiveModule(mod) {
11311
11364
  }
11312
11365
 
11313
11366
  export { increment 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, subscribeQuery as N, closeAllQuerySubscriptions as O, canonicalizeArgs as P, canonicalizeResult as Q, DEFAULT_QUERY_POLL_INTERVAL_MS as R, ScopedClientReadOnlyError as S, MIN_QUERY_POLL_INTERVAL_MS as T, BoundedDeclineError as U, deriveDecline as V, dispatchDeclineEvent as W, DECLINE_EVENT_NAME as X, dispatchRateLimitEvent as Y, RATE_LIMIT_EVENT_NAME as Z, hasActiveConnection as _, getWebhookKeysUrl as a, serverTimestamp as a0, now as a1, toSeconds as a2, toMillis as a3, getIdToken as a4, deriveUserIdentityFromIdToken as a5, getSessionGeneration as a6, WebSessionManager as a7, ReactNativeSessionManager as a8, getActiveSessionManager as a9, live as aA, intent as aB, status as aC, subscribeView as aD, LiveIntentError as aE, withEffects as aF, isEffectResult as aG, defineLiveModule as aH, EFFECT_INTENT_ADDRESS as aI, onSessionCleared as aa, SessionEnvironmentError as ab, UNSUPPORTED_ENVIRONMENT_CODE as ac, AUTH_CHANGED_CODE as ad, AUTH_EXPIRED_CODE as ae, isAuthExpiredError as af, getFreshAuthToken as ag, ServerSessionManager as ah, createSessionWithSignature as ai, refreshSession as aj, revokeSession as ak, signSessionCreateMessage as al, genAuthNonce as am, genSolanaMessage as an, createSolanaSignInRequest as ao, createSolanaSignInMessageText as ap, genSolanaSignInRequest as aq, genSolanaSignInMessage as ar, browserSignInDomain as as, SOLANA_SIGN_IN_STATEMENT as at, genSiweMessage as au, normalizeEvmAddress as av, toLowerEvmAddress as aw, functions as ax, invoke as ay, FunctionInvokeError 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 };
11314
- //# sourceMappingURL=index-CVWqE5hO.mjs.map
11367
+ //# sourceMappingURL=index-CkgEqMkJ.mjs.map