convex 1.45.0 → 1.47.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 (511) hide show
  1. package/CHANGELOG.md +105 -6
  2. package/dist/browser.bundle.js +7 -1
  3. package/dist/browser.bundle.js.map +2 -2
  4. package/dist/cjs/browser/http_client.js.map +2 -2
  5. package/dist/cjs/browser/query_options.js.map +2 -2
  6. package/dist/cjs/browser/simple_client.js.map +2 -2
  7. package/dist/cjs/browser/sync/optimistic_updates.js.map +1 -1
  8. package/dist/cjs/browser/sync/optimistic_updates_impl.js.map +2 -2
  9. package/dist/cjs/bundler/index.js +5 -4
  10. package/dist/cjs/bundler/index.js.map +2 -2
  11. package/dist/cjs/cli/codegen.js +0 -2
  12. package/dist/cjs/cli/codegen.js.map +2 -2
  13. package/dist/cjs/cli/configure.js +13 -4
  14. package/dist/cjs/cli/configure.js.map +2 -2
  15. package/dist/cjs/cli/deploy.js +28 -2
  16. package/dist/cjs/cli/deploy.js.map +2 -2
  17. package/dist/cjs/cli/deploymentSelect.js +2 -2
  18. package/dist/cjs/cli/deploymentSelect.js.map +2 -2
  19. package/dist/cjs/cli/dev.js +6 -0
  20. package/dist/cjs/cli/dev.js.map +2 -2
  21. package/dist/cjs/cli/docs.js +3 -36
  22. package/dist/cjs/cli/docs.js.map +2 -2
  23. package/dist/cjs/cli/env.js +10 -5
  24. package/dist/cjs/cli/env.js.map +2 -2
  25. package/dist/cjs/cli/envDefault.js +7 -2
  26. package/dist/cjs/cli/envDefault.js.map +2 -2
  27. package/dist/cjs/cli/generatedApi.js.map +1 -1
  28. package/dist/cjs/cli/lib/api.js +2 -0
  29. package/dist/cjs/cli/lib/api.js.map +2 -2
  30. package/dist/cjs/cli/lib/checkForLargeIndexBackfill.js +113 -0
  31. package/dist/cjs/cli/lib/checkForLargeIndexBackfill.js.map +7 -0
  32. package/dist/cjs/cli/lib/checkForLargeIndexDeletion.js +100 -70
  33. package/dist/cjs/cli/lib/checkForLargeIndexDeletion.js.map +2 -2
  34. package/dist/cjs/cli/lib/checkForSlowSchemaValidation.js +126 -0
  35. package/dist/cjs/cli/lib/checkForSlowSchemaValidation.js.map +7 -0
  36. package/dist/cjs/cli/lib/checkForStagedValidatorDeletion.js +90 -0
  37. package/dist/cjs/cli/lib/checkForStagedValidatorDeletion.js.map +7 -0
  38. package/dist/cjs/cli/lib/codegen.js.map +2 -2
  39. package/dist/cjs/cli/lib/command.js +2 -1
  40. package/dist/cjs/cli/lib/command.js.map +2 -2
  41. package/dist/cjs/cli/lib/components/definition/bundle.js +37 -11
  42. package/dist/cjs/cli/lib/components/definition/bundle.js.map +2 -2
  43. package/dist/cjs/cli/lib/components.js +56 -1
  44. package/dist/cjs/cli/lib/components.js.map +2 -2
  45. package/dist/cjs/cli/lib/config.js +56 -17
  46. package/dist/cjs/cli/lib/config.js.map +2 -2
  47. package/dist/cjs/cli/lib/deploy2.js +32 -3
  48. package/dist/cjs/cli/lib/deploy2.js.map +2 -2
  49. package/dist/cjs/cli/lib/deployApi/evaluateSchema.js +101 -0
  50. package/dist/cjs/cli/lib/deployApi/evaluateSchema.js.map +7 -0
  51. package/dist/cjs/cli/lib/deployApi/finishPush.js +1 -0
  52. package/dist/cjs/cli/lib/deployApi/finishPush.js.map +2 -2
  53. package/dist/cjs/cli/lib/deployApi/startPush.js +1 -1
  54. package/dist/cjs/cli/lib/deployApi/startPush.js.map +2 -2
  55. package/dist/cjs/cli/lib/dev.js +6 -0
  56. package/dist/cjs/cli/lib/dev.js.map +2 -2
  57. package/dist/cjs/cli/lib/formatValidationProgress.js +47 -0
  58. package/dist/cjs/cli/lib/formatValidationProgress.js.map +7 -0
  59. package/dist/cjs/cli/lib/generatedFunctionLogsApi.js.map +1 -1
  60. package/dist/cjs/cli/lib/indexes.js.map +1 -1
  61. package/dist/cjs/cli/lib/localDeployment/run.js +30 -1
  62. package/dist/cjs/cli/lib/localDeployment/run.js.map +2 -2
  63. package/dist/cjs/cli/lib/localDeployment/upgrade.js +6 -5
  64. package/dist/cjs/cli/lib/localDeployment/upgrade.js.map +2 -2
  65. package/dist/cjs/cli/lib/localDeployment/utils.js +5 -1
  66. package/dist/cjs/cli/lib/localDeployment/utils.js.map +2 -2
  67. package/dist/cjs/cli/lib/mcp/tools/env.js +10 -3
  68. package/dist/cjs/cli/lib/mcp/tools/env.js.map +2 -2
  69. package/dist/cjs/cli/lib/run.js +5 -0
  70. package/dist/cjs/cli/lib/run.js.map +2 -2
  71. package/dist/cjs/cli/lib/schemaEvaluation.js +62 -0
  72. package/dist/cjs/cli/lib/schemaEvaluation.js.map +7 -0
  73. package/dist/cjs/cli/lib/usageLimits.js +4 -2
  74. package/dist/cjs/cli/lib/usageLimits.js.map +2 -2
  75. package/dist/cjs/cli/lib/utils/mutex.js +9 -24
  76. package/dist/cjs/cli/lib/utils/mutex.js.map +2 -2
  77. package/dist/cjs/cli/lib/utils/utils.js +84 -47
  78. package/dist/cjs/cli/lib/utils/utils.js.map +2 -2
  79. package/dist/cjs/cli/projectCreate.js +1 -1
  80. package/dist/cjs/cli/projectCreate.js.map +1 -1
  81. package/dist/cjs/index.js +1 -1
  82. package/dist/cjs/index.js.map +1 -1
  83. package/dist/cjs/nextjs/index.js.map +2 -2
  84. package/dist/cjs/react/client.js.map +2 -2
  85. package/dist/cjs/react/hydration.js.map +2 -2
  86. package/dist/cjs/react/queries_observer.js.map +2 -2
  87. package/dist/cjs/react/use_paginated_query2.js.map +2 -2
  88. package/dist/cjs/react/use_queries.js.map +2 -2
  89. package/dist/cjs/server/api.js.map +2 -2
  90. package/dist/cjs/server/components/index.js.map +2 -2
  91. package/dist/cjs/server/cron.js +10 -10
  92. package/dist/cjs/server/cron.js.map +2 -2
  93. package/dist/cjs/server/impl/actions_impl.js +8 -3
  94. package/dist/cjs/server/impl/actions_impl.js.map +2 -2
  95. package/dist/cjs/server/impl/meta_impl.js +8 -2
  96. package/dist/cjs/server/impl/meta_impl.js.map +2 -2
  97. package/dist/cjs/server/impl/scheduler_impl.js.map +2 -2
  98. package/dist/cjs/server/impl/storage_impl.js +29 -0
  99. package/dist/cjs/server/impl/storage_impl.js.map +2 -2
  100. package/dist/cjs/server/index.js +1 -0
  101. package/dist/cjs/server/index.js.map +2 -2
  102. package/dist/cjs/server/meta.js.map +1 -1
  103. package/dist/cjs/server/registration.js.map +1 -1
  104. package/dist/cjs/server/scheduler.js.map +1 -1
  105. package/dist/cjs/server/schema.js +72 -3
  106. package/dist/cjs/server/schema.js.map +2 -2
  107. package/dist/cjs/server/storage.js.map +1 -1
  108. package/dist/cjs/values/validator.js +1 -1
  109. package/dist/cjs/values/validator.js.map +2 -2
  110. package/dist/cjs/values/validators.js +82 -26
  111. package/dist/cjs/values/validators.js.map +2 -2
  112. package/dist/cjs/values/value.js +6 -0
  113. package/dist/cjs/values/value.js.map +2 -2
  114. package/dist/cjs-types/browser/http_client.d.ts +5 -5
  115. package/dist/cjs-types/browser/http_client.d.ts.map +1 -1
  116. package/dist/cjs-types/browser/query_options.d.ts +2 -2
  117. package/dist/cjs-types/browser/query_options.d.ts.map +1 -1
  118. package/dist/cjs-types/browser/simple_client.d.ts +6 -6
  119. package/dist/cjs-types/browser/simple_client.d.ts.map +1 -1
  120. package/dist/cjs-types/browser/sync/optimistic_updates.d.ts +4 -4
  121. package/dist/cjs-types/browser/sync/optimistic_updates.d.ts.map +1 -1
  122. package/dist/cjs-types/browser/sync/optimistic_updates_impl.d.ts.map +1 -1
  123. package/dist/cjs-types/bundler/index.d.ts +9 -2
  124. package/dist/cjs-types/bundler/index.d.ts.map +1 -1
  125. package/dist/cjs-types/cli/codegen.d.ts.map +1 -1
  126. package/dist/cjs-types/cli/configure.d.ts +6 -0
  127. package/dist/cjs-types/cli/configure.d.ts.map +1 -1
  128. package/dist/cjs-types/cli/deploy.d.ts +2 -0
  129. package/dist/cjs-types/cli/deploy.d.ts.map +1 -1
  130. package/dist/cjs-types/cli/deploymentCreate.d.ts +6 -6
  131. package/dist/cjs-types/cli/deploymentSelect.d.ts.map +1 -1
  132. package/dist/cjs-types/cli/dev.d.ts +1 -0
  133. package/dist/cjs-types/cli/dev.d.ts.map +1 -1
  134. package/dist/cjs-types/cli/docs.d.ts.map +1 -1
  135. package/dist/cjs-types/cli/env.d.ts.map +1 -1
  136. package/dist/cjs-types/cli/envDefault.d.ts.map +1 -1
  137. package/dist/cjs-types/cli/generatedApi.d.ts +1 -1
  138. package/dist/cjs-types/cli/generatedApi.d.ts.map +1 -1
  139. package/dist/cjs-types/cli/lib/api.d.ts.map +1 -1
  140. package/dist/cjs-types/cli/lib/checkForLargeIndexBackfill.d.ts +30 -0
  141. package/dist/cjs-types/cli/lib/checkForLargeIndexBackfill.d.ts.map +1 -0
  142. package/dist/cjs-types/cli/lib/checkForLargeIndexDeletion.d.ts +25 -6
  143. package/dist/cjs-types/cli/lib/checkForLargeIndexDeletion.d.ts.map +1 -1
  144. package/dist/cjs-types/cli/lib/checkForSlowSchemaValidation.d.ts +8 -0
  145. package/dist/cjs-types/cli/lib/checkForSlowSchemaValidation.d.ts.map +1 -0
  146. package/dist/cjs-types/cli/lib/checkForStagedValidatorDeletion.d.ts +17 -0
  147. package/dist/cjs-types/cli/lib/checkForStagedValidatorDeletion.d.ts.map +1 -0
  148. package/dist/cjs-types/cli/lib/codegen.d.ts +0 -2
  149. package/dist/cjs-types/cli/lib/codegen.d.ts.map +1 -1
  150. package/dist/cjs-types/cli/lib/command.d.ts +2 -0
  151. package/dist/cjs-types/cli/lib/command.d.ts.map +1 -1
  152. package/dist/cjs-types/cli/lib/components/definition/bundle.d.ts +13 -0
  153. package/dist/cjs-types/cli/lib/components/definition/bundle.d.ts.map +1 -1
  154. package/dist/cjs-types/cli/lib/components.d.ts +5 -0
  155. package/dist/cjs-types/cli/lib/components.d.ts.map +1 -1
  156. package/dist/cjs-types/cli/lib/config.d.ts +2 -1
  157. package/dist/cjs-types/cli/lib/config.d.ts.map +1 -1
  158. package/dist/cjs-types/cli/lib/deploy2.d.ts +8 -0
  159. package/dist/cjs-types/cli/lib/deploy2.d.ts.map +1 -1
  160. package/dist/cjs-types/cli/lib/deployApi/evaluateSchema.d.ts +897 -0
  161. package/dist/cjs-types/cli/lib/deployApi/evaluateSchema.d.ts.map +1 -0
  162. package/dist/cjs-types/cli/lib/deployApi/finishPush.d.ts +1 -2
  163. package/dist/cjs-types/cli/lib/deployApi/finishPush.d.ts.map +1 -1
  164. package/dist/cjs-types/cli/lib/dev.d.ts +1 -0
  165. package/dist/cjs-types/cli/lib/dev.d.ts.map +1 -1
  166. package/dist/cjs-types/cli/lib/formatValidationProgress.d.ts +8 -0
  167. package/dist/cjs-types/cli/lib/formatValidationProgress.d.ts.map +1 -0
  168. package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts +2 -0
  169. package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
  170. package/dist/cjs-types/cli/lib/localDeployment/run.d.ts +2 -0
  171. package/dist/cjs-types/cli/lib/localDeployment/run.d.ts.map +1 -1
  172. package/dist/cjs-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
  173. package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts +1 -0
  174. package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
  175. package/dist/cjs-types/cli/lib/mcp/tools/env.d.ts +8 -5
  176. package/dist/cjs-types/cli/lib/mcp/tools/env.d.ts.map +1 -1
  177. package/dist/cjs-types/cli/lib/run.d.ts.map +1 -1
  178. package/dist/cjs-types/cli/lib/schemaEvaluation.d.ts +33 -0
  179. package/dist/cjs-types/cli/lib/schemaEvaluation.d.ts.map +1 -0
  180. package/dist/cjs-types/cli/lib/usageLimits.d.ts +1 -1
  181. package/dist/cjs-types/cli/lib/usageLimits.d.ts.map +1 -1
  182. package/dist/cjs-types/cli/lib/utils/mutex.d.ts +1 -3
  183. package/dist/cjs-types/cli/lib/utils/mutex.d.ts.map +1 -1
  184. package/dist/cjs-types/cli/lib/utils/utils.d.ts +15 -7
  185. package/dist/cjs-types/cli/lib/utils/utils.d.ts.map +1 -1
  186. package/dist/cjs-types/index.d.ts +1 -1
  187. package/dist/cjs-types/nextjs/index.d.ts +6 -6
  188. package/dist/cjs-types/nextjs/index.d.ts.map +1 -1
  189. package/dist/cjs-types/react/client.d.ts +15 -15
  190. package/dist/cjs-types/react/client.d.ts.map +1 -1
  191. package/dist/cjs-types/react/hydration.d.ts +3 -3
  192. package/dist/cjs-types/react/hydration.d.ts.map +1 -1
  193. package/dist/cjs-types/react/queries_observer.d.ts +9 -9
  194. package/dist/cjs-types/react/queries_observer.d.ts.map +1 -1
  195. package/dist/cjs-types/react/use_paginated_query2.d.ts.map +1 -1
  196. package/dist/cjs-types/react/use_queries.d.ts +14 -6
  197. package/dist/cjs-types/react/use_queries.d.ts.map +1 -1
  198. package/dist/cjs-types/server/api.d.ts +157 -7
  199. package/dist/cjs-types/server/api.d.ts.map +1 -1
  200. package/dist/cjs-types/server/components/index.d.ts +2 -2
  201. package/dist/cjs-types/server/components/index.d.ts.map +1 -1
  202. package/dist/cjs-types/server/cron.d.ts +21 -20
  203. package/dist/cjs-types/server/cron.d.ts.map +1 -1
  204. package/dist/cjs-types/server/impl/actions_impl.d.ts +22 -7
  205. package/dist/cjs-types/server/impl/actions_impl.d.ts.map +1 -1
  206. package/dist/cjs-types/server/impl/meta_impl.d.ts.map +1 -1
  207. package/dist/cjs-types/server/impl/scheduler_impl.d.ts.map +1 -1
  208. package/dist/cjs-types/server/impl/storage_impl.d.ts.map +1 -1
  209. package/dist/cjs-types/server/index.d.ts +2 -2
  210. package/dist/cjs-types/server/index.d.ts.map +1 -1
  211. package/dist/cjs-types/server/meta.d.ts +63 -0
  212. package/dist/cjs-types/server/meta.d.ts.map +1 -1
  213. package/dist/cjs-types/server/registration.d.ts +17 -7
  214. package/dist/cjs-types/server/registration.d.ts.map +1 -1
  215. package/dist/cjs-types/server/scheduler.d.ts +9 -7
  216. package/dist/cjs-types/server/scheduler.d.ts.map +1 -1
  217. package/dist/cjs-types/server/schema.d.ts +34 -0
  218. package/dist/cjs-types/server/schema.d.ts.map +1 -1
  219. package/dist/cjs-types/server/storage.d.ts.map +1 -1
  220. package/dist/cjs-types/values/validator.d.ts.map +1 -1
  221. package/dist/cjs-types/values/validators.d.ts +30 -0
  222. package/dist/cjs-types/values/validators.d.ts.map +1 -1
  223. package/dist/cjs-types/values/value.d.ts.map +1 -1
  224. package/dist/cli.bundle.cjs +2728 -1627
  225. package/dist/cli.bundle.cjs.map +4 -4
  226. package/dist/esm/browser/http_client.js.map +2 -2
  227. package/dist/esm/browser/query_options.js.map +2 -2
  228. package/dist/esm/browser/simple_client.js.map +2 -2
  229. package/dist/esm/browser/sync/optimistic_updates_impl.js.map +2 -2
  230. package/dist/esm/bundler/index.js +5 -4
  231. package/dist/esm/bundler/index.js.map +2 -2
  232. package/dist/esm/cli/codegen.js +0 -2
  233. package/dist/esm/cli/codegen.js.map +2 -2
  234. package/dist/esm/cli/configure.js +12 -4
  235. package/dist/esm/cli/configure.js.map +2 -2
  236. package/dist/esm/cli/deploy.js +28 -2
  237. package/dist/esm/cli/deploy.js.map +2 -2
  238. package/dist/esm/cli/deploymentSelect.js +6 -3
  239. package/dist/esm/cli/deploymentSelect.js.map +2 -2
  240. package/dist/esm/cli/dev.js +6 -0
  241. package/dist/esm/cli/dev.js.map +2 -2
  242. package/dist/esm/cli/docs.js +3 -43
  243. package/dist/esm/cli/docs.js.map +2 -2
  244. package/dist/esm/cli/env.js +11 -6
  245. package/dist/esm/cli/env.js.map +2 -2
  246. package/dist/esm/cli/envDefault.js +7 -2
  247. package/dist/esm/cli/envDefault.js.map +2 -2
  248. package/dist/esm/cli/lib/api.js +2 -0
  249. package/dist/esm/cli/lib/api.js.map +2 -2
  250. package/dist/esm/cli/lib/checkForLargeIndexBackfill.js +95 -0
  251. package/dist/esm/cli/lib/checkForLargeIndexBackfill.js.map +7 -0
  252. package/dist/esm/cli/lib/checkForLargeIndexDeletion.js +98 -69
  253. package/dist/esm/cli/lib/checkForLargeIndexDeletion.js.map +2 -2
  254. package/dist/esm/cli/lib/checkForSlowSchemaValidation.js +107 -0
  255. package/dist/esm/cli/lib/checkForSlowSchemaValidation.js.map +7 -0
  256. package/dist/esm/cli/lib/checkForStagedValidatorDeletion.js +68 -0
  257. package/dist/esm/cli/lib/checkForStagedValidatorDeletion.js.map +7 -0
  258. package/dist/esm/cli/lib/codegen.js.map +2 -2
  259. package/dist/esm/cli/lib/command.js +2 -1
  260. package/dist/esm/cli/lib/command.js.map +2 -2
  261. package/dist/esm/cli/lib/components/definition/bundle.js +37 -11
  262. package/dist/esm/cli/lib/components/definition/bundle.js.map +2 -2
  263. package/dist/esm/cli/lib/components.js +63 -1
  264. package/dist/esm/cli/lib/components.js.map +2 -2
  265. package/dist/esm/cli/lib/config.js +55 -17
  266. package/dist/esm/cli/lib/config.js.map +2 -2
  267. package/dist/esm/cli/lib/deploy2.js +33 -3
  268. package/dist/esm/cli/lib/deploy2.js.map +2 -2
  269. package/dist/esm/cli/lib/deployApi/evaluateSchema.js +72 -0
  270. package/dist/esm/cli/lib/deployApi/evaluateSchema.js.map +7 -0
  271. package/dist/esm/cli/lib/deployApi/finishPush.js +1 -1
  272. package/dist/esm/cli/lib/deployApi/finishPush.js.map +2 -2
  273. package/dist/esm/cli/lib/deployApi/startPush.js +1 -1
  274. package/dist/esm/cli/lib/deployApi/startPush.js.map +2 -2
  275. package/dist/esm/cli/lib/dev.js +6 -0
  276. package/dist/esm/cli/lib/dev.js.map +2 -2
  277. package/dist/esm/cli/lib/formatValidationProgress.js +24 -0
  278. package/dist/esm/cli/lib/formatValidationProgress.js.map +7 -0
  279. package/dist/esm/cli/lib/indexes.js.map +1 -1
  280. package/dist/esm/cli/lib/localDeployment/run.js +30 -2
  281. package/dist/esm/cli/lib/localDeployment/run.js.map +2 -2
  282. package/dist/esm/cli/lib/localDeployment/upgrade.js +4 -3
  283. package/dist/esm/cli/lib/localDeployment/upgrade.js.map +2 -2
  284. package/dist/esm/cli/lib/localDeployment/utils.js +3 -0
  285. package/dist/esm/cli/lib/localDeployment/utils.js.map +2 -2
  286. package/dist/esm/cli/lib/mcp/tools/env.js +10 -3
  287. package/dist/esm/cli/lib/mcp/tools/env.js.map +2 -2
  288. package/dist/esm/cli/lib/run.js +5 -0
  289. package/dist/esm/cli/lib/run.js.map +2 -2
  290. package/dist/esm/cli/lib/schemaEvaluation.js +39 -0
  291. package/dist/esm/cli/lib/schemaEvaluation.js.map +7 -0
  292. package/dist/esm/cli/lib/usageLimits.js +4 -2
  293. package/dist/esm/cli/lib/usageLimits.js.map +2 -2
  294. package/dist/esm/cli/lib/utils/mutex.js +9 -24
  295. package/dist/esm/cli/lib/utils/mutex.js.map +2 -2
  296. package/dist/esm/cli/lib/utils/utils.js +84 -49
  297. package/dist/esm/cli/lib/utils/utils.js.map +2 -2
  298. package/dist/esm/cli/projectCreate.js +1 -1
  299. package/dist/esm/cli/projectCreate.js.map +1 -1
  300. package/dist/esm/index.js +1 -1
  301. package/dist/esm/index.js.map +1 -1
  302. package/dist/esm/nextjs/index.js.map +2 -2
  303. package/dist/esm/react/client.js.map +2 -2
  304. package/dist/esm/react/hydration.js +3 -1
  305. package/dist/esm/react/hydration.js.map +2 -2
  306. package/dist/esm/react/queries_observer.js +3 -1
  307. package/dist/esm/react/queries_observer.js.map +2 -2
  308. package/dist/esm/react/use_paginated_query2.js +3 -1
  309. package/dist/esm/react/use_paginated_query2.js.map +2 -2
  310. package/dist/esm/react/use_queries.js.map +2 -2
  311. package/dist/esm/server/api.js.map +2 -2
  312. package/dist/esm/server/components/index.js.map +2 -2
  313. package/dist/esm/server/cron.js +13 -11
  314. package/dist/esm/server/cron.js.map +2 -2
  315. package/dist/esm/server/impl/actions_impl.js +7 -3
  316. package/dist/esm/server/impl/actions_impl.js.map +2 -2
  317. package/dist/esm/server/impl/meta_impl.js +9 -3
  318. package/dist/esm/server/impl/meta_impl.js.map +2 -2
  319. package/dist/esm/server/impl/scheduler_impl.js.map +2 -2
  320. package/dist/esm/server/impl/storage_impl.js +29 -0
  321. package/dist/esm/server/impl/storage_impl.js.map +2 -2
  322. package/dist/esm/server/index.js +4 -1
  323. package/dist/esm/server/index.js.map +2 -2
  324. package/dist/esm/server/schema.js +72 -3
  325. package/dist/esm/server/schema.js.map +2 -2
  326. package/dist/esm/values/validator.js +1 -1
  327. package/dist/esm/values/validator.js.map +2 -2
  328. package/dist/esm/values/validators.js +82 -26
  329. package/dist/esm/values/validators.js.map +2 -2
  330. package/dist/esm/values/value.js +6 -0
  331. package/dist/esm/values/value.js.map +2 -2
  332. package/dist/esm-types/browser/http_client.d.ts +5 -5
  333. package/dist/esm-types/browser/http_client.d.ts.map +1 -1
  334. package/dist/esm-types/browser/query_options.d.ts +2 -2
  335. package/dist/esm-types/browser/query_options.d.ts.map +1 -1
  336. package/dist/esm-types/browser/simple_client.d.ts +6 -6
  337. package/dist/esm-types/browser/simple_client.d.ts.map +1 -1
  338. package/dist/esm-types/browser/sync/optimistic_updates.d.ts +4 -4
  339. package/dist/esm-types/browser/sync/optimistic_updates.d.ts.map +1 -1
  340. package/dist/esm-types/browser/sync/optimistic_updates_impl.d.ts.map +1 -1
  341. package/dist/esm-types/bundler/index.d.ts +9 -2
  342. package/dist/esm-types/bundler/index.d.ts.map +1 -1
  343. package/dist/esm-types/cli/codegen.d.ts.map +1 -1
  344. package/dist/esm-types/cli/configure.d.ts +6 -0
  345. package/dist/esm-types/cli/configure.d.ts.map +1 -1
  346. package/dist/esm-types/cli/deploy.d.ts +2 -0
  347. package/dist/esm-types/cli/deploy.d.ts.map +1 -1
  348. package/dist/esm-types/cli/deploymentCreate.d.ts +6 -6
  349. package/dist/esm-types/cli/deploymentSelect.d.ts.map +1 -1
  350. package/dist/esm-types/cli/dev.d.ts +1 -0
  351. package/dist/esm-types/cli/dev.d.ts.map +1 -1
  352. package/dist/esm-types/cli/docs.d.ts.map +1 -1
  353. package/dist/esm-types/cli/env.d.ts.map +1 -1
  354. package/dist/esm-types/cli/envDefault.d.ts.map +1 -1
  355. package/dist/esm-types/cli/generatedApi.d.ts +1 -1
  356. package/dist/esm-types/cli/generatedApi.d.ts.map +1 -1
  357. package/dist/esm-types/cli/lib/api.d.ts.map +1 -1
  358. package/dist/esm-types/cli/lib/checkForLargeIndexBackfill.d.ts +30 -0
  359. package/dist/esm-types/cli/lib/checkForLargeIndexBackfill.d.ts.map +1 -0
  360. package/dist/esm-types/cli/lib/checkForLargeIndexDeletion.d.ts +25 -6
  361. package/dist/esm-types/cli/lib/checkForLargeIndexDeletion.d.ts.map +1 -1
  362. package/dist/esm-types/cli/lib/checkForSlowSchemaValidation.d.ts +8 -0
  363. package/dist/esm-types/cli/lib/checkForSlowSchemaValidation.d.ts.map +1 -0
  364. package/dist/esm-types/cli/lib/checkForStagedValidatorDeletion.d.ts +17 -0
  365. package/dist/esm-types/cli/lib/checkForStagedValidatorDeletion.d.ts.map +1 -0
  366. package/dist/esm-types/cli/lib/codegen.d.ts +0 -2
  367. package/dist/esm-types/cli/lib/codegen.d.ts.map +1 -1
  368. package/dist/esm-types/cli/lib/command.d.ts +2 -0
  369. package/dist/esm-types/cli/lib/command.d.ts.map +1 -1
  370. package/dist/esm-types/cli/lib/components/definition/bundle.d.ts +13 -0
  371. package/dist/esm-types/cli/lib/components/definition/bundle.d.ts.map +1 -1
  372. package/dist/esm-types/cli/lib/components.d.ts +5 -0
  373. package/dist/esm-types/cli/lib/components.d.ts.map +1 -1
  374. package/dist/esm-types/cli/lib/config.d.ts +2 -1
  375. package/dist/esm-types/cli/lib/config.d.ts.map +1 -1
  376. package/dist/esm-types/cli/lib/deploy2.d.ts +8 -0
  377. package/dist/esm-types/cli/lib/deploy2.d.ts.map +1 -1
  378. package/dist/esm-types/cli/lib/deployApi/evaluateSchema.d.ts +897 -0
  379. package/dist/esm-types/cli/lib/deployApi/evaluateSchema.d.ts.map +1 -0
  380. package/dist/esm-types/cli/lib/deployApi/finishPush.d.ts +1 -2
  381. package/dist/esm-types/cli/lib/deployApi/finishPush.d.ts.map +1 -1
  382. package/dist/esm-types/cli/lib/dev.d.ts +1 -0
  383. package/dist/esm-types/cli/lib/dev.d.ts.map +1 -1
  384. package/dist/esm-types/cli/lib/formatValidationProgress.d.ts +8 -0
  385. package/dist/esm-types/cli/lib/formatValidationProgress.d.ts.map +1 -0
  386. package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts +2 -0
  387. package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
  388. package/dist/esm-types/cli/lib/localDeployment/run.d.ts +2 -0
  389. package/dist/esm-types/cli/lib/localDeployment/run.d.ts.map +1 -1
  390. package/dist/esm-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
  391. package/dist/esm-types/cli/lib/localDeployment/utils.d.ts +1 -0
  392. package/dist/esm-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
  393. package/dist/esm-types/cli/lib/mcp/tools/env.d.ts +8 -5
  394. package/dist/esm-types/cli/lib/mcp/tools/env.d.ts.map +1 -1
  395. package/dist/esm-types/cli/lib/run.d.ts.map +1 -1
  396. package/dist/esm-types/cli/lib/schemaEvaluation.d.ts +33 -0
  397. package/dist/esm-types/cli/lib/schemaEvaluation.d.ts.map +1 -0
  398. package/dist/esm-types/cli/lib/usageLimits.d.ts +1 -1
  399. package/dist/esm-types/cli/lib/usageLimits.d.ts.map +1 -1
  400. package/dist/esm-types/cli/lib/utils/mutex.d.ts +1 -3
  401. package/dist/esm-types/cli/lib/utils/mutex.d.ts.map +1 -1
  402. package/dist/esm-types/cli/lib/utils/utils.d.ts +15 -7
  403. package/dist/esm-types/cli/lib/utils/utils.d.ts.map +1 -1
  404. package/dist/esm-types/index.d.ts +1 -1
  405. package/dist/esm-types/nextjs/index.d.ts +6 -6
  406. package/dist/esm-types/nextjs/index.d.ts.map +1 -1
  407. package/dist/esm-types/react/client.d.ts +15 -15
  408. package/dist/esm-types/react/client.d.ts.map +1 -1
  409. package/dist/esm-types/react/hydration.d.ts +3 -3
  410. package/dist/esm-types/react/hydration.d.ts.map +1 -1
  411. package/dist/esm-types/react/queries_observer.d.ts +9 -9
  412. package/dist/esm-types/react/queries_observer.d.ts.map +1 -1
  413. package/dist/esm-types/react/use_paginated_query2.d.ts.map +1 -1
  414. package/dist/esm-types/react/use_queries.d.ts +14 -6
  415. package/dist/esm-types/react/use_queries.d.ts.map +1 -1
  416. package/dist/esm-types/server/api.d.ts +157 -7
  417. package/dist/esm-types/server/api.d.ts.map +1 -1
  418. package/dist/esm-types/server/components/index.d.ts +2 -2
  419. package/dist/esm-types/server/components/index.d.ts.map +1 -1
  420. package/dist/esm-types/server/cron.d.ts +21 -20
  421. package/dist/esm-types/server/cron.d.ts.map +1 -1
  422. package/dist/esm-types/server/impl/actions_impl.d.ts +22 -7
  423. package/dist/esm-types/server/impl/actions_impl.d.ts.map +1 -1
  424. package/dist/esm-types/server/impl/meta_impl.d.ts.map +1 -1
  425. package/dist/esm-types/server/impl/scheduler_impl.d.ts.map +1 -1
  426. package/dist/esm-types/server/impl/storage_impl.d.ts.map +1 -1
  427. package/dist/esm-types/server/index.d.ts +2 -2
  428. package/dist/esm-types/server/index.d.ts.map +1 -1
  429. package/dist/esm-types/server/meta.d.ts +63 -0
  430. package/dist/esm-types/server/meta.d.ts.map +1 -1
  431. package/dist/esm-types/server/registration.d.ts +17 -7
  432. package/dist/esm-types/server/registration.d.ts.map +1 -1
  433. package/dist/esm-types/server/scheduler.d.ts +9 -7
  434. package/dist/esm-types/server/scheduler.d.ts.map +1 -1
  435. package/dist/esm-types/server/schema.d.ts +34 -0
  436. package/dist/esm-types/server/schema.d.ts.map +1 -1
  437. package/dist/esm-types/server/storage.d.ts.map +1 -1
  438. package/dist/esm-types/values/validator.d.ts.map +1 -1
  439. package/dist/esm-types/values/validators.d.ts +30 -0
  440. package/dist/esm-types/values/validators.d.ts.map +1 -1
  441. package/dist/esm-types/values/value.d.ts.map +1 -1
  442. package/dist/react.bundle.js +7 -1
  443. package/dist/react.bundle.js.map +2 -2
  444. package/package.json +9 -9
  445. package/schemas/convex.schema.json +5 -5
  446. package/src/browser/http_client.ts +43 -10
  447. package/src/browser/query_options.ts +11 -5
  448. package/src/browser/simple_client.ts +35 -14
  449. package/src/browser/sync/optimistic_updates.ts +17 -4
  450. package/src/browser/sync/optimistic_updates_impl.ts +17 -4
  451. package/src/bundler/index.ts +9 -4
  452. package/src/cli/codegen.ts +0 -1
  453. package/src/cli/configure.ts +27 -7
  454. package/src/cli/deploy.ts +37 -5
  455. package/src/cli/deploymentSelect.ts +7 -4
  456. package/src/cli/dev.ts +9 -0
  457. package/src/cli/docs.ts +3 -44
  458. package/src/cli/env.ts +12 -6
  459. package/src/cli/envDefault.ts +8 -2
  460. package/src/cli/generatedApi.ts +1 -1
  461. package/src/cli/lib/api.ts +5 -1
  462. package/src/cli/lib/checkForLargeIndexBackfill.ts +173 -0
  463. package/src/cli/lib/checkForLargeIndexDeletion.ts +150 -91
  464. package/src/cli/lib/checkForSlowSchemaValidation.ts +141 -0
  465. package/src/cli/lib/checkForStagedValidatorDeletion.ts +104 -0
  466. package/src/cli/lib/codegen.ts +0 -2
  467. package/src/cli/lib/command.ts +3 -0
  468. package/src/cli/lib/components/definition/bundle.ts +68 -14
  469. package/src/cli/lib/components.ts +84 -0
  470. package/src/cli/lib/config.ts +85 -18
  471. package/src/cli/lib/deploy2.ts +66 -2
  472. package/src/cli/lib/deployApi/evaluateSchema.ts +97 -0
  473. package/src/cli/lib/deployApi/finishPush.ts +1 -1
  474. package/src/cli/lib/deployApi/startPush.ts +1 -1
  475. package/src/cli/lib/dev.ts +15 -0
  476. package/src/cli/lib/formatValidationProgress.ts +35 -0
  477. package/src/cli/lib/generatedFunctionLogsApi.ts +2 -0
  478. package/src/cli/lib/indexes.ts +1 -1
  479. package/src/cli/lib/localDeployment/run.ts +44 -2
  480. package/src/cli/lib/localDeployment/upgrade.ts +4 -6
  481. package/src/cli/lib/localDeployment/utils.ts +6 -0
  482. package/src/cli/lib/mcp/tools/env.ts +17 -3
  483. package/src/cli/lib/run.ts +3 -0
  484. package/src/cli/lib/schemaEvaluation.ts +88 -0
  485. package/src/cli/lib/usageLimits.ts +2 -0
  486. package/src/cli/lib/utils/mutex.ts +9 -27
  487. package/src/cli/lib/utils/utils.ts +127 -56
  488. package/src/cli/projectCreate.ts +1 -1
  489. package/src/index.ts +1 -1
  490. package/src/nextjs/index.ts +19 -8
  491. package/src/react/client.ts +73 -30
  492. package/src/react/hydration.tsx +14 -6
  493. package/src/react/queries_observer.ts +19 -16
  494. package/src/react/use_paginated_query2.ts +10 -6
  495. package/src/react/use_queries.ts +23 -7
  496. package/src/server/api.ts +220 -14
  497. package/src/server/components/index.ts +4 -6
  498. package/src/server/cron.ts +34 -24
  499. package/src/server/impl/actions_impl.ts +39 -10
  500. package/src/server/impl/meta_impl.ts +8 -1
  501. package/src/server/impl/scheduler_impl.ts +13 -6
  502. package/src/server/impl/storage_impl.ts +30 -0
  503. package/src/server/index.ts +6 -1
  504. package/src/server/meta.ts +79 -0
  505. package/src/server/registration.ts +38 -7
  506. package/src/server/scheduler.ts +22 -7
  507. package/src/server/schema.ts +77 -0
  508. package/src/server/storage.ts +17 -0
  509. package/src/values/validator.ts +3 -1
  510. package/src/values/validators.ts +85 -27
  511. package/src/values/value.ts +9 -5
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.45.0",
4
+ "version": "1.47.0",
5
5
  "author": "Convex, Inc. <no-reply@convex.dev>",
