convex 1.26.0-alpha.2 → 1.26.0-alpha.3

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 (207) hide show
  1. package/dist/browser.bundle.js +97 -22
  2. package/dist/browser.bundle.js.map +2 -2
  3. package/dist/cjs/browser/simple_client.js +25 -0
  4. package/dist/cjs/browser/simple_client.js.map +2 -2
  5. package/dist/cjs/browser/sync/client.js +41 -2
  6. package/dist/cjs/browser/sync/client.js.map +2 -2
  7. package/dist/cjs/browser/sync/request_manager.js +8 -1
  8. package/dist/cjs/browser/sync/request_manager.js.map +2 -2
  9. package/dist/cjs/browser/sync/web_socket_manager.js +5 -1
  10. package/dist/cjs/browser/sync/web_socket_manager.js.map +2 -2
  11. package/dist/cjs/bundler/context.js.map +1 -1
  12. package/dist/cjs/bundler/index.js +32 -8
  13. package/dist/cjs/bundler/index.js.map +3 -3
  14. package/dist/cjs/cli/codegen.js +1 -2
  15. package/dist/cjs/cli/codegen.js.map +2 -2
  16. package/dist/cjs/cli/deploy.js +0 -1
  17. package/dist/cjs/cli/deploy.js.map +2 -2
  18. package/dist/cjs/cli/dev.js +6 -1
  19. package/dist/cjs/cli/dev.js.map +2 -2
  20. package/dist/cjs/cli/lib/codegen.js.map +2 -2
  21. package/dist/cjs/cli/lib/command.js +0 -8
  22. package/dist/cjs/cli/lib/command.js.map +2 -2
  23. package/dist/cjs/cli/lib/components.js +1 -10
  24. package/dist/cjs/cli/lib/components.js.map +2 -2
  25. package/dist/cjs/cli/lib/config.js +0 -14
  26. package/dist/cjs/cli/lib/config.js.map +2 -2
  27. package/dist/cjs/cli/lib/deploy2.js +0 -1
  28. package/dist/cjs/cli/lib/deploy2.js.map +2 -2
  29. package/dist/cjs/cli/lib/deploymentSelection.js.map +2 -2
  30. package/dist/cjs/cli/lib/dev.js +0 -1
  31. package/dist/cjs/cli/lib/dev.js.map +2 -2
  32. package/dist/cjs/cli/lib/envvars.js +29 -0
  33. package/dist/cjs/cli/lib/envvars.js.map +2 -2
  34. package/dist/cjs/cli/lib/push.js +0 -8
  35. package/dist/cjs/cli/lib/push.js.map +2 -2
  36. package/dist/cjs/cli/lib/run.js +0 -1
  37. package/dist/cjs/cli/lib/run.js.map +2 -2
  38. package/dist/cjs/cli/lib/usage.js +4 -4
  39. package/dist/cjs/cli/lib/usage.js.map +1 -1
  40. package/dist/cjs/cli/lib/utils/prompts.js +4 -4
  41. package/dist/cjs/cli/lib/utils/prompts.js.map +2 -2
  42. package/dist/cjs/index.js +1 -1
  43. package/dist/cjs/index.js.map +1 -1
  44. package/dist/cjs/react/client.js +37 -0
  45. package/dist/cjs/react/client.js.map +2 -2
  46. package/dist/cjs/react/index.js +1 -0
  47. package/dist/cjs/react/index.js.map +2 -2
  48. package/dist/cjs-types/browser/simple_client.d.ts +19 -0
  49. package/dist/cjs-types/browser/simple_client.d.ts.map +1 -1
  50. package/dist/cjs-types/browser/sync/client.d.ts +19 -0
  51. package/dist/cjs-types/browser/sync/client.d.ts.map +1 -1
  52. package/dist/cjs-types/browser/sync/request_manager.d.ts +2 -1
  53. package/dist/cjs-types/browser/sync/request_manager.d.ts.map +1 -1
  54. package/dist/cjs-types/browser/sync/web_socket_manager.d.ts +2 -1
  55. package/dist/cjs-types/browser/sync/web_socket_manager.d.ts.map +1 -1
  56. package/dist/cjs-types/bundler/index.d.ts.map +1 -1
  57. package/dist/cjs-types/cli/codegen.d.ts.map +1 -1
  58. package/dist/cjs-types/cli/dev.d.ts +0 -1
  59. package/dist/cjs-types/cli/dev.d.ts.map +1 -1
  60. package/dist/cjs-types/cli/lib/codegen.d.ts +0 -1
  61. package/dist/cjs-types/cli/lib/codegen.d.ts.map +1 -1
  62. package/dist/cjs-types/cli/lib/command.d.ts +0 -2
  63. package/dist/cjs-types/cli/lib/command.d.ts.map +1 -1
  64. package/dist/cjs-types/cli/lib/components.d.ts.map +1 -1
  65. package/dist/cjs-types/cli/lib/config.d.ts +0 -4
  66. package/dist/cjs-types/cli/lib/config.d.ts.map +1 -1
  67. package/dist/cjs-types/cli/lib/deploy2.d.ts.map +1 -1
  68. package/dist/cjs-types/cli/lib/deploymentSelection.d.ts.map +1 -1
  69. package/dist/cjs-types/cli/lib/dev.d.ts +0 -1
  70. package/dist/cjs-types/cli/lib/dev.d.ts.map +1 -1
  71. package/dist/cjs-types/cli/lib/envvars.d.ts +1 -0
  72. package/dist/cjs-types/cli/lib/envvars.d.ts.map +1 -1
  73. package/dist/cjs-types/cli/lib/push.d.ts +0 -1
  74. package/dist/cjs-types/cli/lib/push.d.ts.map +1 -1
  75. package/dist/cjs-types/cli/lib/run.d.ts.map +1 -1
  76. package/dist/cjs-types/index.d.ts +1 -1
  77. package/dist/cjs-types/react/client.d.ts +30 -0
  78. package/dist/cjs-types/react/client.d.ts.map +1 -1
  79. package/dist/cjs-types/react/index.d.ts +1 -1
  80. package/dist/cjs-types/react/index.d.ts.map +1 -1
  81. package/dist/cli.bundle.cjs +1172 -1352
  82. package/dist/cli.bundle.cjs.map +4 -4
  83. package/dist/esm/browser/simple_client.js +25 -0
  84. package/dist/esm/browser/simple_client.js.map +2 -2
  85. package/dist/esm/browser/sync/client.js +41 -2
  86. package/dist/esm/browser/sync/client.js.map +2 -2
  87. package/dist/esm/browser/sync/request_manager.js +8 -1
  88. package/dist/esm/browser/sync/request_manager.js.map +2 -2
  89. package/dist/esm/browser/sync/web_socket_manager.js +5 -1
  90. package/dist/esm/browser/sync/web_socket_manager.js.map +2 -2
  91. package/dist/esm/bundler/context.js.map +1 -1
  92. package/dist/esm/bundler/index.js +31 -7
  93. package/dist/esm/bundler/index.js.map +2 -2
  94. package/dist/esm/cli/codegen.js +1 -2
  95. package/dist/esm/cli/codegen.js.map +2 -2
  96. package/dist/esm/cli/deploy.js +0 -1
  97. package/dist/esm/cli/deploy.js.map +2 -2
  98. package/dist/esm/cli/dev.js +6 -1
  99. package/dist/esm/cli/dev.js.map +2 -2
  100. package/dist/esm/cli/lib/codegen.js.map +2 -2
  101. package/dist/esm/cli/lib/command.js +0 -8
  102. package/dist/esm/cli/lib/command.js.map +2 -2
  103. package/dist/esm/cli/lib/components.js +1 -11
  104. package/dist/esm/cli/lib/components.js.map +2 -2
  105. package/dist/esm/cli/lib/config.js +0 -13
  106. package/dist/esm/cli/lib/config.js.map +2 -2
  107. package/dist/esm/cli/lib/deploy2.js +0 -1
  108. package/dist/esm/cli/lib/deploy2.js.map +2 -2
  109. package/dist/esm/cli/lib/deploymentSelection.js.map +2 -2
  110. package/dist/esm/cli/lib/dev.js +0 -1
  111. package/dist/esm/cli/lib/dev.js.map +2 -2
  112. package/dist/esm/cli/lib/envvars.js +28 -0
  113. package/dist/esm/cli/lib/envvars.js.map +2 -2
  114. package/dist/esm/cli/lib/push.js +1 -14
  115. package/dist/esm/cli/lib/push.js.map +2 -2
  116. package/dist/esm/cli/lib/run.js +0 -1
  117. package/dist/esm/cli/lib/run.js.map +2 -2
  118. package/dist/esm/cli/lib/usage.js +4 -4
  119. package/dist/esm/cli/lib/usage.js.map +1 -1
  120. package/dist/esm/cli/lib/utils/prompts.js +4 -4
  121. package/dist/esm/cli/lib/utils/prompts.js.map +2 -2
  122. package/dist/esm/index.js +1 -1
  123. package/dist/esm/index.js.map +1 -1
  124. package/dist/esm/react/client.js +37 -1
  125. package/dist/esm/react/client.js.map +2 -2
  126. package/dist/esm/react/index.js +2 -1
  127. package/dist/esm/react/index.js.map +2 -2
  128. package/dist/esm-types/browser/simple_client.d.ts +19 -0
  129. package/dist/esm-types/browser/simple_client.d.ts.map +1 -1
  130. package/dist/esm-types/browser/sync/client.d.ts +19 -0
  131. package/dist/esm-types/browser/sync/client.d.ts.map +1 -1
  132. package/dist/esm-types/browser/sync/request_manager.d.ts +2 -1
  133. package/dist/esm-types/browser/sync/request_manager.d.ts.map +1 -1
  134. package/dist/esm-types/browser/sync/web_socket_manager.d.ts +2 -1
  135. package/dist/esm-types/browser/sync/web_socket_manager.d.ts.map +1 -1
  136. package/dist/esm-types/bundler/index.d.ts.map +1 -1
  137. package/dist/esm-types/cli/codegen.d.ts.map +1 -1
  138. package/dist/esm-types/cli/dev.d.ts +0 -1
  139. package/dist/esm-types/cli/dev.d.ts.map +1 -1
  140. package/dist/esm-types/cli/lib/codegen.d.ts +0 -1
  141. package/dist/esm-types/cli/lib/codegen.d.ts.map +1 -1
  142. package/dist/esm-types/cli/lib/command.d.ts +0 -2
  143. package/dist/esm-types/cli/lib/command.d.ts.map +1 -1
  144. package/dist/esm-types/cli/lib/components.d.ts.map +1 -1
  145. package/dist/esm-types/cli/lib/config.d.ts +0 -4
  146. package/dist/esm-types/cli/lib/config.d.ts.map +1 -1
  147. package/dist/esm-types/cli/lib/deploy2.d.ts.map +1 -1
  148. package/dist/esm-types/cli/lib/deploymentSelection.d.ts.map +1 -1
  149. package/dist/esm-types/cli/lib/dev.d.ts +0 -1
  150. package/dist/esm-types/cli/lib/dev.d.ts.map +1 -1
  151. package/dist/esm-types/cli/lib/envvars.d.ts +1 -0
  152. package/dist/esm-types/cli/lib/envvars.d.ts.map +1 -1
  153. package/dist/esm-types/cli/lib/push.d.ts +0 -1
  154. package/dist/esm-types/cli/lib/push.d.ts.map +1 -1
  155. package/dist/esm-types/cli/lib/run.d.ts.map +1 -1
  156. package/dist/esm-types/index.d.ts +1 -1
  157. package/dist/esm-types/react/client.d.ts +30 -0
  158. package/dist/esm-types/react/client.d.ts.map +1 -1
  159. package/dist/esm-types/react/index.d.ts +1 -1
  160. package/dist/esm-types/react/index.d.ts.map +1 -1
  161. package/dist/react.bundle.js +169 -81
  162. package/dist/react.bundle.js.map +4 -4
  163. package/package.json +1 -1
  164. package/src/browser/.claude/settings.local.json +1 -1
  165. package/src/browser/simple_client.ts +29 -0
  166. package/src/browser/sync/client.ts +52 -1
  167. package/src/browser/sync/request_manager.test.ts +59 -1
  168. package/src/browser/sync/request_manager.ts +10 -1
  169. package/src/browser/sync/web_socket_manager.ts +4 -0
  170. package/src/bundler/context.ts +1 -1
  171. package/src/bundler/index.ts +36 -9
  172. package/src/cli/codegen.ts +0 -1
  173. package/src/cli/deploy.ts +0 -1
  174. package/src/cli/dev.ts +6 -1
  175. package/src/cli/lib/codegen.ts +0 -1
  176. package/src/cli/lib/command.ts +0 -10
  177. package/src/cli/lib/components.ts +0 -12
  178. package/src/cli/lib/config.ts +4 -24
  179. package/src/cli/lib/deploy2.ts +0 -1
  180. package/src/cli/lib/deploymentSelection.ts +2 -0
  181. package/src/cli/lib/dev.ts +0 -2
  182. package/src/cli/lib/envvars.ts +42 -0
  183. package/src/cli/lib/push.ts +1 -17
  184. package/src/cli/lib/run.ts +0 -1
  185. package/src/cli/lib/usage.ts +4 -4
  186. package/src/cli/lib/utils/prompts.ts +4 -4
  187. package/src/index.ts +1 -1
  188. package/src/react/client.ts +62 -1
  189. package/src/react/index.ts +1 -0
  190. package/dist/cjs/bundler/debugBundle.js +0 -192
  191. package/dist/cjs/bundler/debugBundle.js.map +0 -7
  192. package/dist/cjs/bundler/depgraph.js +0 -119
  193. package/dist/cjs/bundler/depgraph.js.map +0 -7
  194. package/dist/cjs-types/bundler/debugBundle.d.ts +0 -46
  195. package/dist/cjs-types/bundler/debugBundle.d.ts.map +0 -1
  196. package/dist/cjs-types/bundler/depgraph.d.ts +0 -41
  197. package/dist/cjs-types/bundler/depgraph.d.ts.map +0 -1
  198. package/dist/esm/bundler/debugBundle.js +0 -163
  199. package/dist/esm/bundler/debugBundle.js.map +0 -7
  200. package/dist/esm/bundler/depgraph.js +0 -87
  201. package/dist/esm/bundler/depgraph.js.map +0 -7
  202. package/dist/esm-types/bundler/debugBundle.d.ts +0 -46
  203. package/dist/esm-types/bundler/debugBundle.d.ts.map +0 -1
  204. package/dist/esm-types/bundler/depgraph.d.ts +0 -41
  205. package/dist/esm-types/bundler/depgraph.d.ts.map +0 -1
  206. package/src/bundler/debugBundle.ts +0 -220
  207. package/src/bundler/depgraph.ts +0 -170
