convex 1.44.0 → 1.45.0-alpha.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 (577) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/browser.bundle.js +1 -1
  3. package/dist/browser.bundle.js.map +1 -1
  4. package/dist/cjs/cli/convexExport.js +1 -1
  5. package/dist/cjs/cli/convexExport.js.map +1 -1
  6. package/dist/cjs/cli/index.js +2 -32
  7. package/dist/cjs/cli/index.js.map +2 -2
  8. package/dist/cjs/cli/lib/api.js +11 -5
  9. package/dist/cjs/cli/lib/api.js.map +2 -2
  10. package/dist/cjs/cli/lib/convexExport.js +12 -1
  11. package/dist/cjs/cli/lib/convexExport.js.map +2 -2
  12. package/dist/cjs/cli/lib/dashboard.js.map +2 -2
  13. package/dist/cjs/cli/lib/generatedFunctionLogsApi.js.map +1 -1
  14. package/dist/cjs/cli/lib/localDeployment/upgrade.js +23 -188
  15. package/dist/cjs/cli/lib/localDeployment/upgrade.js.map +3 -3
  16. package/dist/cjs/cli/lib/mcp/tools/index.js.map +1 -1
  17. package/dist/cjs/cli/mcp.js +60 -63
  18. package/dist/cjs/cli/mcp.js.map +2 -2
  19. package/dist/cjs/index.js +1 -1
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs-types/cli/lib/api.d.ts.map +1 -1
  22. package/dist/cjs-types/cli/lib/convexExport.d.ts +1 -0
  23. package/dist/cjs-types/cli/lib/convexExport.d.ts.map +1 -1
  24. package/dist/cjs-types/cli/lib/dashboard.d.ts.map +1 -1
  25. package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts +2 -0
  26. package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
  27. package/dist/cjs-types/cli/lib/localDeployment/upgrade.d.ts +2 -0
  28. package/dist/cjs-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
  29. package/dist/cjs-types/cli/lib/mcp/tools/index.d.ts +1 -1
  30. package/dist/cjs-types/cli/lib/mcp/tools/index.d.ts.map +1 -1
  31. package/dist/cjs-types/cli/mcp.d.ts +3 -0
  32. package/dist/cjs-types/cli/mcp.d.ts.map +1 -1
  33. package/dist/cjs-types/index.d.ts +1 -1
  34. package/dist/cjs-types/index.d.ts.map +1 -1
  35. package/dist/cli.bundle.cjs +25565 -21249
  36. package/dist/cli.bundle.cjs.map +4 -4
  37. package/dist/esm/cli/convexExport.js +1 -1
  38. package/dist/esm/cli/convexExport.js.map +1 -1
  39. package/dist/esm/cli/index.js +2 -32
  40. package/dist/esm/cli/index.js.map +2 -2
  41. package/dist/esm/cli/lib/api.js +11 -5
  42. package/dist/esm/cli/lib/api.js.map +2 -2
  43. package/dist/esm/cli/lib/convexExport.js +16 -3
  44. package/dist/esm/cli/lib/convexExport.js.map +2 -2
  45. package/dist/esm/cli/lib/dashboard.js.map +2 -2
  46. package/dist/esm/cli/lib/localDeployment/upgrade.js +22 -190
  47. package/dist/esm/cli/lib/localDeployment/upgrade.js.map +2 -2
  48. package/dist/esm/cli/lib/mcp/tools/index.js.map +1 -1
  49. package/dist/esm/cli/mcp.js +60 -67
  50. package/dist/esm/cli/mcp.js.map +2 -2
  51. package/dist/esm/index.js +1 -1
  52. package/dist/esm/index.js.map +1 -1
  53. package/dist/esm-types/cli/lib/api.d.ts.map +1 -1
  54. package/dist/esm-types/cli/lib/convexExport.d.ts +1 -0
  55. package/dist/esm-types/cli/lib/convexExport.d.ts.map +1 -1
  56. package/dist/esm-types/cli/lib/dashboard.d.ts.map +1 -1
  57. package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts +2 -0
  58. package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
  59. package/dist/esm-types/cli/lib/localDeployment/upgrade.d.ts +2 -0
  60. package/dist/esm-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
  61. package/dist/esm-types/cli/lib/mcp/tools/index.d.ts +1 -1
  62. package/dist/esm-types/cli/lib/mcp/tools/index.d.ts.map +1 -1
  63. package/dist/esm-types/cli/mcp.d.ts +3 -0
  64. package/dist/esm-types/cli/mcp.d.ts.map +1 -1
  65. package/dist/esm-types/index.d.ts +1 -1
  66. package/dist/esm-types/index.d.ts.map +1 -1
  67. package/dist/react.bundle.js +1 -1
  68. package/dist/react.bundle.js.map +1 -1
  69. package/package.json +3 -3
  70. package/src/cli/convexExport.ts +1 -1
  71. package/src/cli/index.ts +2 -35
  72. package/src/cli/lib/api.ts +11 -5
  73. package/src/cli/lib/convexExport.ts +21 -0
  74. package/src/cli/lib/dashboard.ts +2 -0
  75. package/src/cli/lib/generatedFunctionLogsApi.ts +2 -0
  76. package/src/cli/lib/localDeployment/upgrade.ts +34 -207
  77. package/src/cli/lib/mcp/tools/index.ts +1 -1
  78. package/src/cli/mcp.ts +64 -72
  79. package/src/index.ts +1 -1
  80. package/dist/cjs-types/browser/http_client.test.d.ts +0 -2
  81. package/dist/cjs-types/browser/http_client.test.d.ts.map +0 -1
  82. package/dist/cjs-types/browser/query_options.test.d.ts +0 -2
  83. package/dist/cjs-types/browser/query_options.test.d.ts.map +0 -1
  84. package/dist/cjs-types/browser/simple_client.test.d.ts +0 -2
  85. package/dist/cjs-types/browser/simple_client.test.d.ts.map +0 -1
  86. package/dist/cjs-types/browser/sync/client.test.d.ts +0 -5
  87. package/dist/cjs-types/browser/sync/client.test.d.ts.map +0 -1
  88. package/dist/cjs-types/browser/sync/client_node.test.d.ts +0 -2
  89. package/dist/cjs-types/browser/sync/client_node.test.d.ts.map +0 -1
  90. package/dist/cjs-types/browser/sync/client_node_test_helpers.d.ts +0 -44
  91. package/dist/cjs-types/browser/sync/client_node_test_helpers.d.ts.map +0 -1
  92. package/dist/cjs-types/browser/sync/local_state.test.d.ts +0 -2
  93. package/dist/cjs-types/browser/sync/local_state.test.d.ts.map +0 -1
  94. package/dist/cjs-types/browser/sync/optimistic_query_set.test.d.ts +0 -2
  95. package/dist/cjs-types/browser/sync/optimistic_query_set.test.d.ts.map +0 -1
  96. package/dist/cjs-types/browser/sync/paginated_query_client.test.d.ts +0 -2
  97. package/dist/cjs-types/browser/sync/paginated_query_client.test.d.ts.map +0 -1
  98. package/dist/cjs-types/browser/sync/protocol.test.d.ts +0 -5
  99. package/dist/cjs-types/browser/sync/protocol.test.d.ts.map +0 -1
  100. package/dist/cjs-types/browser/sync/request_manager.test.d.ts +0 -2
  101. package/dist/cjs-types/browser/sync/request_manager.test.d.ts.map +0 -1
  102. package/dist/cjs-types/bundler/fs.test.d.ts +0 -2
  103. package/dist/cjs-types/bundler/fs.test.d.ts.map +0 -1
  104. package/dist/cjs-types/bundler/index.test.d.ts +0 -2
  105. package/dist/cjs-types/bundler/index.test.d.ts.map +0 -1
  106. package/dist/cjs-types/cli/codegen_templates/api.test.d.ts +0 -2
  107. package/dist/cjs-types/cli/codegen_templates/api.test.d.ts.map +0 -1
  108. package/dist/cjs-types/cli/codegen_templates/common.test.d.ts +0 -2
  109. package/dist/cjs-types/cli/codegen_templates/common.test.d.ts.map +0 -1
  110. package/dist/cjs-types/cli/codegen_templates/templates.test.d.ts +0 -2
  111. package/dist/cjs-types/cli/codegen_templates/templates.test.d.ts.map +0 -1
  112. package/dist/cjs-types/cli/codegen_templates/validator_helpers.test.d.ts +0 -2
  113. package/dist/cjs-types/cli/codegen_templates/validator_helpers.test.d.ts.map +0 -1
  114. package/dist/cjs-types/cli/configure.test.d.ts +0 -2
  115. package/dist/cjs-types/cli/configure.test.d.ts.map +0 -1
  116. package/dist/cjs-types/cli/deploymentCreate.test.d.ts +0 -2
  117. package/dist/cjs-types/cli/deploymentCreate.test.d.ts.map +0 -1
  118. package/dist/cjs-types/cli/deploymentSelect.test.d.ts +0 -2
  119. package/dist/cjs-types/cli/deploymentSelect.test.d.ts.map +0 -1
  120. package/dist/cjs-types/cli/deploymentSelection.test.d.ts +0 -2
  121. package/dist/cjs-types/cli/deploymentSelection.test.d.ts.map +0 -1
  122. package/dist/cjs-types/cli/deploymentToken.test.d.ts +0 -2
  123. package/dist/cjs-types/cli/deploymentToken.test.d.ts.map +0 -1
  124. package/dist/cjs-types/cli/dev.test.d.ts +0 -2
  125. package/dist/cjs-types/cli/dev.test.d.ts.map +0 -1
  126. package/dist/cjs-types/cli/envDefault.test.d.ts +0 -2
  127. package/dist/cjs-types/cli/envDefault.test.d.ts.map +0 -1
  128. package/dist/cjs-types/cli/lib/aiFiles/agentsmd.test.d.ts +0 -2
  129. package/dist/cjs-types/cli/lib/aiFiles/agentsmd.test.d.ts.map +0 -1
  130. package/dist/cjs-types/cli/lib/aiFiles/claudemd.test.d.ts +0 -2
  131. package/dist/cjs-types/cli/lib/aiFiles/claudemd.test.d.ts.map +0 -1
  132. package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.test.d.ts +0 -2
  133. package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.test.d.ts.map +0 -1
  134. package/dist/cjs-types/cli/lib/aiFiles/index.test.d.ts +0 -2
  135. package/dist/cjs-types/cli/lib/aiFiles/index.test.d.ts.map +0 -1
  136. package/dist/cjs-types/cli/lib/aiFiles/integration.test.d.ts +0 -2
  137. package/dist/cjs-types/cli/lib/aiFiles/integration.test.d.ts.map +0 -1
  138. package/dist/cjs-types/cli/lib/aiFiles/prompt.test.d.ts +0 -2
  139. package/dist/cjs-types/cli/lib/aiFiles/prompt.test.d.ts.map +0 -1
  140. package/dist/cjs-types/cli/lib/aiFiles/state.test.d.ts +0 -2
  141. package/dist/cjs-types/cli/lib/aiFiles/state.test.d.ts.map +0 -1
  142. package/dist/cjs-types/cli/lib/aiFiles/utils.test.d.ts +0 -2
  143. package/dist/cjs-types/cli/lib/aiFiles/utils.test.d.ts.map +0 -1
  144. package/dist/cjs-types/cli/lib/codegen.test.d.ts +0 -2
  145. package/dist/cjs-types/cli/lib/codegen.test.d.ts.map +0 -1
  146. package/dist/cjs-types/cli/lib/components.test.d.ts +0 -2
  147. package/dist/cjs-types/cli/lib/components.test.d.ts.map +0 -1
  148. package/dist/cjs-types/cli/lib/config.test.d.ts +0 -2
  149. package/dist/cjs-types/cli/lib/config.test.d.ts.map +0 -1
  150. package/dist/cjs-types/cli/lib/deployment.test.d.ts +0 -2
  151. package/dist/cjs-types/cli/lib/deployment.test.d.ts.map +0 -1
  152. package/dist/cjs-types/cli/lib/deploymentSelector.test.d.ts +0 -2
  153. package/dist/cjs-types/cli/lib/deploymentSelector.test.d.ts.map +0 -1
  154. package/dist/cjs-types/cli/lib/env.test.d.ts +0 -2
  155. package/dist/cjs-types/cli/lib/env.test.d.ts.map +0 -1
  156. package/dist/cjs-types/cli/lib/expiration.test.d.ts +0 -2
  157. package/dist/cjs-types/cli/lib/expiration.test.d.ts.map +0 -1
  158. package/dist/cjs-types/cli/lib/extractDeploymentNameForWorkOS.test.d.ts +0 -2
  159. package/dist/cjs-types/cli/lib/extractDeploymentNameForWorkOS.test.d.ts.map +0 -1
  160. package/dist/cjs-types/cli/lib/formatEnvValueForDotfile.test.d.ts +0 -2
  161. package/dist/cjs-types/cli/lib/formatEnvValueForDotfile.test.d.ts.map +0 -1
  162. package/dist/cjs-types/cli/lib/formatTargetedDeployment.test.d.ts +0 -2
  163. package/dist/cjs-types/cli/lib/formatTargetedDeployment.test.d.ts.map +0 -1
  164. package/dist/cjs-types/cli/lib/fsUtils.test.d.ts +0 -2
  165. package/dist/cjs-types/cli/lib/fsUtils.test.d.ts.map +0 -1
  166. package/dist/cjs-types/cli/lib/generateDocs.test.d.ts +0 -2
  167. package/dist/cjs-types/cli/lib/generateDocs.test.d.ts.map +0 -1
  168. package/dist/cjs-types/cli/lib/indexes.test.d.ts +0 -2
  169. package/dist/cjs-types/cli/lib/indexes.test.d.ts.map +0 -1
  170. package/dist/cjs-types/cli/lib/localDeployment/run.test.d.ts +0 -2
  171. package/dist/cjs-types/cli/lib/localDeployment/run.test.d.ts.map +0 -1
  172. package/dist/cjs-types/cli/lib/localDeployment/secrets.test.d.ts +0 -2
  173. package/dist/cjs-types/cli/lib/localDeployment/secrets.test.d.ts.map +0 -1
  174. package/dist/cjs-types/cli/lib/run.test.d.ts +0 -2
  175. package/dist/cjs-types/cli/lib/run.test.d.ts.map +0 -1
  176. package/dist/cjs-types/cli/lib/runTestFunction.test.d.ts +0 -2
  177. package/dist/cjs-types/cli/lib/runTestFunction.test.d.ts.map +0 -1
  178. package/dist/cjs-types/cli/lib/typecheck.test.d.ts +0 -2
  179. package/dist/cjs-types/cli/lib/typecheck.test.d.ts.map +0 -1
  180. package/dist/cjs-types/cli/lib/updates.test.d.ts +0 -2
  181. package/dist/cjs-types/cli/lib/updates.test.d.ts.map +0 -1
  182. package/dist/cjs-types/cli/lib/utils/hash.test.d.ts +0 -2
  183. package/dist/cjs-types/cli/lib/utils/hash.test.d.ts.map +0 -1
  184. package/dist/cjs-types/cli/lib/utils/utils.test.d.ts +0 -2
  185. package/dist/cjs-types/cli/lib/utils/utils.test.d.ts.map +0 -1
  186. package/dist/cjs-types/cli/lib/versionApi.test.d.ts +0 -2
  187. package/dist/cjs-types/cli/lib/versionApi.test.d.ts.map +0 -1
  188. package/dist/cjs-types/cli/lib/workos/environmentApi.test.d.ts +0 -2
  189. package/dist/cjs-types/cli/lib/workos/environmentApi.test.d.ts.map +0 -1
  190. package/dist/cjs-types/cli/lib/workos/workos.test.d.ts +0 -2
  191. package/dist/cjs-types/cli/lib/workos/workos.test.d.ts.map +0 -1
  192. package/dist/cjs-types/cli/login.test.d.ts +0 -2
  193. package/dist/cjs-types/cli/login.test.d.ts.map +0 -1
  194. package/dist/cjs-types/common/index.test.d.ts +0 -2
  195. package/dist/cjs-types/common/index.test.d.ts.map +0 -1
  196. package/dist/cjs-types/nextjs/nextjs.test.d.ts +0 -2
  197. package/dist/cjs-types/nextjs/nextjs.test.d.ts.map +0 -1
  198. package/dist/cjs-types/react/ConvexAuthState.test.d.ts +0 -2
  199. package/dist/cjs-types/react/ConvexAuthState.test.d.ts.map +0 -1
  200. package/dist/cjs-types/react/auth_helpers.test.d.ts +0 -2
  201. package/dist/cjs-types/react/auth_helpers.test.d.ts.map +0 -1
  202. package/dist/cjs-types/react/auth_websocket.test.d.ts +0 -2
  203. package/dist/cjs-types/react/auth_websocket.test.d.ts.map +0 -1
  204. package/dist/cjs-types/react/client.test.d.ts +0 -2
  205. package/dist/cjs-types/react/client.test.d.ts.map +0 -1
  206. package/dist/cjs-types/react/client_provided_base_client.test.d.ts +0 -2
  207. package/dist/cjs-types/react/client_provided_base_client.test.d.ts.map +0 -1
  208. package/dist/cjs-types/react/queries_observer.test.d.ts +0 -2
  209. package/dist/cjs-types/react/queries_observer.test.d.ts.map +0 -1
  210. package/dist/cjs-types/react/react_node.test.d.ts +0 -2
  211. package/dist/cjs-types/react/react_node.test.d.ts.map +0 -1
  212. package/dist/cjs-types/react/use_paginated_query.test.d.ts +0 -2
  213. package/dist/cjs-types/react/use_paginated_query.test.d.ts.map +0 -1
  214. package/dist/cjs-types/react/use_queries.test.d.ts +0 -5
  215. package/dist/cjs-types/react/use_queries.test.d.ts.map +0 -1
  216. package/dist/cjs-types/react/use_query.test.d.ts +0 -5
  217. package/dist/cjs-types/react/use_query.test.d.ts.map +0 -1
  218. package/dist/cjs-types/react/use_query_object_options.test.d.ts +0 -5
  219. package/dist/cjs-types/react/use_query_object_options.test.d.ts.map +0 -1
  220. package/dist/cjs-types/react/use_query_result.test.d.ts +0 -5
  221. package/dist/cjs-types/react/use_query_result.test.d.ts.map +0 -1
  222. package/dist/cjs-types/react-auth0/ConvexProviderWithAuth0.test.d.ts +0 -2
  223. package/dist/cjs-types/react-auth0/ConvexProviderWithAuth0.test.d.ts.map +0 -1
  224. package/dist/cjs-types/react-clerk/ConvexProviderWithClerk.test.d.ts +0 -2
  225. package/dist/cjs-types/react-clerk/ConvexProviderWithClerk.test.d.ts.map +0 -1
  226. package/dist/cjs-types/server/api.intersect.test.d.ts +0 -2
  227. package/dist/cjs-types/server/api.intersect.test.d.ts.map +0 -1
  228. package/dist/cjs-types/server/api.test.d.ts +0 -2
  229. package/dist/cjs-types/server/api.test.d.ts.map +0 -1
  230. package/dist/cjs-types/server/audit_logging.test.d.ts +0 -2
  231. package/dist/cjs-types/server/audit_logging.test.d.ts.map +0 -1
  232. package/dist/cjs-types/server/components/index.test.d.ts +0 -2
  233. package/dist/cjs-types/server/components/index.test.d.ts.map +0 -1
  234. package/dist/cjs-types/server/cron.test.d.ts +0 -2
  235. package/dist/cjs-types/server/cron.test.d.ts.map +0 -1
  236. package/dist/cjs-types/server/data_model.test.d.ts +0 -2
  237. package/dist/cjs-types/server/data_model.test.d.ts.map +0 -1
  238. package/dist/cjs-types/server/database.test.d.ts +0 -2
  239. package/dist/cjs-types/server/database.test.d.ts.map +0 -1
  240. package/dist/cjs-types/server/database_api.test.d.ts +0 -2
  241. package/dist/cjs-types/server/database_api.test.d.ts.map +0 -1
  242. package/dist/cjs-types/server/filter_builder.test.d.ts +0 -2
  243. package/dist/cjs-types/server/filter_builder.test.d.ts.map +0 -1
  244. package/dist/cjs-types/server/impl/actions_impl.test.d.ts +0 -2
  245. package/dist/cjs-types/server/impl/actions_impl.test.d.ts.map +0 -1
  246. package/dist/cjs-types/server/impl/filter_builder_impl.test.d.ts +0 -2
  247. package/dist/cjs-types/server/impl/filter_builder_impl.test.d.ts.map +0 -1
  248. package/dist/cjs-types/server/impl/query_impl.test.d.ts +0 -2
  249. package/dist/cjs-types/server/impl/query_impl.test.d.ts.map +0 -1
  250. package/dist/cjs-types/server/pagination.test.d.ts +0 -2
  251. package/dist/cjs-types/server/pagination.test.d.ts.map +0 -1
  252. package/dist/cjs-types/server/query.test.d.ts +0 -2
  253. package/dist/cjs-types/server/query.test.d.ts.map +0 -1
  254. package/dist/cjs-types/server/registration.test.d.ts +0 -2
  255. package/dist/cjs-types/server/registration.test.d.ts.map +0 -1
  256. package/dist/cjs-types/server/router.test.d.ts +0 -2
  257. package/dist/cjs-types/server/router.test.d.ts.map +0 -1
  258. package/dist/cjs-types/server/scheduler.test.d.ts +0 -2
  259. package/dist/cjs-types/server/scheduler.test.d.ts.map +0 -1
  260. package/dist/cjs-types/server/schema.test.d.ts +0 -2
  261. package/dist/cjs-types/server/schema.test.d.ts.map +0 -1
  262. package/dist/cjs-types/test/fake_watch.d.ts +0 -16
  263. package/dist/cjs-types/test/fake_watch.d.ts.map +0 -1
  264. package/dist/cjs-types/test/type_testing.d.ts +0 -9
  265. package/dist/cjs-types/test/type_testing.d.ts.map +0 -1
  266. package/dist/cjs-types/type_utils.test.d.ts +0 -2
  267. package/dist/cjs-types/type_utils.test.d.ts.map +0 -1
  268. package/dist/cjs-types/values/size.test.d.ts +0 -2
  269. package/dist/cjs-types/values/size.test.d.ts.map +0 -1
  270. package/dist/cjs-types/values/validator.test.d.ts +0 -2
  271. package/dist/cjs-types/values/validator.test.d.ts.map +0 -1
  272. package/dist/cjs-types/values/value.test.d.ts +0 -2
  273. package/dist/cjs-types/values/value.test.d.ts.map +0 -1
  274. package/dist/esm-types/browser/http_client.test.d.ts +0 -2
  275. package/dist/esm-types/browser/http_client.test.d.ts.map +0 -1
  276. package/dist/esm-types/browser/query_options.test.d.ts +0 -2
  277. package/dist/esm-types/browser/query_options.test.d.ts.map +0 -1
  278. package/dist/esm-types/browser/simple_client.test.d.ts +0 -2
  279. package/dist/esm-types/browser/simple_client.test.d.ts.map +0 -1
  280. package/dist/esm-types/browser/sync/client.test.d.ts +0 -5
  281. package/dist/esm-types/browser/sync/client.test.d.ts.map +0 -1
  282. package/dist/esm-types/browser/sync/client_node.test.d.ts +0 -2
  283. package/dist/esm-types/browser/sync/client_node.test.d.ts.map +0 -1
  284. package/dist/esm-types/browser/sync/client_node_test_helpers.d.ts +0 -44
  285. package/dist/esm-types/browser/sync/client_node_test_helpers.d.ts.map +0 -1
  286. package/dist/esm-types/browser/sync/local_state.test.d.ts +0 -2
  287. package/dist/esm-types/browser/sync/local_state.test.d.ts.map +0 -1
  288. package/dist/esm-types/browser/sync/optimistic_query_set.test.d.ts +0 -2
  289. package/dist/esm-types/browser/sync/optimistic_query_set.test.d.ts.map +0 -1
  290. package/dist/esm-types/browser/sync/paginated_query_client.test.d.ts +0 -2
  291. package/dist/esm-types/browser/sync/paginated_query_client.test.d.ts.map +0 -1
  292. package/dist/esm-types/browser/sync/protocol.test.d.ts +0 -5
  293. package/dist/esm-types/browser/sync/protocol.test.d.ts.map +0 -1
  294. package/dist/esm-types/browser/sync/request_manager.test.d.ts +0 -2
  295. package/dist/esm-types/browser/sync/request_manager.test.d.ts.map +0 -1
  296. package/dist/esm-types/bundler/fs.test.d.ts +0 -2
  297. package/dist/esm-types/bundler/fs.test.d.ts.map +0 -1
  298. package/dist/esm-types/bundler/index.test.d.ts +0 -2
  299. package/dist/esm-types/bundler/index.test.d.ts.map +0 -1
  300. package/dist/esm-types/cli/codegen_templates/api.test.d.ts +0 -2
  301. package/dist/esm-types/cli/codegen_templates/api.test.d.ts.map +0 -1
  302. package/dist/esm-types/cli/codegen_templates/common.test.d.ts +0 -2
  303. package/dist/esm-types/cli/codegen_templates/common.test.d.ts.map +0 -1
  304. package/dist/esm-types/cli/codegen_templates/templates.test.d.ts +0 -2
  305. package/dist/esm-types/cli/codegen_templates/templates.test.d.ts.map +0 -1
  306. package/dist/esm-types/cli/codegen_templates/validator_helpers.test.d.ts +0 -2
  307. package/dist/esm-types/cli/codegen_templates/validator_helpers.test.d.ts.map +0 -1
  308. package/dist/esm-types/cli/configure.test.d.ts +0 -2
  309. package/dist/esm-types/cli/configure.test.d.ts.map +0 -1
  310. package/dist/esm-types/cli/deploymentCreate.test.d.ts +0 -2
  311. package/dist/esm-types/cli/deploymentCreate.test.d.ts.map +0 -1
  312. package/dist/esm-types/cli/deploymentSelect.test.d.ts +0 -2
  313. package/dist/esm-types/cli/deploymentSelect.test.d.ts.map +0 -1
  314. package/dist/esm-types/cli/deploymentSelection.test.d.ts +0 -2
  315. package/dist/esm-types/cli/deploymentSelection.test.d.ts.map +0 -1
  316. package/dist/esm-types/cli/deploymentToken.test.d.ts +0 -2
  317. package/dist/esm-types/cli/deploymentToken.test.d.ts.map +0 -1
  318. package/dist/esm-types/cli/dev.test.d.ts +0 -2
  319. package/dist/esm-types/cli/dev.test.d.ts.map +0 -1
  320. package/dist/esm-types/cli/envDefault.test.d.ts +0 -2
  321. package/dist/esm-types/cli/envDefault.test.d.ts.map +0 -1
  322. package/dist/esm-types/cli/lib/aiFiles/agentsmd.test.d.ts +0 -2
  323. package/dist/esm-types/cli/lib/aiFiles/agentsmd.test.d.ts.map +0 -1
  324. package/dist/esm-types/cli/lib/aiFiles/claudemd.test.d.ts +0 -2
  325. package/dist/esm-types/cli/lib/aiFiles/claudemd.test.d.ts.map +0 -1
  326. package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.test.d.ts +0 -2
  327. package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.test.d.ts.map +0 -1
  328. package/dist/esm-types/cli/lib/aiFiles/index.test.d.ts +0 -2
  329. package/dist/esm-types/cli/lib/aiFiles/index.test.d.ts.map +0 -1
  330. package/dist/esm-types/cli/lib/aiFiles/integration.test.d.ts +0 -2
  331. package/dist/esm-types/cli/lib/aiFiles/integration.test.d.ts.map +0 -1
  332. package/dist/esm-types/cli/lib/aiFiles/prompt.test.d.ts +0 -2
  333. package/dist/esm-types/cli/lib/aiFiles/prompt.test.d.ts.map +0 -1
  334. package/dist/esm-types/cli/lib/aiFiles/state.test.d.ts +0 -2
  335. package/dist/esm-types/cli/lib/aiFiles/state.test.d.ts.map +0 -1
  336. package/dist/esm-types/cli/lib/aiFiles/utils.test.d.ts +0 -2
  337. package/dist/esm-types/cli/lib/aiFiles/utils.test.d.ts.map +0 -1
  338. package/dist/esm-types/cli/lib/codegen.test.d.ts +0 -2
  339. package/dist/esm-types/cli/lib/codegen.test.d.ts.map +0 -1
  340. package/dist/esm-types/cli/lib/components.test.d.ts +0 -2
  341. package/dist/esm-types/cli/lib/components.test.d.ts.map +0 -1
  342. package/dist/esm-types/cli/lib/config.test.d.ts +0 -2
  343. package/dist/esm-types/cli/lib/config.test.d.ts.map +0 -1
  344. package/dist/esm-types/cli/lib/deployment.test.d.ts +0 -2
  345. package/dist/esm-types/cli/lib/deployment.test.d.ts.map +0 -1
  346. package/dist/esm-types/cli/lib/deploymentSelector.test.d.ts +0 -2
  347. package/dist/esm-types/cli/lib/deploymentSelector.test.d.ts.map +0 -1
  348. package/dist/esm-types/cli/lib/env.test.d.ts +0 -2
  349. package/dist/esm-types/cli/lib/env.test.d.ts.map +0 -1
  350. package/dist/esm-types/cli/lib/expiration.test.d.ts +0 -2
  351. package/dist/esm-types/cli/lib/expiration.test.d.ts.map +0 -1
  352. package/dist/esm-types/cli/lib/extractDeploymentNameForWorkOS.test.d.ts +0 -2
  353. package/dist/esm-types/cli/lib/extractDeploymentNameForWorkOS.test.d.ts.map +0 -1
  354. package/dist/esm-types/cli/lib/formatEnvValueForDotfile.test.d.ts +0 -2
  355. package/dist/esm-types/cli/lib/formatEnvValueForDotfile.test.d.ts.map +0 -1
  356. package/dist/esm-types/cli/lib/formatTargetedDeployment.test.d.ts +0 -2
  357. package/dist/esm-types/cli/lib/formatTargetedDeployment.test.d.ts.map +0 -1
  358. package/dist/esm-types/cli/lib/fsUtils.test.d.ts +0 -2
  359. package/dist/esm-types/cli/lib/fsUtils.test.d.ts.map +0 -1
  360. package/dist/esm-types/cli/lib/generateDocs.test.d.ts +0 -2
  361. package/dist/esm-types/cli/lib/generateDocs.test.d.ts.map +0 -1
  362. package/dist/esm-types/cli/lib/indexes.test.d.ts +0 -2
  363. package/dist/esm-types/cli/lib/indexes.test.d.ts.map +0 -1
  364. package/dist/esm-types/cli/lib/localDeployment/run.test.d.ts +0 -2
  365. package/dist/esm-types/cli/lib/localDeployment/run.test.d.ts.map +0 -1
  366. package/dist/esm-types/cli/lib/localDeployment/secrets.test.d.ts +0 -2
  367. package/dist/esm-types/cli/lib/localDeployment/secrets.test.d.ts.map +0 -1
  368. package/dist/esm-types/cli/lib/run.test.d.ts +0 -2
  369. package/dist/esm-types/cli/lib/run.test.d.ts.map +0 -1
  370. package/dist/esm-types/cli/lib/runTestFunction.test.d.ts +0 -2
  371. package/dist/esm-types/cli/lib/runTestFunction.test.d.ts.map +0 -1
  372. package/dist/esm-types/cli/lib/typecheck.test.d.ts +0 -2
  373. package/dist/esm-types/cli/lib/typecheck.test.d.ts.map +0 -1
  374. package/dist/esm-types/cli/lib/updates.test.d.ts +0 -2
  375. package/dist/esm-types/cli/lib/updates.test.d.ts.map +0 -1
  376. package/dist/esm-types/cli/lib/utils/hash.test.d.ts +0 -2
  377. package/dist/esm-types/cli/lib/utils/hash.test.d.ts.map +0 -1
  378. package/dist/esm-types/cli/lib/utils/utils.test.d.ts +0 -2
  379. package/dist/esm-types/cli/lib/utils/utils.test.d.ts.map +0 -1
  380. package/dist/esm-types/cli/lib/versionApi.test.d.ts +0 -2
  381. package/dist/esm-types/cli/lib/versionApi.test.d.ts.map +0 -1
  382. package/dist/esm-types/cli/lib/workos/environmentApi.test.d.ts +0 -2
  383. package/dist/esm-types/cli/lib/workos/environmentApi.test.d.ts.map +0 -1
  384. package/dist/esm-types/cli/lib/workos/workos.test.d.ts +0 -2
  385. package/dist/esm-types/cli/lib/workos/workos.test.d.ts.map +0 -1
  386. package/dist/esm-types/cli/login.test.d.ts +0 -2
  387. package/dist/esm-types/cli/login.test.d.ts.map +0 -1
  388. package/dist/esm-types/common/index.test.d.ts +0 -2
  389. package/dist/esm-types/common/index.test.d.ts.map +0 -1
  390. package/dist/esm-types/nextjs/nextjs.test.d.ts +0 -2
  391. package/dist/esm-types/nextjs/nextjs.test.d.ts.map +0 -1
  392. package/dist/esm-types/react/ConvexAuthState.test.d.ts +0 -2
  393. package/dist/esm-types/react/ConvexAuthState.test.d.ts.map +0 -1
  394. package/dist/esm-types/react/auth_helpers.test.d.ts +0 -2
  395. package/dist/esm-types/react/auth_helpers.test.d.ts.map +0 -1
  396. package/dist/esm-types/react/auth_websocket.test.d.ts +0 -2
  397. package/dist/esm-types/react/auth_websocket.test.d.ts.map +0 -1
  398. package/dist/esm-types/react/client.test.d.ts +0 -2
  399. package/dist/esm-types/react/client.test.d.ts.map +0 -1
  400. package/dist/esm-types/react/client_provided_base_client.test.d.ts +0 -2
  401. package/dist/esm-types/react/client_provided_base_client.test.d.ts.map +0 -1
  402. package/dist/esm-types/react/queries_observer.test.d.ts +0 -2
  403. package/dist/esm-types/react/queries_observer.test.d.ts.map +0 -1
  404. package/dist/esm-types/react/react_node.test.d.ts +0 -2
  405. package/dist/esm-types/react/react_node.test.d.ts.map +0 -1
  406. package/dist/esm-types/react/use_paginated_query.test.d.ts +0 -2
  407. package/dist/esm-types/react/use_paginated_query.test.d.ts.map +0 -1
  408. package/dist/esm-types/react/use_queries.test.d.ts +0 -5
  409. package/dist/esm-types/react/use_queries.test.d.ts.map +0 -1
  410. package/dist/esm-types/react/use_query.test.d.ts +0 -5
  411. package/dist/esm-types/react/use_query.test.d.ts.map +0 -1
  412. package/dist/esm-types/react/use_query_object_options.test.d.ts +0 -5
  413. package/dist/esm-types/react/use_query_object_options.test.d.ts.map +0 -1
  414. package/dist/esm-types/react/use_query_result.test.d.ts +0 -5
  415. package/dist/esm-types/react/use_query_result.test.d.ts.map +0 -1
  416. package/dist/esm-types/react-auth0/ConvexProviderWithAuth0.test.d.ts +0 -2
  417. package/dist/esm-types/react-auth0/ConvexProviderWithAuth0.test.d.ts.map +0 -1
  418. package/dist/esm-types/react-clerk/ConvexProviderWithClerk.test.d.ts +0 -2
  419. package/dist/esm-types/react-clerk/ConvexProviderWithClerk.test.d.ts.map +0 -1
  420. package/dist/esm-types/server/api.intersect.test.d.ts +0 -2
  421. package/dist/esm-types/server/api.intersect.test.d.ts.map +0 -1
  422. package/dist/esm-types/server/api.test.d.ts +0 -2
  423. package/dist/esm-types/server/api.test.d.ts.map +0 -1
  424. package/dist/esm-types/server/audit_logging.test.d.ts +0 -2
  425. package/dist/esm-types/server/audit_logging.test.d.ts.map +0 -1
  426. package/dist/esm-types/server/components/index.test.d.ts +0 -2
  427. package/dist/esm-types/server/components/index.test.d.ts.map +0 -1
  428. package/dist/esm-types/server/cron.test.d.ts +0 -2
  429. package/dist/esm-types/server/cron.test.d.ts.map +0 -1
  430. package/dist/esm-types/server/data_model.test.d.ts +0 -2
  431. package/dist/esm-types/server/data_model.test.d.ts.map +0 -1
  432. package/dist/esm-types/server/database.test.d.ts +0 -2
  433. package/dist/esm-types/server/database.test.d.ts.map +0 -1
  434. package/dist/esm-types/server/database_api.test.d.ts +0 -2
  435. package/dist/esm-types/server/database_api.test.d.ts.map +0 -1
  436. package/dist/esm-types/server/filter_builder.test.d.ts +0 -2
  437. package/dist/esm-types/server/filter_builder.test.d.ts.map +0 -1
  438. package/dist/esm-types/server/impl/actions_impl.test.d.ts +0 -2
  439. package/dist/esm-types/server/impl/actions_impl.test.d.ts.map +0 -1
  440. package/dist/esm-types/server/impl/filter_builder_impl.test.d.ts +0 -2
  441. package/dist/esm-types/server/impl/filter_builder_impl.test.d.ts.map +0 -1
  442. package/dist/esm-types/server/impl/query_impl.test.d.ts +0 -2
  443. package/dist/esm-types/server/impl/query_impl.test.d.ts.map +0 -1
  444. package/dist/esm-types/server/pagination.test.d.ts +0 -2
  445. package/dist/esm-types/server/pagination.test.d.ts.map +0 -1
  446. package/dist/esm-types/server/query.test.d.ts +0 -2
  447. package/dist/esm-types/server/query.test.d.ts.map +0 -1
  448. package/dist/esm-types/server/registration.test.d.ts +0 -2
  449. package/dist/esm-types/server/registration.test.d.ts.map +0 -1
  450. package/dist/esm-types/server/router.test.d.ts +0 -2
  451. package/dist/esm-types/server/router.test.d.ts.map +0 -1
  452. package/dist/esm-types/server/scheduler.test.d.ts +0 -2
  453. package/dist/esm-types/server/scheduler.test.d.ts.map +0 -1
  454. package/dist/esm-types/server/schema.test.d.ts +0 -2
  455. package/dist/esm-types/server/schema.test.d.ts.map +0 -1
  456. package/dist/esm-types/test/fake_watch.d.ts +0 -16
  457. package/dist/esm-types/test/fake_watch.d.ts.map +0 -1
  458. package/dist/esm-types/test/type_testing.d.ts +0 -9
  459. package/dist/esm-types/test/type_testing.d.ts.map +0 -1
  460. package/dist/esm-types/type_utils.test.d.ts +0 -2
  461. package/dist/esm-types/type_utils.test.d.ts.map +0 -1
  462. package/dist/esm-types/values/size.test.d.ts +0 -2
  463. package/dist/esm-types/values/size.test.d.ts.map +0 -1
  464. package/dist/esm-types/values/validator.test.d.ts +0 -2
  465. package/dist/esm-types/values/validator.test.d.ts.map +0 -1
  466. package/dist/esm-types/values/value.test.d.ts +0 -2
  467. package/dist/esm-types/values/value.test.d.ts.map +0 -1
  468. package/src/browser/http_client.test.ts +0 -202
  469. package/src/browser/query_options.test.ts +0 -43
  470. package/src/browser/simple_client.test.ts +0 -104
  471. package/src/browser/sync/client.test.ts +0 -44
  472. package/src/browser/sync/client_node.test.ts +0 -1207
  473. package/src/browser/sync/client_node_test_helpers.ts +0 -200
  474. package/src/browser/sync/local_state.test.ts +0 -128
  475. package/src/browser/sync/optimistic_query_set.test.ts +0 -253
  476. package/src/browser/sync/paginated_query_client.test.ts +0 -597
  477. package/src/browser/sync/protocol.test.ts +0 -14
  478. package/src/browser/sync/request_manager.test.ts +0 -273
  479. package/src/bundler/fs.test.ts +0 -86
  480. package/src/bundler/index.test.ts +0 -210
  481. package/src/bundler/test_fixtures/js/project01/bar.js +0 -4
  482. package/src/bundler/test_fixtures/js/project01/file with spaces.js +0 -1
  483. package/src/bundler/test_fixtures/js/project01/foo.js +0 -9
  484. package/src/bundler/test_fixtures/js/project_with_https/https.js +0 -9
  485. package/src/bundler/test_fixtures/js/project_with_https_not_at_top_level/default.js +0 -3
  486. package/src/bundler/test_fixtures/js/project_with_https_not_at_top_level/more_code/https.js +0 -5
  487. package/src/bundler/test_fixtures/js/project_with_https_without_router/https.js +0 -1
  488. package/src/bundler/test_fixtures/js/project_with_node_shims/uses_node_shims.js +0 -4
  489. package/src/cli/codegen_templates/api.test.ts +0 -18
  490. package/src/cli/codegen_templates/common.test.ts +0 -52
  491. package/src/cli/codegen_templates/templates.test.ts +0 -16
  492. package/src/cli/codegen_templates/validator_helpers.test.ts +0 -31
  493. package/src/cli/configure.test.ts +0 -138
  494. package/src/cli/deploymentCreate.test.ts +0 -1376
  495. package/src/cli/deploymentSelect.test.ts +0 -1291
  496. package/src/cli/deploymentSelection.test.ts +0 -2546
  497. package/src/cli/deploymentToken.test.ts +0 -397
  498. package/src/cli/dev.test.ts +0 -157
  499. package/src/cli/envDefault.test.ts +0 -495
  500. package/src/cli/lib/__snapshots__/formatTargetedDeployment.test.ts.snap +0 -94
  501. package/src/cli/lib/aiFiles/agentsmd.test.ts +0 -133
  502. package/src/cli/lib/aiFiles/claudemd.test.ts +0 -92
  503. package/src/cli/lib/aiFiles/guidelinesmd.test.ts +0 -50
  504. package/src/cli/lib/aiFiles/index.test.ts +0 -986
  505. package/src/cli/lib/aiFiles/integration.test.ts +0 -692
  506. package/src/cli/lib/aiFiles/prompt.test.ts +0 -202
  507. package/src/cli/lib/aiFiles/state.test.ts +0 -305
  508. package/src/cli/lib/aiFiles/utils.test.ts +0 -50
  509. package/src/cli/lib/codegen.test.ts +0 -49
  510. package/src/cli/lib/components.test.ts +0 -227
  511. package/src/cli/lib/config.test.ts +0 -1026
  512. package/src/cli/lib/deployment.test.ts +0 -85
  513. package/src/cli/lib/deploymentSelector.test.ts +0 -107
  514. package/src/cli/lib/env.test.ts +0 -60
  515. package/src/cli/lib/expiration.test.ts +0 -159
  516. package/src/cli/lib/extractDeploymentNameForWorkOS.test.ts +0 -30
  517. package/src/cli/lib/formatEnvValueForDotfile.test.ts +0 -294
  518. package/src/cli/lib/formatTargetedDeployment.test.ts +0 -281
  519. package/src/cli/lib/fsUtils.test.ts +0 -67
  520. package/src/cli/lib/generateDocs.test.ts +0 -326
  521. package/src/cli/lib/indexes.test.ts +0 -77
  522. package/src/cli/lib/localDeployment/run.test.ts +0 -104
  523. package/src/cli/lib/localDeployment/secrets.test.ts +0 -53
  524. package/src/cli/lib/run.test.ts +0 -54
  525. package/src/cli/lib/runTestFunction.test.ts +0 -84
  526. package/src/cli/lib/typecheck.test.ts +0 -71
  527. package/src/cli/lib/updates.test.ts +0 -157
  528. package/src/cli/lib/utils/hash.test.ts +0 -25
  529. package/src/cli/lib/utils/utils.test.ts +0 -340
  530. package/src/cli/lib/versionApi.test.ts +0 -471
  531. package/src/cli/lib/workos/environmentApi.test.ts +0 -107
  532. package/src/cli/lib/workos/workos.test.ts +0 -242
  533. package/src/cli/login.test.ts +0 -261
  534. package/src/common/README.md +0 -2
  535. package/src/common/index.test.ts +0 -35
  536. package/src/nextjs/nextjs.test.tsx +0 -94
  537. package/src/react/ConvexAuthState.test.tsx +0 -702
  538. package/src/react/auth_helpers.test.tsx +0 -45
  539. package/src/react/auth_websocket.test.tsx +0 -1177
  540. package/src/react/client.test.tsx +0 -261
  541. package/src/react/client_provided_base_client.test.tsx +0 -174
  542. package/src/react/queries_observer.test.ts +0 -176
  543. package/src/react/react_node.test.ts +0 -78
  544. package/src/react/use_paginated_query.test.tsx +0 -1420
  545. package/src/react/use_queries.test.ts +0 -140
  546. package/src/react/use_query.test.ts +0 -71
  547. package/src/react/use_query_object_options.test.ts +0 -51
  548. package/src/react/use_query_result.test.ts +0 -75
  549. package/src/react-auth0/ConvexProviderWithAuth0.test.tsx +0 -17
  550. package/src/react-clerk/ConvexProviderWithClerk.test.tsx +0 -18
  551. package/src/server/README.md +0 -15
  552. package/src/server/api.intersect.test.ts +0 -109
  553. package/src/server/api.test.ts +0 -447
  554. package/src/server/audit_logging.test.ts +0 -131
  555. package/src/server/components/index.test.ts +0 -48
  556. package/src/server/cron.test.ts +0 -58
  557. package/src/server/data_model.test.ts +0 -221
  558. package/src/server/database.test.ts +0 -184
  559. package/src/server/database_api.test.ts +0 -439
  560. package/src/server/filter_builder.test.ts +0 -102
  561. package/src/server/impl/actions_impl.test.ts +0 -59
  562. package/src/server/impl/filter_builder_impl.test.ts +0 -13
  563. package/src/server/impl/query_impl.test.ts +0 -46
  564. package/src/server/pagination.test.ts +0 -49
  565. package/src/server/query.test.ts +0 -112
  566. package/src/server/registration.test.ts +0 -589
  567. package/src/server/router.test.ts +0 -148
  568. package/src/server/scheduler.test.ts +0 -31
  569. package/src/server/schema.test.ts +0 -1081
  570. package/src/test/fake_watch.ts +0 -54
  571. package/src/test/type_testing.ts +0 -21
  572. package/src/type_utils.test.ts +0 -62
  573. package/src/values/size.test.ts +0 -95
  574. package/src/values/validator.test.ts +0 -619
  575. package/src/values/value.test.ts +0 -232
  576. package/src/vendor/README.md +0 -18
  577. package/src/vendor/jwt-decode/README.md +0 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "convex",