6
6
  "homepage": "https://convex.dev",
7
7
  "repository": {
@@ -204,7 +204,7 @@
204
204
  "@babel/types": "^7.27.1",
205
205
  "@clerk/react": "^6.4.3",
206
206
  "@commander-js/extra-typings": "^14.0.0",
207
- "@convex-dev/platform": "0.1.10",
207
+ "@convex-dev/platform": "0.1.11",
208
208
  "@eslint/compat": "~2.0.0",
209
209
  "@eslint/eslintrc": "^3",
210
210
  "@eslint/js": "~9.39.0",
@@ -222,13 +222,13 @@
222
222
  "@types/babel__code-frame": "^7.0.6",
223
223
  "@types/deep-equal": "1.0.4",
224
224
  "@types/node": "^18.17.0",
225
- "@types/react": "^18.0.0",
226
- "@types/react-dom": "^18.0.0",
225
+ "@types/react": "^19.2.4",
226
+ "@types/react-dom": "^19.2.3",
227
227
  "@types/semver": "^7.3.13",
228
228
  "@types/serve-handler": "~6.1.4",
229
229
  "@types/ws": "^8.5.13",
230
230
  "@vitest/eslint-plugin": "~1.6.0",
231
- "adm-zip": "^0.6.0",
231
+ "adm-zip": "^0.6.1",
232
232
  "bufferutil": "^4.0.7",
233
233
  "chalk": "5",
234
234
  "chokidar": "3.6.0",
@@ -258,8 +258,8 @@
258
258
  "openapi-typescript-helpers": "~0.1.0",
259
259
  "openid-client": "^5.3.1",
260
260
  "ora": "^9.0.0",
261
- "react": "^18.0.0",
262
- "react-dom": "^18.0.0",
261
+ "react": "^19.2.4",
262
+ "react-dom": "^19.2.4",
263
263
  "semver": "^7.6.0",
264
264
  "serve-handler": "~6.1.6",
265
265
  "shx": "~0.4.0",
@@ -269,7 +269,7 @@
269
269
  "typedoc": "^0.24.6",
270
270
  "typescript": "~5.0.3",
271
271
  "typescript-eslint": "~8.57.0",
272
- "undici": "7.29.0",
272
+ "undici": "7.29.1",
273
273
  "vitest": "^4.1.0",
274
274
  "wait-for-expect": "~4.0.0",
275
275
  "zod": "^3.24.0",
@@ -280,7 +280,7 @@
280
280
  "node": ">=20.0.0"
281
281
  },