@@ -28,7 +28,7 @@ var convex = (() => {
28
28
  });
29
29
 
30
30
  // src/index.ts
31
- var version = "1.26.0-alpha.2";
31
+ var version = "1.26.0-alpha.3";
32
32
 
33
33
  // src/values/base64.ts
34
34
  var base64_exports = {};
@@ -897,8 +897,9 @@ var convex = (() => {
897
897
 
898
898
  // src/browser/sync/request_manager.ts
899
899
  var RequestManager = class {
900
- constructor(logger) {
900
+ constructor(logger, markConnectionStateDirty) {
901
901
  this.logger = logger;
902
+ this.markConnectionStateDirty = markConnectionStateDirty;
902
903
  this.inflightRequests = /* @__PURE__ */ new Map();
903
904
  this.requestsOlderThanRestart = /* @__PURE__ */ new Set();
904
905
  }
@@ -919,6 +920,7 @@ var convex = (() => {
919
920
  this.inflightActionsCount++;
920
921
  }
921
922
  });
923
+ this.markConnectionStateDirty();
922
924
  return result;
923
925
  }
924
926
  /**
@@ -971,6 +973,7 @@ var convex = (() => {
971
973
  } else if (requestInfo.message.type === "Mutation") {
972
974
  this.inflightMutationsCount--;
973
975
  }
976
+ this.markConnectionStateDirty();
974
977
  return { requestId: response.requestId, result };
975
978
  }
976
979
  requestInfo.status = {
@@ -998,6 +1001,9 @@ var convex = (() => {
998
1001
  this.requestsOlderThanRestart.delete(requestId);
999
1002
  }
1000
1003
  }
1004
+ if (completeRequests.size > 0) {
1005
+ this.markConnectionStateDirty();
1006
+ }
1001
1007
  return completeRequests;
1002
1008
  }
1003
1009
  restart() {
@@ -1025,6 +1031,7 @@ var convex = (() => {
1025
1031
  });
1026
1032
  }
1027
1033
  }
1034
+ this.markConnectionStateDirty();
1028
1035
  return allMessages;
1029
1036
  }
1030
1037
  resume() {
@@ -1576,6 +1583,25 @@ var convex = (() => {
1576
1583
  return "Unknown";
1577
1584
  }
1578
1585
  var WebSocketManager = class {
1586
+ constructor(uri, callbacks, webSocketConstructor, logger, markConnectionStateDirty) {
1587
+ this.markConnectionStateDirty = markConnectionStateDirty;
1588
+ this.webSocketConstructor = webSocketConstructor;
1589
+ this.socket = { state: "disconnected" };
1590
+ this.connectionCount = 0;
1591
+ this.lastCloseReason = "InitialConnect";
1592
+ this.defaultInitialBackoff = 1e3;
1593
+ this.maxBackoff = 16e3;
1594
+ this.retries = 0;
1595
+ this.serverInactivityThreshold = 3e4;
1596
+ this.reconnectDueToServerInactivityTimeout = null;
1597
+ this.uri = uri;
1598
+ this.onOpen = callbacks.onOpen;
1599
+ this.onResume = callbacks.onResume;
1600
+ this.onMessage = callbacks.onMessage;
1601
+ this.onServerDisconnectError = callbacks.onServerDisconnectError;
1602
+ this.logger = logger;
1603
+ this.connect();
1604
+ }
1579
1605
  socket;
1580
1606
  connectionCount;
1581
1607
  _hasEverConnected = false;
@@ -1597,29 +1623,12 @@ var convex = (() => {
1597
1623
  webSocketConstructor;
1598
1624
  logger;
1599
1625
  onServerDisconnectError;
1600
- constructor(uri, callbacks, webSocketConstructor, logger) {
1601
- this.webSocketConstructor = webSocketConstructor;
1602
- this.socket = { state: "disconnected" };
1603
- this.connectionCount = 0;
1604
- this.lastCloseReason = "InitialConnect";
1605
- this.defaultInitialBackoff = 1e3;
1606
- this.maxBackoff = 16e3;
1607
- this.retries = 0;
1608
- this.serverInactivityThreshold = 3e4;
1609
- this.reconnectDueToServerInactivityTimeout = null;
1610
- this.uri = uri;
1611
- this.onOpen = callbacks.onOpen;
1612
- this.onResume = callbacks.onResume;
1613
- this.onMessage = callbacks.onMessage;
1614
- this.onServerDisconnectError = callbacks.onServerDisconnectError;
1615
- this.logger = logger;
1616
- this.connect();
1617
- }
1618
1626
  setSocketState(state) {
1619
1627
  this.socket = state;
1620
1628
  this._logVerbose(
1621
1629
  `socket state changed: ${this.socket.state}, paused: ${"paused" in this.socket ? this.socket.paused : void 0}`
1622
1630
  );
1631
+ this.markConnectionStateDirty();
1623
1632
  }
1624
1633
  connect() {
1625
1634
  if (this.socket.state === "terminated") {
@@ -1673,6 +1682,7 @@ var convex = (() => {
1673
1682
  const response = this.onMessage(serverMessage);
1674
1683
  if (response.hasSyncedPastLastReconnect) {
1675
1684
  this.retries = 0;
1685
+ this.markConnectionStateDirty();
1676
1686
  }
1677
1687
  };
1678
1688
  ws.onclose = (event) => {
@@ -1753,6 +1763,7 @@ var convex = (() => {
1753
1763
  scheduleReconnect(reason) {
1754
1764
  this.socket = { state: "disconnected" };
1755
1765
  const backoff = this.nextBackoff(reason);
1766
+ this.markConnectionStateDirty();
1756
1767
  this.logger.log(`Attempting reconnect in ${backoff}ms`);
1757
1768
  setTimeout(() => this.connect(), backoff);
1758
1769
  }
@@ -2388,6 +2399,9 @@ var convex = (() => {
2388
2399
  debug;
2389
2400
  logger;
2390
2401
  maxObservedTimestamp;
2402
+ connectionStateSubscribers = /* @__PURE__ */ new Map();
2403
+ nextConnectionStateSubscriberId = 0;
2404
+ _lastPublishedConnectionState;
2391
2405
  /**
2392
2406
  * @param address - The url of your Convex deployment, often provided
2393
2407
  * by an environment variable. E.g. `https://small-mouse-123.convex.cloud`.
@@ -2437,7 +2451,10 @@ var convex = (() => {
2437
2451
  (queryId) => this.state.queryPath(queryId),
2438
2452
  this.logger
2439
2453
  );
2440
- this.requestManager = new RequestManager(this.logger);
2454
+ this.requestManager = new RequestManager(
2455
+ this.logger,
2456
+ this.markConnectionStateDirty
2457
+ );
2441
2458
  this.authenticationManager = new AuthenticationManager(
2442
2459
  this.state,
2443
2460
  {
@@ -2588,7 +2605,8 @@ var convex = (() => {
2588
2605
  onServerDisconnectError: options.onServerDisconnectError
2589
2606
  },
2590
2607
  webSocketConstructor,
2591
- this.logger
2608
+ this.logger,
2609
+ this.markConnectionStateDirty
2592
2610
  );
2593
2611
  this.mark("convexClientConstructed");
2594
2612
  }
@@ -2805,6 +2823,38 @@ var convex = (() => {
2805
2823
  inflightActions: this.requestManager.inflightActions()
2806
2824
  };
2807
2825
  }
2826
+ /**
2827
+ * Call this whenever the connection state may have changed in a way that could
2828
+ * require publishing it. Schedules a possibly update.
2829
+ */
2830
+ markConnectionStateDirty = () => {
2831
+ void Promise.resolve().then(() => {
2832
+ const curConnectionState = this.connectionState();
2833
+ if (JSON.stringify(curConnectionState) !== JSON.stringify(this._lastPublishedConnectionState)) {
2834
+ this._lastPublishedConnectionState = curConnectionState;
2835
+ for (const cb of this.connectionStateSubscribers.values()) {
2836
+ cb(curConnectionState);
2837
+ }
2838
+ }
2839
+ });
2840
+ };
2841
+ /**
2842
+ * Subscribe to the {@link ConnectionState} between the client and the Convex
2843
+ * backend, calling a callback each time it changes.
2844
+ *
2845
+ * Subscribed callbacks will be called when any part of ConnectionState changes.
2846
+ * ConnectionState may grow in future versions (e.g. to provide a array of
2847
+ * inflight requests) in which case callbacks would be called more frequently.
2848
+ *
2849
+ * @returns An unsubscribe function to stop listening.
2850
+ */
2851
+ subscribeToConnectionState(cb) {
2852
+ const id = this.nextConnectionStateSubscriberId++;
2853
+ this.connectionStateSubscribers.set(id, cb);
2854
+ return () => {
2855
+ this.connectionStateSubscribers.delete(id);
2856
+ };
2857
+ }
2808
2858
  /**
2809
2859
  * Execute a mutation function.
2810
2860
  *
@@ -3275,6 +3325,31 @@ var convex = (() => {
3275
3325
  );
3276
3326
  });
3277
3327
  }
3328
+ /**
3329
+ * Get the current {@link ConnectionState} between the client and the Convex
3330
+ * backend.
3331
+ *
3332
+ * @returns The {@link ConnectionState} with the Convex backend.
3333
+ */
3334
+ connectionState() {
3335
+ if (this.disabled) throw new Error("ConvexClient is disabled");
3336
+ return this.client.connectionState();
3337
+ }
3338
+ /**
3339
+ * Subscribe to the {@link ConnectionState} between the client and the Convex
3340
+ * backend, calling a callback each time it changes.
3341
+ *
3342
+ * Subscribed callbacks will be called when any part of ConnectionState changes.
3343
+ * ConnectionState may grow in future versions (e.g. to provide a array of
3344
+ * inflight requests) in which case callbacks would be called more frequently.
3345
+ *
3346
+ * @returns An unsubscribe function to stop listening.
3347
+ */
3348
+ subscribeToConnectionState(cb) {
3349
+ if (this.disabled) return () => {
3350
+ };
3351
+ return this.client.subscribeToConnectionState(cb);
3352
+ }
3278
3353
  };
3279
3354
 
3280
3355
  // src/browser/http_client.ts