convex 1.27.0 → 1.27.1

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 (311) hide show
  1. package/CHANGELOG.md +20 -5
  2. package/dist/browser.bundle.js +92 -11
  3. package/dist/browser.bundle.js.map +2 -2
  4. package/dist/cjs/browser/http_client.js +2 -0
  5. package/dist/cjs/browser/http_client.js.map +2 -2
  6. package/dist/cjs/browser/sync/client.js +2 -1
  7. package/dist/cjs/browser/sync/client.js.map +2 -2
  8. package/dist/cjs/browser/sync/function_result.js.map +1 -1
  9. package/dist/cjs/browser/sync/local_state.js.map +2 -2
  10. package/dist/cjs/browser/sync/protocol.js.map +1 -1
  11. package/dist/cjs/browser/sync/web_socket_manager.js +87 -9
  12. package/dist/cjs/browser/sync/web_socket_manager.js.map +2 -2
  13. package/dist/cjs/bundler/context.js.map +1 -1
  14. package/dist/cjs/bundler/index.js.map +1 -1
  15. package/dist/cjs/cli/configure.js.map +2 -2
  16. package/dist/cjs/cli/generatedApi.js.map +1 -1
  17. package/dist/cjs/cli/lib/codegen.js.map +1 -1
  18. package/dist/cjs/cli/lib/command.js.map +2 -2
  19. package/dist/cjs/cli/lib/components.js +9 -0
  20. package/dist/cjs/cli/lib/components.js.map +2 -2
  21. package/dist/cjs/cli/lib/config.js.map +2 -2
  22. package/dist/cjs/cli/lib/convexImport.js +1 -1
  23. package/dist/cjs/cli/lib/convexImport.js.map +3 -3
  24. package/dist/cjs/cli/lib/data.js +1 -1
  25. package/dist/cjs/cli/lib/data.js.map +2 -2
  26. package/dist/cjs/cli/lib/deploymentSelection.js +4 -2
  27. package/dist/cjs/cli/lib/deploymentSelection.js.map +2 -2
  28. package/dist/cjs/cli/lib/dev.js.map +2 -2
  29. package/dist/cjs/cli/lib/generatedLogStreamApi.js +17 -0
  30. package/dist/cjs/cli/lib/generatedLogStreamApi.js.map +7 -0
  31. package/dist/cjs/cli/lib/localDeployment/anonymous.js.map +2 -2
  32. package/dist/cjs/cli/lib/localDeployment/download.js.map +1 -1
  33. package/dist/cjs/cli/lib/localDeployment/localDeployment.js.map +2 -2
  34. package/dist/cjs/cli/lib/login.js +15 -16
  35. package/dist/cjs/cli/lib/login.js.map +2 -2
  36. package/dist/cjs/cli/lib/mcp/tools/logs.js +77 -7
  37. package/dist/cjs/cli/lib/mcp/tools/logs.js.map +2 -2
  38. package/dist/cjs/cli/lib/push.js.map +1 -1
  39. package/dist/cjs/cli/lib/run.js +1 -1
  40. package/dist/cjs/cli/lib/run.js.map +2 -2
  41. package/dist/cjs/cli/lib/utils/globalConfig.js.map +1 -1
  42. package/dist/cjs/cli/lib/utils/utils.js +4 -4
  43. package/dist/cjs/cli/lib/utils/utils.js.map +2 -2
  44. package/dist/cjs/cli/lib/watch.js +3 -1
  45. package/dist/cjs/cli/lib/watch.js.map +2 -2
  46. package/dist/cjs/cli/login.js +9 -2
  47. package/dist/cjs/cli/login.js.map +2 -2
  48. package/dist/cjs/index.js +1 -1
  49. package/dist/cjs/index.js.map +1 -1
  50. package/dist/cjs/nextjs/index.js +3 -3
  51. package/dist/cjs/nextjs/index.js.map +2 -2
  52. package/dist/cjs/react/client.js.map +1 -1
  53. package/dist/cjs/react/use_queries.js +1 -1
  54. package/dist/cjs/react/use_queries.js.map +2 -2
  55. package/dist/cjs/server/impl/vector_search_impl.js.map +1 -1
  56. package/dist/cjs-types/browser/http_client.d.ts +2 -2
  57. package/dist/cjs-types/browser/http_client.d.ts.map +1 -1
  58. package/dist/cjs-types/browser/sync/client.d.ts +1 -1
  59. package/dist/cjs-types/browser/sync/client.d.ts.map +1 -1
  60. package/dist/cjs-types/browser/sync/function_result.d.ts +1 -1
  61. package/dist/cjs-types/browser/sync/function_result.d.ts.map +1 -1
  62. package/dist/cjs-types/browser/sync/local_state.d.ts +4 -4
  63. package/dist/cjs-types/browser/sync/local_state.d.ts.map +1 -1
  64. package/dist/cjs-types/browser/sync/protocol.d.ts +9 -6
  65. package/dist/cjs-types/browser/sync/protocol.d.ts.map +1 -1
  66. package/dist/cjs-types/browser/sync/web_socket_manager.d.ts +5 -2
  67. package/dist/cjs-types/browser/sync/web_socket_manager.d.ts.map +1 -1
  68. package/dist/cjs-types/bundler/context.d.ts +3 -3
  69. package/dist/cjs-types/bundler/context.d.ts.map +1 -1
  70. package/dist/cjs-types/bundler/index.d.ts +1 -1
  71. package/dist/cjs-types/bundler/index.d.ts.map +1 -1
  72. package/dist/cjs-types/cli/codegen.d.ts +7 -7
  73. package/dist/cjs-types/cli/configure.d.ts.map +1 -1
  74. package/dist/cjs-types/cli/convexExport.d.ts +7 -7
  75. package/dist/cjs-types/cli/convexImport.d.ts +13 -13
  76. package/dist/cjs-types/cli/dashboard.d.ts +6 -6
  77. package/dist/cjs-types/cli/data.d.ts +8 -8
  78. package/dist/cjs-types/cli/deploy.d.ts +15 -15
  79. package/dist/cjs-types/cli/dev.d.ts +21 -21
  80. package/dist/cjs-types/cli/disableLocalDev.d.ts +2 -2
  81. package/dist/cjs-types/cli/env.d.ts +6 -6
  82. package/dist/cjs-types/cli/functionSpec.d.ts +7 -7
  83. package/dist/cjs-types/cli/generatedApi.d.ts +2 -0
  84. package/dist/cjs-types/cli/generatedApi.d.ts.map +1 -1
  85. package/dist/cjs-types/cli/init.d.ts +2 -2
  86. package/dist/cjs-types/cli/lib/codegen.d.ts +2 -2
  87. package/dist/cjs-types/cli/lib/codegen.d.ts.map +1 -1
  88. package/dist/cjs-types/cli/lib/command.d.ts +5 -5
  89. package/dist/cjs-types/cli/lib/command.d.ts.map +1 -1
  90. package/dist/cjs-types/cli/lib/components.d.ts +1 -1
  91. package/dist/cjs-types/cli/lib/components.d.ts.map +1 -1
  92. package/dist/cjs-types/cli/lib/config.d.ts +7 -7
  93. package/dist/cjs-types/cli/lib/config.d.ts.map +1 -1
  94. package/dist/cjs-types/cli/lib/convexImport.d.ts +2 -2
  95. package/dist/cjs-types/cli/lib/convexImport.d.ts.map +1 -1
  96. package/dist/cjs-types/cli/lib/data.d.ts +3 -3
  97. package/dist/cjs-types/cli/lib/data.d.ts.map +1 -1
  98. package/dist/cjs-types/cli/lib/deployment.d.ts +1 -1
  99. package/dist/cjs-types/cli/lib/deploymentSelection.d.ts +6 -6
  100. package/dist/cjs-types/cli/lib/deploymentSelection.d.ts.map +1 -1
  101. package/dist/cjs-types/cli/lib/dev.d.ts +5 -5
  102. package/dist/cjs-types/cli/lib/dev.d.ts.map +1 -1
  103. package/dist/cjs-types/cli/lib/generatedLogStreamApi.d.ts +131 -0
  104. package/dist/cjs-types/cli/lib/generatedLogStreamApi.d.ts.map +1 -0
  105. package/dist/cjs-types/cli/lib/localDeployment/anonymous.d.ts +3 -3
  106. package/dist/cjs-types/cli/lib/localDeployment/anonymous.d.ts.map +1 -1
  107. package/dist/cjs-types/cli/lib/localDeployment/download.d.ts +1 -1
  108. package/dist/cjs-types/cli/lib/localDeployment/download.d.ts.map +1 -1
  109. package/dist/cjs-types/cli/lib/localDeployment/localDeployment.d.ts +2 -2
  110. package/dist/cjs-types/cli/lib/localDeployment/localDeployment.d.ts.map +1 -1
  111. package/dist/cjs-types/cli/lib/login.d.ts +19 -17
  112. package/dist/cjs-types/cli/lib/login.d.ts.map +1 -1
  113. package/dist/cjs-types/cli/lib/mcp/tools/logs.d.ts +14 -3
  114. package/dist/cjs-types/cli/lib/mcp/tools/logs.d.ts.map +1 -1
  115. package/dist/cjs-types/cli/lib/push.d.ts +3 -3
  116. package/dist/cjs-types/cli/lib/push.d.ts.map +1 -1
  117. package/dist/cjs-types/cli/lib/run.d.ts +9 -9
  118. package/dist/cjs-types/cli/lib/run.d.ts.map +1 -1
  119. package/dist/cjs-types/cli/lib/utils/globalConfig.d.ts +1 -1
  120. package/dist/cjs-types/cli/lib/utils/globalConfig.d.ts.map +1 -1
  121. package/dist/cjs-types/cli/lib/utils/prompts.d.ts +2 -2
  122. package/dist/cjs-types/cli/lib/utils/utils.d.ts +3 -3
  123. package/dist/cjs-types/cli/lib/utils/utils.d.ts.map +1 -1
  124. package/dist/cjs-types/cli/lib/watch.d.ts.map +1 -1
  125. package/dist/cjs-types/cli/login.d.ts +13 -11
  126. package/dist/cjs-types/cli/login.d.ts.map +1 -1
  127. package/dist/cjs-types/cli/logs.d.ts +6 -6
  128. package/dist/cjs-types/cli/network_test.d.ts +9 -9
  129. package/dist/cjs-types/cli/reinit.d.ts +2 -2
  130. package/dist/cjs-types/cli/run.d.ts +11 -11
  131. package/dist/cjs-types/index.d.ts +1 -1
  132. package/dist/cjs-types/react/client.d.ts +1 -1
  133. package/dist/cjs-types/react/client.d.ts.map +1 -1
  134. package/dist/cjs-types/server/components/paths.d.ts +6 -6
  135. package/dist/cjs-types/server/pagination.d.ts +4 -4
  136. package/dist/cjs-types/server/schema.d.ts +2 -2
  137. package/dist/cjs-types/values/validator.d.ts +1 -1
  138. package/dist/cli.bundle.cjs +184 -45
  139. package/dist/cli.bundle.cjs.map +3 -3
  140. package/dist/esm/browser/http_client.js +2 -0
  141. package/dist/esm/browser/http_client.js.map +2 -2
  142. package/dist/esm/browser/sync/client.js +2 -1
  143. package/dist/esm/browser/sync/client.js.map +2 -2
  144. package/dist/esm/browser/sync/local_state.js.map +2 -2
  145. package/dist/esm/browser/sync/protocol.js.map +1 -1
  146. package/dist/esm/browser/sync/web_socket_manager.js +87 -9
  147. package/dist/esm/browser/sync/web_socket_manager.js.map +2 -2
  148. package/dist/esm/bundler/context.js.map +1 -1
  149. package/dist/esm/bundler/index.js.map +1 -1
  150. package/dist/esm/cli/configure.js.map +2 -2
  151. package/dist/esm/cli/lib/codegen.js.map +1 -1
  152. package/dist/esm/cli/lib/command.js.map +2 -2
  153. package/dist/esm/cli/lib/components.js +9 -0
  154. package/dist/esm/cli/lib/components.js.map +2 -2
  155. package/dist/esm/cli/lib/config.js.map +2 -2
  156. package/dist/esm/cli/lib/convexImport.js +1 -1
  157. package/dist/esm/cli/lib/convexImport.js.map +3 -3
  158. package/dist/esm/cli/lib/data.js +1 -1
  159. package/dist/esm/cli/lib/data.js.map +2 -2
  160. package/dist/esm/cli/lib/deploymentSelection.js +4 -2
  161. package/dist/esm/cli/lib/deploymentSelection.js.map +2 -2
  162. package/dist/esm/cli/lib/dev.js.map +2 -2
  163. package/dist/esm/cli/lib/generatedLogStreamApi.js +2 -0
  164. package/dist/esm/cli/lib/generatedLogStreamApi.js.map +7 -0
  165. package/dist/esm/cli/lib/localDeployment/anonymous.js.map +2 -2
  166. package/dist/esm/cli/lib/localDeployment/download.js.map +1 -1
  167. package/dist/esm/cli/lib/localDeployment/localDeployment.js.map +2 -2
  168. package/dist/esm/cli/lib/login.js +15 -16
  169. package/dist/esm/cli/lib/login.js.map +2 -2
  170. package/dist/esm/cli/lib/mcp/tools/logs.js +74 -6
  171. package/dist/esm/cli/lib/mcp/tools/logs.js.map +2 -2
  172. package/dist/esm/cli/lib/push.js.map +1 -1
  173. package/dist/esm/cli/lib/run.js +1 -1
  174. package/dist/esm/cli/lib/run.js.map +2 -2
  175. package/dist/esm/cli/lib/utils/globalConfig.js.map +1 -1
  176. package/dist/esm/cli/lib/utils/utils.js +4 -4
  177. package/dist/esm/cli/lib/utils/utils.js.map +2 -2
  178. package/dist/esm/cli/lib/watch.js +3 -1
  179. package/dist/esm/cli/lib/watch.js.map +2 -2
  180. package/dist/esm/cli/login.js +9 -2
  181. package/dist/esm/cli/login.js.map +2 -2
  182. package/dist/esm/index.js +1 -1
  183. package/dist/esm/index.js.map +1 -1
  184. package/dist/esm/nextjs/index.js +3 -3
  185. package/dist/esm/nextjs/index.js.map +2 -2
  186. package/dist/esm/react/client.js.map +1 -1
  187. package/dist/esm/react/use_queries.js +1 -1
  188. package/dist/esm/react/use_queries.js.map +2 -2
  189. package/dist/esm/server/impl/vector_search_impl.js.map +1 -1
  190. package/dist/esm-types/browser/http_client.d.ts +2 -2
  191. package/dist/esm-types/browser/http_client.d.ts.map +1 -1
  192. package/dist/esm-types/browser/sync/client.d.ts +1 -1
  193. package/dist/esm-types/browser/sync/client.d.ts.map +1 -1
  194. package/dist/esm-types/browser/sync/function_result.d.ts +1 -1
  195. package/dist/esm-types/browser/sync/function_result.d.ts.map +1 -1
  196. package/dist/esm-types/browser/sync/local_state.d.ts +4 -4
  197. package/dist/esm-types/browser/sync/local_state.d.ts.map +1 -1
  198. package/dist/esm-types/browser/sync/protocol.d.ts +9 -6
  199. package/dist/esm-types/browser/sync/protocol.d.ts.map +1 -1
  200. package/dist/esm-types/browser/sync/web_socket_manager.d.ts +5 -2
  201. package/dist/esm-types/browser/sync/web_socket_manager.d.ts.map +1 -1
  202. package/dist/esm-types/bundler/context.d.ts +3 -3
  203. package/dist/esm-types/bundler/context.d.ts.map +1 -1
  204. package/dist/esm-types/bundler/index.d.ts +1 -1
  205. package/dist/esm-types/bundler/index.d.ts.map +1 -1
  206. package/dist/esm-types/cli/codegen.d.ts +7 -7
  207. package/dist/esm-types/cli/configure.d.ts.map +1 -1
  208. package/dist/esm-types/cli/convexExport.d.ts +7 -7
  209. package/dist/esm-types/cli/convexImport.d.ts +13 -13
  210. package/dist/esm-types/cli/dashboard.d.ts +6 -6
  211. package/dist/esm-types/cli/data.d.ts +8 -8
  212. package/dist/esm-types/cli/deploy.d.ts +15 -15
  213. package/dist/esm-types/cli/dev.d.ts +21 -21
  214. package/dist/esm-types/cli/disableLocalDev.d.ts +2 -2
  215. package/dist/esm-types/cli/env.d.ts +6 -6
  216. package/dist/esm-types/cli/functionSpec.d.ts +7 -7
  217. package/dist/esm-types/cli/generatedApi.d.ts +2 -0
  218. package/dist/esm-types/cli/generatedApi.d.ts.map +1 -1
  219. package/dist/esm-types/cli/init.d.ts +2 -2
  220. package/dist/esm-types/cli/lib/codegen.d.ts +2 -2
  221. package/dist/esm-types/cli/lib/codegen.d.ts.map +1 -1
  222. package/dist/esm-types/cli/lib/command.d.ts +5 -5
  223. package/dist/esm-types/cli/lib/command.d.ts.map +1 -1
  224. package/dist/esm-types/cli/lib/components.d.ts +1 -1
  225. package/dist/esm-types/cli/lib/components.d.ts.map +1 -1
  226. package/dist/esm-types/cli/lib/config.d.ts +7 -7
  227. package/dist/esm-types/cli/lib/config.d.ts.map +1 -1
  228. package/dist/esm-types/cli/lib/convexImport.d.ts +2 -2
  229. package/dist/esm-types/cli/lib/convexImport.d.ts.map +1 -1
  230. package/dist/esm-types/cli/lib/data.d.ts +3 -3
  231. package/dist/esm-types/cli/lib/data.d.ts.map +1 -1
  232. package/dist/esm-types/cli/lib/deployment.d.ts +1 -1
  233. package/dist/esm-types/cli/lib/deploymentSelection.d.ts +6 -6
  234. package/dist/esm-types/cli/lib/deploymentSelection.d.ts.map +1 -1
  235. package/dist/esm-types/cli/lib/dev.d.ts +5 -5
  236. package/dist/esm-types/cli/lib/dev.d.ts.map +1 -1
  237. package/dist/esm-types/cli/lib/generatedLogStreamApi.d.ts +131 -0
  238. package/dist/esm-types/cli/lib/generatedLogStreamApi.d.ts.map +1 -0
  239. package/dist/esm-types/cli/lib/localDeployment/anonymous.d.ts +3 -3
  240. package/dist/esm-types/cli/lib/localDeployment/anonymous.d.ts.map +1 -1
  241. package/dist/esm-types/cli/lib/localDeployment/download.d.ts +1 -1
  242. package/dist/esm-types/cli/lib/localDeployment/download.d.ts.map +1 -1
  243. package/dist/esm-types/cli/lib/localDeployment/localDeployment.d.ts +2 -2
  244. package/dist/esm-types/cli/lib/localDeployment/localDeployment.d.ts.map +1 -1
  245. package/dist/esm-types/cli/lib/login.d.ts +19 -17
  246. package/dist/esm-types/cli/lib/login.d.ts.map +1 -1
  247. package/dist/esm-types/cli/lib/mcp/tools/logs.d.ts +14 -3
  248. package/dist/esm-types/cli/lib/mcp/tools/logs.d.ts.map +1 -1
  249. package/dist/esm-types/cli/lib/push.d.ts +3 -3
  250. package/dist/esm-types/cli/lib/push.d.ts.map +1 -1
  251. package/dist/esm-types/cli/lib/run.d.ts +9 -9
  252. package/dist/esm-types/cli/lib/run.d.ts.map +1 -1
  253. package/dist/esm-types/cli/lib/utils/globalConfig.d.ts +1 -1
  254. package/dist/esm-types/cli/lib/utils/globalConfig.d.ts.map +1 -1
  255. package/dist/esm-types/cli/lib/utils/prompts.d.ts +2 -2
  256. package/dist/esm-types/cli/lib/utils/utils.d.ts +3 -3
  257. package/dist/esm-types/cli/lib/utils/utils.d.ts.map +1 -1
  258. package/dist/esm-types/cli/lib/watch.d.ts.map +1 -1
  259. package/dist/esm-types/cli/login.d.ts +13 -11
  260. package/dist/esm-types/cli/login.d.ts.map +1 -1
  261. package/dist/esm-types/cli/logs.d.ts +6 -6
  262. package/dist/esm-types/cli/network_test.d.ts +9 -9
  263. package/dist/esm-types/cli/reinit.d.ts +2 -2
  264. package/dist/esm-types/cli/run.d.ts +11 -11
  265. package/dist/esm-types/index.d.ts +1 -1
  266. package/dist/esm-types/react/client.d.ts +1 -1
  267. package/dist/esm-types/react/client.d.ts.map +1 -1
  268. package/dist/esm-types/server/components/paths.d.ts +6 -6
  269. package/dist/esm-types/server/pagination.d.ts +4 -4
  270. package/dist/esm-types/server/schema.d.ts +2 -2
  271. package/dist/esm-types/values/validator.d.ts +1 -1
  272. package/dist/react.bundle.js +91 -12
  273. package/dist/react.bundle.js.map +2 -2
  274. package/package.json +4 -2
  275. package/src/browser/http_client.ts +4 -2
  276. package/src/browser/sync/client.ts +7 -3
  277. package/src/browser/sync/function_result.ts +1 -1
  278. package/src/browser/sync/local_state.ts +18 -12
  279. package/src/browser/sync/protocol.ts +13 -7
  280. package/src/browser/sync/web_socket_manager.ts +102 -8
  281. package/src/bundler/context.ts +3 -3
  282. package/src/bundler/index.ts +1 -1
  283. package/src/cli/configure.ts +7 -5
  284. package/src/cli/generatedApi.ts +2 -0
  285. package/src/cli/lib/codegen.ts +2 -2
  286. package/src/cli/lib/command.ts +6 -5
  287. package/src/cli/lib/components.ts +11 -2
  288. package/src/cli/lib/config.ts +7 -7
  289. package/src/cli/lib/convexImport.ts +3 -3
  290. package/src/cli/lib/data.ts +17 -5
  291. package/src/cli/lib/deploymentSelection.ts +13 -11
  292. package/src/cli/lib/dev.ts +7 -5
  293. package/src/cli/lib/generatedLogStreamApi.ts +131 -0
  294. package/src/cli/lib/localDeployment/anonymous.ts +8 -6
  295. package/src/cli/lib/localDeployment/download.ts +1 -1
  296. package/src/cli/lib/localDeployment/localDeployment.ts +8 -6
  297. package/src/cli/lib/login.ts +37 -29
  298. package/src/cli/lib/mcp/tools/logs.ts +107 -13
  299. package/src/cli/lib/push.ts +3 -3
  300. package/src/cli/lib/run.ts +18 -14
  301. package/src/cli/lib/utils/globalConfig.ts +1 -1
  302. package/src/cli/lib/utils/utils.ts +5 -5
  303. package/src/cli/lib/watch.ts +3 -1
  304. package/src/cli/login.ts +11 -0
  305. package/src/index.ts +1 -1
  306. package/src/nextjs/index.ts +3 -3
  307. package/src/react/client.ts +3 -3
  308. package/src/react/use_paginated_query.test.tsx +1 -1
  309. package/src/react/use_queries.ts +1 -1
  310. package/src/server/impl/vector_search_impl.ts +1 -1
  311. package/tsconfig.json +1 -0