282
282
  "scripts": {
283
- "build": "npm run generateApiSpec && python3 scripts/build.py 2>&1",
283
+ "build": "npm run generateApiSpec && uv run --script scripts/build.py 2>&1",
284
284
  "bundle-server": "node scripts/bundle-server.mjs",
285
285
  "clean": "shx rm -rf dist tmpDist*",
286
286
  "lint": "eslint . --cache",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "description": "Configuration schema for Convex project settings.\n\nDocumentation: https://docs.convex.dev/production/project-configuration#convexjson",
3
+ "description": "Configuration schema for Convex project settings.\n\nDocumentation: https://docs.convex.dev/config/convex.json",
4
4
  "type": "object",
5
5
  "definitions": {
6
6
  "authKitConfigureSettings": {
@@ -123,7 +123,7 @@
123
123
  },
124
124
  "nodeVersion": {
125
125
  "type": "string",
126
- "description": "The Node.js version to use for Node.js actions. The currently supported values are '20', '22', and '24'.\n\nDocumentation: https://docs.convex.dev/production/project-configuration#configuring-the-nodejs-version",
126
+ "description": "The Node.js version to use for Node.js actions. The currently supported values are '20', '22', and '24'.\n\nDocumentation: https://docs.convex.dev/config/convex.json#configuring-the-nodejs-version",
127
127
  "default": "20"
128
128
  }
129
129
  }
@@ -135,7 +135,7 @@
135
135
  },