3
3
  "description": "Client for the Convex Cloud",
4
- "version": "1.44.0",
4
+ "version": "1.45.0-alpha.0",
5
5
  "author": "Convex, Inc. <no-reply@convex.dev>",
6
6
  "homepage": "https://convex.dev",
7
7
  "repository": {
@@ -213,7 +213,7 @@
213
213
  "@inquirer/search": "^4.1.0",
214
214
  "@inquirer/select": "^5.0.4",
215
215
  "@inquirer/testing": "^3.3.0",
216
- "@modelcontextprotocol/sdk": "^1.25.2",
216
+ "@modelcontextprotocol/server": "^2.0.0",
217
217
  "@octokit/openapi-types": "~27.0.0",
218
218
  "@sentry/node": "^7.23.0",
219
219
  "@sentry/tracing": "^7.23.0",
@@ -277,7 +277,7 @@
277
277
  },
278
278
  "engines": {
279
279
  "npm": ">=7.0.0",
280
- "node": ">=18.0.0"
280
+ "node": ">=20.0.0"
281
281
  },
282
282
  "scripts": {
283
283
  "build": "npm run generateApiSpec && python3 scripts/build.py 2>&1",
@@ -46,7 +46,7 @@ export const convexExport = new Command("export")
46
46
  deploymentNotice,
47
47
  snapshotExportDashboardLink: deploymentDashboardUrlPage(
48
48
  deployment.deploymentFields?.deploymentName ?? null,
49
- "/settings/snapshot-export",
49
+ "/settings/snapshots",
50
50
  ),
51
51
  });
