@bounded-sh/client 0.0.1 → 0.0.2

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 (56) hide show
  1. package/dist/auth/providers/phantom-wallet-provider.d.ts +1 -1
  2. package/dist/auth/providers/privy-expo-provider.d.ts +1 -1
  3. package/dist/auth/providers/solana-mobile-wallet-provider.d.ts +3 -3
  4. package/dist/{index-BHTfW8CV.esm.js → index-B2ytfYTB.esm.js} +2 -2
  5. package/dist/{index-BHTfW8CV.esm.js.map → index-B2ytfYTB.esm.js.map} +1 -1
  6. package/dist/{index-CT2j1oic.esm.js → index-BFOmV3Pb.esm.js} +2 -2
  7. package/dist/{index-CT2j1oic.esm.js.map → index-BFOmV3Pb.esm.js.map} +1 -1
  8. package/dist/{index-VGx-869x.js → index-BL-0ZKBl.js} +76 -76
  9. package/dist/index-BL-0ZKBl.js.map +1 -0
  10. package/dist/{index-sKqrgk0t.js → index-BgAygrhE.js} +2 -2
  11. package/dist/{index-sKqrgk0t.js.map → index-BgAygrhE.js.map} +1 -1
  12. package/dist/{index-C1VOdmRN.js → index-CqoP9udN.js} +2 -2
  13. package/dist/{index-C1VOdmRN.js.map → index-CqoP9udN.js.map} +1 -1
  14. package/dist/{index-o5Hv9pfS.esm.js → index-D986s6w7.esm.js} +76 -76
  15. package/dist/index-D986s6w7.esm.js.map +1 -0
  16. package/dist/{index.browser-DaNhOhkQ.esm.js → index.browser-Bd0GwRur.esm.js} +2 -2
  17. package/dist/{index.browser-DaNhOhkQ.esm.js.map → index.browser-Bd0GwRur.esm.js.map} +1 -1
  18. package/dist/{index.browser-utVKQsEC.js → index.browser-BeM1bzpe.js} +2 -2
  19. package/dist/{index.browser-utVKQsEC.js.map → index.browser-BeM1bzpe.js.map} +1 -1
  20. package/dist/{index.browser-DhAcjdpV.esm.js → index.browser-D2xm-q6N.esm.js} +2 -2
  21. package/dist/{index.browser-DhAcjdpV.esm.js.map → index.browser-D2xm-q6N.esm.js.map} +1 -1
  22. package/dist/{index.browser-BJZ7fYwv.js → index.browser-D8u31irV.js} +2 -2
  23. package/dist/{index.browser-BJZ7fYwv.js.map → index.browser-D8u31irV.js.map} +1 -1
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.esm.js +1 -1
  26. package/dist/index.js +1 -1
  27. package/dist/{index.native-JPUkdHJj.esm.js → index.native-B-cLm_BI.esm.js} +50 -50
  28. package/dist/index.native-B-cLm_BI.esm.js.map +1 -0
  29. package/dist/{index.native-B5IBOdv_.js → index.native-NgHStPq0.js} +50 -50
  30. package/dist/index.native-NgHStPq0.js.map +1 -0
  31. package/dist/index.native.d.ts +1 -1
  32. package/dist/index.native.esm.js +1 -1
  33. package/dist/index.native.js +1 -1
  34. package/dist/{phantom-wallet-provider-DMlaSrAl.esm.js → phantom-wallet-provider-Cy5T9EVd.esm.js} +10 -10
  35. package/dist/phantom-wallet-provider-Cy5T9EVd.esm.js.map +1 -0
  36. package/dist/{phantom-wallet-provider-CDLyxrih.js → phantom-wallet-provider-Dy48LSdU.js} +10 -10
  37. package/dist/phantom-wallet-provider-Dy48LSdU.js.map +1 -0
  38. package/dist/{privy-wallet-provider-nR52lXzI.esm.js → privy-wallet-provider-BDsrUpk4.esm.js} +5 -5
  39. package/dist/privy-wallet-provider-BDsrUpk4.esm.js.map +1 -0
  40. package/dist/{privy-wallet-provider-DiHHTDbZ.js → privy-wallet-provider-CiKtBJ5M.js} +5 -5
  41. package/dist/privy-wallet-provider-CiKtBJ5M.js.map +1 -0
  42. package/dist/{solana-mobile-wallet-provider-B4CeMMQd.esm.js → solana-mobile-wallet-provider-CSk_FIww.esm.js} +20 -20
  43. package/dist/solana-mobile-wallet-provider-CSk_FIww.esm.js.map +1 -0
  44. package/dist/{solana-mobile-wallet-provider-BYMfFjZb.js → solana-mobile-wallet-provider-k_YdrTJZ.js} +20 -20
  45. package/dist/solana-mobile-wallet-provider-k_YdrTJZ.js.map +1 -0
  46. package/package.json +2 -2
  47. package/dist/index-VGx-869x.js.map +0 -1
  48. package/dist/index-o5Hv9pfS.esm.js.map +0 -1
  49. package/dist/index.native-B5IBOdv_.js.map +0 -1
  50. package/dist/index.native-JPUkdHJj.esm.js.map +0 -1
  51. package/dist/phantom-wallet-provider-CDLyxrih.js.map +0 -1
  52. package/dist/phantom-wallet-provider-DMlaSrAl.esm.js.map +0 -1
  53. package/dist/privy-wallet-provider-DiHHTDbZ.js.map +0 -1
  54. package/dist/privy-wallet-provider-nR52lXzI.esm.js.map +0 -1
  55. package/dist/solana-mobile-wallet-provider-B4CeMMQd.esm.js.map +0 -1
  56. package/dist/solana-mobile-wallet-provider-BYMfFjZb.js.map +0 -1
