convex 1.43.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 (631) hide show
  1. package/CHANGELOG.md +136 -113
  2. package/dist/browser.bundle.js +1 -1
  3. package/dist/browser.bundle.js.map +1 -1
  4. package/dist/cjs/cli/codegen_templates/component_server.js +4 -3
  5. package/dist/cjs/cli/codegen_templates/component_server.js.map +2 -2
  6. package/dist/cjs/cli/codegen_templates/server.js +24 -12
  7. package/dist/cjs/cli/codegen_templates/server.js.map +2 -2
  8. package/dist/cjs/cli/convexExport.js +1 -1
  9. package/dist/cjs/cli/convexExport.js.map +1 -1
  10. package/dist/cjs/cli/index.js +2 -32
  11. package/dist/cjs/cli/index.js.map +2 -2
  12. package/dist/cjs/cli/lib/api.js +11 -5
  13. package/dist/cjs/cli/lib/api.js.map +2 -2
  14. package/dist/cjs/cli/lib/convexExport.js +12 -1
  15. package/dist/cjs/cli/lib/convexExport.js.map +2 -2
  16. package/dist/cjs/cli/lib/dashboard.js.map +2 -2
  17. package/dist/cjs/cli/lib/generatedFunctionLogsApi.js.map +1 -1
  18. package/dist/cjs/cli/lib/localDeployment/upgrade.js +23 -188
  19. package/dist/cjs/cli/lib/localDeployment/upgrade.js.map +3 -3
  20. package/dist/cjs/cli/lib/login.js +12 -8
  21. package/dist/cjs/cli/lib/login.js.map +2 -2
  22. package/dist/cjs/cli/lib/mcp/tools/index.js.map +1 -1
  23. package/dist/cjs/cli/login.js +52 -7
  24. package/dist/cjs/cli/login.js.map +2 -2
  25. package/dist/cjs/cli/mcp.js +60 -63
  26. package/dist/cjs/cli/mcp.js.map +2 -2
  27. package/dist/cjs/index.js +1 -1
  28. package/dist/cjs/index.js.map +1 -1
  29. package/dist/cjs/react/ConvexAuthState.js +30 -32
  30. package/dist/cjs/react/ConvexAuthState.js.map +2 -2
  31. package/dist/cjs/server/impl/actions_impl.js +12 -0
  32. package/dist/cjs/server/impl/actions_impl.js.map +2 -2
  33. package/dist/cjs/server/index.js +3 -0
  34. package/dist/cjs/server/index.js.map +2 -2
  35. package/dist/cjs/server/schema.js +69 -1
  36. package/dist/cjs/server/schema.js.map +2 -2
  37. package/dist/cjs-types/cli/codegen_templates/component_server.d.ts.map +1 -1
  38. package/dist/cjs-types/cli/codegen_templates/server.d.ts +1 -0
  39. package/dist/cjs-types/cli/codegen_templates/server.d.ts.map +1 -1
  40. package/dist/cjs-types/cli/lib/api.d.ts.map +1 -1
  41. package/dist/cjs-types/cli/lib/convexExport.d.ts +1 -0
  42. package/dist/cjs-types/cli/lib/convexExport.d.ts.map +1 -1
  43. package/dist/cjs-types/cli/lib/dashboard.d.ts.map +1 -1
  44. package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts +2 -0
  45. package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
  46. package/dist/cjs-types/cli/lib/localDeployment/upgrade.d.ts +2 -0
  47. package/dist/cjs-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
  48. package/dist/cjs-types/cli/lib/login.d.ts +5 -0
  49. package/dist/cjs-types/cli/lib/login.d.ts.map +1 -1
  50. package/dist/cjs-types/cli/lib/mcp/tools/index.d.ts +1 -1
  51. package/dist/cjs-types/cli/lib/mcp/tools/index.d.ts.map +1 -1
  52. package/dist/cjs-types/cli/login.d.ts.map +1 -1
  53. package/dist/cjs-types/cli/mcp.d.ts +3 -0
  54. package/dist/cjs-types/cli/mcp.d.ts.map +1 -1
  55. package/dist/cjs-types/index.d.ts +1 -1
  56. package/dist/cjs-types/index.d.ts.map +1 -1
  57. package/dist/cjs-types/react/ConvexAuthState.d.ts.map +1 -1
  58. package/dist/cjs-types/server/impl/actions_impl.d.ts.map +1 -1
  59. package/dist/cjs-types/server/index.d.ts +2 -2
  60. package/dist/cjs-types/server/index.d.ts.map +1 -1
  61. package/dist/cjs-types/server/schema.d.ts +83 -5
  62. package/dist/cjs-types/server/schema.d.ts.map +1 -1
  63. package/dist/cli.bundle.cjs +23775 -18752
  64. package/dist/cli.bundle.cjs.map +4 -4
  65. package/dist/esm/cli/codegen_templates/component_server.js +8 -4
  66. package/dist/esm/cli/codegen_templates/component_server.js.map +2 -2
  67. package/dist/esm/cli/codegen_templates/server.js +22 -11
  68. package/dist/esm/cli/codegen_templates/server.js.map +2 -2
  69. package/dist/esm/cli/convexExport.js +1 -1
  70. package/dist/esm/cli/convexExport.js.map +1 -1
  71. package/dist/esm/cli/index.js +2 -32
  72. package/dist/esm/cli/index.js.map +2 -2
  73. package/dist/esm/cli/lib/api.js +11 -5
  74. package/dist/esm/cli/lib/api.js.map +2 -2
  75. package/dist/esm/cli/lib/convexExport.js +16 -3
  76. package/dist/esm/cli/lib/convexExport.js.map +2 -2
  77. package/dist/esm/cli/lib/dashboard.js.map +2 -2
  78. package/dist/esm/cli/lib/localDeployment/upgrade.js +22 -190
  79. package/dist/esm/cli/lib/localDeployment/upgrade.js.map +2 -2
  80. package/dist/esm/cli/lib/login.js +11 -8
  81. package/dist/esm/cli/lib/login.js.map +2 -2
  82. package/dist/esm/cli/lib/mcp/tools/index.js.map +1 -1
  83. package/dist/esm/cli/login.js +54 -10
  84. package/dist/esm/cli/login.js.map +2 -2
  85. package/dist/esm/cli/mcp.js +60 -67
  86. package/dist/esm/cli/mcp.js.map +2 -2
  87. package/dist/esm/index.js +1 -1
  88. package/dist/esm/index.js.map +1 -1
  89. package/dist/esm/react/ConvexAuthState.js +31 -32
  90. package/dist/esm/react/ConvexAuthState.js.map +2 -2
  91. package/dist/esm/server/impl/actions_impl.js +11 -0
  92. package/dist/esm/server/impl/actions_impl.js.map +2 -2
  93. package/dist/esm/server/index.js +2 -1
  94. package/dist/esm/server/index.js.map +2 -2
  95. package/dist/esm/server/schema.js +67 -0
  96. package/dist/esm/server/schema.js.map +2 -2
  97. package/dist/esm-types/cli/codegen_templates/component_server.d.ts.map +1 -1
  98. package/dist/esm-types/cli/codegen_templates/server.d.ts +1 -0
  99. package/dist/esm-types/cli/codegen_templates/server.d.ts.map +1 -1
  100. package/dist/esm-types/cli/lib/api.d.ts.map +1 -1
  101. package/dist/esm-types/cli/lib/convexExport.d.ts +1 -0
  102. package/dist/esm-types/cli/lib/convexExport.d.ts.map +1 -1
  103. package/dist/esm-types/cli/lib/dashboard.d.ts.map +1 -1
  104. package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts +2 -0
  105. package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
  106. package/dist/esm-types/cli/lib/localDeployment/upgrade.d.ts +2 -0
  107. package/dist/esm-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
  108. package/dist/esm-types/cli/lib/login.d.ts +5 -0
  109. package/dist/esm-types/cli/lib/login.d.ts.map +1 -1
  110. package/dist/esm-types/cli/lib/mcp/tools/index.d.ts +1 -1
  111. package/dist/esm-types/cli/lib/mcp/tools/index.d.ts.map +1 -1
  112. package/dist/esm-types/cli/login.d.ts.map +1 -1
  113. package/dist/esm-types/cli/mcp.d.ts +3 -0
  114. package/dist/esm-types/cli/mcp.d.ts.map +1 -1
  115. package/dist/esm-types/index.d.ts +1 -1
  116. package/dist/esm-types/index.d.ts.map +1 -1
  117. package/dist/esm-types/react/ConvexAuthState.d.ts.map +1 -1
  118. package/dist/esm-types/server/impl/actions_impl.d.ts.map +1 -1
  119. package/dist/esm-types/server/index.d.ts +2 -2
  120. package/dist/esm-types/server/index.d.ts.map +1 -1
  121. package/dist/esm-types/server/schema.d.ts +83 -5
  122. package/dist/esm-types/server/schema.d.ts.map +1 -1
  123. package/dist/react.bundle.js +31 -33
  124. package/dist/react.bundle.js.map +2 -2
  125. package/package.json +5 -6
  126. package/src/cli/codegen_templates/component_server.ts +12 -6
  127. package/src/cli/codegen_templates/server.ts +36 -19
  128. package/src/cli/convexExport.ts +1 -1
  129. package/src/cli/index.ts +2 -35
  130. package/src/cli/lib/api.ts +11 -5
  131. package/src/cli/lib/convexExport.ts +21 -0
  132. package/src/cli/lib/dashboard.ts +2 -0
  133. package/src/cli/lib/generatedFunctionLogsApi.ts +2 -0
  134. package/src/cli/lib/localDeployment/upgrade.ts +34 -207
  135. package/src/cli/lib/login.ts +20 -9
  136. package/src/cli/lib/mcp/tools/index.ts +1 -1
  137. package/src/cli/login.ts +88 -13
  138. package/src/cli/mcp.ts +64 -72
  139. package/src/index.ts +1 -1
  140. package/src/react/ConvexAuthState.tsx +15 -7
  141. package/src/server/impl/actions_impl.ts +23 -0
  142. package/src/server/index.ts +7 -1
  143. package/src/server/schema.ts +178 -1
  144. package/dist/cjs-types/browser/http_client.test.d.ts +0 -2
  145. package/dist/cjs-types/browser/http_client.test.d.ts.map +0 -1
  146. package/dist/cjs-types/browser/query_options.test.d.ts +0 -2
  147. package/dist/cjs-types/browser/query_options.test.d.ts.map +0 -1
  148. package/dist/cjs-types/browser/simple_client.test.d.ts +0 -2
  149. package/dist/cjs-types/browser/simple_client.test.d.ts.map +0 -1
  150. package/dist/cjs-types/browser/sync/client.test.d.ts +0 -5
  151. package/dist/cjs-types/browser/sync/client.test.d.ts.map +0 -1
  152. package/dist/cjs-types/browser/sync/client_node.test.d.ts +0 -2
  153. package/dist/cjs-types/browser/sync/client_node.test.d.ts.map +0 -1
  154. package/dist/cjs-types/browser/sync/client_node_test_helpers.d.ts +0 -44
  155. package/dist/cjs-types/browser/sync/client_node_test_helpers.d.ts.map +0 -1
  156. package/dist/cjs-types/browser/sync/local_state.test.d.ts +0 -2
  157. package/dist/cjs-types/browser/sync/local_state.test.d.ts.map +0 -1
  158. package/dist/cjs-types/browser/sync/optimistic_query_set.test.d.ts +0 -2
  159. package/dist/cjs-types/browser/sync/optimistic_query_set.test.d.ts.map +0 -1
  160. package/dist/cjs-types/browser/sync/paginated_query_client.test.d.ts +0 -2
  161. package/dist/cjs-types/browser/sync/paginated_query_client.test.d.ts.map +0 -1
  162. package/dist/cjs-types/browser/sync/protocol.test.d.ts +0 -5
  163. package/dist/cjs-types/browser/sync/protocol.test.d.ts.map +0 -1
  164. package/dist/cjs-types/browser/sync/request_manager.test.d.ts +0 -2
  165. package/dist/cjs-types/browser/sync/request_manager.test.d.ts.map +0 -1
  166. package/dist/cjs-types/bundler/fs.test.d.ts +0 -2
  167. package/dist/cjs-types/bundler/fs.test.d.ts.map +0 -1
  168. package/dist/cjs-types/bundler/index.test.d.ts +0 -2
  169. package/dist/cjs-types/bundler/index.test.d.ts.map +0 -1
  170. package/dist/cjs-types/cli/codegen_templates/api.test.d.ts +0 -2
  171. package/dist/cjs-types/cli/codegen_templates/api.test.d.ts.map +0 -1
  172. package/dist/cjs-types/cli/codegen_templates/common.test.d.ts +0 -2
  173. package/dist/cjs-types/cli/codegen_templates/common.test.d.ts.map +0 -1
  174. package/dist/cjs-types/cli/codegen_templates/templates.test.d.ts +0 -2
  175. package/dist/cjs-types/cli/codegen_templates/templates.test.d.ts.map +0 -1
  176. package/dist/cjs-types/cli/codegen_templates/validator_helpers.test.d.ts +0 -2
  177. package/dist/cjs-types/cli/codegen_templates/validator_helpers.test.d.ts.map +0 -1
  178. package/dist/cjs-types/cli/configure.test.d.ts +0 -2
  179. package/dist/cjs-types/cli/configure.test.d.ts.map +0 -1
  180. package/dist/cjs-types/cli/deploymentCreate.test.d.ts +0 -2
  181. package/dist/cjs-types/cli/deploymentCreate.test.d.ts.map +0 -1
  182. package/dist/cjs-types/cli/deploymentSelect.test.d.ts +0 -2
  183. package/dist/cjs-types/cli/deploymentSelect.test.d.ts.map +0 -1
  184. package/dist/cjs-types/cli/deploymentSelection.test.d.ts +0 -2
  185. package/dist/cjs-types/cli/deploymentSelection.test.d.ts.map +0 -1
  186. package/dist/cjs-types/cli/deploymentToken.test.d.ts +0 -2
  187. package/dist/cjs-types/cli/deploymentToken.test.d.ts.map +0 -1
  188. package/dist/cjs-types/cli/dev.test.d.ts +0 -2
  189. package/dist/cjs-types/cli/dev.test.d.ts.map +0 -1
  190. package/dist/cjs-types/cli/envDefault.test.d.ts +0 -2
  191. package/dist/cjs-types/cli/envDefault.test.d.ts.map +0 -1
  192. package/dist/cjs-types/cli/lib/aiFiles/agentsmd.test.d.ts +0 -2
  193. package/dist/cjs-types/cli/lib/aiFiles/agentsmd.test.d.ts.map +0 -1
  194. package/dist/cjs-types/cli/lib/aiFiles/claudemd.test.d.ts +0 -2
  195. package/dist/cjs-types/cli/lib/aiFiles/claudemd.test.d.ts.map +0 -1
  196. package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.test.d.ts +0 -2
  197. package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.test.d.ts.map +0 -1
  198. package/dist/cjs-types/cli/lib/aiFiles/index.test.d.ts +0 -2
  199. package/dist/cjs-types/cli/lib/aiFiles/index.test.d.ts.map +0 -1
  200. package/dist/cjs-types/cli/lib/aiFiles/integration.test.d.ts +0 -2
  201. package/dist/cjs-types/cli/lib/aiFiles/integration.test.d.ts.map +0 -1
  202. package/dist/cjs-types/cli/lib/aiFiles/prompt.test.d.ts +0 -2
  203. package/dist/cjs-types/cli/lib/aiFiles/prompt.test.d.ts.map +0 -1
  204. package/dist/cjs-types/cli/lib/aiFiles/state.test.d.ts +0 -2
  205. package/dist/cjs-types/cli/lib/aiFiles/state.test.d.ts.map +0 -1
  206. package/dist/cjs-types/cli/lib/aiFiles/utils.test.d.ts +0 -2
  207. package/dist/cjs-types/cli/lib/aiFiles/utils.test.d.ts.map +0 -1
  208. package/dist/cjs-types/cli/lib/codegen.test.d.ts +0 -2
  209. package/dist/cjs-types/cli/lib/codegen.test.d.ts.map +0 -1
  210. package/dist/cjs-types/cli/lib/components.test.d.ts +0 -2
  211. package/dist/cjs-types/cli/lib/components.test.d.ts.map +0 -1
  212. package/dist/cjs-types/cli/lib/config.test.d.ts +0 -2
  213. package/dist/cjs-types/cli/lib/config.test.d.ts.map +0 -1
  214. package/dist/cjs-types/cli/lib/deployment.test.d.ts +0 -2
  215. package/dist/cjs-types/cli/lib/deployment.test.d.ts.map +0 -1
  216. package/dist/cjs-types/cli/lib/deploymentSelector.test.d.ts +0 -2
  217. package/dist/cjs-types/cli/lib/deploymentSelector.test.d.ts.map +0 -1
  218. package/dist/cjs-types/cli/lib/env.test.d.ts +0 -2
  219. package/dist/cjs-types/cli/lib/env.test.d.ts.map +0 -1
  220. package/dist/cjs-types/cli/lib/expiration.test.d.ts +0 -2
  221. package/dist/cjs-types/cli/lib/expiration.test.d.ts.map +0 -1
  222. package/dist/cjs-types/cli/lib/extractDeploymentNameForWorkOS.test.d.ts +0 -2
  223. package/dist/cjs-types/cli/lib/extractDeploymentNameForWorkOS.test.d.ts.map +0 -1
  224. package/dist/cjs-types/cli/lib/formatEnvValueForDotfile.test.d.ts +0 -2
  225. package/dist/cjs-types/cli/lib/formatEnvValueForDotfile.test.d.ts.map +0 -1
  226. package/dist/cjs-types/cli/lib/formatTargetedDeployment.test.d.ts +0 -2
  227. package/dist/cjs-types/cli/lib/formatTargetedDeployment.test.d.ts.map +0 -1
  228. package/dist/cjs-types/cli/lib/fsUtils.test.d.ts +0 -2
  229. package/dist/cjs-types/cli/lib/fsUtils.test.d.ts.map +0 -1
  230. package/dist/cjs-types/cli/lib/generateDocs.test.d.ts +0 -2
  231. package/dist/cjs-types/cli/lib/generateDocs.test.d.ts.map +0 -1
  232. package/dist/cjs-types/cli/lib/indexes.test.d.ts +0 -2
  233. package/dist/cjs-types/cli/lib/indexes.test.d.ts.map +0 -1
  234. package/dist/cjs-types/cli/lib/localDeployment/run.test.d.ts +0 -2
  235. package/dist/cjs-types/cli/lib/localDeployment/run.test.d.ts.map +0 -1
  236. package/dist/cjs-types/cli/lib/localDeployment/secrets.test.d.ts +0 -2
  237. package/dist/cjs-types/cli/lib/localDeployment/secrets.test.d.ts.map +0 -1
  238. package/dist/cjs-types/cli/lib/run.test.d.ts +0 -2
  239. package/dist/cjs-types/cli/lib/run.test.d.ts.map +0 -1
  240. package/dist/cjs-types/cli/lib/runTestFunction.test.d.ts +0 -2
  241. package/dist/cjs-types/cli/lib/runTestFunction.test.d.ts.map +0 -1
  242. package/dist/cjs-types/cli/lib/typecheck.test.d.ts +0 -2
  243. package/dist/cjs-types/cli/lib/typecheck.test.d.ts.map +0 -1
  244. package/dist/cjs-types/cli/lib/updates.test.d.ts +0 -2
  245. package/dist/cjs-types/cli/lib/updates.test.d.ts.map +0 -1
  246. package/dist/cjs-types/cli/lib/utils/hash.test.d.ts +0 -2
  247. package/dist/cjs-types/cli/lib/utils/hash.test.d.ts.map +0 -1
  248. package/dist/cjs-types/cli/lib/utils/utils.test.d.ts +0 -2
  249. package/dist/cjs-types/cli/lib/utils/utils.test.d.ts.map +0 -1
  250. package/dist/cjs-types/cli/lib/versionApi.test.d.ts +0 -2
  251. package/dist/cjs-types/cli/lib/versionApi.test.d.ts.map +0 -1
  252. package/dist/cjs-types/cli/lib/workos/environmentApi.test.d.ts +0 -2
  253. package/dist/cjs-types/cli/lib/workos/environmentApi.test.d.ts.map +0 -1
  254. package/dist/cjs-types/cli/lib/workos/workos.test.d.ts +0 -2
  255. package/dist/cjs-types/cli/lib/workos/workos.test.d.ts.map +0 -1
  256. package/dist/cjs-types/common/index.test.d.ts +0 -2
  257. package/dist/cjs-types/common/index.test.d.ts.map +0 -1
  258. package/dist/cjs-types/nextjs/nextjs.test.d.ts +0 -2
  259. package/dist/cjs-types/nextjs/nextjs.test.d.ts.map +0 -1
  260. package/dist/cjs-types/react/ConvexAuthState.test.d.ts +0 -2
  261. package/dist/cjs-types/react/ConvexAuthState.test.d.ts.map +0 -1
  262. package/dist/cjs-types/react/auth_helpers.test.d.ts +0 -2
  263. package/dist/cjs-types/react/auth_helpers.test.d.ts.map +0 -1
  264. package/dist/cjs-types/react/auth_websocket.test.d.ts +0 -2
  265. package/dist/cjs-types/react/auth_websocket.test.d.ts.map +0 -1
  266. package/dist/cjs-types/react/client.test.d.ts +0 -2
  267. package/dist/cjs-types/react/client.test.d.ts.map +0 -1
  268. package/dist/cjs-types/react/client_provided_base_client.test.d.ts +0 -2
  269. package/dist/cjs-types/react/client_provided_base_client.test.d.ts.map +0 -1
  270. package/dist/cjs-types/react/queries_observer.test.d.ts +0 -2
  271. package/dist/cjs-types/react/queries_observer.test.d.ts.map +0 -1
  272. package/dist/cjs-types/react/react_node.test.d.ts +0 -2
  273. package/dist/cjs-types/react/react_node.test.d.ts.map +0 -1
  274. package/dist/cjs-types/react/use_paginated_query.test.d.ts +0 -2
  275. package/dist/cjs-types/react/use_paginated_query.test.d.ts.map +0 -1
  276. package/dist/cjs-types/react/use_queries.test.d.ts +0 -5
  277. package/dist/cjs-types/react/use_queries.test.d.ts.map +0 -1
  278. package/dist/cjs-types/react/use_query.test.d.ts +0 -5
  279. package/dist/cjs-types/react/use_query.test.d.ts.map +0 -1
  280. package/dist/cjs-types/react/use_query_object_options.test.d.ts +0 -5
  281. package/dist/cjs-types/react/use_query_object_options.test.d.ts.map +0 -1
  282. package/dist/cjs-types/react/use_query_result.test.d.ts +0 -5
  283. package/dist/cjs-types/react/use_query_result.test.d.ts.map +0 -1
  284. package/dist/cjs-types/react-auth0/ConvexProviderWithAuth0.test.d.ts +0 -2
  285. package/dist/cjs-types/react-auth0/ConvexProviderWithAuth0.test.d.ts.map +0 -1
  286. package/dist/cjs-types/react-clerk/ConvexProviderWithClerk.test.d.ts +0 -2
  287. package/dist/cjs-types/react-clerk/ConvexProviderWithClerk.test.d.ts.map +0 -1
  288. package/dist/cjs-types/server/api.intersect.test.d.ts +0 -2
  289. package/dist/cjs-types/server/api.intersect.test.d.ts.map +0 -1
  290. package/dist/cjs-types/server/api.test.d.ts +0 -2
  291. package/dist/cjs-types/server/api.test.d.ts.map +0 -1
  292. package/dist/cjs-types/server/audit_logging.test.d.ts +0 -2
  293. package/dist/cjs-types/server/audit_logging.test.d.ts.map +0 -1
  294. package/dist/cjs-types/server/components/index.test.d.ts +0 -2
  295. package/dist/cjs-types/server/components/index.test.d.ts.map +0 -1
  296. package/dist/cjs-types/server/cron.test.d.ts +0 -2
  297. package/dist/cjs-types/server/cron.test.d.ts.map +0 -1
  298. package/dist/cjs-types/server/data_model.test.d.ts +0 -2
  299. package/dist/cjs-types/server/data_model.test.d.ts.map +0 -1
  300. package/dist/cjs-types/server/database.test.d.ts +0 -2
  301. package/dist/cjs-types/server/database.test.d.ts.map +0 -1
  302. package/dist/cjs-types/server/database_api.test.d.ts +0 -2
  303. package/dist/cjs-types/server/database_api.test.d.ts.map +0 -1
  304. package/dist/cjs-types/server/filter_builder.test.d.ts +0 -2
  305. package/dist/cjs-types/server/filter_builder.test.d.ts.map +0 -1
  306. package/dist/cjs-types/server/impl/filter_builder_impl.test.d.ts +0 -2
  307. package/dist/cjs-types/server/impl/filter_builder_impl.test.d.ts.map +0 -1
  308. package/dist/cjs-types/server/impl/query_impl.test.d.ts +0 -2
  309. package/dist/cjs-types/server/impl/query_impl.test.d.ts.map +0 -1
  310. package/dist/cjs-types/server/pagination.test.d.ts +0 -2
  311. package/dist/cjs-types/server/pagination.test.d.ts.map +0 -1
  312. package/dist/cjs-types/server/query.test.d.ts +0 -2
  313. package/dist/cjs-types/server/query.test.d.ts.map +0 -1
  314. package/dist/cjs-types/server/registration.test.d.ts +0 -2
  315. package/dist/cjs-types/server/registration.test.d.ts.map +0 -1
  316. package/dist/cjs-types/server/router.test.d.ts +0 -2
  317. package/dist/cjs-types/server/router.test.d.ts.map +0 -1
  318. package/dist/cjs-types/server/scheduler.test.d.ts +0 -2
  319. package/dist/cjs-types/server/scheduler.test.d.ts.map +0 -1
  320. package/dist/cjs-types/server/schema.test.d.ts +0 -2
  321. package/dist/cjs-types/server/schema.test.d.ts.map +0 -1
  322. package/dist/cjs-types/test/fake_watch.d.ts +0 -16
  323. package/dist/cjs-types/test/fake_watch.d.ts.map +0 -1
  324. package/dist/cjs-types/test/type_testing.d.ts +0 -9
  325. package/dist/cjs-types/test/type_testing.d.ts.map +0 -1
  326. package/dist/cjs-types/type_utils.test.d.ts +0 -2
  327. package/dist/cjs-types/type_utils.test.d.ts.map +0 -1
  328. package/dist/cjs-types/values/size.test.d.ts +0 -2
  329. package/dist/cjs-types/values/size.test.d.ts.map +0 -1
  330. package/dist/cjs-types/values/validator.test.d.ts +0 -2
  331. package/dist/cjs-types/values/validator.test.d.ts.map +0 -1
  332. package/dist/cjs-types/values/value.test.d.ts +0 -2
  333. package/dist/cjs-types/values/value.test.d.ts.map +0 -1
  334. package/dist/esm-types/browser/http_client.test.d.ts +0 -2
  335. package/dist/esm-types/browser/http_client.test.d.ts.map +0 -1
  336. package/dist/esm-types/browser/query_options.test.d.ts +0 -2
  337. package/dist/esm-types/browser/query_options.test.d.ts.map +0 -1
  338. package/dist/esm-types/browser/simple_client.test.d.ts +0 -2
  339. package/dist/esm-types/browser/simple_client.test.d.ts.map +0 -1
  340. package/dist/esm-types/browser/sync/client.test.d.ts +0 -5
  341. package/dist/esm-types/browser/sync/client.test.d.ts.map +0 -1
  342. package/dist/esm-types/browser/sync/client_node.test.d.ts +0 -2
  343. package/dist/esm-types/browser/sync/client_node.test.d.ts.map +0 -1
  344. package/dist/esm-types/browser/sync/client_node_test_helpers.d.ts +0 -44
  345. package/dist/esm-types/browser/sync/client_node_test_helpers.d.ts.map +0 -1
  346. package/dist/esm-types/browser/sync/local_state.test.d.ts +0 -2
  347. package/dist/esm-types/browser/sync/local_state.test.d.ts.map +0 -1
  348. package/dist/esm-types/browser/sync/optimistic_query_set.test.d.ts +0 -2
  349. package/dist/esm-types/browser/sync/optimistic_query_set.test.d.ts.map +0 -1
  350. package/dist/esm-types/browser/sync/paginated_query_client.test.d.ts +0 -2
  351. package/dist/esm-types/browser/sync/paginated_query_client.test.d.ts.map +0 -1
  352. package/dist/esm-types/browser/sync/protocol.test.d.ts +0 -5
  353. package/dist/esm-types/browser/sync/protocol.test.d.ts.map +0 -1
  354. package/dist/esm-types/browser/sync/request_manager.test.d.ts +0 -2
  355. package/dist/esm-types/browser/sync/request_manager.test.d.ts.map +0 -1
  356. package/dist/esm-types/bundler/fs.test.d.ts +0 -2
  357. package/dist/esm-types/bundler/fs.test.d.ts.map +0 -1
  358. package/dist/esm-types/bundler/index.test.d.ts +0 -2
  359. package/dist/esm-types/bundler/index.test.d.ts.map +0 -1
  360. package/dist/esm-types/cli/codegen_templates/api.test.d.ts +0 -2
  361. package/dist/esm-types/cli/codegen_templates/api.test.d.ts.map +0 -1
  362. package/dist/esm-types/cli/codegen_templates/common.test.d.ts +0 -2
  363. package/dist/esm-types/cli/codegen_templates/common.test.d.ts.map +0 -1
  364. package/dist/esm-types/cli/codegen_templates/templates.test.d.ts +0 -2
  365. package/dist/esm-types/cli/codegen_templates/templates.test.d.ts.map +0 -1
  366. package/dist/esm-types/cli/codegen_templates/validator_helpers.test.d.ts +0 -2
  367. package/dist/esm-types/cli/codegen_templates/validator_helpers.test.d.ts.map +0 -1
  368. package/dist/esm-types/cli/configure.test.d.ts +0 -2
  369. package/dist/esm-types/cli/configure.test.d.ts.map +0 -1
  370. package/dist/esm-types/cli/deploymentCreate.test.d.ts +0 -2
  371. package/dist/esm-types/cli/deploymentCreate.test.d.ts.map +0 -1
  372. package/dist/esm-types/cli/deploymentSelect.test.d.ts +0 -2
  373. package/dist/esm-types/cli/deploymentSelect.test.d.ts.map +0 -1
  374. package/dist/esm-types/cli/deploymentSelection.test.d.ts +0 -2
  375. package/dist/esm-types/cli/deploymentSelection.test.d.ts.map +0 -1
  376. package/dist/esm-types/cli/deploymentToken.test.d.ts +0 -2
  377. package/dist/esm-types/cli/deploymentToken.test.d.ts.map +0 -1
  378. package/dist/esm-types/cli/dev.test.d.ts +0 -2
  379. package/dist/esm-types/cli/dev.test.d.ts.map +0 -1
  380. package/dist/esm-types/cli/envDefault.test.d.ts +0 -2
  381. package/dist/esm-types/cli/envDefault.test.d.ts.map +0 -1
  382. package/dist/esm-types/cli/lib/aiFiles/agentsmd.test.d.ts +0 -2
  383. package/dist/esm-types/cli/lib/aiFiles/agentsmd.test.d.ts.map +0 -1
  384. package/dist/esm-types/cli/lib/aiFiles/claudemd.test.d.ts +0 -2
  385. package/dist/esm-types/cli/lib/aiFiles/claudemd.test.d.ts.map +0 -1
  386. package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.test.d.ts +0 -2
  387. package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.test.d.ts.map +0 -1
  388. package/dist/esm-types/cli/lib/aiFiles/index.test.d.ts +0 -2
  389. package/dist/esm-types/cli/lib/aiFiles/index.test.d.ts.map +0 -1
  390. package/dist/esm-types/cli/lib/aiFiles/integration.test.d.ts +0 -2
  391. package/dist/esm-types/cli/lib/aiFiles/integration.test.d.ts.map +0 -1
  392. package/dist/esm-types/cli/lib/aiFiles/prompt.test.d.ts +0 -2
  393. package/dist/esm-types/cli/lib/aiFiles/prompt.test.d.ts.map +0 -1
  394. package/dist/esm-types/cli/lib/aiFiles/state.test.d.ts +0 -2
  395. package/dist/esm-types/cli/lib/aiFiles/state.test.d.ts.map +0 -1
  396. package/dist/esm-types/cli/lib/aiFiles/utils.test.d.ts +0 -2
  397. package/dist/esm-types/cli/lib/aiFiles/utils.test.d.ts.map +0 -1
  398. package/dist/esm-types/cli/lib/codegen.test.d.ts +0 -2
  399. package/dist/esm-types/cli/lib/codegen.test.d.ts.map +0 -1
  400. package/dist/esm-types/cli/lib/components.test.d.ts +0 -2
  401. package/dist/esm-types/cli/lib/components.test.d.ts.map +0 -1
  402. package/dist/esm-types/cli/lib/config.test.d.ts +0 -2
  403. package/dist/esm-types/cli/lib/config.test.d.ts.map +0 -1
  404. package/dist/esm-types/cli/lib/deployment.test.d.ts +0 -2
  405. package/dist/esm-types/cli/lib/deployment.test.d.ts.map +0 -1
  406. package/dist/esm-types/cli/lib/deploymentSelector.test.d.ts +0 -2
  407. package/dist/esm-types/cli/lib/deploymentSelector.test.d.ts.map +0 -1
  408. package/dist/esm-types/cli/lib/env.test.d.ts +0 -2
  409. package/dist/esm-types/cli/lib/env.test.d.ts.map +0 -1
  410. package/dist/esm-types/cli/lib/expiration.test.d.ts +0 -2
  411. package/dist/esm-types/cli/lib/expiration.test.d.ts.map +0 -1
  412. package/dist/esm-types/cli/lib/extractDeploymentNameForWorkOS.test.d.ts +0 -2
  413. package/dist/esm-types/cli/lib/extractDeploymentNameForWorkOS.test.d.ts.map +0 -1
  414. package/dist/esm-types/cli/lib/formatEnvValueForDotfile.test.d.ts +0 -2
  415. package/dist/esm-types/cli/lib/formatEnvValueForDotfile.test.d.ts.map +0 -1
  416. package/dist/esm-types/cli/lib/formatTargetedDeployment.test.d.ts +0 -2
  417. package/dist/esm-types/cli/lib/formatTargetedDeployment.test.d.ts.map +0 -1
  418. package/dist/esm-types/cli/lib/fsUtils.test.d.ts +0 -2
  419. package/dist/esm-types/cli/lib/fsUtils.test.d.ts.map +0 -1
  420. package/dist/esm-types/cli/lib/generateDocs.test.d.ts +0 -2
  421. package/dist/esm-types/cli/lib/generateDocs.test.d.ts.map +0 -1
  422. package/dist/esm-types/cli/lib/indexes.test.d.ts +0 -2
  423. package/dist/esm-types/cli/lib/indexes.test.d.ts.map +0 -1
  424. package/dist/esm-types/cli/lib/localDeployment/run.test.d.ts +0 -2
  425. package/dist/esm-types/cli/lib/localDeployment/run.test.d.ts.map +0 -1
  426. package/dist/esm-types/cli/lib/localDeployment/secrets.test.d.ts +0 -2
  427. package/dist/esm-types/cli/lib/localDeployment/secrets.test.d.ts.map +0 -1
  428. package/dist/esm-types/cli/lib/run.test.d.ts +0 -2
  429. package/dist/esm-types/cli/lib/run.test.d.ts.map +0 -1
  430. package/dist/esm-types/cli/lib/runTestFunction.test.d.ts +0 -2
  431. package/dist/esm-types/cli/lib/runTestFunction.test.d.ts.map +0 -1
  432. package/dist/esm-types/cli/lib/typecheck.test.d.ts +0 -2
  433. package/dist/esm-types/cli/lib/typecheck.test.d.ts.map +0 -1
  434. package/dist/esm-types/cli/lib/updates.test.d.ts +0 -2
  435. package/dist/esm-types/cli/lib/updates.test.d.ts.map +0 -1
  436. package/dist/esm-types/cli/lib/utils/hash.test.d.ts +0 -2
  437. package/dist/esm-types/cli/lib/utils/hash.test.d.ts.map +0 -1
  438. package/dist/esm-types/cli/lib/utils/utils.test.d.ts +0 -2
  439. package/dist/esm-types/cli/lib/utils/utils.test.d.ts.map +0 -1
  440. package/dist/esm-types/cli/lib/versionApi.test.d.ts +0 -2
  441. package/dist/esm-types/cli/lib/versionApi.test.d.ts.map +0 -1
  442. package/dist/esm-types/cli/lib/workos/environmentApi.test.d.ts +0 -2
  443. package/dist/esm-types/cli/lib/workos/environmentApi.test.d.ts.map +0 -1
  444. package/dist/esm-types/cli/lib/workos/workos.test.d.ts +0 -2
  445. package/dist/esm-types/cli/lib/workos/workos.test.d.ts.map +0 -1
  446. package/dist/esm-types/common/index.test.d.ts +0 -2
  447. package/dist/esm-types/common/index.test.d.ts.map +0 -1
  448. package/dist/esm-types/nextjs/nextjs.test.d.ts +0 -2
  449. package/dist/esm-types/nextjs/nextjs.test.d.ts.map +0 -1
  450. package/dist/esm-types/react/ConvexAuthState.test.d.ts +0 -2
  451. package/dist/esm-types/react/ConvexAuthState.test.d.ts.map +0 -1
  452. package/dist/esm-types/react/auth_helpers.test.d.ts +0 -2
  453. package/dist/esm-types/react/auth_helpers.test.d.ts.map +0 -1
  454. package/dist/esm-types/react/auth_websocket.test.d.ts +0 -2
  455. package/dist/esm-types/react/auth_websocket.test.d.ts.map +0 -1
  456. package/dist/esm-types/react/client.test.d.ts +0 -2
  457. package/dist/esm-types/react/client.test.d.ts.map +0 -1
  458. package/dist/esm-types/react/client_provided_base_client.test.d.ts +0 -2
  459. package/dist/esm-types/react/client_provided_base_client.test.d.ts.map +0 -1
  460. package/dist/esm-types/react/queries_observer.test.d.ts +0 -2
  461. package/dist/esm-types/react/queries_observer.test.d.ts.map +0 -1
  462. package/dist/esm-types/react/react_node.test.d.ts +0 -2
  463. package/dist/esm-types/react/react_node.test.d.ts.map +0 -1
  464. package/dist/esm-types/react/use_paginated_query.test.d.ts +0 -2
  465. package/dist/esm-types/react/use_paginated_query.test.d.ts.map +0 -1
  466. package/dist/esm-types/react/use_queries.test.d.ts +0 -5
  467. package/dist/esm-types/react/use_queries.test.d.ts.map +0 -1
  468. package/dist/esm-types/react/use_query.test.d.ts +0 -5
  469. package/dist/esm-types/react/use_query.test.d.ts.map +0 -1
  470. package/dist/esm-types/react/use_query_object_options.test.d.ts +0 -5
  471. package/dist/esm-types/react/use_query_object_options.test.d.ts.map +0 -1
  472. package/dist/esm-types/react/use_query_result.test.d.ts +0 -5
  473. package/dist/esm-types/react/use_query_result.test.d.ts.map +0 -1
  474. package/dist/esm-types/react-auth0/ConvexProviderWithAuth0.test.d.ts +0 -2
  475. package/dist/esm-types/react-auth0/ConvexProviderWithAuth0.test.d.ts.map +0 -1
  476. package/dist/esm-types/react-clerk/ConvexProviderWithClerk.test.d.ts +0 -2
  477. package/dist/esm-types/react-clerk/ConvexProviderWithClerk.test.d.ts.map +0 -1
  478. package/dist/esm-types/server/api.intersect.test.d.ts +0 -2
  479. package/dist/esm-types/server/api.intersect.test.d.ts.map +0 -1
  480. package/dist/esm-types/server/api.test.d.ts +0 -2
  481. package/dist/esm-types/server/api.test.d.ts.map +0 -1
  482. package/dist/esm-types/server/audit_logging.test.d.ts +0 -2
  483. package/dist/esm-types/server/audit_logging.test.d.ts.map +0 -1
  484. package/dist/esm-types/server/components/index.test.d.ts +0 -2
  485. package/dist/esm-types/server/components/index.test.d.ts.map +0 -1
  486. package/dist/esm-types/server/cron.test.d.ts +0 -2
  487. package/dist/esm-types/server/cron.test.d.ts.map +0 -1
  488. package/dist/esm-types/server/data_model.test.d.ts +0 -2
  489. package/dist/esm-types/server/data_model.test.d.ts.map +0 -1
  490. package/dist/esm-types/server/database.test.d.ts +0 -2
  491. package/dist/esm-types/server/database.test.d.ts.map +0 -1
  492. package/dist/esm-types/server/database_api.test.d.ts +0 -2
  493. package/dist/esm-types/server/database_api.test.d.ts.map +0 -1
  494. package/dist/esm-types/server/filter_builder.test.d.ts +0 -2
  495. package/dist/esm-types/server/filter_builder.test.d.ts.map +0 -1
  496. package/dist/esm-types/server/impl/filter_builder_impl.test.d.ts +0 -2
  497. package/dist/esm-types/server/impl/filter_builder_impl.test.d.ts.map +0 -1
  498. package/dist/esm-types/server/impl/query_impl.test.d.ts +0 -2
  499. package/dist/esm-types/server/impl/query_impl.test.d.ts.map +0 -1
  500. package/dist/esm-types/server/pagination.test.d.ts +0 -2
  501. package/dist/esm-types/server/pagination.test.d.ts.map +0 -1
  502. package/dist/esm-types/server/query.test.d.ts +0 -2
  503. package/dist/esm-types/server/query.test.d.ts.map +0 -1
  504. package/dist/esm-types/server/registration.test.d.ts +0 -2
  505. package/dist/esm-types/server/registration.test.d.ts.map +0 -1
  506. package/dist/esm-types/server/router.test.d.ts +0 -2
  507. package/dist/esm-types/server/router.test.d.ts.map +0 -1
  508. package/dist/esm-types/server/scheduler.test.d.ts +0 -2
  509. package/dist/esm-types/server/scheduler.test.d.ts.map +0 -1
  510. package/dist/esm-types/server/schema.test.d.ts +0 -2
  511. package/dist/esm-types/server/schema.test.d.ts.map +0 -1
  512. package/dist/esm-types/test/fake_watch.d.ts +0 -16
  513. package/dist/esm-types/test/fake_watch.d.ts.map +0 -1
  514. package/dist/esm-types/test/type_testing.d.ts +0 -9
  515. package/dist/esm-types/test/type_testing.d.ts.map +0 -1
  516. package/dist/esm-types/type_utils.test.d.ts +0 -2
  517. package/dist/esm-types/type_utils.test.d.ts.map +0 -1
  518. package/dist/esm-types/values/size.test.d.ts +0 -2
  519. package/dist/esm-types/values/size.test.d.ts.map +0 -1
  520. package/dist/esm-types/values/validator.test.d.ts +0 -2
  521. package/dist/esm-types/values/validator.test.d.ts.map +0 -1
  522. package/dist/esm-types/values/value.test.d.ts +0 -2
  523. package/dist/esm-types/values/value.test.d.ts.map +0 -1
  524. package/src/browser/http_client.test.ts +0 -202
  525. package/src/browser/query_options.test.ts +0 -43
  526. package/src/browser/simple_client.test.ts +0 -104
  527. package/src/browser/sync/client.test.ts +0 -44
  528. package/src/browser/sync/client_node.test.ts +0 -1207
  529. package/src/browser/sync/client_node_test_helpers.ts +0 -200
  530. package/src/browser/sync/local_state.test.ts +0 -128
  531. package/src/browser/sync/optimistic_query_set.test.ts +0 -253
  532. package/src/browser/sync/paginated_query_client.test.ts +0 -597
  533. package/src/browser/sync/protocol.test.ts +0 -14
  534. package/src/browser/sync/request_manager.test.ts +0 -273
  535. package/src/bundler/fs.test.ts +0 -86
  536. package/src/bundler/index.test.ts +0 -210
  537. package/src/bundler/test_fixtures/js/project01/bar.js +0 -4
  538. package/src/bundler/test_fixtures/js/project01/file with spaces.js +0 -1
  539. package/src/bundler/test_fixtures/js/project01/foo.js +0 -9
  540. package/src/bundler/test_fixtures/js/project_with_https/https.js +0 -9
  541. package/src/bundler/test_fixtures/js/project_with_https_not_at_top_level/default.js +0 -3
  542. package/src/bundler/test_fixtures/js/project_with_https_not_at_top_level/more_code/https.js +0 -5
  543. package/src/bundler/test_fixtures/js/project_with_https_without_router/https.js +0 -1
  544. package/src/bundler/test_fixtures/js/project_with_node_shims/uses_node_shims.js +0 -4
  545. package/src/cli/codegen_templates/api.test.ts +0 -18
  546. package/src/cli/codegen_templates/common.test.ts +0 -52
  547. package/src/cli/codegen_templates/templates.test.ts +0 -16
  548. package/src/cli/codegen_templates/validator_helpers.test.ts +0 -31
  549. package/src/cli/configure.test.ts +0 -138
  550. package/src/cli/deploymentCreate.test.ts +0 -1376
  551. package/src/cli/deploymentSelect.test.ts +0 -1291
  552. package/src/cli/deploymentSelection.test.ts +0 -2546
  553. package/src/cli/deploymentToken.test.ts +0 -397
  554. package/src/cli/dev.test.ts +0 -157
  555. package/src/cli/envDefault.test.ts +0 -495
  556. package/src/cli/lib/__snapshots__/formatTargetedDeployment.test.ts.snap +0 -94
  557. package/src/cli/lib/aiFiles/agentsmd.test.ts +0 -133
  558. package/src/cli/lib/aiFiles/claudemd.test.ts +0 -92
  559. package/src/cli/lib/aiFiles/guidelinesmd.test.ts +0 -50
  560. package/src/cli/lib/aiFiles/index.test.ts +0 -986
  561. package/src/cli/lib/aiFiles/integration.test.ts +0 -692
  562. package/src/cli/lib/aiFiles/prompt.test.ts +0 -202
  563. package/src/cli/lib/aiFiles/state.test.ts +0 -305
  564. package/src/cli/lib/aiFiles/utils.test.ts +0 -50
  565. package/src/cli/lib/codegen.test.ts +0 -49
  566. package/src/cli/lib/components.test.ts +0 -227
  567. package/src/cli/lib/config.test.ts +0 -1026
  568. package/src/cli/lib/deployment.test.ts +0 -85
  569. package/src/cli/lib/deploymentSelector.test.ts +0 -107
  570. package/src/cli/lib/env.test.ts +0 -60
  571. package/src/cli/lib/expiration.test.ts +0 -159
  572. package/src/cli/lib/extractDeploymentNameForWorkOS.test.ts +0 -30
  573. package/src/cli/lib/formatEnvValueForDotfile.test.ts +0 -294
  574. package/src/cli/lib/formatTargetedDeployment.test.ts +0 -281
  575. package/src/cli/lib/fsUtils.test.ts +0 -67
  576. package/src/cli/lib/generateDocs.test.ts +0 -326
  577. package/src/cli/lib/indexes.test.ts +0 -77
  578. package/src/cli/lib/localDeployment/run.test.ts +0 -104
  579. package/src/cli/lib/localDeployment/secrets.test.ts +0 -53
  580. package/src/cli/lib/run.test.ts +0 -54
  581. package/src/cli/lib/runTestFunction.test.ts +0 -84
  582. package/src/cli/lib/typecheck.test.ts +0 -71
  583. package/src/cli/lib/updates.test.ts +0 -157
  584. package/src/cli/lib/utils/hash.test.ts +0 -25
  585. package/src/cli/lib/utils/utils.test.ts +0 -340
  586. package/src/cli/lib/versionApi.test.ts +0 -471
  587. package/src/cli/lib/workos/environmentApi.test.ts +0 -107
  588. package/src/cli/lib/workos/workos.test.ts +0 -242
  589. package/src/common/README.md +0 -2
  590. package/src/common/index.test.ts +0 -35
  591. package/src/nextjs/nextjs.test.tsx +0 -94
  592. package/src/react/ConvexAuthState.test.tsx +0 -702
  593. package/src/react/auth_helpers.test.tsx +0 -45
  594. package/src/react/auth_websocket.test.tsx +0 -1177
  595. package/src/react/client.test.tsx +0 -261
  596. package/src/react/client_provided_base_client.test.tsx +0 -174
  597. package/src/react/queries_observer.test.ts +0 -176
  598. package/src/react/react_node.test.ts +0 -78
  599. package/src/react/use_paginated_query.test.tsx +0 -1420
  600. package/src/react/use_queries.test.ts +0 -140
  601. package/src/react/use_query.test.ts +0 -71
  602. package/src/react/use_query_object_options.test.ts +0 -51
  603. package/src/react/use_query_result.test.ts +0 -75
  604. package/src/react-auth0/ConvexProviderWithAuth0.test.tsx +0 -17
  605. package/src/react-clerk/ConvexProviderWithClerk.test.tsx +0 -18
  606. package/src/server/README.md +0 -15
  607. package/src/server/api.intersect.test.ts +0 -109
  608. package/src/server/api.test.ts +0 -447
  609. package/src/server/audit_logging.test.ts +0 -131
  610. package/src/server/components/index.test.ts +0 -48
  611. package/src/server/cron.test.ts +0 -58
  612. package/src/server/data_model.test.ts +0 -221
  613. package/src/server/database.test.ts +0 -184
  614. package/src/server/database_api.test.ts +0 -439
  615. package/src/server/filter_builder.test.ts +0 -102
  616. package/src/server/impl/filter_builder_impl.test.ts +0 -13
  617. package/src/server/impl/query_impl.test.ts +0 -46
  618. package/src/server/pagination.test.ts +0 -49
  619. package/src/server/query.test.ts +0 -112
  620. package/src/server/registration.test.ts +0 -589
  621. package/src/server/router.test.ts +0 -148
  622. package/src/server/scheduler.test.ts +0 -31
  623. package/src/server/schema.test.ts +0 -983
  624. package/src/test/fake_watch.ts +0 -54
  625. package/src/test/type_testing.ts +0 -21
  626. package/src/type_utils.test.ts +0 -62
  627. package/src/values/size.test.ts +0 -95
  628. package/src/values/validator.test.ts +0 -619
  629. package/src/values/value.test.ts +0 -232
  630. package/src/vendor/README.md +0 -18
  631. 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
- }