52
52
  });
package/src/cli/index.ts CHANGED
@@ -8,9 +8,8 @@ import { setGlobalDispatcher, EnvHttpProxyAgent } from "undici";
8
8
  import { logVerbose } from "../bundler/log.js";
9
9
  import { buildProgram } from "./program.js";
10
10
 
11
- const HARD_MINIMUM_NODE_MAJOR_VERSION = 16;
12
- const HARD_MINIMUM_NODE_MINOR_VERSION = 15;
13
- const SOFT_MINIMUM_NODE_MAJOR_VERSION = 20;
11
+ const HARD_MINIMUM_NODE_MAJOR_VERSION = 20;
12
+ const HARD_MINIMUM_NODE_MINOR_VERSION = 0;
14
13
 
15
14
  // console.error before it started being red by default in Node.js v20
16
15
  function logToStderr(...args: unknown[]) {
@@ -72,38 +71,6 @@ async function main() {
72
71
  process.exit(1);
73
72
  }
74
73
 
75
- if (majorVersion < SOFT_MINIMUM_NODE_MAJOR_VERSION) {
76
- logToStderr(
77
- chalkStderr.yellow(
78
- `Warning: Your Node version ${nodeVersion} is below the recommended minimum of Node v${SOFT_MINIMUM_NODE_MAJOR_VERSION}.x. Convex may work but could behave unexpectedly.`,
79
- ),
80
- );
81
- logToStderr(
82
- chalkStderr.gray(
83
- `We recommend upgrading Node to v${SOFT_MINIMUM_NODE_MAJOR_VERSION} or newer.`,
84
- ),
85
- );
86
- logToStderr(
87
- chalkStderr.gray(
88
- `You can use ${chalkStderr.bold(
89
- "nvm",
90
- )} (https://github.com/nvm-sh/nvm#installing-and-updating) to manage different versions of Node.`,
91
- ),
92
- );
93
- logToStderr(
94
- chalkStderr.gray(
95
- "After installing `nvm`, install the latest version of Node with " +
96
- chalkStderr.bold("`nvm install node`."),
97
- ),
98
- );
99
- logToStderr(
100
- chalkStderr.gray(
101
- "Then, activate the installed version in your terminal with " +
102
- chalkStderr.bold("`nvm use`."),
103
- ),
104
- );
105
- }
106
-
107
74
  const program = buildProgram();
108
75
 
109
76
  // Run the command and be sure to flush Sentry before exiting.
@@ -215,11 +215,17 @@ async function hasAccessToProject(
215
215
  selector: { projectSlug: string; teamSlug: string },
216
216
  ): Promise<boolean> {
217
217
  try {
218
- await bigBrainAPIMaybeThrows({
219
- ctx,
220
- path: `teams/${selector.teamSlug}/projects/${selector.projectSlug}/deployments`,
221
- method: "GET",
222
- });
218
+ await typedPlatformClient(ctx, { throw: true }).GET(
219
+ "/teams/{team_id_or_slug}/projects/{project_slug}",
220
+ {
221
+ params: {
222
+ path: {
223
+ team_id_or_slug: selector.teamSlug,
224
+ project_slug: selector.projectSlug,
225
+ },
226
+ },
227
+ },
228
+ );
223
229
  return true;
224
230
  } catch (err) {
225
231
  if (
@@ -3,6 +3,7 @@ import {
3
3
  waitUntilCalled,
4
4
  deploymentFetch,
5
5
  logAndHandleFetchError,
6
+ ThrowingFetchError,
6
7
  } from "./utils/utils.js";
7
8
  import { Context } from "../../bundler/context.js";
8
9
  import {
@@ -12,6 +13,7 @@ import {
12
13
  logError,
13
14
  stopSpinner,
14
15
  changeSpinner,
16
+ failExistingSpinner,
15
17
  } from "../../bundler/log.js";
16
18
  import { subscribe } from "./run.js";
17
19
  import { nodeFs } from "../../bundler/fs.js";
@@ -46,6 +48,7 @@ export async function exportFromDeployment(
46
48
  inputPath,
47
49
  adminKey,
48
50
  deploymentUrl,
51
+ snapshotExportDashboardLink,
49
52
  });
50
53
 
51
54
  switch (snapshotExportState.state) {
@@ -156,6 +159,7 @@ export async function startSnapshotExport(
156
159
  inputPath: string;
157
160
  adminKey: string;
158
161
  deploymentUrl: string;
162
+ snapshotExportDashboardLink?: string | undefined;
159
163
  },
160
164
  ) {
161
165
  const fetch = deploymentFetch(ctx, {
@@ -170,6 +174,23 @@ export async function startSnapshotExport(
170
174
  },
171
175
  );
172
176
  } catch (e) {
177
+ if (
178
+ e instanceof ThrowingFetchError &&
179
+ e.serverErrorData?.code === "ExportInProgress"
180
+ ) {
181
+ failExistingSpinner();
182
+ const progressAdvice =
183
+ args.snapshotExportDashboardLink === undefined
184
+ ? ""
185
+ : `\nCheck its progress at ${args.snapshotExportDashboardLink}`;
186
+ return await ctx.crash({
187
+ exitCode: 1,
188
+ errorType: "fatal",
189
+ printedMessage:
190
+ "A snapshot export is already requested or in progress. Only one can run at a time, so wait for it to finish and try again." +
191
+ progressAdvice,
192
+ });
193
+ }
173
194
  return await logAndHandleFetchError(ctx, e);
174
195
  }
175
196
 
@@ -37,6 +37,8 @@ export async function getDashboardUrl(
37
37
  }
38
38
  }
39
39
 
40
+ // FIXME: this doesn't work correctly in local-dev/self-hosted, where the
41
+ // dashboard isn't at DASHBOARD_HOST and deployments aren't addressed by `/d/`.
40
42
  export function deploymentDashboardUrlPage(
41
43
  configuredDeployment: string | null,
42
44
  page: string,
@@ -101,6 +101,8 @@ export interface components {
101
101
  /** Format: int64 */
102
102
  databaseReadDocuments: number;
103
103
  /** Format: int64 */
104
+ databaseWriteDocuments: number;
105
+ /** Format: int64 */
104
106
  storageReadBytes: number;
105
107
  /** Format: int64 */
106
108
  storageWriteBytes: number;
@@ -1,35 +1,16 @@
1
- import path from "path";
2
1
  import { Context } from "../../../bundler/context.js";
3
2
  import {
4
- logFailure,
5
3
  logFinishedStep,
6
4
  logVerbose,
5
+ logWarning,
7
6
  } from "../../../bundler/log.js";
8
- import { runSystemQuery } from "../run.js";
9
7
  import {
10
8
  LocalDeploymentConfig,
11
9
  LocalDeploymentKind,
12
- deploymentStateDir,
13
10
  saveDeploymentConfig,
14
11
  } from "./filePaths.js";
15
- import {
16
- ensureBackendStopped,
17
- localDeploymentUrl,
18
- runLocalBackend,
19
- } from "./run.js";
20
- import {
21
- downloadSnapshotExport,
22
- startSnapshotExport,
23
- } from "../convexExport.js";
24
- import { deploymentFetch, logAndHandleFetchError } from "../utils/utils.js";
25
- import {
26
- confirmImport,
27
- uploadForImport,
28
- waitForStableImportState,
29
- } from "../convexImport.js";
30
- import { promptOptions, promptYesNo } from "../utils/prompts.js";
31
- import { recursivelyDelete } from "../fsUtils.js";
32
- import { LocalDeploymentError } from "./errors.js";
12
+ import { runLocalBackend } from "./run.js";
13
+ import { promptYesNo } from "../utils/prompts.js";
33
14
  import { ensureBackendBinaryDownloaded } from "./download.js";
34
15
  import {
35
16
  generateLocalDevSecretsWithLatestBinary,
@@ -126,44 +107,10 @@ export async function handlePotentialUpgradeAndStart(
126
107
  });
127
108
  return { cleanupHandle, adminKey };
128
109
  }
129
- const choice =
130
- args.forceUpgrade || !process.stdin.isTTY
131
- ? "transfer"
132
- : await promptOptions(ctx, {
133
- message: "Transfer data from existing deployment?",
134
- default: "transfer",
135
- choices: [
136
- { name: "transfer data", value: "transfer" },
137
- { name: "start fresh", value: "reset" },
138
- ],
139
- });
140
- const deploymentStatePath = deploymentStateDir(
141
- ctx,
142
- args.deploymentKind,
143
- args.deploymentName,
144
- );
145
- if (choice === "reset") {
146
- recursivelyDelete(ctx, deploymentStatePath, { force: true });
147
- saveDeploymentConfig(
148
- ctx,
149
- args.deploymentKind,
150
- args.deploymentName,
151
- newConfig,
152
- );
153
- const { cleanupHandle } = await runLocalBackend(ctx, {
154
- binaryPath: args.newBinaryPath,
155
- deploymentKind: args.deploymentKind,
156
- deploymentName: args.deploymentName,
157
- ports: args.ports,
158
- instanceSecret,
159
- isLatestVersion: true,
160
- });
161
- return { cleanupHandle, adminKey };
162
- }
163
110
  const { cleanupHandle } = await handleUpgrade(ctx, {
164
111
  deploymentKind: args.deploymentKind,
165
112
  deploymentName: args.deploymentName,
166
- oldVersion: args.oldVersion!,
113
+ oldVersion: args.oldVersion,
167
114
  newBinaryPath: args.newBinaryPath,
168
115
  newVersion: args.newVersion,
169
116
  ports: args.ports,
@@ -174,6 +121,11 @@ export async function handlePotentialUpgradeAndStart(
174
121
  return { cleanupHandle, adminKey };
175
122
  }
176
123
 
124
+ /**
125
+ * Upgrade in place: hand the existing data directory to the new binary, which
126
+ * migrates its own on-disk state on startup (the same path self-hosted
127
+ * deployments take).
128
+ */
177
129
  async function handleUpgrade(
178
130
  ctx: Context,
179
131
  args: {
@@ -191,80 +143,16 @@ async function handleUpgrade(
191
143
  cloudProjectId: number | undefined;
192
144
  },
193
145
  ): Promise<{ cleanupHandle: string }> {
194
- const { adminKey } = args;
195
- const { binaryPath: oldBinaryPath } = await ensureBackendBinaryDownloaded(
196
- ctx,
197
- {
198
- kind: "version",
199
- version: args.oldVersion,
200
- },
201
- );
202
-
203
- logVerbose("Running backend on old version");
204
- const { cleanupHandle: oldCleanupHandle } = await runLocalBackend(ctx, {
205
- binaryPath: oldBinaryPath,
206
- ports: args.ports,
207
- deploymentKind: args.deploymentKind,
208
- deploymentName: args.deploymentName,
209
- instanceSecret: args.instanceSecret,
210
- isLatestVersion: false,
211
- });
212
-
213
- logVerbose("Downloading env vars");
214
- const deploymentUrl = localDeploymentUrl(args.ports.cloud);
215
- const envs = (await runSystemQuery(ctx, {
216
- deploymentUrl,
217
- adminKey,
218
- functionName: "_system/cli/queryEnvironmentVariables",
219
- componentPath: undefined,
220
- args: {},
221
- })) as Array<{
222
- name: string;
223
- value: string;
224
- }>;
225
-
226
- logVerbose("Doing a snapshot export");
227
- const exportPath = path.join(
228
- deploymentStateDir(ctx, args.deploymentKind, args.deploymentName),
229
- "export.zip",
230
- );
231
- if (ctx.fs.exists(exportPath)) {
232
- ctx.fs.unlink(exportPath);
233
- }
234
- const snapshotExportState = await startSnapshotExport(ctx, {
235
- deploymentUrl,
236
- adminKey,
237
- includeStorage: true,
238
- inputPath: exportPath,
239
- });
240
- if (snapshotExportState.state !== "completed") {
241
- return ctx.crash({
242
- exitCode: 1,
243
- errorType: "fatal",
244
- printedMessage: "Failed to export snapshot",
245
- });
146
+ const isDowngrade = _isDowngrade(args.oldVersion, args.newVersion);
147
+ if (isDowngrade) {
148
+ logWarning(
149
+ `Moving a local deployment back to an older backend version (${args.oldVersion} → ${args.newVersion}) isn't supported: ` +
150
+ `the older backend may not be able to read data written by the newer one. ` +
151
+ `If it fails to start, delete the deployment's state directory to start fresh on this version.`,
152
+ );
246
153
  }
247
- await downloadSnapshotExport(ctx, {
248
- snapshotExportTs: snapshotExportState.start_ts,
249
- inputPath: exportPath,
250
- adminKey,
251
- deploymentUrl,
252
- });
253
154
 
254
- logVerbose("Stopping the backend on the old version");
255
- const oldCleanupFunc = ctx.removeCleanup(oldCleanupHandle);
256
- if (oldCleanupFunc) {
257
- await oldCleanupFunc(0);
258
- }
259
- await ensureBackendStopped(ctx, {
260
- ports: args.ports,
261
- maxTimeSecs: 5,
262
- deploymentName: args.deploymentName,
263
- allowOtherDeployments: false,
264
- });
265
-
266
- // TODO(ENG-7078) save old artifacts to backup files
267
- logVerbose("Running backend on new version");
155
+ logVerbose(`Running backend on new version ${args.newVersion}`);
268
156
  const { cleanupHandle } = await runLocalBackend(ctx, {
269
157
  binaryPath: args.newBinaryPath,
270
158
  ports: args.ports,
@@ -274,90 +162,29 @@ async function handleUpgrade(
274
162
  isLatestVersion: true,
275
163
  });
276
164
 
277
- logVerbose("Importing the env vars");
278
- if (envs.length > 0) {
279
- const fetch = deploymentFetch(ctx, {
280
- deploymentUrl,
281
- adminKey,
282
- });
283
- try {
284
- await fetch("/api/update_environment_variables", {
285
- body: JSON.stringify({ changes: envs }),
286
- method: "POST",
287
- });
288
- } catch (e) {
289
- // TODO: this should ideally have a `LocalDeploymentError`
290
- return await logAndHandleFetchError(ctx, e);
291
- }
292
- }
293
-
294
- logVerbose("Doing a snapshot import");
295
- const importId = await uploadForImport(ctx, {
296
- deploymentUrl,
297
- adminKey,
298
- filePath: exportPath,
299
- importArgs: { format: "zip", mode: "replace", tableName: undefined },
300
- onImportFailed: async (e) => {
301
- logFailure(`Failed to import snapshot: ${e}`);
302
- },
303
- });
304
- logVerbose(`Snapshot import started`);
305
- let status = await waitForStableImportState(ctx, {
306
- importId,
307
- deploymentUrl,
308
- adminKey,
309
- onProgress: () => {
310
- // do nothing for now
311
- return 0;
312
- },
313
- });
314
- if (status.state !== "waiting_for_confirmation") {
315
- const message = "Error while transferring data: Failed to upload snapshot";
316
- return ctx.crash({
317
- exitCode: 1,
318
- errorType: "fatal",
319
- printedMessage: message,
320
- errForSentry: new LocalDeploymentError(message),
321
- });
322
- }
323
-
324
- await confirmImport(ctx, {
325
- importId,
326
- adminKey,
327
- deploymentUrl,
328
- onError: async (e) => {
329
- logFailure(`Failed to confirm import: ${e}`);
330
- },
331
- });
332
- logVerbose(`Snapshot import confirmed`);
333
- status = await waitForStableImportState(ctx, {
334
- importId,
335
- deploymentUrl,
336
- adminKey,
337
- onProgress: () => {
338
- // do nothing for now
339
- return 0;
340
- },
341
- });
342
- logVerbose(`Snapshot import status: ${status.state}`);
343
- if (status.state !== "completed") {
344
- const message = "Error while transferring data: Failed to import snapshot";
345
- return ctx.crash({
346
- exitCode: 1,
347
- errorType: "fatal",
348
- printedMessage: message,
349
- errForSentry: new LocalDeploymentError(message),
350
- });
351
- }
352
-
353
- logFinishedStep("Successfully upgraded to a new backend version");
165
+ logFinishedStep(
166
+ `Successfully ${isDowngrade ? "moved" : "upgraded"} to backend version ${args.newVersion}`,
167
+ );
354
168
  saveDeploymentConfig(ctx, args.deploymentKind, args.deploymentName, {
355
169
  ports: args.ports,
356
170
  backendVersion: args.newVersion,
357
- adminKey,
171
+ adminKey: args.adminKey,
358
172
  instanceSecret: args.instanceSecret,
359
173
  cloudProjectId: args.cloudProjectId,
360
174
  });
361
175
 
362
176
  return { cleanupHandle };
363
177
  }
178
+
179
+ /** Whether `newVersion` predates `oldVersion`, as far as we can tell. */
180
+ export function _isDowngrade(oldVersion: string, newVersion: string): boolean {
181
+ const oldDate = releaseDate(oldVersion);
182
+ const newDate = releaseDate(newVersion);
183
+ return oldDate !== null && newDate !== null && newDate < oldDate;
184
+ }
185
+
186
+ // Backend releases are tagged `precompiled-YYYY-MM-DD-<commit>`, so the dates
187
+ // sort lexicographically.
188
+ function releaseDate(version: string): string | null {
189
+ return /^precompiled-(\d{4}-\d{2}-\d{2})-/.exec(version)?.[1] ?? null;
190
+ }
@@ -10,7 +10,7 @@ import { EnvListTool, EnvGetTool, EnvSetTool, EnvRemoveTool } from "./env.js";
10
10
  import { RunOneoffQueryTool } from "./runOneoffQuery.js";
11
11
  import { LogsTool } from "./logs.js";
12
12
  import { InsightsTool } from "./insights.js";
13
- import { Tool } from "@modelcontextprotocol/sdk/types.js";
13
+ import { Tool } from "@modelcontextprotocol/server";
14
14
 
15
15
  export type ConvexTool<Input extends ZodTypeAny, Output extends ZodTypeAny> = {
16
16
  name: string;
package/src/cli/mcp.ts CHANGED
@@ -1,14 +1,9 @@
1
1
  import { Command, Option } from "@commander-js/extra-typings";
2
2
  import { oneoffContext } from "../bundler/context.js";
3
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
4
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { CallToolRequest, Server } from "@modelcontextprotocol/server";
4
+ import { StdioServerTransport } from "@modelcontextprotocol/server/stdio";
5
5
  import { actionDescription } from "./lib/command.js";
6
6
  import { checkAuthorization } from "./lib/login.js";
7
- import {
8
- CallToolRequest,
9
- CallToolRequestSchema,
10
- ListToolsRequestSchema,
11
- } from "@modelcontextprotocol/sdk/types.js";
12
7
  import {
13
8
  McpOptions,
14
9
  RequestContext,
@@ -77,7 +72,7 @@ mcp
77
72
  }
78
73
  });
79
74
 
80
- function makeServer(options: McpOptions) {
75
+ export function makeServer(options: McpOptions) {
81
76
  const disabledToolNames = new Set<string>();
82
77
  for (const toolName of options.disableTools?.split(",") ?? []) {
83
78
  const name = toolName.trim();
@@ -109,72 +104,69 @@ function makeServer(options: McpOptions) {
109
104
  },
110
105
  },
111
106
  );
112
- server.setRequestHandler(
113
- CallToolRequestSchema,
114
- async (request: CallToolRequest) => {
115
- const ctx = new RequestContext(options);
116
- await initializeBigBrainAuth(ctx, options);
117
- try {
118
- const authorized = await checkAuthorization(ctx, false);
119
- if (!authorized) {
120
- await ctx.crash({
121
- exitCode: 1,
122
- errorType: "fatal",
123
- printedMessage:
124
- "Not Authorized: Run `npx convex dev` to login to your Convex project.",
125
- });
126
- }
127
- if (!request.params.arguments) {
128
- await ctx.crash({
129
- exitCode: 1,
130
- errorType: "fatal",
131
- printedMessage: "No arguments provided",
132
- });
133
- }
134
- const convexTool = enabledToolsByName[request.params.name];
135
- if (!convexTool) {
136
- await ctx.crash({
137
- exitCode: 1,
138
- errorType: "fatal",
139
- printedMessage: `Tool ${request.params.name} not found`,
140
- });
141
- }
142
- const input = convexTool.inputSchema.parse(request.params.arguments);
143
-
144
- // Serialize tool handlers since they're mutating the current working directory.
145
- const result = await mutex.runExclusive(async () => {
146
- return await convexTool.handler(ctx, input);
107
+ server.setRequestHandler("tools/call", async (request: CallToolRequest) => {
108
+ const ctx = new RequestContext(options);
109
+ await initializeBigBrainAuth(ctx, options);
110
+ try {
111
+ const authorized = await checkAuthorization(ctx, false);
112
+ if (!authorized) {
113
+ await ctx.crash({
114
+ exitCode: 1,
115
+ errorType: "fatal",
116
+ printedMessage:
117
+ "Not Authorized: Run `npx convex dev` to login to your Convex project.",
147
118
  });
148
- return {
149
- content: [
150
- {
151
- type: "text",
152
- text: JSON.stringify(result),
153
- },
154
- ],
155
- };
156
- } catch (error: any) {
157
- let message: string;
158
- if (error instanceof RequestCrash) {
159
- message = error.printedMessage;
160
- } else if (error instanceof Error) {
161
- message = error.message;
162
- } else {
163
- message = String(error);
164
- }
165
- return {
166
- content: [
167
- {
168
- type: "text",
169
- text: JSON.stringify({ error: message }),
170
- },
171
- ],
172
- isError: true,
173
- };
174
119
  }
175
- },
176
- );
177
- server.setRequestHandler(ListToolsRequestSchema, async () => {
120
+ if (!request.params.arguments) {
121
+ await ctx.crash({
122
+ exitCode: 1,
123
+ errorType: "fatal",
124
+ printedMessage: "No arguments provided",
125
+ });
126
+ }
127
+ const convexTool = enabledToolsByName[request.params.name];
128
+ if (!convexTool) {
129
+ await ctx.crash({
130
+ exitCode: 1,
131
+ errorType: "fatal",
132
+ printedMessage: `Tool ${request.params.name} not found`,
133
+ });
134
+ }
135
+ const input = convexTool.inputSchema.parse(request.params.arguments);
136
+
137
+ // Serialize tool handlers since they're mutating the current working directory.
138
+ const result = await mutex.runExclusive(async () => {
139
+ return await convexTool.handler(ctx, input);
140
+ });
141
+ return {
142
+ content: [
143
+ {
144
+ type: "text",
145
+ text: JSON.stringify(result),
146
+ },
147
+ ],
148
+ };
149
+ } catch (error: any) {
150
+ let message: string;
151
+ if (error instanceof RequestCrash) {
152
+ message = error.printedMessage;
153
+ } else if (error instanceof Error) {
154
+ message = error.message;
155
+ } else {
156
+ message = String(error);
157
+ }
158
+ return {
159
+ content: [
160
+ {
161
+ type: "text",
162
+ text: JSON.stringify({ error: message }),
163
+ },
164
+ ],
165
+ isError: true,
166
+ };
167
+ }
168
+ });
169
+ server.setRequestHandler("tools/list", async () => {
178
170
  return {
179
171
  tools: Object.values(enabledToolsByName).map(mcpTool),
180
172
  };
package/src/index.ts CHANGED
@@ -1 +1 @@
1
- export const version = "1.44.0";
1
+ export const version = "1.45.0-alpha.0";
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=http_client.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http_client.test.d.ts","sourceRoot":"","sources":["../../../src/browser/http_client.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=query_options.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query_options.test.d.ts","sourceRoot":"","sources":["../../../src/browser/query_options.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=simple_client.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple_client.test.d.ts","sourceRoot":"","sources":["../../../src/browser/simple_client.test.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- /**
2
- * @vitest-environment custom-vitest-environment.ts
3
- */
4
- export {};
5
- //# sourceMappingURL=client.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../../../../src/browser/sync/client.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}