136
136
  "functions": {
137
137
  "type": "string",
138
- "description": "Path to the directory containing Convex functions. You can customize this to use a different location than the default 'convex/' directory.\n\nDocumentation: https://docs.convex.dev/production/project-configuration#changing-the-convex-folder-name-or-location",
138
+ "description": "Path to the directory containing Convex functions. You can customize this to use a different location than the default 'convex/' directory.\n\nDocumentation: https://docs.convex.dev/config/convex.json#changing-the-convex-folder-name-or-location",
139
139
  "default": "convex/"
140
140
  },
141
141
  "codegen": {
@@ -155,12 +155,12 @@
155
155
  },
156
156
  "staticApi": {
157
157
  "type": "boolean",
158
- "description": "When true, generates static `api.d.ts` files, which improves autocomplete and incremental typechecking performance in large codebases.\n\nDocumentation: https://docs.convex.dev/production/project-configuration#using-static-code-generation-beta",
158
+ "description": "When true, generates static `api.d.ts` files, which improves autocomplete and incremental typechecking performance in large codebases.\n\nDocumentation: https://docs.convex.dev/config/convex.json#using-static-code-generation-beta",
159
159
  "default": false
160
160
  },
161
161
  "staticDataModel": {
162
162
  "type": "boolean",
163
- "description": "When true, generates static `dataModel.d.ts` files, which improves autocomplete and incremental typechecking performance in large codebases.\n\nDocumentation: https://docs.convex.dev/production/project-configuration#using-static-code-generation-beta",
163
+ "description": "When true, generates static `dataModel.d.ts` files, which improves autocomplete and incremental typechecking performance in large codebases.\n\nDocumentation: https://docs.convex.dev/config/convex.json#using-static-code-generation-beta",
164
164
  "default": false
165
165
  }