@@ -6472,7 +6472,7 @@ function getWebhookKeysUrl() {
6472
6472
  /**
6473
6473
  * True when init() configured a Bounded network (the Cloudflare-native stack).
6474
6474
  * Synchronous + non-blocking. Used to route reads/writes that behave differently
6475
- * on Bounded vs the legacy Tarobase backend (e.g. `count`/`aggregate`, which on
6475
+ * on Bounded vs the legacy backend (e.g. `count`/`aggregate`, which on
6476
6476
  * Bounded must use the deterministic server aggregation, not the legacy AI query).
6477
6477
  */
6478
6478
  function isBoundedNetwork() {
@@ -9327,7 +9327,7 @@ class WebSessionManager {
9327
9327
  // the RIGHT /session/refresh. Email overrides with humanAuthApiUrl; all
9328
9328
  // wallet/guest/signature flows default to authApiUrl (the bounded-auth issuer).
9329
9329
  const sessionIssuer = (issuer || config.authApiUrl || "").replace(/\/$/, "");
9330
- localStorage.setItem(this.TAROBASE_SESSION_STORAGE_KEY, JSON.stringify(Object.assign({ address,
9330
+ localStorage.setItem(this.BOUNDED_SESSION_STORAGE_KEY, JSON.stringify(Object.assign({ address,
9331
9331
  accessToken,
9332
9332
  idToken,
9333
9333
  refreshToken, appId: currentAppId }, (sessionIssuer ? { issuer: sessionIssuer } : {}))));
@@ -9338,7 +9338,7 @@ class WebSessionManager {
9338
9338
  static async getSession() {
9339
9339
  if (typeof window === "undefined")
9340
9340
  return null;
9341
- const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9341
+ const session = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9342
9342
  if (!session)
9343
9343
  return null;
9344
9344
  const sessionObj = JSON.parse(session);
@@ -9362,7 +9362,7 @@ class WebSessionManager {
9362
9362
  // Persist the ROTATED refresh token — the old one is now
9363
9363
  // single-use spent; reusing it would revoke the family.
9364
9364
  refreshed.refreshToken);
9365
- const newSession = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9365
+ const newSession = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9366
9366
  if (!newSession)
9367
9367
  return null;
9368
9368
  const newObj = JSON.parse(newSession);
@@ -9386,14 +9386,14 @@ class WebSessionManager {
9386
9386
  static clearSession() {
9387
9387
  if (typeof window === "undefined")
9388
9388
  return;
9389
- localStorage.removeItem(this.TAROBASE_SESSION_STORAGE_KEY);
9389
+ localStorage.removeItem(this.BOUNDED_SESSION_STORAGE_KEY);
9390
9390
  }
9391
9391
  /* ------------------------------------------------------------------ */
9392
9392
  /* IS-AUTH */
9393
9393
  /* ------------------------------------------------------------------ */
9394
9394
  static isAuthenticated() {
9395
9395
  // NOTE: this remains synchronous to stay backward compatible
9396
- return !!localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9396
+ return !!localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9397
9397
  }
9398
9398
  /* ------------------------------------------------------------------ */
9399
9399
  /* TOKEN HELPERS */
@@ -9401,13 +9401,13 @@ class WebSessionManager {
9401
9401
  static getIdToken() {
9402
9402
  if (typeof window === "undefined")
9403
9403
  return null;
9404
- const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9404
+ const session = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9405
9405
  return session ? JSON.parse(session).idToken : null;
9406
9406
  }
9407
9407
  static getRefreshToken() {
9408
9408
  if (typeof window === "undefined")
9409
9409
  return null;
9410
- const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9410
+ const session = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9411
9411
  return session ? JSON.parse(session).refreshToken : null;
9412
9412
  }
9413
9413
  /** The issuer base that minted this session (for routing silent refresh). */
@@ -9415,7 +9415,7 @@ class WebSessionManager {
9415
9415
  var _a;
9416
9416
  if (typeof window === "undefined")
9417
9417
  return null;
9418
- const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9418
+ const session = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9419
9419
  return session ? ((_a = JSON.parse(session).issuer) !== null && _a !== void 0 ? _a : null) : null;
9420
9420
  }
9421
9421
  /* ------------------------------------------------------------------ */
@@ -9425,7 +9425,7 @@ class WebSessionManager {
9425
9425
  var _a;
9426
9426
  if (typeof window === "undefined")
9427
9427
  return;
9428
- const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9428
+ const session = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9429
9429
  if (!session)
9430
9430
  return;
9431
9431
  const sessionObj = JSON.parse(session);
@@ -9442,10 +9442,10 @@ class WebSessionManager {
9442
9442
  sessionObj.refreshToken = refreshToken;
9443
9443
  }
9444
9444
  (_a = sessionObj.appId) !== null && _a !== void 0 ? _a : (sessionObj.appId = config.appId);
9445
- localStorage.setItem(this.TAROBASE_SESSION_STORAGE_KEY, JSON.stringify(sessionObj));
9445
+ localStorage.setItem(this.BOUNDED_SESSION_STORAGE_KEY, JSON.stringify(sessionObj));
9446
9446
  }
9447
9447
  }
9448
- WebSessionManager.TAROBASE_SESSION_STORAGE_KEY = "tarobase_session_storage";
9448
+ WebSessionManager.BOUNDED_SESSION_STORAGE_KEY = "bounded_session_storage";
9449
9449
 
9450
9450
  let _config = null;
9451
9451
  class ReactNativeSessionManager {
@@ -9538,7 +9538,7 @@ class ReactNativeSessionManager {
9538
9538
  // Issuer base for silent refresh (email overrides w/ humanAuthApiUrl; wallet/
9539
9539
  // guest default to authApiUrl). See WebSessionManager for the rationale.
9540
9540
  const sessionIssuer = (issuer || config.authApiUrl || "").replace(/\/$/, "");
9541
- this.getStorage().setItem(this.TAROBASE_SESSION_STORAGE_KEY, JSON.stringify(Object.assign({ address,
9541
+ this.getStorage().setItem(this.BOUNDED_SESSION_STORAGE_KEY, JSON.stringify(Object.assign({ address,
9542
9542
  accessToken,
9543
9543
  idToken,
9544
9544
  refreshToken, appId: currentAppId }, (sessionIssuer ? { issuer: sessionIssuer } : {}))));
@@ -9547,7 +9547,7 @@ class ReactNativeSessionManager {
9547
9547
  /* GET */
9548
9548
  /* ------------------------------------------------------------------ */
9549
9549
  static async getSession() {
9550
- const session = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9550
+ const session = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9551
9551
  if (!session)
9552
9552
  return null;
9553
9553
  const sessionObj = JSON.parse(session);
@@ -9568,7 +9568,7 @@ class ReactNativeSessionManager {
9568
9568
  const refreshed = await refreshSession(refreshToken, sessionObj.issuer);
9569
9569
  if ((refreshed === null || refreshed === void 0 ? void 0 : refreshed.idToken) && (refreshed === null || refreshed === void 0 ? void 0 : refreshed.accessToken)) {
9570
9570
  await this.updateIdTokenAndAccessToken(refreshed.idToken, refreshed.accessToken, refreshed.refreshToken);
9571
- const newSession = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9571
+ const newSession = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9572
9572
  if (!newSession)
9573
9573
  return null;
9574
9574
  const newObj = JSON.parse(newSession);
@@ -9590,20 +9590,20 @@ class ReactNativeSessionManager {
9590
9590
  /* CLEAR */
9591
9591
  /* ------------------------------------------------------------------ */
9592
9592
  static clearSession() {
9593
- this.getStorage().removeItem(this.TAROBASE_SESSION_STORAGE_KEY);
9593
+ this.getStorage().removeItem(this.BOUNDED_SESSION_STORAGE_KEY);
9594
9594
  }
9595
9595
  /* ------------------------------------------------------------------ */
9596
9596
  /* IS-AUTH */
9597
9597
  /* ------------------------------------------------------------------ */
9598
9598
  static isAuthenticated() {
9599
- return !!this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9599
+ return !!this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9600
9600
  }
9601
9601
  /* ------------------------------------------------------------------ */
9602
9602
  /* TOKEN HELPERS */
9603
9603
  /* ------------------------------------------------------------------ */
9604
9604
  static getIdToken() {
9605
9605
  try {
9606
- const session = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9606
+ const session = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9607
9607
  return session ? JSON.parse(session).idToken : null;
9608
9608
  }
9609
9609
  catch (_a) {
@@ -9614,7 +9614,7 @@ class ReactNativeSessionManager {
9614
9614
  static getIssuer() {
9615
9615
  var _a;
9616
9616
  try {
9617
- const session = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9617
+ const session = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9618
9618
  return session ? ((_a = JSON.parse(session).issuer) !== null && _a !== void 0 ? _a : null) : null;
9619
9619
  }
9620
9620
  catch (_b) {
@@ -9623,7 +9623,7 @@ class ReactNativeSessionManager {
9623
9623
  }
9624
9624
  static getRefreshToken() {
9625
9625
  try {
9626
- const session = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9626
+ const session = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9627
9627
  return session ? JSON.parse(session).refreshToken : null;
9628
9628
  }
9629
9629
  catch (_a) {
@@ -9635,7 +9635,7 @@ class ReactNativeSessionManager {
9635
9635
  /* ------------------------------------------------------------------ */
9636
9636
  static async updateIdTokenAndAccessToken(idToken, accessToken, refreshToken) {
9637
9637
  var _a;
9638
- const session = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);
9638
+ const session = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);
9639
9639
  if (!session)
9640
9640
  return;
9641
9641
  const sessionObj = JSON.parse(session);
@@ -9651,10 +9651,10 @@ class ReactNativeSessionManager {
9651
9651
  sessionObj.refreshToken = refreshToken;
9652
9652
  }
9653
9653
  (_a = sessionObj.appId) !== null && _a !== void 0 ? _a : (sessionObj.appId = config.appId);
9654
- this.getStorage().setItem(this.TAROBASE_SESSION_STORAGE_KEY, JSON.stringify(sessionObj));
9654
+ this.getStorage().setItem(this.BOUNDED_SESSION_STORAGE_KEY, JSON.stringify(sessionObj));
9655
9655
  }
9656
9656
  }
9657
- ReactNativeSessionManager.TAROBASE_SESSION_STORAGE_KEY = "tarobase_session_storage";
9657
+ ReactNativeSessionManager.BOUNDED_SESSION_STORAGE_KEY = "bounded_session_storage";
9658
9658
 
9659
9659
  /**
9660
9660
  * Return the active CLIENT session manager for the current runtime.
@@ -10175,9 +10175,9 @@ async function buildSetDocumentsTransaction(connection, idl, anchorProvider, pay
10175
10175
  /* ENV helpers */
10176
10176
  /* ------------------------------------------------------------------ */
10177
10177
  // Canonical `BOUNDED_PRIVATE_KEY` (matches the CLI); legacy
10178
- // `TAROBASE_SOLANA_KEYPAIR` still honored. Only consulted when no explicit
10178
+ // `BOUNDED_SOLANA_KEYPAIR` still honored. Only consulted when no explicit
10179
10179
  // keypair was provided (createWalletClient passes one).
10180
- const ENV_KEYPAIRS = ["BOUNDED_PRIVATE_KEY", "TAROBASE_SOLANA_KEYPAIR"];
10180
+ const ENV_KEYPAIRS = ["BOUNDED_PRIVATE_KEY", "BOUNDED_SOLANA_KEYPAIR"];
10181
10181
  function loadKeypairFromEnv() {
10182
10182
  let secret;
10183
10183
  let found;
@@ -10300,7 +10300,7 @@ var serverSessionManager = /*#__PURE__*/Object.freeze({
10300
10300
  });
10301
10301
 
10302
10302
  /**
10303
- * Safe base64 helpers for tarobase-core.
10303
+ * Safe base64 helpers for bounded-core.
10304
10304
  *
10305
10305
  * Uses the global atob/btoa when available (browser, RN with polyfill),
10306
10306
  * falls back to the 'buffer' package (Node.js / SSR / RN without polyfill).
@@ -10480,7 +10480,7 @@ axiosRetry(apiClient, {
10480
10480
  shouldResetTimeout: true,
10481
10481
  onRetry: (retryCount, error, requestConfig) => {
10482
10482
  var _a;
10483
- console.warn(`[tarobase-sdk] retry ${retryCount} for ${(_a = requestConfig.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()} ${requestConfig.url} — ${error.code || error.message}`);
10483
+ console.warn(`[bounded-sdk] retry ${retryCount} for ${(_a = requestConfig.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()} ${requestConfig.url} — ${error.code || error.message}`);
10484
10484
  },
10485
10485
  });
10486
10486
  const refreshInFlight = new Map();
@@ -10539,8 +10539,8 @@ async function makeApiRequest(method, urlPath, data, _overrides) {
10539
10539
  : await createAuthHeader(config.isServer);
10540
10540
  const headers = Object.assign({ "Content-Type": "application/json", "X-Public-App-Id": config.appId, "X-App-Id": config.appId }, authHeader);
10541
10541
  if (typeof window !== "undefined" &&
10542
- window.CUSTOM_TAROBASE_APP_ID_HEADER) {
10543
- const customAppId = window.CUSTOM_TAROBASE_APP_ID_HEADER;
10542
+ window.CUSTOM_BOUNDED_APP_ID_HEADER) {
10543
+ const customAppId = window.CUSTOM_BOUNDED_APP_ID_HEADER;
10544
10544
  if (customAppId) {
10545
10545
  headers["X-App-Id"] = customAppId;
10546
10546
  }
@@ -10799,7 +10799,7 @@ function parseAggregateValue(result) {
10799
10799
  * Count items in a collection path. Returns a numeric result.
10800
10800
  *
10801
10801
  * This uses the AI query engine with a count-specific prompt prefix,
10802
- * so TaroBase will generate a $count aggregation pipeline and return
10802
+ * so Bounded will generate a $count aggregation pipeline and return
10803
10803
  * just the count rather than full documents.
10804
10804
  *
10805
10805
  * IMPORTANT: This only works for collections where the read policy is "true".
@@ -11324,10 +11324,10 @@ async function setMany(many, options) {
11324
11324
  let documents = [];
11325
11325
  const pathsToInvalidate = new Set();
11326
11326
  for (const { path, document: documentWithReservedFields } of many) {
11327
- // for setting, we should remove any pieces of the document that start with 'tarobase_' as they are internal and shouldn't be updated. The API would block it if it is one of the reserved ones
11327
+ // for setting, we should remove any pieces of the document that start with '_' as they are internal and shouldn't be updated. The API would block it if it is one of the reserved ones
11328
11328
  let document = documentWithReservedFields;
11329
11329
  if (documentWithReservedFields) {
11330
- document = Object.fromEntries(Object.entries(documentWithReservedFields).filter(([key]) => !key.startsWith('tarobase_')));
11330
+ document = Object.fromEntries(Object.entries(documentWithReservedFields).filter(([key]) => !key.startsWith('_')));
11331
11331
  }
11332
11332
  const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
11333
11333
  pathsToInvalidate.add(normalizedPath);
@@ -11451,7 +11451,7 @@ async function setMany(many, options) {
11451
11451
  var _a, _b, _c, _d, _e;
11452
11452
  // NOTE (backwards-compat revert): a program-allowlist on server-supplied
11453
11453
  // `preInstructions` was tried here for the audit-8 SOL-drain concern, but it
11454
- // broke legitimate onchain DeFi flows — tarobase routes Phoenix, Jupiter/swap,
11454
+ // broke legitimate onchain DeFi flows — bounded routes Phoenix, Jupiter/swap,
11455
11455
  // SPL-Token and ATA-creation instructions through standard-path preInstructions
11456
11456
  // (see sol-helper remaining-accounts-extractor). A correct audit-8 fix must be
11457
11457
  // DeFi-aware (e.g. block ONLY a raw System Transfer/TransferWithSeed, never a
@@ -11535,10 +11535,10 @@ async function setMany(many, options) {
11535
11535
  const transaction = web3_js.VersionedTransaction.deserialize(txBytes);
11536
11536
  // Validate the transaction before signing: ensure only allowed programs
11537
11537
  // and no unauthorized System program instructions (e.g., SOL transfers)
11538
- const TAROBASE_PROGRAM = 'poof4b5pk1L9tmThvBmaABjcyjfhFGbMbQP5BXk2QZp';
11538
+ const BOUNDED_PROGRAM = 'poof4b5pk1L9tmThvBmaABjcyjfhFGbMbQP5BXk2QZp';
11539
11539
  const COMPUTE_BUDGET = 'ComputeBudget111111111111111111111111111111';
11540
11540
  const SYSTEM_PROGRAM = '11111111111111111111111111111111';
11541
- const ALLOWED_PROGRAMS = new Set([TAROBASE_PROGRAM, COMPUTE_BUDGET, SYSTEM_PROGRAM]);
11541
+ const ALLOWED_PROGRAMS = new Set([BOUNDED_PROGRAM, COMPUTE_BUDGET, SYSTEM_PROGRAM]);
11542
11542
  // System program instruction discriminators (first 4 bytes, little-endian u32)
11543
11543
  const SYSTEM_TRANSFER = 2; // Transfer instruction index
11544
11544
  const SYSTEM_TRANSFER_WITH_SEED = 11;
@@ -12132,8 +12132,8 @@ async function getOrCreateConnection(appId, isServer, routePath, authTokenProvid
12132
12132
  if (appId && appId !== config.appId) {
12133
12133
  wsUrl.searchParams.append('appId', appId);
12134
12134
  }
12135
- else if (typeof window !== 'undefined' && window.CUSTOM_TAROBASE_APP_ID_HEADER) {
12136
- wsUrl.searchParams.append('appId', window.CUSTOM_TAROBASE_APP_ID_HEADER);
12135
+ else if (typeof window !== 'undefined' && window.CUSTOM_BOUNDED_APP_ID_HEADER) {
12136
+ wsUrl.searchParams.append('appId', window.CUSTOM_BOUNDED_APP_ID_HEADER);
12137
12137
  }
12138
12138
  else {
12139
12139
  wsUrl.searchParams.append('appId', config.appId);
@@ -12993,7 +12993,7 @@ function serverTimestamp() {
12993
12993
  // ---------------------------------------------------------------------------
12994
12994
  // IDB helpers (lazy-loaded, non-blocking)
12995
12995
  // ---------------------------------------------------------------------------
12996
- const IDB_NAME$1 = 'tarobase-realtime';
12996
+ const IDB_NAME$1 = 'bounded-realtime';
12997
12997
  const IDB_STORE$1 = 'subscriptions';
12998
12998
  const IDB_VERSION = 1;
12999
12999
  let idbPromise = null;
@@ -13431,10 +13431,10 @@ class RealtimeStore {
13431
13431
  const normalizedPath = path.startsWith('/') ? path.slice(1) : path;
13432
13432
  const collectionPath = this.getCollectionPath(normalizedPath);
13433
13433
  const optimisticDoc = Object.assign(Object.assign({ _id: normalizedPath, pathId: normalizedPath }, resolvedDoc), {
13434
- // System timestamp field name differs by stack: the Bounded worker stamps
13435
- // the neutral `_updatedAt`; legacy Tarobase stamps `tarobase_updated_at`.
13434
+ // System timestamp field name: the Bounded worker stamps the neutral
13435
+ // `_updatedAt`; the underscore-prefixed `_updated_at` metadata mirror.
13436
13436
  // Match it so the optimistic doc lines up with the server's confirmation.
13437
- [isBoundedNetwork() ? '_updatedAt' : 'tarobase_updated_at']: Date.now() });
13437
+ [isBoundedNetwork() ? '_updatedAt' : '_updated_at']: Date.now() });
13438
13438
  const sub = this.findSubscriptionByPath(collectionPath);
13439
13439
  let prevDoc = null;
13440
13440
  if (sub) {
@@ -18548,7 +18548,7 @@ let currentAuthProvider = null;
18548
18548
  let currentAuthMethod = null;
18549
18549
  let initConfig = null;
18550
18550
  // --- localStorage helpers: track which auth method the user last logged in with ---
18551
- const STORED_AUTH_METHOD_KEY$1 = 'tarobase_last_auth_method';
18551
+ const STORED_AUTH_METHOD_KEY$1 = 'bounded_last_auth_method';
18552
18552
  function getStoredAuthMethod() {
18553
18553
  try {
18554
18554
  return getPlatform().storage.getItem(STORED_AUTH_METHOD_KEY$1);
@@ -19301,7 +19301,7 @@ async function loadDependencies() {
19301
19301
  const [reactModule, reactDomModule, phantomModule] = await Promise.all([
19302
19302
  import('react'),
19303
19303
  import('react-dom/client'),
19304
- Promise.resolve().then(function () { return require('./index-sKqrgk0t.js'); })
19304
+ Promise.resolve().then(function () { return require('./index-BgAygrhE.js'); })
19305
19305
  ]);
19306
19306
  // Extract default export from ESM module namespace
19307
19307
  // Dynamic import() returns { default: Module, ...exports }, not the module directly
@@ -19491,7 +19491,7 @@ class PhantomWalletProvider {
19491
19491
  };
19492
19492
  }
19493
19493
  }, [phantom, phantom === null || phantom === void 0 ? void 0 : phantom.isConnected, phantom === null || phantom === void 0 ? void 0 : phantom.addresses, phantom === null || phantom === void 0 ? void 0 : phantom.isLoading, connect, disconnect, isDisconnecting, modal, modal.isOpened, solana, solana === null || solana === void 0 ? void 0 : solana.connected, solanaHook.isAvailable, connectError]);
19494
- // Auto-login: If connected but no Tarobase session, try to create one.
19494
+ // Auto-login: If connected but no Bounded session, try to create one.
19495
19495
  // This handles social login callbacks where user returns from OAuth already connected.
19496
19496
  React.useEffect(() => {
19497
19497
  const autoCreateSession = async () => {
@@ -19505,7 +19505,7 @@ class PhantomWalletProvider {
19505
19505
  // and clears it on logout, so this guard is correct in both
19506
19506
  // steady-state and post-logout cases.
19507
19507
  try {
19508
- if (getPlatform().storage.getItem('tarobase_last_auth_method') === 'mobile-wallet-adapter') {
19508
+ if (getPlatform().storage.getItem('bounded_last_auth_method') === 'mobile-wallet-adapter') {
19509
19509
  return;
19510
19510
  }
19511
19511
  }
@@ -19543,7 +19543,7 @@ class PhantomWalletProvider {
19543
19543
  // in flight. If MWA owns the auth method now, abort before we
19544
19544
  // overwrite its session (or its in-flight session).
19545
19545
  try {
19546
- if (getPlatform().storage.getItem('tarobase_last_auth_method') === 'mobile-wallet-adapter') {
19546
+ if (getPlatform().storage.getItem('bounded_last_auth_method') === 'mobile-wallet-adapter') {
19547
19547
  return;
19548
19548
  }
19549
19549
  }
@@ -19551,7 +19551,7 @@ class PhantomWalletProvider {
19551
19551
  await WebSessionManager.storeSession(publicKey, createSessionResult.accessToken, createSessionResult.idToken, createSessionResult.refreshToken);
19552
19552
  // Mark auth method so clearIncompatibleSession() doesn't wipe this session
19553
19553
  try {
19554
- getPlatform().storage.setItem('tarobase_last_auth_method', 'phantom');
19554
+ getPlatform().storage.setItem('bounded_last_auth_method', 'phantom');
19555
19555
  }
19556
19556
  catch (_d) { }
19557
19557
  setCurrentUser({ provider: that, address: publicKey });
@@ -19649,7 +19649,7 @@ class PhantomWalletProvider {
19649
19649
  await WebSessionManager.storeSession(publicKey, createSessionResult.accessToken, createSessionResult.idToken, createSessionResult.refreshToken);
19650
19650
  // Mark auth method so clearIncompatibleSession() doesn't wipe this session
19651
19651
  try {
19652
- getPlatform().storage.setItem('tarobase_last_auth_method', 'phantom');
19652
+ getPlatform().storage.setItem('bounded_last_auth_method', 'phantom');
19653
19653
  }
19654
19654
  catch (_b) { }
19655
19655
  const user = { provider: that, address: publicKey };
@@ -20264,8 +20264,8 @@ class PhantomWalletProvider {
20264
20264
  try {
20265
20265
  const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);
20266
20266
  let app_id = solTransactionData.appId;
20267
- if (typeof window !== 'undefined' && window.CUSTOM_TAROBASE_APP_ID_HEADER) {
20268
- app_id = window.CUSTOM_TAROBASE_APP_ID_HEADER;
20267
+ if (typeof window !== 'undefined' && window.CUSTOM_BOUNDED_APP_ID_HEADER) {
20268
+ app_id = window.CUSTOM_BOUNDED_APP_ID_HEADER;
20269
20269
  }
20270
20270
  if (!app_id) {
20271
20271
  throw new Error("App ID is required");
@@ -20682,7 +20682,7 @@ var phantomWalletProvider = /*#__PURE__*/Object.freeze({
20682
20682
  * doesn't force the user back into Phantom's approval flow when the
20683
20683
  * underlying wallet authorization is still valid.
20684
20684
  */
20685
- const MWA_AUTH_TOKEN_STORAGE_KEY = 'tarobase_mwa_auth_token';
20685
+ const MWA_AUTH_TOKEN_STORAGE_KEY = 'bounded_mwa_auth_token';
20686
20686
  /**
20687
20687
  * Detects whether the current environment is a mobile browser capable of
20688
20688
  * Mobile Wallet Adapter (MWA) communication.
@@ -20696,7 +20696,7 @@ function isMobileWalletAvailable() {
20696
20696
  return detectAndroid();
20697
20697
  }
20698
20698
  const ED25519_SIGNATURE_LENGTH = 64;
20699
- const STORED_AUTH_METHOD_KEY = 'tarobase_last_auth_method';
20699
+ const STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';
20700
20700
  const MWA_AUTH_METHOD = 'mobile-wallet-adapter';
20701
20701
  function findMwaError(e, maxDepth = 5) {
20702
20702
  var _a;
@@ -20799,7 +20799,7 @@ async function withMwaAssociationRetry(fn) {
20799
20799
  * no `blur` event fires, the protocol's `getDetectionPromise` (3000ms
20800
20800
  * timeout, line 433) rejects, and we get `ERROR_WALLET_NOT_FOUND`.
20801
20801
  *
20802
- * Fix: show a Tarobase-controlled modal between the two transacts. When the
20802
+ * Fix: show a Bounded-controlled modal between the two transacts. When the
20803
20803
  * user taps the modal's "Sign in" button, that tap IS a fresh user
20804
20804
  * activation. We invoke the sign function directly inside the click handler
20805
20805
  * — no `await` between the tap and the call — so the activation propagates
@@ -20837,7 +20837,7 @@ async function awaitSignInGestureAndSign(theme, signFn, noResultError = 'MWA ret
20837
20837
  const closeColor = isDark ? '#71717a' : '#a1a1aa';
20838
20838
  const fontStack = '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif';
20839
20839
  const overlay = document.createElement('div');
20840
- overlay.setAttribute('data-tarobase-mwa-gesture', 'true');
20840
+ overlay.setAttribute('data-bounded-mwa-gesture', 'true');
20841
20841
  overlay.style.cssText = [
20842
20842
  'position: fixed',
20843
20843
  'inset: 0',
@@ -21202,7 +21202,7 @@ async function registerMobileWalletAdapter(config) {
21202
21202
  if (typeof window === 'undefined')
21203
21203
  return;
21204
21204
  try {
21205
- const walletStandardMobile = await Promise.resolve().then(function () { return require('./index.browser-BJZ7fYwv.js'); });
21205
+ const walletStandardMobile = await Promise.resolve().then(function () { return require('./index.browser-D8u31irV.js'); });
21206
21206
  const registerMwa = walletStandardMobile.registerMwa || ((_a = walletStandardMobile.default) === null || _a === void 0 ? void 0 : _a.registerMwa);
21207
21207
  if (!registerMwa) {
21208
21208
  console.warn('[SolanaMobileWallet] registerMwa not found in @solana-mobile/wallet-standard-mobile');
@@ -21260,7 +21260,7 @@ async function registerMobileWalletAdapter(config) {
21260
21260
  * does.
21261
21261
  *
21262
21262
  * Notes on UX: login uses two wallet popups in succession — `standard:connect`
21263
- * (authorize) and `solana:signMessage` (sign the Tarobase nonce). The
21263
+ * (authorize) and `solana:signMessage` (sign the Bounded nonce). The
21264
21264
  * previous implementation combined both inside a single `transact` callback;
21265
21265
  * splitting them is the cost of going through wallet-standard, and is
21266
21266
  * acceptable given the alternative was broken on Seeker.
@@ -21303,9 +21303,9 @@ class SolanaMobileWalletProvider {
21303
21303
  // entirely via `config.appIdentity.uri`.
21304
21304
  const fallbackUri = hasDOM
21305
21305
  ? getPlatform().getLocationOrigin()
21306
- : 'tarobase://app';
21306
+ : 'bounded://app';
21307
21307
  this.appIdentity = config.appIdentity || {
21308
- name: 'TaroBase App',
21308
+ name: 'Bounded App',
21309
21309
  uri: fallbackUri,
21310
21310
  };
21311
21311
  this.cluster = config.cluster || 'mainnet-beta';
@@ -21341,7 +21341,7 @@ class SolanaMobileWalletProvider {
21341
21341
  async ensureWallet() {
21342
21342
  if (this.wallet)
21343
21343
  return this.wallet;
21344
- const mod = await Promise.resolve().then(function () { return require('./index.browser-BJZ7fYwv.js'); });
21344
+ const mod = await Promise.resolve().then(function () { return require('./index.browser-D8u31irV.js'); });
21345
21345
  const chain = mapChainToWalletStandard(this.cluster);
21346
21346
  this.wallet = new mod.LocalSolanaMobileWalletAdapterWallet({
21347
21347
  appIdentity: this.appIdentity,
@@ -21361,7 +21361,7 @@ class SolanaMobileWalletProvider {
21361
21361
  return this.wallet;
21362
21362
  }
21363
21363
  /**
21364
- * Ensure the wallet has an active authorization. After a Tarobase session
21364
+ * Ensure the wallet has an active authorization. After a Bounded session
21365
21365
  * is restored from storage on cold-start, `wallet.accounts` is empty until
21366
21366
  * we silently reconnect from the AuthorizationCache. If the cache is also
21367
21367
  * empty, fall back to interactive `login()` (which surfaces the three-stage
@@ -21472,7 +21472,7 @@ class SolanaMobileWalletProvider {
21472
21472
  }
21473
21473
  const account = auth.accounts[0];
21474
21474
  // account.address is base64-encoded per MWA spec; convert to
21475
- // the base58 form Tarobase + the rest of the SDK use.
21475
+ // the base58 form Bounded + the rest of the SDK use.
21476
21476
  const base58Addr = new web3_js.PublicKey(bufferExports.Buffer.from(account.address, 'base64')).toBase58();
21477
21477
  // Reuse session if already valid for this address — skip the
21478
21478
  // signMessages roundtrip entirely.
@@ -21509,7 +21509,7 @@ class SolanaMobileWalletProvider {
21509
21509
  setCurrentUser(user);
21510
21510
  return user;
21511
21511
  }
21512
- // Create Tarobase session on the server.
21512
+ // Create Bounded session on the server.
21513
21513
  if (!result.signatureBase64 || !result.messageText) {
21514
21514
  throw new Error('MWA login completed without signature');
21515
21515
  }
@@ -21538,7 +21538,7 @@ class SolanaMobileWalletProvider {
21538
21538
  }
21539
21539
  const wallet = await this.ensureWallet();
21540
21540
  // Quick-check: wallet may already have authorization (e.g. from a
21541
- // previous in-page login) and a matching Tarobase session — skip
21541
+ // previous in-page login) and a matching Bounded session — skip
21542
21542
  // popups in that case.
21543
21543
  if (wallet.accounts.length > 0) {
21544
21544
  const accountPubkey = new web3_js.PublicKey(wallet.accounts[0].publicKey);
@@ -21569,14 +21569,14 @@ class SolanaMobileWalletProvider {
21569
21569
  const account = accounts[0];
21570
21570
  const accountPubkey = new web3_js.PublicKey(account.publicKey);
21571
21571
  const base58Addr = accountPubkey.toBase58();
21572
- // If we happen to already have a matching Tarobase session, reuse it.
21572
+ // If we happen to already have a matching Bounded session, reuse it.
21573
21573
  const existingSession = await getActiveSessionManager().getSession();
21574
21574
  if (existingSession && existingSession.address === base58Addr) {
21575
21575
  const user = { provider: this, address: base58Addr };
21576
21576
  setCurrentUser(user);
21577
21577
  return user;
21578
21578
  }
21579
- // Wallet popup #2: sign the Tarobase nonce message.
21579
+ // Wallet popup #2: sign the Bounded nonce message.
21580
21580
  //
21581
21581
  // We cannot call signMessageFeat.signMessage() directly here:
21582
21582
  // it would run as a JS continuation from the connect() resolve,
@@ -21589,7 +21589,7 @@ class SolanaMobileWalletProvider {
21589
21589
  // protocol's 3-second getDetectionPromise rejects with
21590
21590
  // ERROR_WALLET_NOT_FOUND.
21591
21591
  //
21592
- // Insert a Tarobase modal: the user's tap on "Sign in" provides a
21592
+ // Insert a Bounded modal: the user's tap on "Sign in" provides a
21593
21593
  // fresh activation, and signMessage is invoked synchronously
21594
21594
  // inside the click handler so the activation propagates.
21595
21595
  // C1: fetch the nonce HERE (after connect), not before — a pre-connect
@@ -21606,7 +21606,7 @@ class SolanaMobileWalletProvider {
21606
21606
  }
21607
21607
  const { signature: sigBytes } = signResult;
21608
21608
  const signatureBase64 = bufferExports.Buffer.from(sigBytes).toString('base64');
21609
- // Create Tarobase session on the server.
21609
+ // Create Bounded session on the server.
21610
21610
  const createSessionResult = await createSessionWithSignature(base58Addr, messageText, signatureBase64);
21611
21611
  await getActiveSessionManager().storeSession(base58Addr, createSessionResult.accessToken, createSessionResult.idToken, createSessionResult.refreshToken);
21612
21612
  // Auth-method marker is already 'mobile-wallet-adapter' from above.
@@ -21995,8 +21995,8 @@ class SolanaMobileWalletProvider {
21995
21995
  try {
21996
21996
  const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);
21997
21997
  let app_id = solTransactionData.appId;
21998
- if (typeof window !== 'undefined' && window.CUSTOM_TAROBASE_APP_ID_HEADER) {
21999
- app_id = window.CUSTOM_TAROBASE_APP_ID_HEADER;
21998
+ if (typeof window !== 'undefined' && window.CUSTOM_BOUNDED_APP_ID_HEADER) {
21999
+ app_id = window.CUSTOM_BOUNDED_APP_ID_HEADER;
22000
22000
  }
22001
22001
  if (!app_id) {
22002
22002
  throw new Error('App ID is required');
@@ -22603,8 +22603,8 @@ class PrivyWalletProvider {
22603
22603
  const connection = new web3_js.Connection(rpcUrl, "confirmed");
22604
22604
  const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);
22605
22605
  let app_id = solTransactionData.appId;
22606
- if (typeof window !== 'undefined' && window.CUSTOM_TAROBASE_APP_ID_HEADER) {
22607
- const customAppId = window.CUSTOM_TAROBASE_APP_ID_HEADER;
22606
+ if (typeof window !== 'undefined' && window.CUSTOM_BOUNDED_APP_ID_HEADER) {
22607
+ const customAppId = window.CUSTOM_BOUNDED_APP_ID_HEADER;
22608
22608
  if (customAppId) {
22609
22609
  app_id = customAppId;
22610
22610
  }
@@ -23215,7 +23215,7 @@ class PrivyExpoProvider {
23215
23215
  if (!wallet) {
23216
23216
  throw new Error('No embedded Solana wallet found after login. Ensure embeddedWallets.solana.createOnLogin is configured.');
23217
23217
  }
23218
- // Mint a Tarobase session by having the Privy Solana wallet sign the
23218
+ // Mint a Bounded session by having the Privy Solana wallet sign the
23219
23219
  // standard SIWS challenge — identical to Phantom/MWA, so the backend mints
23220
23220
  // the session via the proven wallet-signature path (no Privy-specific
23221
23221
  // token verification needed).
@@ -23235,8 +23235,8 @@ class PrivyExpoProvider {
23235
23235
  const connection = new web3_js.Connection(rpcUrl, 'confirmed');
23236
23236
  const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);
23237
23237
  let app_id = solTransactionData.appId;
23238
- if (typeof globalThis !== 'undefined' && globalThis.CUSTOM_TAROBASE_APP_ID_HEADER) {
23239
- app_id = globalThis.CUSTOM_TAROBASE_APP_ID_HEADER;
23238
+ if (typeof globalThis !== 'undefined' && globalThis.CUSTOM_BOUNDED_APP_ID_HEADER) {
23239
+ app_id = globalThis.CUSTOM_BOUNDED_APP_ID_HEADER;
23240
23240
  }
23241
23241
  if (!app_id) {
23242
23242
  throw new Error('App ID is required');
@@ -23390,7 +23390,7 @@ class PrivyExpoProvider {
23390
23390
  // Private helpers
23391
23391
  // -------------------------------------------------------------------
23392
23392
  /**
23393
- * Mint a Tarobase session from a Privy Solana wallet by signing the canonical
23393
+ * Mint a Bounded session from a Privy Solana wallet by signing the canonical
23394
23394
  * SIWS challenge (nonce -> genSolanaMessage -> wallet.signMessage). This reuses
23395
23395
  * createSessionWithSignature — the exact path Phantom, the mobile wallet
23396
23396
  * adapter, and the guest device-key use — so the bounded /session issuer mints
@@ -23569,4 +23569,4 @@ exports.wsGet = wsGet;
23569
23569
  exports.wsGetMany = wsGetMany;
23570
23570
  exports.wsQuery = wsQuery;
23571
23571
  exports.wsSet = wsSet;
23572
- //# sourceMappingURL=index-VGx-869x.js.map
23572
+ //# sourceMappingURL=index-BL-0ZKBl.js.map