package/CHANGELOG.md CHANGED
@@ -1,13 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.27.1
4
+
5
+ - Changes to logged messages in the console, where previously only WebSocket
6
+ reconnection messages were logged. These can still be silenced with the
7
+ `logger: false` client option.
8
+ - Improved support for the TypeScript tsconfig.json compiler option
9
+ "exactOptionalPropertTypes" with the convex package.
10
+ - Additional WebSocket connection debugging information about Transition
11
+ messages.
12
+ - Clearer error messages when running codegen in preview deployments.
13
+ - Token limits for especially verbose logs MCP tool.
14
+ - Add (preexisting) `codegen` options to `convex.json` schema.
15
+
3
16
  ## 1.27.0
4
17
 
5
- - Add support for configuring the Node.js version used by Node actions
6
- using the `node.nodeVersion` field of the `convex.json` file
18
+ - Add support for configuring the Node.js version used by Node actions using the
19
+ `node.nodeVersion` field of the `convex.json` file
7
20
  ([docs](https://docs.convex.dev/production/project-configuration#configuring-the-nodejs-version)).
8
- - `npx convex data` now supports exporting data as JSON or JSONL with the `--format` option.
9
- - `npx convex env set` now supports setting environment variables via piping (STDIN)
10
- (for example `cat keys/my-private-key.txt | npx convex env set JWT_PRIVATE_KEY`).
21
+ - `npx convex data` now supports exporting data as JSON or JSONL with the
22
+ `--format` option.
23
+ - `npx convex env set` now supports setting environment variables via piping
24
+ (STDIN) (for example
25
+ `cat keys/my-private-key.txt | npx convex env set JWT_PRIVATE_KEY`).
11
26
 
12
27
  ## 1.26.2
13
28
 
@@ -28,7 +28,7 @@ var convex = (() => {
28
28
  });
29
29
 
30
30
  // src/index.ts
31
- var version = "1.27.0";
31
+ var version = "1.27.1";
32
32
 
33
33
  // src/values/base64.ts
34
34
  var base64_exports = {};
@@ -1556,6 +1556,19 @@ var convex = (() => {
1556
1556
  var CLOSE_GOING_AWAY = 1001;
1557
1557
  var CLOSE_NO_STATUS = 1005;
1558
1558
  var CLOSE_NOT_FOUND = 4040;
1559
+ var firstTime;
1560
+ function monotonicMillis() {
1561
+ if (firstTime === void 0) {
1562
+ firstTime = Date.now();
1563
+ }
1564
+ if (typeof performance === "undefined" || !performance.now) {
1565
+ return Date.now();
1566
+ }
1567
+ return Math.round(firstTime + performance.now());
1568
+ }
1569
+ function prettyNow() {
1570
+ return `t=${Math.round((monotonicMillis() - firstTime) / 100) / 10}s`;
1571
+ }
1559
1572
  var serverDisconnectErrors = {
1560
1573
  // A known error, e.g. during a restart or push
1561
1574
  InternalServerError: { timeout: 1e3 },
@@ -1571,7 +1584,7 @@ var convex = (() => {
1571
1584
  VectorIndexesUnavailable: { timeout: 1e3 },
1572
1585
  SearchIndexesUnavailable: { timeout: 1e3 },
1573
1586
  TableSummariesUnavailable: { timeout: 1e3 },
1574
- // More ErrorMeatadata::overloaded()
1587
+ // More ErrorMetadata::overloaded()
1575
1588
  VectorIndexTooLarge: { timeout: 3e3 },
1576
1589
  SearchIndexTooLarge: { timeout: 3e3 },
1577
1590
  TooManyWritesInTimePeriod: { timeout: 3e3 }
@@ -1588,8 +1601,9 @@ var convex = (() => {
1588
1601
  return "Unknown";
1589
1602
  }
1590
1603
  var WebSocketManager = class {
1591
- constructor(uri, callbacks, webSocketConstructor, logger, markConnectionStateDirty) {
1604
+ constructor(uri, callbacks, webSocketConstructor, logger, markConnectionStateDirty, debug) {
1592
1605
  this.markConnectionStateDirty = markConnectionStateDirty;
1606
+ this.debug = debug;
1593
1607
  this.webSocketConstructor = webSocketConstructor;
1594
1608
  this.socket = { state: "disconnected" };
1595
1609
  this.connectionCount = 0;
@@ -1667,23 +1681,42 @@ var convex = (() => {
1667
1681
  this._hasEverConnected = true;
1668
1682
  this.onOpen({
1669
1683
  connectionCount: this.connectionCount,
1670
- lastCloseReason: this.lastCloseReason
1684
+ lastCloseReason: this.lastCloseReason,
1685
+ clientTs: monotonicMillis()
1671
1686
  });
1672
1687
  }
1673
1688
  if (this.lastCloseReason !== "InitialConnect") {
1674
- this.logger.log("WebSocket reconnected");
1689
+ if (this.lastCloseReason) {
1690
+ this.logger.log(
1691
+ "WebSocket reconnected at",
1692
+ prettyNow(),
1693
+ "after disconnect due to",
1694
+ this.lastCloseReason
1695
+ );
1696
+ } else {
1697
+ this.logger.log("WebSocket reconnected at", prettyNow());
1698
+ }
1675
1699
  }
1676
1700
  this.connectionCount += 1;
1677
1701
  this.lastCloseReason = null;
1678
1702
  };
1679
1703
  ws.onerror = (error) => {
1680
1704
  const message = error.message;
1681
- this.logger.log(`WebSocket error: ${message}`);
1705
+ if (message) {
1706
+ this.logger.log(`WebSocket error message: ${message}`);
1707
+ }
1682
1708
  };
1683
1709
  ws.onmessage = (message) => {
1684
1710
  this.resetServerInactivityTimeout();
1711
+ const messageLength = message.data.length;
1685
1712
  const serverMessage = parseServerMessage(JSON.parse(message.data));
1686
1713
  this._logVerbose(`received ws message with type ${serverMessage.type}`);
1714
+ if (serverMessage.type === "Transition") {
1715
+ this.reportLargeTransition({
1716
+ messageLength,
1717
+ transition: serverMessage
1718
+ });
1719
+ }
1687
1720
  const response = this.onMessage(serverMessage);
1688
1721
  if (response.hasSyncedPastLastReconnect) {
1689
1722
  this.retries = 0;
@@ -1693,7 +1726,7 @@ var convex = (() => {
1693
1726
  ws.onclose = (event) => {
1694
1727
  this._logVerbose("begin ws.onclose");
1695
1728
  if (this.lastCloseReason === null) {
1696
- this.lastCloseReason = event.reason ?? "OnCloseInvoked";
1729
+ this.lastCloseReason = event.reason || `closed with code ${event.code}`;
1697
1730
  }
1698
1731
  if (event.code !== CLOSE_NORMAL && event.code !== CLOSE_GOING_AWAY && // This commonly gets fired on mobile apps when the app is backgrounded
1699
1732
  event.code !== CLOSE_NO_STATUS && event.code !== CLOSE_NOT_FOUND) {
@@ -1731,8 +1764,10 @@ var convex = (() => {
1731
1764
  if (this.socket.state === "ready" && this.socket.paused === "no") {
1732
1765
  const encodedMessage = encodeClientMessage(message);
1733
1766
  const request = JSON.stringify(encodedMessage);
1767
+ let sent = false;
1734
1768
  try {
1735
1769
  this.socket.ws.send(request);
1770
+ sent = true;
1736
1771
  } catch (error) {
1737
1772
  this.logger.log(
1738
1773
  `Failed to send message on WebSocket, reconnecting: ${error}`
@@ -1740,7 +1775,7 @@ var convex = (() => {
1740
1775
  this.closeAndReconnect("FailedToSendMessage");
1741
1776
  }
1742
1777
  this._logVerbose(
1743
- `sent message with type ${message.type}: ${JSON.stringify(
1778
+ `${sent ? "sent" : "failed to send"} message with type ${message.type}: ${JSON.stringify(
1744
1779
  messageForLog
1745
1780
  )}`
1746
1781
  );
@@ -1769,7 +1804,7 @@ var convex = (() => {
1769
1804
  this.socket = { state: "disconnected" };
1770
1805
  const backoff = this.nextBackoff(reason);
1771
1806
  this.markConnectionStateDirty();
1772
- this.logger.log(`Attempting reconnect in ${backoff}ms`);
1807
+ this.logger.log(`Attempting reconnect in ${Math.round(backoff)}ms`);
1773
1808
  setTimeout(() => this.connect(), backoff);
1774
1809
  }
1775
1810
  /**
@@ -1933,7 +1968,8 @@ var convex = (() => {
1933
1968
  this.socket = { ...this.socket, paused: "no" };
1934
1969
  this.onOpen({
1935
1970
  connectionCount: this.connectionCount,
1936
- lastCloseReason: this.lastCloseReason
1971
+ lastCloseReason: this.lastCloseReason,
1972
+ clientTs: monotonicMillis()
1937
1973
  });
1938
1974
  } else if (this.socket.paused === "yes") {
1939
1975
  this.socket = { ...this.socket, paused: "no" };
@@ -1969,6 +2005,48 @@ var convex = (() => {
1969
2005
  const jitter = actualBackoff * (Math.random() - 0.5);
1970
2006
  return actualBackoff + jitter;
1971
2007
  }
2008
+ reportLargeTransition({
2009
+ transition,
2010
+ messageLength
2011
+ }) {
2012
+ if (transition.clientClockSkew === void 0 || transition.serverTs === void 0) {
2013
+ return;
2014
+ }
2015
+ const transitionTransitTime = monotonicMillis() - // client time now
2016
+ // clientClockSkew = (server time + upstream latency) - client time
2017
+ // clientClockSkew is "how many milliseconds behind (slow) is the client clock"
2018
+ // but the latency of the Connect message inflates this, making it appear further behind
2019
+ transition.clientClockSkew - transition.serverTs / 1e6;
2020
+ const prettyTransitionTime = `${Math.round(transitionTransitTime)}ms`;
2021
+ const prettyMessageMB = `${Math.round(messageLength / 1e4) / 100}MB`;
2022
+ const bytesPerSecond = messageLength / (transitionTransitTime / 1e3);
2023
+ const prettyBytesPerSecond = `${Math.round(bytesPerSecond / 1e4) / 100}MB per second`;
2024
+ this._logVerbose(
2025
+ `received ${prettyMessageMB} transition in ${prettyTransitionTime} at ${prettyBytesPerSecond}`
2026
+ );
2027
+ if (transitionTransitTime > 1e4 && messageLength > 1e7) {
2028
+ this.logger.log(
2029
+ `received query results totalling more than 10MB (${prettyMessageMB}) which took more than 10s (${prettyTransitionTime}) to arrive`
2030
+ );
2031
+ } else if (messageLength > 2e7) {
2032
+ this.logger.log(
2033
+ `received query results totalling more that 20MB (${prettyMessageMB}) which will take a long time to download on slower connections`
2034
+ );
2035
+ } else if (transitionTransitTime > 2e4) {
2036
+ this.logger.log(
2037
+ `received query results totalling ${prettyMessageMB} which took more than 20s to arrive (${prettyTransitionTime})`
2038
+ );
2039
+ }
2040
+ if (this.debug) {
2041
+ if (transitionTransitTime > 1e4 || messageLength > 1e7) {
2042
+ this.sendMessage({
2043
+ type: "Event",
2044
+ eventType: "ClientReceivedTransition",
2045
+ event: { transitionTransitTime, messageLength }
2046
+ });
2047
+ }
2048
+ }
2049
+ }
1972
2050
  };
1973
2051
 
1974
2052
  // src/browser/sync/session.ts
@@ -2612,7 +2690,8 @@ var convex = (() => {
2612
2690
  },
2613
2691
  webSocketConstructor,
2614
2692
  this.logger,
2615
- this.markConnectionStateDirty
2693
+ this.markConnectionStateDirty,
2694
+ this.debug
2616
2695
  );
2617
2696
  this.mark("convexClientConstructed");
2618
2697
  if (options.expectAuth) {
@@ -3405,6 +3484,8 @@ var convex = (() => {
3405
3484
  this.logger = options?.logger === false ? instantiateNoopLogger({ verbose: false }) : options?.logger !== true && options?.logger ? options.logger : instantiateDefaultLogger({ verbose: false });
3406
3485
  this.address = address;
3407
3486
  this.debug = true;
3487
+ this.auth = void 0;
3488
+ this.adminAuth = void 0;
3408
3489
  if (options?.auth) {
3409
3490
  this.setAuth(options.auth);
3410
3491
  }