166
166
  }
@@ -1,8 +1,9 @@
1
1
  import {
2
- FunctionReference,
3
2
  FunctionReturnType,
4
3
  OptionalRestArgs,
5
4
  getFunctionName,
5
+ FunctionReference,
6
+ FunctionReference_future,
6
7
  } from "../server/api.js";
7
8
  import { parseArgs, validateDeploymentUrl } from "../common/index.js";
8
9
  import { version } from "../index.js";
@@ -68,7 +69,9 @@ export class ConvexHttpClient {
68
69
  private fetch?: typeof globalThis.fetch | undefined;
69
70
  private logger: Logger;
70
71
  private mutationQueue: Array<{
71
- mutation: FunctionReference<"mutation">;
72
+ mutation:
73
+ | FunctionReference<"mutation">
74
+ | FunctionReference_future<"mutation">;
72
75
  args: FunctionArgs<any>;
73
76
  resolve: (value: any) => void;
74
77
  reject: (error: any) => void;
@@ -223,7 +226,11 @@ export class ConvexHttpClient {
223
226
  *
224
227
  * @deprecated This API is experimental: it may change or disappear.
225
228
  */
226
- async consistentQuery<Query extends FunctionReference<"query">>(
229
+ async consistentQuery<
230
+ Query extends
231
+ | FunctionReference<"query">
232
+ | FunctionReference_future<"query">,
233
+ >(
227
234
  query: Query,
228
235
  ...args: OptionalRestArgs<Query>
229
236
  ): Promise<FunctionReturnType<Query>> {
@@ -267,7 +274,11 @@ export class ConvexHttpClient {
267
274
  * the arguments will be `{}`.
268
275
  * @returns A promise of the query's result.
269
276
  */
270
- async query<Query extends FunctionReference<"query">>(
277
+ async query<
278
+ Query extends
279
+ | FunctionReference<"query">
280
+ | FunctionReference_future<"query">,
281
+ >(
271
282
  query: Query,
272
283
  ...args: OptionalRestArgs<Query>
273
284
  ): Promise<FunctionReturnType<Query>> {
@@ -275,7 +286,11 @@ export class ConvexHttpClient {
275
286
  return await this.queryInner(query, queryArgs, {});
276
287
  }
277
288
 
278
- private async queryInner<Query extends FunctionReference<"query">>(
289
+ private async queryInner<
290
+ Query extends
291
+ | FunctionReference<"query">
292
+ | FunctionReference_future<"query">,
293
+ >(
279
294
  query: Query,
280
295
  queryArgs: FunctionArgs<Query>,
281
296
  options: { timestampPromise?: Promise<string> },
@@ -339,7 +354,11 @@ export class ConvexHttpClient {
339
354
  }
340
355
  }
341
356
 
342
- private async mutationInner<Mutation extends FunctionReference<"mutation">>(
357
+ private async mutationInner<
358
+ Mutation extends
359
+ | FunctionReference<"mutation">
360
+ | FunctionReference_future<"mutation">,
361
+ >(
343
362
  mutation: Mutation,
344
363
  mutationArgs: FunctionArgs<Mutation>,
345
364
  ): Promise<FunctionReturnType<Mutation>> {
@@ -408,7 +427,11 @@ export class ConvexHttpClient {
408
427
  this.isProcessingQueue = false;
409
428
  }
410
429
 
411
- private enqueueMutation<Mutation extends FunctionReference<"mutation">>(
430
+ private enqueueMutation<
431
+ Mutation extends
432
+ | FunctionReference<"mutation">
433
+ | FunctionReference_future<"mutation">,
434
+ >(
412
435
  mutation: Mutation,
413
436
  args: FunctionArgs<Mutation>,
414
437
  ): Promise<FunctionReturnType<Mutation>> {
@@ -427,7 +450,11 @@ export class ConvexHttpClient {
427
450
  * @param options - An optional object containing
428
451
  * @returns A promise of the mutation's result.
429
452
  */
430
- async mutation<Mutation extends FunctionReference<"mutation">>(
453
+ async mutation<
454
+ Mutation extends
455
+ | FunctionReference<"mutation">
456
+ | FunctionReference_future<"mutation">,
457
+ >(
431
458
  mutation: Mutation,
432
459
  ...args: ArgsAndOptions<Mutation, HttpMutationOptions>
433
460
  ): Promise<FunctionReturnType<Mutation>> {
@@ -450,7 +477,11 @@ export class ConvexHttpClient {
450
477
  * the arguments will be `{}`.
451
478
  * @returns A promise of the action's result.
452
479
  */
453
- async action<Action extends FunctionReference<"action">>(
480
+ async action<
481
+ Action extends
482
+ | FunctionReference<"action">
483
+ | FunctionReference_future<"action">,
484
+ >(
454
485
  action: Action,
455
486
  ...args: OptionalRestArgs<Action>
456
487
  ): Promise<FunctionReturnType<Action>> {
@@ -513,7 +544,9 @@ export class ConvexHttpClient {
513
544
  * @internal
514
545
  */
515
546
  async function<
516
- AnyFunction extends FunctionReference<"query" | "mutation" | "action">,
547
+ AnyFunction extends
548
+ | FunctionReference<"query" | "mutation" | "action">
549
+ | FunctionReference_future<"query" | "mutation" | "action">,
517
550
  >(
518
551
  anyFunction: AnyFunction | string,
519
552
  componentPath?: string,
@@ -1,5 +1,9 @@
1
1
  // Inspired by https://tanstack.com/query/v5/docs/framework/react/guides/query-options
2
- import type { FunctionArgs, FunctionReference } from "../server/api.js";
2
+ import type {
3
+ FunctionArgs,
4
+ FunctionReference,
5
+ FunctionReference_future,
6
+ } from "../server/api.js";
3
7
 
4
8
  /**
5
9
  * Options for a Convex query: the query function reference and its arguments.
@@ -8,7 +12,9 @@ import type { FunctionArgs, FunctionReference } from "../server/api.js";
8
12
  *
9
13
  * @public
10
14
  */
11
- export type QueryOptions<Query extends FunctionReference<"query">> = {
15
+ export type QueryOptions<
16
+ Query extends FunctionReference<"query"> | FunctionReference_future<"query">,
17
+ > = {
12
18
  /**
13
19
  * The query function to run.
14
20
  */
@@ -40,8 +46,8 @@ export type QueryOptions<Query extends FunctionReference<"query">> = {
40
46
  * @returns The same object, typed as `QueryOptions<Query>`.
41
47
  * @internal
42
48
  */
43
- export function convexQueryOptions<Query extends FunctionReference<"query">>(
44
- options: QueryOptions<Query>,
45
- ): QueryOptions<Query> {
49
+ export function convexQueryOptions<
50
+ Query extends FunctionReference<"query"> | FunctionReference_future<"query">,
51
+ >(options: QueryOptions<Query>): QueryOptions<Query> {
46
52
  return options;
47
53
  }
@@ -1,9 +1,10 @@
1
1
  import { validateDeploymentUrl } from "../common/index.js";
2
2
  import {
3
3
  FunctionArgs,
4
- FunctionReference,
5
4
  FunctionReturnType,
6
5
  PaginationResult,
6
+ FunctionReference,
7
+ FunctionReference_future,
7
8
  } from "../server/index.js";
8
9
  import { getFunctionName } from "../server/api.js";
9
10
  import { AuthTokenFetcher } from "./sync/authentication_manager.js";
@@ -184,14 +185,18 @@ export class ConvexClient {
184
185
  *
185
186
  * @return an {@link Unsubscribe} function to stop calling the onUpdate function.
186
187
  */
187
- onUpdate<Query extends FunctionReference<"query">>(
188
+ onUpdate<
189
+ Query extends
190
+ | FunctionReference<"query">
191
+ | FunctionReference_future<"query">,
192
+ >(
188
193
  query: Query,
189
194
  args: FunctionArgs<Query>,
190
195
  callback: (result: FunctionReturnType<Query>) => unknown,
191
196
  onError?: (e: Error) => unknown,
192
- ): Unsubscribe<Query["_returnType"]> {
197
+ ): Unsubscribe<FunctionReturnType<Query>> {
193
198
  if (this.disabled) {
194
- return this.createDisabledUnsubscribe<Query["_returnType"]>();
199
+ return this.createDisabledUnsubscribe<FunctionReturnType<Query>>();
195
200
  }
196
201
 
197
202
  // BaseConvexClient takes care of deduplicating queries subscriptions...
@@ -227,7 +232,7 @@ export class ConvexClient {
227
232
  }
228
233
 
229
234
  const unsubscribeProps: RemoveCallSignature<
230
- Unsubscribe<Query["_returnType"]>
235
+ Unsubscribe<FunctionReturnType<Query>>
231
236
  > = {
232
237
  unsubscribe: () => {
233
238
  if (this.closed) {
@@ -241,7 +246,7 @@ export class ConvexClient {
241
246
  getQueryLogs: () => this.client.localQueryLogs(queryToken),
242
247
  };
243
248
  const ret = unsubscribeProps.unsubscribe as Unsubscribe<
244
- Query["_returnType"]
249
+ FunctionReturnType<Query>
245
250
  >;
246
251
  Object.assign(ret, unsubscribeProps);
247
252
  return ret;
@@ -262,7 +267,11 @@ export class ConvexClient {
262
267
  *
263
268
  * @return an {@link Unsubscribe} function to stop calling the callback.
264
269
  */
265
- onPaginatedUpdate_experimental<Query extends FunctionReference<"query">>(
270
+ onPaginatedUpdate_experimental<
271
+ Query extends
272
+ | FunctionReference<"query">
273
+ | FunctionReference_future<"query">,
274
+ >(
266
275
  query: Query,
267
276
  args: FunctionArgs<Query>,
268
277
  options: { initialNumItems: number },
@@ -487,7 +496,11 @@ export class ConvexClient {
487
496
  * @param options - A {@link MutationOptions} options object for the mutation.
488
497
  * @returns A promise of the mutation's result.
489
498
  */
490
- async mutation<Mutation extends FunctionReference<"mutation">>(
499
+ async mutation<
500
+ Mutation extends
501
+ | FunctionReference<"mutation">
502
+ | FunctionReference_future<"mutation">,
503
+ >(
491
504
  mutation: Mutation,
492
505
  args: FunctionArgs<Mutation>,
493
506
  options?: MutationOptions,
@@ -504,7 +517,11 @@ export class ConvexClient {
504
517
  * @param args - An arguments object for the action.
505
518
  * @returns A promise of the action's result.
506
519
  */
507
- async action<Action extends FunctionReference<"action">>(
520
+ async action<
521
+ Action extends
522
+ | FunctionReference<"action">
523
+ | FunctionReference_future<"action">,
524
+ >(
508
525
  action: Action,
509
526
  args: FunctionArgs<Action>,
510
527
  ): Promise<Awaited<FunctionReturnType<Action>>> {
@@ -520,13 +537,17 @@ export class ConvexClient {
520
537
  * @param args - An arguments object for the query.
521
538
  * @returns A promise of the query's result.
522
539
  */
523
- async query<Query extends FunctionReference<"query">>(
540
+ async query<
541
+ Query extends
542
+ | FunctionReference<"query">
543
+ | FunctionReference_future<"query">,
544
+ >(
524
545
  query: Query,
525
- args: Query["_args"],
526
- ): Promise<Awaited<Query["_returnType"]>> {
546
+ args: FunctionArgs<Query>,
547
+ ): Promise<Awaited<FunctionReturnType<Query>>> {
527
548
  if (this.disabled) throw new Error("ConvexClient is disabled");
528
549
  const value = this.client.localQueryResult(getFunctionName(query), args) as
529
- | Awaited<Query["_returnType"]>
550
+ | Awaited<FunctionReturnType<Query>>
530
551
  | undefined;
531
552
  if (value !== undefined) return Promise.resolve(value);
532
553
 
@@ -583,7 +604,7 @@ type QueryInfo = {
583
604
  queryToken: QueryToken | PaginatedQueryToken;
584
605
  hasEverRun: boolean;
585
606
  // query, args and paginationOptions are just here for debugging, the queryToken is authoritative
586
- query: FunctionReference<"query">;
607
+ query: FunctionReference<"query"> | FunctionReference_future<"query">;
587
608
  args: any;
588
609
  paginationOptions: { initialNumItems: number; id: number } | undefined;
589
610
  };
@@ -1,9 +1,10 @@
1
1
  import { Value } from "../../values/index.js";
2
2
  import {
3
3
  FunctionArgs,
4
- FunctionReference,
5
4
  FunctionReturnType,
6
5
  OptionalRestArgs,
6
+ FunctionReference,
7
+ FunctionReference_future,
7
8
  } from "../../server/api.js";
8
9
 
9
10
  /**
@@ -25,7 +26,11 @@ export interface OptimisticLocalStore {
25
26
  * @returns The query result or `undefined` if the query is not currently
26
27
  * in the client.
27
28
  */
28
- getQuery<Query extends FunctionReference<"query">>(
29
+ getQuery<
30
+ Query extends
31
+ | FunctionReference<"query">
32
+ | FunctionReference_future<"query">,
33
+ >(
29
34
  query: Query,
30
35
  ...args: OptionalRestArgs<Query>
31
36
  ): undefined | FunctionReturnType<Query>;
@@ -46,7 +51,11 @@ export interface OptimisticLocalStore {
46
51
  * - `args` - The arguments object for the query.
47
52
  * - `value` The query result or `undefined` if the query is loading.
48
53
  */
49
- getAllQueries<Query extends FunctionReference<"query">>(
54
+ getAllQueries<
55
+ Query extends
56
+ | FunctionReference<"query">
57
+ | FunctionReference_future<"query">,
58
+ >(
50
59
  query: Query,
51
60
  ): {
52
61
  args: FunctionArgs<Query>;
@@ -66,7 +75,11 @@ export interface OptimisticLocalStore {
66
75
  * @param value - The new value to set the query to or `undefined` to remove
67
76
  * it from the client.
68
77
  */
69
- setQuery<Query extends FunctionReference<"query">>(
78
+ setQuery<
79
+ Query extends
80
+ | FunctionReference<"query">
81
+ | FunctionReference_future<"query">,
82
+ >(
70
83
  query: Query,
71
84
  args: FunctionArgs<Query>,
72
85
  value: undefined | FunctionReturnType<Query>,
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  FunctionArgs,
3
- FunctionReference,
4
3
  FunctionReturnType,
5
4
  OptionalRestArgs,
6
5
  getFunctionName,
6
+ FunctionReference,
7
+ FunctionReference_future,
7
8
  } from "../../server/api.js";
8
9
  import { parseArgs } from "../../common/index.js";
9
10
  import { Value } from "../../values/index.js";
@@ -40,7 +41,11 @@ class OptimisticLocalStoreImpl implements OptimisticLocalStore {
40
41
  this.modifiedQueries = [];
41
42
  }
42
43
 
43
- getQuery<Query extends FunctionReference<"query">>(
44
+ getQuery<
45
+ Query extends
46
+ | FunctionReference<"query">
47
+ | FunctionReference_future<"query">,
48
+ >(
44
49
  query: Query,
45
50
  ...args: OptionalRestArgs<Query>
46
51
  ): undefined | FunctionReturnType<Query> {
@@ -55,7 +60,11 @@ class OptimisticLocalStoreImpl implements OptimisticLocalStore {
55
60
  return OptimisticLocalStoreImpl.queryValue(queryResult.result);
56
61
  }
57
62
 
58
- getAllQueries<Query extends FunctionReference<"query">>(
63
+ getAllQueries<
64
+ Query extends
65
+ | FunctionReference<"query">
66
+ | FunctionReference_future<"query">,
67
+ >(
59
68
  query: Query,
60
69
  ): {
61
70
  args: FunctionArgs<Query>;
@@ -77,7 +86,11 @@ class OptimisticLocalStoreImpl implements OptimisticLocalStore {
77
86
  return queriesWithName;
78
87
  }
79
88
 
80
- setQuery<QueryReference extends FunctionReference<"query">>(
89
+ setQuery<
90
+ QueryReference extends
91
+ | FunctionReference<"query">
92
+ | FunctionReference_future<"query">,
93
+ >(
81
94
  queryReference: QueryReference,
82
95
  args: FunctionArgs<QueryReference>,
83
96
  value: undefined | FunctionReturnType<QueryReference>,
@@ -205,6 +205,7 @@ export async function bundle({
205
205
  modules: Bundle[];
206
206
  externalDependencies: Map<string, string>;
207
207
  bundledModuleNames: Set<string>;
208
+ metafile: esbuild.Metafile | null;
208
209
  }> {
209
210
  const availableExternalPackages = await computeExternalPackages(
210
211
  ctx,
@@ -264,6 +265,7 @@ export async function bundle({
264
265
  result.externalModuleNames,
265
266
  ),
266
267
  bundledModuleNames: result.bundledModuleNames,
268
+ metafile: result.metafile ?? null,
267
269
  };
268
270
  }
269
271
 
@@ -321,10 +323,13 @@ export async function bundleSchema(
321
323
  platform: "browser",
322
324
  extraConditions,
323
325
  });
324
- return result.modules;
326
+ return { modules: result.modules, metafile: result.metafile };
325
327
  }
326
328
 
327
- export async function bundleAuthConfig(ctx: Context, dir: string) {
329
+ export async function bundleAuthConfig(
330
+ ctx: Context,
331
+ dir: string,
332
+ ): Promise<{ modules: Bundle[]; metafile: esbuild.Metafile | null }> {
328
333
  const authConfigPath = path.resolve(dir, "auth.config.js");
329
334
  const authConfigTsPath = path.resolve(dir, "auth.config.ts");
330
335
  if (ctx.fs.exists(authConfigPath) && ctx.fs.exists(authConfigTsPath)) {
@@ -343,7 +348,7 @@ export async function bundleAuthConfig(ctx: Context, dir: string) {
343
348
  `Found no auth config file at ${authConfigTsPath} or ${authConfigPath} so there are no configured auth providers`,
344
349
  ),
345
350
  );
346
- return [];
351
+ return { modules: [], metafile: null };
347
352
  }
348
353
  logVerbose(chalkStderr.yellow(`Bundling auth config found at ${chosenPath}`));
349
354
  const result = await bundle({
@@ -355,7 +360,7 @@ export async function bundleAuthConfig(ctx: Context, dir: string) {
355
360
  // The auth config must be one module
356
361
  splitting: false,
357
362
  });
358
- return result.modules;
363
+ return { modules: result.modules, metafile: result.metafile };
359
364
  }
360
365
 
361
366
  export async function doesImportConvexHttpRouter(source: string) {
@@ -67,7 +67,6 @@ export const codegen = new Command("codegen")
67
67
  liveComponentSources: !!options.liveComponentSources,
68
68
  debugNodeApis: false,
69
69
  systemUdfs: !!options.systemUdfs,
70
- largeIndexDeletionCheck: "no verification" as const, // `codegen` is a read-only operation
71
70
  codegenOnlyThisComponent: options.componentDir,
72
71
  };
73
72
 
@@ -122,17 +122,22 @@ export async function deploymentCredentialsOrConfigure(
122
122
  chosenConfiguration,
123
123
  cmdOptions,
124
124
  );
125
- const { convexSiteUrl: siteUrl } = await fetchDeploymentCanonicalUrls(ctx, {
126
- adminKey: selectedDeployment.adminKey,
127
- deploymentUrl: selectedDeployment.url,
128
- });
125
+ const { convexCloudUrl, convexSiteUrl: siteUrl } =
126
+ await fetchDeploymentCanonicalUrls(ctx, {
127
+ adminKey: selectedDeployment.adminKey,
128
+ deploymentUrl: selectedDeployment.url,
129
+ });
130
+ const applicationUrl = deploymentUrlForApplicationEnv(
131
+ selectedDeployment,
132
+ convexCloudUrl,
133
+ );
129
134
 
130
135
  if (selectedDeployment.deploymentFields !== null) {
131
136
  // Set the `CONVEX_DEPLOYMENT` env var + the `CONVEX_URL` env var
132
137
  await updateEnvAndConfigForDeploymentSelection(
133
138
  ctx,
134
139
  {
135
- url: selectedDeployment.url,
140
+ url: applicationUrl,
136
141
  siteUrl,
137
142
  deploymentName: selectedDeployment.deploymentFields.deploymentName,
138
143
  teamSlug: selectedDeployment.deploymentFields.teamSlug,
@@ -160,6 +165,21 @@ export async function deploymentCredentialsOrConfigure(
160
165
  };
161
166
  }
162
167
 
168
+ export function deploymentUrlForApplicationEnv(
169
+ selectedDeployment: {
170
+ url: string;
171
+ deploymentFields: { deploymentType: DeploymentType } | null;
172
+ },
173
+ canonicalCloudUrl: string,
174
+ ): string {
175
+ const deploymentType = selectedDeployment.deploymentFields?.deploymentType;
176
+ return deploymentType !== undefined &&
177
+ deploymentType !== "local" &&
178
+ deploymentType !== "anonymous"
179
+ ? canonicalCloudUrl
180
+ : selectedDeployment.url;
181
+ }
182
+
163
183
  export async function _deploymentCredentialsOrConfigure(
164
184
  ctx: Context,
165
185
  deploymentSelection: DeploymentSelection,
@@ -608,14 +628,14 @@ async function selectExistingProject(
608
628
  devDeployment: "cloud" | "local";
609
629
  }> {
610
630
  const {
611
- team: { slug: teamSlug },
631
+ team: { id: teamId, slug: teamSlug },
612
632
  chosen,
613
633
  } = await validateOrSelectTeam(ctx, config.team, "Team:");
614
634
 
615
635
  const projectSlug = await validateOrSelectProject(
616
636
  ctx,
617
637
  config.project,
618
- teamSlug,
638
+ teamId,
619
639
  "Configure project",
620
640
  "Project:",
621
641
  );