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
@@ -1,261 +0,0 @@
1
- /**
2
- * @vitest-environment happy-dom
3
- */
4
- import { test, expect, describe, vi } from "vitest";
5
- import ws from "ws";
6
-
7
- import {
8
- ConvexReactClient,
9
- createMutation,
10
- useQuery,
11
- useQuery_experimental,
12
- } from "./client.js";
13
- import { convexQueryOptions } from "../browser/query_options.js";
14
- import { ConvexProvider } from "./index.js";
15
- import React from "react";
16
- import { renderHook } from "@testing-library/react";
17
- import { anyApi, makeFunctionReference } from "../server/api.js";
18
-
19
- const address = "https://127.0.0.1:3001";
20
-
21
- const testConvexReactClient = () =>
22
- new ConvexReactClient(address, {
23
- webSocketConstructor: ws as unknown as typeof WebSocket,
24
- });
25
-
26
- describe("ConvexReactClient", () => {
27
- test("can be constructed", () => {
28
- const client = testConvexReactClient();
29
- expect(typeof client).not.toEqual("undefined");
30
- });
31
- });
32
- describe("createMutation", () => {
33
- test("Optimistic updates can be created", () => {
34
- const client = testConvexReactClient();
35
- createMutation(anyApi.myMutation.default, client).withOptimisticUpdate(
36
- () => {
37
- // no update
38
- },
39
- );
40
- });
41
-
42
- test("Specifying an optimistic update twice produces an error", () => {
43
- const client = testConvexReactClient();
44
- const mutation = createMutation(
45
- anyApi.myMutation.default,
46
- client,
47
- ).withOptimisticUpdate(() => {
48
- // no update
49
- });
50
- expect(() => {
51
- mutation.withOptimisticUpdate(() => {
52
- // no update
53
- });
54
- }).toThrow("Already specified optimistic update for mutation myMutation");
55
- });
56
-
57
- test("Using a mutation as an event handler directly throws a useful error", () => {
58
- const client = testConvexReactClient();
59
-
60
- const fakeSyntheticEvent: any = {
61
- bubbles: false,
62
- cancelable: true,
63
- defaultPrevented: false,
64
- isTrusted: false,
65
- nativeEvent: {},
66
- preventDefault: () => undefined,
67
- isDefaultPrevented: false,
68
- stopPropagation: () => undefined,
69
- isPropagationStopped: false,
70
- persist: () => undefined,
71
- timeStamp: 0,
72
- type: "something",
73
- };
74
- const myMutation = createMutation(anyApi.myMutation.default, client);
75
- expect(() => myMutation(fakeSyntheticEvent)).toThrow(
76
- "Convex function called with SyntheticEvent object.",
77
- );
78
- });
79
- });
80
-
81
- describe("useQuery", () => {
82
- function createClientWithQuery() {
83
- const client = testConvexReactClient();
84
- // Use an optimistic update to set up a query to have a result.
85
- void client.mutation(
86
- anyApi.myMutation.default,
87
- {},
88
- {
89
- optimisticUpdate: (localStore) => {
90
- localStore.setQuery(anyApi.myQuery.default, {}, "queryResult");
91
- },
92
- },
93
- );
94
- return client;
95
- }
96
-
97
- test("returns the result", () => {
98
- const client = createClientWithQuery();
99
- const wrapper = ({ children }: any) => (
100
- <ConvexProvider client={client}>{children}</ConvexProvider>
101
- );
102
- const { result } = renderHook(() => useQuery(anyApi.myQuery.default), {
103
- wrapper,
104
- });
105
- expect(result.current).toStrictEqual("queryResult");
106
- });
107
-
108
- test("returns undefined when skipped", () => {
109
- const client = createClientWithQuery();
110
- const wrapper = ({ children }: any) => (
111
- <ConvexProvider client={client}>{children}</ConvexProvider>
112
- );
113
- const { result } = renderHook(
114
- () => useQuery(anyApi.myQuery.default, "skip"),
115
- {
116
- wrapper,
117
- },
118
- );
119
- expect(result.current).toStrictEqual(undefined);
120
- });
121
-
122
- test("useQuery_experimental object form returns success result", () => {
123
- const client = createClientWithQuery();
124
- const wrapper = ({ children }: any) => (
125
- <ConvexProvider client={client}>{children}</ConvexProvider>
126
- );
127
- const { result } = renderHook(
128
- () =>
129
- useQuery_experimental({
130
- query: anyApi.myQuery.default,
131
- args: {},
132
- }),
133
- { wrapper },
134
- );
135
- expect(result.current).toStrictEqual({
136
- data: "queryResult",
137
- status: "success",
138
- });
139
- });
140
-
141
- test("useQuery_experimental object form returns pending when skipped", () => {
142
- const client = createClientWithQuery();
143
- const wrapper = ({ children }: any) => (
144
- <ConvexProvider client={client}>{children}</ConvexProvider>
145
- );
146
- const { result } = renderHook(
147
- () =>
148
- useQuery_experimental({
149
- query: anyApi.myQuery.default,
150
- args: "skip",
151
- }),
152
- { wrapper },
153
- );
154
- expect(result.current).toStrictEqual({
155
- status: "pending",
156
- });
157
- });
158
-
159
- test("Optimistic update handlers can’t be async", () => {
160
- const client = testConvexReactClient();
161
- const mutation = createMutation(
162
- anyApi.myMutation.default,
163
- client,
164
- // @ts-expect-error
165
- ).withOptimisticUpdate(async () => {});
166
-
167
- // Calling the mutation should warn in the console
168
- const consoleWarnSpy = vi.spyOn(console, "warn");
169
- void mutation();
170
- expect(consoleWarnSpy).toHaveBeenCalledWith(
171
- "Optimistic update handler returned a Promise. Optimistic updates should be synchronous.",
172
- );
173
- });
174
- });
175
-
176
- // Intentionally disabled because we're only testing types
177
- describe.skip("useQuery typing", () => {
178
- test("useQuery with no args query", () => {
179
- const queryWithNoArgs = makeFunctionReference<
180
- "query",
181
- Record<string, never>
182
- >("foo");
183
- useQuery(queryWithNoArgs, {});
184
- // @ts-expect-error This should be an error
185
- useQuery(queryWithNoArgs, { x: 3 });
186
- useQuery(queryWithNoArgs, "skip");
187
- const x: number | null = null;
188
- useQuery(queryWithNoArgs, x === null ? "skip" : {});
189
- // This should be an error, but isn't :(, probably a bug in TypeScript
190
- useQuery(queryWithNoArgs, x === null ? "skip" : { x });
191
- // @ts-expect-error This should be an error
192
- useQuery(queryWithNoArgs, x === null ? "skip" : { x: 3 });
193
- });
194
-
195
- test("useQuery with query taking args", () => {
196
- const queryWithArgs = makeFunctionReference<"query", { x: number }>("foo");
197
- // @ts-expect-error This should be an error
198
- useQuery(queryWithArgs);
199
- // @ts-expect-error This should be an error
200
- useQuery(queryWithArgs, { x: "not a number" });
201
- useQuery(queryWithArgs, { x: 42 });
202
- useQuery(queryWithArgs, "skip");
203
- const x: number | null = null;
204
- useQuery(queryWithArgs, x === null ? "skip" : { x });
205
- // @ts-expect-error This should be an error
206
- useQuery(queryWithArgs, x === null ? null : { x: "not a number" });
207
- });
208
- });
209
-
210
- describe("async query fetch", () => {
211
- const client = testConvexReactClient();
212
-
213
- function optimisticUpdate() {
214
- // Use an optimistic update to set up a query to have a result.
215
- void client.mutation(
216
- anyApi.myMutation.default,
217
- {},
218
- {
219
- optimisticUpdate: (localStore) => {
220
- localStore.setQuery(anyApi.myQuery.default, {}, "queryResult");
221
- },
222
- },
223
- );
224
- }
225
-
226
- test("returns after optimistic update", async () => {
227
- const queryResult = client.query(anyApi.myQuery.default, {});
228
- optimisticUpdate();
229
- expect(await queryResult).toStrictEqual("queryResult");
230
- });
231
-
232
- test("returns existing result", async () => {
233
- optimisticUpdate();
234
- const queryResult = client.query(anyApi.myQuery.default, {});
235
- expect(await queryResult).toStrictEqual("queryResult");
236
- });
237
- });
238
-
239
- describe("prewarmQuery types", () => {
240
- test("accepts QueryOptions shape", () => {
241
- const client = testConvexReactClient();
242
- const opts = convexQueryOptions({
243
- query: makeFunctionReference<"query", { name: string }, string>(
244
- "myQuery",
245
- ),
246
- args: { name: "hi" },
247
- });
248
- client.prewarmQuery(opts);
249
- });
250
-
251
- test("accepts extendSubscriptionFor on prewarmQuery", () => {
252
- const client = testConvexReactClient();
253
- client.prewarmQuery({
254
- query: makeFunctionReference<"query", { name: string }, string>(
255
- "myQuery",
256
- ),
257
- args: { name: "hi" },
258
- extendSubscriptionFor: 10_000,
259
- });
260
- });
261
- });
@@ -1,174 +0,0 @@
1
- import { test, expect, describe, vi } from "vitest";
2
- import ws from "ws";
3
-
4
- import { ConvexReactClient } from "./client.js";
5
- import { anyApi } from "../server/api.js";
6
- import { BaseConvexClient } from "../browser/index.js";
7
- import { BaseConvexClientInterface } from "../browser/sync/client.js";
8
-
9
- const address = "https://127.0.0.1:3001";
10
-
11
- describe("Creating a ConvexReactClient with a custom base client", () => {
12
- describe("with a `BaseConvexClient` subclass", () => {
13
- // A minimal subclass of `BaseConvexClient` used to prove that a
14
- // caller-provided `BaseConvexClient` (of any subclass) can be plugged into
15
- // a `ConvexReactClient` via the `client` option.
16
- class MinimalBaseConvexClient extends BaseConvexClient {}
17
-
18
- const testBaseConvexClient = () =>
19
- new MinimalBaseConvexClient(address, () => {}, {
20
- webSocketConstructor: ws as unknown as typeof WebSocket,
21
- });
22
-
23
- test("uses the provided client as its `sync` client", () => {
24
- const baseClient = testBaseConvexClient();
25
- const client = new ConvexReactClient(address, { baseClient });
26
- expect(client.sync).toBe(baseClient);
27
- });
28
-
29
- test("applies setAdminAuth called before the client is lazily instantiated", () => {
30
- const baseClient = testBaseConvexClient();
31
- const setAdminAuthSpy = vi.spyOn(baseClient, "setAdminAuth");
32
- const client = new ConvexReactClient(address, { baseClient });
33
- client.setAdminAuth("admin-token");
34
- expect(setAdminAuthSpy).not.toHaveBeenCalled();
35
-
36
- // Accessing `sync` lazily instantiates the client, applying admin auth.
37
- expect(client.sync).toBe(baseClient);
38
- expect(setAdminAuthSpy).toHaveBeenCalledWith("admin-token", undefined);
39
- });
40
-
41
- test("queries and mutations work through the provided client", async () => {
42
- const baseClient = testBaseConvexClient();
43
- const client = new ConvexReactClient(address, { baseClient });
44
-
45
- void client.mutation(
46
- anyApi.myMutation.default,
47
- {},
48
- {
49
- optimisticUpdate: (localStore) => {
50
- localStore.setQuery(anyApi.myQuery.default, {}, "queryResult");
51
- },
52
- },
53
- );
54
-
55
- const queryResult = client.query(anyApi.myQuery.default, {});
56
- expect(await queryResult).toStrictEqual("queryResult");
57
- });
58
- });
59
-
60
- describe("with a from-scratch BaseConvexClientInterface implementation", () => {
61
- // A from-scratch (non-subclass) implementation of `BaseConvexClientInterface`.
62
- // Unlike `MinimalBaseConvexClient` above, this does not extend
63
- // `BaseConvexClient`, so TypeScript forces every public member to be
64
- // declared here explicitly — if `BaseConvexClientInterface` ever gains a member,
65
- // this class fails to compile until a matching forwarding method is added.
66
- class ComposedBaseConvexClient implements BaseConvexClientInterface {
67
- private inner: BaseConvexClient;
68
-
69
- constructor(...args: ConstructorParameters<typeof BaseConvexClient>) {
70
- this.inner = new BaseConvexClient(...args);
71
- }
72
-
73
- addOnTransitionHandler(
74
- ...args: Parameters<BaseConvexClient["addOnTransitionHandler"]>
75
- ) {
76
- return this.inner.addOnTransitionHandler(...args);
77
- }
78
- setAuth(...args: Parameters<BaseConvexClient["setAuth"]>) {
79
- return this.inner.setAuth(...args);
80
- }
81
- setAdminAuth(...args: Parameters<BaseConvexClient["setAdminAuth"]>) {
82
- return this.inner.setAdminAuth(...args);
83
- }
84
- clearAuth() {
85
- return this.inner.clearAuth();
86
- }
87
- subscribe(...args: Parameters<BaseConvexClient["subscribe"]>) {
88
- return this.inner.subscribe(...args);
89
- }
90
- localQueryResult(
91
- ...args: Parameters<BaseConvexClient["localQueryResult"]>
92
- ) {
93
- return this.inner.localQueryResult(...args);
94
- }
95
- localQueryResultByToken(
96
- ...args: Parameters<BaseConvexClient["localQueryResultByToken"]>
97
- ) {
98
- return this.inner.localQueryResultByToken(...args);
99
- }
100
- hasLocalQueryResultByToken(
101
- ...args: Parameters<BaseConvexClient["hasLocalQueryResultByToken"]>
102
- ) {
103
- return this.inner.hasLocalQueryResultByToken(...args);
104
- }
105
- localQueryLogs(...args: Parameters<BaseConvexClient["localQueryLogs"]>) {
106
- return this.inner.localQueryLogs(...args);
107
- }
108
- queryJournal(...args: Parameters<BaseConvexClient["queryJournal"]>) {
109
- return this.inner.queryJournal(...args);
110
- }
111
- connectionState() {
112
- return this.inner.connectionState();
113
- }
114
- subscribeToConnectionState(
115
- ...args: Parameters<BaseConvexClient["subscribeToConnectionState"]>
116
- ) {
117
- return this.inner.subscribeToConnectionState(...args);
118
- }
119
- mutation(...args: Parameters<BaseConvexClient["mutation"]>) {
120
- return this.inner.mutation(...args);
121
- }
122
- action(...args: Parameters<BaseConvexClient["action"]>) {
123
- return this.inner.action(...args);
124
- }
125
- close() {
126
- return this.inner.close();
127
- }
128
- get url() {
129
- return this.inner.url;
130
- }
131
- }
132
-
133
- const testBaseConvexClient = () =>
134
- new ComposedBaseConvexClient(address, () => {}, {
135
- webSocketConstructor: ws as unknown as typeof WebSocket,
136
- });
137
-
138
- test("uses the provided client as its `sync` client", () => {
139
- const baseClient = testBaseConvexClient();
140
- const client = new ConvexReactClient(address, { baseClient });
141
- expect(client.sync).toBe(baseClient);
142
- });
143
-
144
- test("applies setAdminAuth called before the client is lazily instantiated", () => {
145
- const baseClient = testBaseConvexClient();
146
- const setAdminAuthSpy = vi.spyOn(baseClient, "setAdminAuth");
147
- const client = new ConvexReactClient(address, { baseClient });
148
- client.setAdminAuth("admin-token");
149
- expect(setAdminAuthSpy).not.toHaveBeenCalled();
150
-
151
- // Accessing `sync` lazily instantiates the client, applying admin auth.
152
- expect(client.sync).toBe(baseClient);
153
- expect(setAdminAuthSpy).toHaveBeenCalledWith("admin-token", undefined);
154
- });
155
-
156
- test("queries and mutations work through the provided client", async () => {
157
- const baseClient = testBaseConvexClient();
158
- const client = new ConvexReactClient(address, { baseClient });
159
-
160
- void client.mutation(
161
- anyApi.myMutation.default,
162
- {},
163
- {
164
- optimisticUpdate: (localStore) => {
165
- localStore.setQuery(anyApi.myQuery.default, {}, "queryResult");
166
- },
167
- },
168
- );
169
-
170
- const queryResult = client.query(anyApi.myQuery.default, {});
171
- expect(await queryResult).toStrictEqual("queryResult");
172
- });
173
- });
174
- });
@@ -1,176 +0,0 @@
1
- import { Value } from "../values/index.js";
2
- import {
3
- test,
4
- beforeEach,
5
- afterEach,
6
- expect,
7
- vi,
8
- MockedFunction,
9
- } from "vitest";
10
- import FakeWatch from "../test/fake_watch.js";
11
- import { QueriesObserver } from "./queries_observer.js";
12
- import { FunctionReference, anyApi } from "../server/api.js";
13
-
14
- let queriesObserver: QueriesObserver;
15
- let createWatch: MockedFunction<
16
- (
17
- query: FunctionReference<"query">,
18
- args: Record<string, Value>,
19
- ) => FakeWatch<any>
20
- >;
21
- let listener: MockedFunction<() => void>;
22
-
23
- beforeEach(() => {
24
- createWatch = vi.fn(() => new FakeWatch<any>()) as any;
25
- queriesObserver = new QueriesObserver(createWatch);
26
- listener = vi.fn() as any;
27
- queriesObserver.subscribe(listener);
28
- });
29
-
30
- afterEach(() => {
31
- queriesObserver.destroy();
32
- });
33
-
34
- test("`getLocalResults`", () => {
35
- const queries = {
36
- query: {
37
- query: anyApi.myQuery.default,
38
- args: {},
39
- },
40
- };
41
- queriesObserver.setQueries(queries);
42
- expect(queriesObserver.getLocalResults(queries)).toStrictEqual({
43
- query: undefined,
44
- });
45
- // The listener isn't notified for our own changes.
46
- expect(listener.mock.calls.length).toBe(0);
47
-
48
- // If we update the value of the query, the listener is notified and the
49
- // local results include the update.
50
- createWatch.mock.results[0].value.setValue("query value");
51
- expect(listener.mock.calls.length).toBe(1);
52
- createWatch.mockImplementation(() => {
53
- const watch = new FakeWatch<any>();
54
- watch.value = "query value";
55
- return watch;
56
- });
57
- expect(queriesObserver.getLocalResults(queries)).toStrictEqual({
58
- query: "query value",
59
- });
60
- });
61
-
62
- test("If the query changes, only stay subscribed to the second query", () => {
63
- queriesObserver.setQueries({
64
- query: {
65
- query: anyApi.myQuery.default,
66
- args: {},
67
- },
68
- });
69
-
70
- queriesObserver.setQueries({
71
- query: {
72
- query: anyApi.myQuery2.default,
73
- args: {},
74
- },
75
- });
76
-
77
- // The listener isn't notified for our own changes.
78
- expect(listener.mock.calls.length).toBe(0);
79
-
80
- // There were 2 watches created. We should be subscribed to only the second.
81
- expect(createWatch.mock.calls.length).toBe(2);
82
- expect(createWatch.mock.results[0].value.numCallbacks()).toBe(0);
83
- expect(createWatch.mock.results[1].value.numCallbacks()).toBe(1);
84
- });
85
-
86
- test("If the query args change, only stay subscribed to the second args", () => {
87
- queriesObserver.setQueries({
88
- query: {
89
- query: anyApi.myQuery.default,
90
- args: { arg: "first arg" },
91
- },
92
- });
93
-
94
- queriesObserver.setQueries({
95
- query: {
96
- query: anyApi.myQuery.default,
97
- args: { arg: "new arg" },
98
- },
99
- });
100
-
101
- // The listener isn't notified for our own changes.
102
- expect(listener.mock.calls.length).toBe(0);
103
-
104
- // There were 2 watches created. We should be subscribed to only the second.
105
- expect(createWatch.mock.calls.length).toBe(2);
106
- expect(createWatch.mock.results[0].value.numCallbacks()).toBe(0);
107
- expect(createWatch.mock.results[1].value.numCallbacks()).toBe(1);
108
- });
109
-
110
- test("If the query doesn't change, we only have one subscription", () => {
111
- queriesObserver.setQueries({
112
- query: {
113
- query: anyApi.myQuery.default,
114
- args: { arg1: "arg1", arg2: 1, arg3: {} },
115
- },
116
- });
117
- expect(createWatch.mock.calls.length).toBe(1);
118
- expect(createWatch.mock.results[0].value.numCallbacks()).toBe(1);
119
-
120
- // Re-adding the same query doesn't create a new watch.
121
- queriesObserver.setQueries({
122
- query: {
123
- query: anyApi.myQuery.default,
124
- args: { arg1: "arg1", arg2: 1, arg3: {} },
125
- },
126
- });
127
- expect(createWatch.mock.calls.length).toBe(1);
128
- expect(createWatch.mock.results[0].value.numCallbacks()).toBe(1);
129
- });
130
-
131
- test("destroy unsubscribes from all queries", async () => {
132
- queriesObserver.setQueries({
133
- query: {
134
- query: anyApi.myQuery.default,
135
- args: {},
136
- },
137
- });
138
-
139
- queriesObserver.destroy();
140
-
141
- // No subscriptions to the watch now.
142
- expect(createWatch.mock.calls.length).toBe(1);
143
- expect(createWatch.mock.results[0].value.numCallbacks()).toBe(0);
144
- });
145
-
146
- test("swapping createWatch recreates subscriptions", async () => {
147
- queriesObserver.setQueries({
148
- query: {
149
- query: anyApi.myQuery.default,
150
- args: {},
151
- },
152
- });
153
- // We should have a listen for the query.
154
- expect(createWatch.mock.calls.length).toBe(1);
155
- expect(createWatch.mock.results[0].value.numCallbacks()).toBe(1);
156
- // Pretend that the server sent us a query journal
157
- createWatch.mock.results[0].value.setJournal("query journal");
158
-
159
- // Swap out the `createWatch` function.
160
- const createWatch2 = vi.fn(() => new FakeWatch<any>()) as any;
161
- queriesObserver.setCreateWatch(createWatch2);
162
-
163
- // No subscriptions left for the original watch.
164
- expect(createWatch.mock.calls.length).toBe(1);
165
- expect(createWatch.mock.results[0].value.numCallbacks()).toBe(0);
166
-
167
- // Now there is a sub using the new createWatch function and the
168
- // journal was passed through!
169
- expect(createWatch2.mock.calls.length).toBe(1);
170
- expect(createWatch2.mock.results[0].value.numCallbacks()).toBe(1);
171
- expect(createWatch2.mock.calls[0]).toEqual([
172
- anyApi.myQuery.default,
173
- {},
174
- { journal: "query journal" },
175
- ]);
176
- });
@@ -1,78 +0,0 @@
1
- import { test, expect } from "vitest";
2
- import { Long } from "../vendor/long.js";
3
-
4
- import { ConvexReactClient } from "./client.js";
5
- import {
6
- ClientMessage,
7
- QuerySetModification,
8
- WireServerMessage,
9
- } from "../browser/sync/protocol.js";
10
- import {
11
- nodeWebSocket,
12
- withInMemoryWebSocket,
13
- } from "../browser/sync/client_node_test_helpers.js";
14
- import { anyApi } from "../server/api.js";
15
-
16
- const testReactClient = (address: string) =>
17
- new ConvexReactClient(address, {
18
- webSocketConstructor: nodeWebSocket,
19
- unsavedChangesWarning: false,
20
- });
21
-
22
- test("ConvexReactClient ends subscriptions on close", async () => {
23
- await withInMemoryWebSocket(async ({ address, receive, send }) => {
24
- const client = testReactClient(address);
25
- const watch = client.watchQuery(anyApi.myQuery.default, {});
26
- let timesCallbackRan = 0;
27
- watch.onUpdate(() => timesCallbackRan++);
28
-
29
- expect((await receive()).type).toEqual("Connect");
30
- const modify = expectQuerySetModification(await receive());
31
- expect(modify.modifications).toEqual([
32
- {
33
- args: [{}],
34
- queryId: 0,
35
- type: "Add",
36
- udfPath: "myQuery:default",
37
- },
38
- ]);
39
- expect(timesCallbackRan).toEqual(0);
40
-
41
- send(transition());
42
-
43
- // After the callback has been registered but before the callback has been
44
- // run, close the client.
45
- const closePromise = client.close();
46
-
47
- expect(timesCallbackRan).toEqual(0);
48
-
49
- // After the internal client has closed, same nothing.
50
- await closePromise;
51
- expect(timesCallbackRan).toEqual(0);
52
- });
53
- });
54
-
55
- const expectQuerySetModification = (
56
- message: ClientMessage,
57
- ): QuerySetModification => {
58
- expect(message.type).toEqual("ModifyQuerySet");
59
- if (message.type !== "ModifyQuerySet") throw new Error("Wrong message!");
60
- return message;
61
- };
62
-
63
- function transition(): WireServerMessage {
64
- return {
65
- type: "Transition",
66
- startVersion: { querySet: 0, identity: 0, ts: Long.fromNumber(0) },
67
- endVersion: { querySet: 1, identity: 0, ts: Long.fromNumber(1) },
68
- modifications: [
69
- {
70
- type: "QueryUpdated",
71
- queryId: 0,
72
- value: 0.0,
73
- logLines: [],
74
- journal: null,
75
- },
76
- ],
77
- };
78
- }