convex 1.48.0-alpha.0 → 1.48.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 (353) hide show
  1. package/CHANGELOG.md +28 -4
  2. package/README.md +1 -1
  3. package/dist/browser.bundle.js +1 -1
  4. package/dist/browser.bundle.js.map +1 -1
  5. package/dist/cjs/bundler/context.js +5 -7
  6. package/dist/cjs/bundler/context.js.map +2 -2
  7. package/dist/cjs/bundler/fs.js +6 -47
  8. package/dist/cjs/bundler/fs.js.map +2 -2
  9. package/dist/cjs/cli/aiFiles.js +26 -4
  10. package/dist/cjs/cli/aiFiles.js.map +2 -2
  11. package/dist/cjs/cli/configure.js +2 -15
  12. package/dist/cjs/cli/configure.js.map +2 -2
  13. package/dist/cjs/cli/env.js +6 -3
  14. package/dist/cjs/cli/env.js.map +2 -2
  15. package/dist/cjs/cli/envDefault.js +5 -2
  16. package/dist/cjs/cli/envDefault.js.map +2 -2
  17. package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js +2 -1
  18. package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js.map +2 -2
  19. package/dist/cjs/cli/lib/aiFiles/index.js +13 -2
  20. package/dist/cjs/cli/lib/aiFiles/index.js.map +2 -2
  21. package/dist/cjs/cli/lib/aiFiles/skills.js +6 -5
  22. package/dist/cjs/cli/lib/aiFiles/skills.js.map +2 -2
  23. package/dist/cjs/cli/lib/aiFiles/state.js +1 -1
  24. package/dist/cjs/cli/lib/aiFiles/state.js.map +1 -1
  25. package/dist/cjs/cli/lib/components.js +12 -2
  26. package/dist/cjs/cli/lib/components.js.map +2 -2
  27. package/dist/cjs/cli/lib/deployApi/startPush.js +42 -1
  28. package/dist/cjs/cli/lib/deployApi/startPush.js.map +2 -2
  29. package/dist/cjs/cli/lib/deployment.js +0 -2
  30. package/dist/cjs/cli/lib/deployment.js.map +2 -2
  31. package/dist/cjs/cli/lib/deploymentSelection.js +18 -27
  32. package/dist/cjs/cli/lib/deploymentSelection.js.map +2 -2
  33. package/dist/cjs/cli/lib/env.js +9 -1
  34. package/dist/cjs/cli/lib/env.js.map +2 -2
  35. package/dist/cjs/cli/lib/envvars.js +0 -32
  36. package/dist/cjs/cli/lib/envvars.js.map +2 -2
  37. package/dist/cjs/cli/lib/fsUtils.js +1 -1
  38. package/dist/cjs/cli/lib/fsUtils.js.map +2 -2
  39. package/dist/cjs/cli/lib/generateDocs.js +1 -1
  40. package/dist/cjs/cli/lib/generateDocs.js.map +1 -1
  41. package/dist/cjs/cli/lib/localDeployment/dashboard.js +11 -1
  42. package/dist/cjs/cli/lib/localDeployment/dashboard.js.map +2 -2
  43. package/dist/cjs/cli/lib/localDeployment/download.js +16 -1
  44. package/dist/cjs/cli/lib/localDeployment/download.js.map +2 -2
  45. package/dist/cjs/cli/lib/localDeployment/utils.js +4 -0
  46. package/dist/cjs/cli/lib/localDeployment/utils.js.map +2 -2
  47. package/dist/cjs/cli/lib/login.js +4 -28
  48. package/dist/cjs/cli/lib/login.js.map +2 -2
  49. package/dist/cjs/cli/lib/mcp/requestContext.js +1 -5
  50. package/dist/cjs/cli/lib/mcp/requestContext.js.map +2 -2
  51. package/dist/cjs/cli/lib/utils/aiAgent.js +32 -0
  52. package/dist/cjs/cli/lib/utils/aiAgent.js.map +7 -0
  53. package/dist/cjs/cli/lib/utils/utils.js +9 -18
  54. package/dist/cjs/cli/lib/utils/utils.js.map +2 -2
  55. package/dist/cjs/cli/login.js +114 -213
  56. package/dist/cjs/cli/login.js.map +3 -3
  57. package/dist/cjs/cli/logout.js +12 -113
  58. package/dist/cjs/cli/logout.js.map +3 -3
  59. package/dist/cjs/cli/mcp.js +10 -43
  60. package/dist/cjs/cli/mcp.js.map +3 -3
  61. package/dist/cjs/cli/program.js +1 -2
  62. package/dist/cjs/cli/program.js.map +2 -2
  63. package/dist/cjs/index.js +1 -1
  64. package/dist/cjs/index.js.map +1 -1
  65. package/dist/cjs/server/authentication.js.map +1 -1
  66. package/dist/cjs/server/components/index.js.map +2 -2
  67. package/dist/cjs/server/impl/authentication_impl.js +15 -1
  68. package/dist/cjs/server/impl/authentication_impl.js.map +2 -2
  69. package/dist/cjs/server/impl/registration_impl.js +1 -1
  70. package/dist/cjs/server/impl/registration_impl.js.map +2 -2
  71. package/dist/cjs/server/index.js.map +2 -2
  72. package/dist/cjs/server/meta.js.map +1 -1
  73. package/dist/cjs/server/registration.js.map +1 -1
  74. package/dist/cjs/server/schema.js +0 -2
  75. package/dist/cjs/server/schema.js.map +2 -2
  76. package/dist/cjs/server/storage.js.map +1 -1
  77. package/dist/cjs-types/bundler/context.d.ts +0 -5
  78. package/dist/cjs-types/bundler/context.d.ts.map +1 -1
  79. package/dist/cjs-types/bundler/fs.d.ts +2 -7
  80. package/dist/cjs-types/bundler/fs.d.ts.map +1 -1
  81. package/dist/cjs-types/cli/aiFiles.d.ts.map +1 -1
  82. package/dist/cjs-types/cli/configure.d.ts.map +1 -1
  83. package/dist/cjs-types/cli/env.d.ts.map +1 -1
  84. package/dist/cjs-types/cli/envDefault.d.ts.map +1 -1
  85. package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts +3 -1
  86. package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -1
  87. package/dist/cjs-types/cli/lib/aiFiles/index.d.ts +11 -1
  88. package/dist/cjs-types/cli/lib/aiFiles/index.d.ts.map +1 -1
  89. package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts +4 -1
  90. package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts.map +1 -1
  91. package/dist/cjs-types/cli/lib/components.d.ts.map +1 -1
  92. package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts +13 -0
  93. package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts.map +1 -1
  94. package/dist/cjs-types/cli/lib/deployment.d.ts +0 -2
  95. package/dist/cjs-types/cli/lib/deployment.d.ts.map +1 -1
  96. package/dist/cjs-types/cli/lib/deploymentSelection.d.ts +1 -2
  97. package/dist/cjs-types/cli/lib/deploymentSelection.d.ts.map +1 -1
  98. package/dist/cjs-types/cli/lib/env.d.ts +1 -0
  99. package/dist/cjs-types/cli/lib/env.d.ts.map +1 -1
  100. package/dist/cjs-types/cli/lib/envvars.d.ts +0 -6
  101. package/dist/cjs-types/cli/lib/envvars.d.ts.map +1 -1
  102. package/dist/cjs-types/cli/lib/fsUtils.d.ts +0 -1
  103. package/dist/cjs-types/cli/lib/fsUtils.d.ts.map +1 -1
  104. package/dist/cjs-types/cli/lib/localDeployment/dashboard.d.ts +6 -0
  105. package/dist/cjs-types/cli/lib/localDeployment/dashboard.d.ts.map +1 -1
  106. package/dist/cjs-types/cli/lib/localDeployment/download.d.ts.map +1 -1
  107. package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts +1 -0
  108. package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
  109. package/dist/cjs-types/cli/lib/login.d.ts +1 -3
  110. package/dist/cjs-types/cli/lib/login.d.ts.map +1 -1
  111. package/dist/cjs-types/cli/lib/mcp/requestContext.d.ts.map +1 -1
  112. package/dist/cjs-types/cli/lib/mcp/tools/insights.d.ts +2 -2
  113. package/dist/cjs-types/cli/lib/utils/aiAgent.d.ts +8 -0
  114. package/dist/cjs-types/cli/lib/utils/aiAgent.d.ts.map +1 -0
  115. package/dist/cjs-types/cli/lib/utils/utils.d.ts +0 -5
  116. package/dist/cjs-types/cli/lib/utils/utils.d.ts.map +1 -1
  117. package/dist/cjs-types/cli/login.d.ts +0 -21
  118. package/dist/cjs-types/cli/login.d.ts.map +1 -1
  119. package/dist/cjs-types/cli/logout.d.ts +1 -8
  120. package/dist/cjs-types/cli/logout.d.ts.map +1 -1
  121. package/dist/cjs-types/cli/mcp.d.ts.map +1 -1
  122. package/dist/cjs-types/cli/program.d.ts.map +1 -1
  123. package/dist/cjs-types/index.d.ts +1 -1
  124. package/dist/cjs-types/index.d.ts.map +1 -1
  125. package/dist/cjs-types/server/authentication.d.ts +65 -0
  126. package/dist/cjs-types/server/authentication.d.ts.map +1 -1
  127. package/dist/cjs-types/server/components/index.d.ts +6 -0
  128. package/dist/cjs-types/server/components/index.d.ts.map +1 -1
  129. package/dist/cjs-types/server/impl/authentication_impl.d.ts +2 -1
  130. package/dist/cjs-types/server/impl/authentication_impl.d.ts.map +1 -1
  131. package/dist/cjs-types/server/index.d.ts +2 -2
  132. package/dist/cjs-types/server/index.d.ts.map +1 -1
  133. package/dist/cjs-types/server/meta.d.ts +8 -0
  134. package/dist/cjs-types/server/meta.d.ts.map +1 -1
  135. package/dist/cjs-types/server/registration.d.ts +5 -3
  136. package/dist/cjs-types/server/registration.d.ts.map +1 -1
  137. package/dist/cjs-types/server/schema.d.ts +0 -2
  138. package/dist/cjs-types/server/schema.d.ts.map +1 -1
  139. package/dist/cjs-types/server/storage.d.ts +28 -25
  140. package/dist/cjs-types/server/storage.d.ts.map +1 -1
  141. package/dist/cli.bundle.cjs +1379 -2142
  142. package/dist/cli.bundle.cjs.map +4 -4
  143. package/dist/esm/bundler/context.js +5 -7
  144. package/dist/esm/bundler/context.js.map +2 -2
  145. package/dist/esm/bundler/fs.js +6 -47
  146. package/dist/esm/bundler/fs.js.map +2 -2
  147. package/dist/esm/cli/aiFiles.js +26 -4
  148. package/dist/esm/cli/aiFiles.js.map +2 -2
  149. package/dist/esm/cli/configure.js +2 -15
  150. package/dist/esm/cli/configure.js.map +2 -2
  151. package/dist/esm/cli/env.js +6 -3
  152. package/dist/esm/cli/env.js.map +2 -2
  153. package/dist/esm/cli/envDefault.js +5 -2
  154. package/dist/esm/cli/envDefault.js.map +2 -2
  155. package/dist/esm/cli/lib/aiFiles/guidelinesmd.js +2 -1
  156. package/dist/esm/cli/lib/aiFiles/guidelinesmd.js.map +2 -2
  157. package/dist/esm/cli/lib/aiFiles/index.js +13 -2
  158. package/dist/esm/cli/lib/aiFiles/index.js.map +2 -2
  159. package/dist/esm/cli/lib/aiFiles/skills.js +6 -5
  160. package/dist/esm/cli/lib/aiFiles/skills.js.map +2 -2
  161. package/dist/esm/cli/lib/aiFiles/state.js +1 -1
  162. package/dist/esm/cli/lib/aiFiles/state.js.map +1 -1
  163. package/dist/esm/cli/lib/components.js +15 -2
  164. package/dist/esm/cli/lib/components.js.map +2 -2
  165. package/dist/esm/cli/lib/deployApi/startPush.js +39 -0
  166. package/dist/esm/cli/lib/deployApi/startPush.js.map +2 -2
  167. package/dist/esm/cli/lib/deployment.js +2 -2
  168. package/dist/esm/cli/lib/deployment.js.map +2 -2
  169. package/dist/esm/cli/lib/deploymentSelection.js +20 -35
  170. package/dist/esm/cli/lib/deploymentSelection.js.map +2 -2
  171. package/dist/esm/cli/lib/env.js +9 -1
  172. package/dist/esm/cli/lib/env.js.map +2 -2
  173. package/dist/esm/cli/lib/envvars.js +1 -35
  174. package/dist/esm/cli/lib/envvars.js.map +2 -2
  175. package/dist/esm/cli/lib/fsUtils.js +1 -1
  176. package/dist/esm/cli/lib/fsUtils.js.map +2 -2
  177. package/dist/esm/cli/lib/generateDocs.js +1 -1
  178. package/dist/esm/cli/lib/generateDocs.js.map +1 -1
  179. package/dist/esm/cli/lib/localDeployment/dashboard.js +9 -0
  180. package/dist/esm/cli/lib/localDeployment/dashboard.js.map +2 -2
  181. package/dist/esm/cli/lib/localDeployment/download.js +16 -1
  182. package/dist/esm/cli/lib/localDeployment/download.js.map +2 -2
  183. package/dist/esm/cli/lib/localDeployment/utils.js +3 -0
  184. package/dist/esm/cli/lib/localDeployment/utils.js.map +2 -2
  185. package/dist/esm/cli/lib/login.js +4 -36
  186. package/dist/esm/cli/lib/login.js.map +2 -2
  187. package/dist/esm/cli/lib/mcp/requestContext.js +1 -5
  188. package/dist/esm/cli/lib/mcp/requestContext.js.map +2 -2
  189. package/dist/esm/cli/lib/utils/aiAgent.js +10 -0
  190. package/dist/esm/cli/lib/utils/aiAgent.js.map +7 -0
  191. package/dist/esm/cli/lib/utils/utils.js +9 -16
  192. package/dist/esm/cli/lib/utils/utils.js.map +2 -2
  193. package/dist/esm/cli/login.js +112 -225
  194. package/dist/esm/cli/login.js.map +3 -3
  195. package/dist/esm/cli/logout.js +13 -110
  196. package/dist/esm/cli/logout.js.map +2 -2
  197. package/dist/esm/cli/mcp.js +10 -34
  198. package/dist/esm/cli/mcp.js.map +2 -2
  199. package/dist/esm/cli/program.js +1 -2
  200. package/dist/esm/cli/program.js.map +2 -2
  201. package/dist/esm/index.js +1 -1
  202. package/dist/esm/index.js.map +1 -1
  203. package/dist/esm/server/components/index.js.map +2 -2
  204. package/dist/esm/server/impl/authentication_impl.js +13 -0
  205. package/dist/esm/server/impl/authentication_impl.js.map +2 -2
  206. package/dist/esm/server/impl/registration_impl.js +2 -2
  207. package/dist/esm/server/impl/registration_impl.js.map +2 -2
  208. package/dist/esm/server/index.js.map +2 -2
  209. package/dist/esm/server/schema.js +0 -2
  210. package/dist/esm/server/schema.js.map +2 -2
  211. package/dist/esm-types/bundler/context.d.ts +0 -5
  212. package/dist/esm-types/bundler/context.d.ts.map +1 -1
  213. package/dist/esm-types/bundler/fs.d.ts +2 -7
  214. package/dist/esm-types/bundler/fs.d.ts.map +1 -1
  215. package/dist/esm-types/cli/aiFiles.d.ts.map +1 -1
  216. package/dist/esm-types/cli/configure.d.ts.map +1 -1
  217. package/dist/esm-types/cli/env.d.ts.map +1 -1
  218. package/dist/esm-types/cli/envDefault.d.ts.map +1 -1
  219. package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts +3 -1
  220. package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -1
  221. package/dist/esm-types/cli/lib/aiFiles/index.d.ts +11 -1
  222. package/dist/esm-types/cli/lib/aiFiles/index.d.ts.map +1 -1
  223. package/dist/esm-types/cli/lib/aiFiles/skills.d.ts +4 -1
  224. package/dist/esm-types/cli/lib/aiFiles/skills.d.ts.map +1 -1
  225. package/dist/esm-types/cli/lib/components.d.ts.map +1 -1
  226. package/dist/esm-types/cli/lib/deployApi/startPush.d.ts +13 -0
  227. package/dist/esm-types/cli/lib/deployApi/startPush.d.ts.map +1 -1
  228. package/dist/esm-types/cli/lib/deployment.d.ts +0 -2
  229. package/dist/esm-types/cli/lib/deployment.d.ts.map +1 -1
  230. package/dist/esm-types/cli/lib/deploymentSelection.d.ts +1 -2
  231. package/dist/esm-types/cli/lib/deploymentSelection.d.ts.map +1 -1
  232. package/dist/esm-types/cli/lib/env.d.ts +1 -0
  233. package/dist/esm-types/cli/lib/env.d.ts.map +1 -1
  234. package/dist/esm-types/cli/lib/envvars.d.ts +0 -6
  235. package/dist/esm-types/cli/lib/envvars.d.ts.map +1 -1
  236. package/dist/esm-types/cli/lib/fsUtils.d.ts +0 -1
  237. package/dist/esm-types/cli/lib/fsUtils.d.ts.map +1 -1
  238. package/dist/esm-types/cli/lib/localDeployment/dashboard.d.ts +6 -0
  239. package/dist/esm-types/cli/lib/localDeployment/dashboard.d.ts.map +1 -1
  240. package/dist/esm-types/cli/lib/localDeployment/download.d.ts.map +1 -1
  241. package/dist/esm-types/cli/lib/localDeployment/utils.d.ts +1 -0
  242. package/dist/esm-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
  243. package/dist/esm-types/cli/lib/login.d.ts +1 -3
  244. package/dist/esm-types/cli/lib/login.d.ts.map +1 -1
  245. package/dist/esm-types/cli/lib/mcp/requestContext.d.ts.map +1 -1
  246. package/dist/esm-types/cli/lib/mcp/tools/insights.d.ts +2 -2
  247. package/dist/esm-types/cli/lib/utils/aiAgent.d.ts +8 -0
  248. package/dist/esm-types/cli/lib/utils/aiAgent.d.ts.map +1 -0
  249. package/dist/esm-types/cli/lib/utils/utils.d.ts +0 -5
  250. package/dist/esm-types/cli/lib/utils/utils.d.ts.map +1 -1
  251. package/dist/esm-types/cli/login.d.ts +0 -21
  252. package/dist/esm-types/cli/login.d.ts.map +1 -1
  253. package/dist/esm-types/cli/logout.d.ts +1 -8
  254. package/dist/esm-types/cli/logout.d.ts.map +1 -1
  255. package/dist/esm-types/cli/mcp.d.ts.map +1 -1
  256. package/dist/esm-types/cli/program.d.ts.map +1 -1
  257. package/dist/esm-types/index.d.ts +1 -1
  258. package/dist/esm-types/index.d.ts.map +1 -1
  259. package/dist/esm-types/server/authentication.d.ts +65 -0
  260. package/dist/esm-types/server/authentication.d.ts.map +1 -1
  261. package/dist/esm-types/server/components/index.d.ts +6 -0
  262. package/dist/esm-types/server/components/index.d.ts.map +1 -1
  263. package/dist/esm-types/server/impl/authentication_impl.d.ts +2 -1
  264. package/dist/esm-types/server/impl/authentication_impl.d.ts.map +1 -1
  265. package/dist/esm-types/server/index.d.ts +2 -2
  266. package/dist/esm-types/server/index.d.ts.map +1 -1
  267. package/dist/esm-types/server/meta.d.ts +8 -0
  268. package/dist/esm-types/server/meta.d.ts.map +1 -1
  269. package/dist/esm-types/server/registration.d.ts +5 -3
  270. package/dist/esm-types/server/registration.d.ts.map +1 -1
  271. package/dist/esm-types/server/schema.d.ts +0 -2
  272. package/dist/esm-types/server/schema.d.ts.map +1 -1
  273. package/dist/esm-types/server/storage.d.ts +28 -25
  274. package/dist/esm-types/server/storage.d.ts.map +1 -1
  275. package/dist/react.bundle.js +1 -1
  276. package/dist/react.bundle.js.map +1 -1
  277. package/package.json +3 -2
  278. package/schemas/convex.schema.json +1 -2
  279. package/src/bundler/context.ts +5 -9
  280. package/src/bundler/fs.ts +5 -54
  281. package/src/cli/aiFiles.ts +30 -4
  282. package/src/cli/configure.ts +2 -18
  283. package/src/cli/env.ts +4 -1
  284. package/src/cli/envDefault.ts +4 -1
  285. package/src/cli/lib/aiFiles/guidelinesmd.ts +7 -2
  286. package/src/cli/lib/aiFiles/index.ts +23 -3
  287. package/src/cli/lib/aiFiles/skills.ts +11 -7
  288. package/src/cli/lib/aiFiles/state.ts +1 -1
  289. package/src/cli/lib/components.ts +18 -3
  290. package/src/cli/lib/deployApi/startPush.ts +64 -0
  291. package/src/cli/lib/deployment.ts +2 -2
  292. package/src/cli/lib/deploymentSelection.ts +18 -37
  293. package/src/cli/lib/env.ts +13 -2
  294. package/src/cli/lib/envvars.ts +1 -43
  295. package/src/cli/lib/fsUtils.ts +2 -5
  296. package/src/cli/lib/generateDocs.ts +1 -1
  297. package/src/cli/lib/localDeployment/dashboard.ts +19 -0
  298. package/src/cli/lib/localDeployment/download.ts +17 -1
  299. package/src/cli/lib/localDeployment/utils.ts +4 -0
  300. package/src/cli/lib/login.ts +3 -47
  301. package/src/cli/lib/mcp/requestContext.ts +1 -7
  302. package/src/cli/lib/utils/aiAgent.ts +15 -0
  303. package/src/cli/lib/utils/utils.ts +15 -19
  304. package/src/cli/login.ts +168 -293
  305. package/src/cli/logout.ts +17 -142
  306. package/src/cli/mcp.ts +11 -48
  307. package/src/cli/program.ts +0 -2
  308. package/src/index.ts +1 -1
  309. package/src/server/authentication.ts +79 -0
  310. package/src/server/components/index.ts +11 -0
  311. package/src/server/impl/authentication_impl.ts +15 -1
  312. package/src/server/impl/registration_impl.ts +2 -2
  313. package/src/server/index.ts +6 -0
  314. package/src/server/meta.ts +0 -8
  315. package/src/server/registration.ts +5 -2
  316. package/src/server/schema.ts +0 -2
  317. package/src/server/storage.ts +29 -42
  318. package/dist/cjs/cli/account.js +0 -237
  319. package/dist/cjs/cli/account.js.map +0 -7
  320. package/dist/cjs/cli/lib/deployKeyWarning.js +0 -43
  321. package/dist/cjs/cli/lib/deployKeyWarning.js.map +0 -7
  322. package/dist/cjs/cli/lib/profileManagement.js +0 -196
  323. package/dist/cjs/cli/lib/profileManagement.js.map +0 -7
  324. package/dist/cjs/cli/lib/profiles.js +0 -333
  325. package/dist/cjs/cli/lib/profiles.js.map +0 -7
  326. package/dist/cjs-types/cli/account.d.ts +0 -6
  327. package/dist/cjs-types/cli/account.d.ts.map +0 -1
  328. package/dist/cjs-types/cli/lib/deployKeyWarning.d.ts +0 -3
  329. package/dist/cjs-types/cli/lib/deployKeyWarning.d.ts.map +0 -1
  330. package/dist/cjs-types/cli/lib/profileManagement.d.ts +0 -10
  331. package/dist/cjs-types/cli/lib/profileManagement.d.ts.map +0 -1
  332. package/dist/cjs-types/cli/lib/profiles.d.ts +0 -59
  333. package/dist/cjs-types/cli/lib/profiles.d.ts.map +0 -1
  334. package/dist/esm/cli/account.js +0 -221
  335. package/dist/esm/cli/account.js.map +0 -7
  336. package/dist/esm/cli/lib/deployKeyWarning.js +0 -27
  337. package/dist/esm/cli/lib/deployKeyWarning.js.map +0 -7
  338. package/dist/esm/cli/lib/profileManagement.js +0 -179
  339. package/dist/esm/cli/lib/profileManagement.js.map +0 -7
  340. package/dist/esm/cli/lib/profiles.js +0 -288
  341. package/dist/esm/cli/lib/profiles.js.map +0 -7
  342. package/dist/esm-types/cli/account.d.ts +0 -6
  343. package/dist/esm-types/cli/account.d.ts.map +0 -1
  344. package/dist/esm-types/cli/lib/deployKeyWarning.d.ts +0 -3
  345. package/dist/esm-types/cli/lib/deployKeyWarning.d.ts.map +0 -1
  346. package/dist/esm-types/cli/lib/profileManagement.d.ts +0 -10
  347. package/dist/esm-types/cli/lib/profileManagement.d.ts.map +0 -1
  348. package/dist/esm-types/cli/lib/profiles.d.ts +0 -59
  349. package/dist/esm-types/cli/lib/profiles.d.ts.map +0 -1
  350. package/src/cli/account.ts +0 -320
  351. package/src/cli/lib/deployKeyWarning.ts +0 -43
  352. package/src/cli/lib/profileManagement.ts +0 -262
  353. package/src/cli/lib/profiles.ts +0 -398
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,18 +15,9 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
  var logout_exports = {};
30
20
  __export(logout_exports, {
31
- createLogoutCommand: () => createLogoutCommand,
32
21
  logout: () => logout
33
22
  });
34
23
  module.exports = __toCommonJS(logout_exports);
@@ -37,107 +26,17 @@ var import_context = require("../bundler/context.js");
37
26
  var import_log = require("../bundler/log.js");
38
27
  var import_fsUtils = require("./lib/fsUtils.js");
39
28
  var import_globalConfig = require("./lib/utils/globalConfig.js");
40
- var import_profiles = require("./lib/profiles.js");
41
- var import_path = __toESM(require("path"), 1);
42
- var import_utils = require("./lib/utils/utils.js");
43
- var import_prompts = require("./lib/utils/prompts.js");
44
- function createLogoutCommand() {
45
- return new import_extra_typings.Command("logout").description(
46
- "Log out of the selected account. Directory selections are preserved."
47
- ).option("--account <name>", "Remove only this account's saved credentials").option(
48
- "--all",
49
- "Remove all saved account credentials, preserving account selections"
50
- ).allowExcessArguments(false).action(async (options, cmd) => {
51
- if (options.all && options.account !== void 0)
52
- cmd.error("Pass either --account or --all, not both.");
53
- const ctx = await (0, import_context.oneoffContext)({
54
- url: void 0,
55
- adminKey: void 0,
56
- envFile: void 0,
57
- skipAuth: true
58
- });
59
- let all = !!options.all;
60
- let profile = all ? null : await (0, import_profiles.getProfileSelection)(ctx, { name: options.account });
61
- if (!all && options.account === void 0 && process.stdin.isTTY && profile !== null) {
62
- const token = (0, import_profiles.readProfileToken)(ctx, profile.name);
63
- const settings = await (0, import_profiles.readProfileSettings)(ctx);
64
- const selectedName = profile.name;
65
- const hasOtherLogins = (0, import_profiles.savedProfileNames)(ctx).some((name) => name !== selectedName) || typeof settings.accessToken === "string" && settings.accessToken.length > 0 && settings.accessToken !== token;
66
- if (hasOtherLogins) {
67
- const scope = await (0, import_prompts.promptOptions)(ctx, {
68
- message: "Which saved logins would you like to log out of?",
69
- choices: [
70
- { name: `Only account "${profile.name}"`, value: "profile" },
71
- { name: "All saved logins on this device", value: "all" }
72
- ],
73
- default: "profile"
74
- });
75
- if (scope === "all") {
76
- profile = null;
77
- all = true;
78
- }
79
- }
80
- }
81
- let warnAboutLegacyCredentials = false;
82
- if (profile !== null) {
83
- const selectedName = profile.name;
84
- await (0, import_profiles.updateProfileSettings)(
85
- ctx,
86
- (settings) => {
87
- const token = (0, import_profiles.readProfileToken)(ctx, selectedName);
88
- if (token !== null && settings.accessToken === token) {
89
- delete settings.accessToken;
90
- } else if (settings.defaultProfile === selectedName && typeof settings.accessToken === "string" && settings.accessToken.length > 0) {
91
- warnAboutLegacyCredentials = true;
92
- }
93
- },
94
- () => {
95
- const configPath = (0, import_profiles.profileConfigPath)(selectedName);
96
- (0, import_fsUtils.recursivelyDelete)(ctx, configPath, {
97
- force: true,
98
- followSymlinks: false
99
- });
100
- }
101
- );
102
- } else {
103
- await (0, import_profiles.updateProfileSettings)(
104
- ctx,
105
- async (settings) => {
106
- if (!all && (0, import_profiles.savedProfileNames)(ctx).length > 0 && settings.accessToken === void 0) {
107
- return await ctx.crash({
108
- exitCode: 1,
109
- errorType: "fatal",
110
- printedMessage: "No account is selected. Use `npx convex logout --account <name>` or `npx convex logout --all`."
111
- });
112
- }
113
- delete settings.accessToken;
114
- },
115
- () => {
116
- const profilesDir = import_path.default.join((0, import_utils.rootDirectory)(), "profiles");
117
- if (all)
118
- (0, import_fsUtils.recursivelyDelete)(ctx, profilesDir, {
119
- force: true,
120
- followSymlinks: false
121
- });
122
- }
123
- );
124
- }
125
- (0, import_log.logFinishedStep)(
126
- profile !== null ? `Removed credentials for account "${profile.name}".
127
- Run \`npx convex login --account ${profile.name}\` to log in.` : `${all ? "Removed all saved Convex account credentials." : "Removed your saved Convex login credentials."}
128
- Run \`npx convex login\` to log in.`
129
- );
130
- if (warnAboutLegacyCredentials) {
131
- (0, import_log.logWarning)(
132
- `Saved credentials remain in ${(0, import_globalConfig.globalConfigPath)()} for older CLI versions. To remove all saved account credentials, run \`npx convex logout --all\`.`
133
- );
134
- }
135
- if (process.env.CONVEX_OVERRIDE_ACCESS_TOKEN) {
136
- (0, import_log.logMessage)(
137
- "CONVEX_OVERRIDE_ACCESS_TOKEN still supplies credentials. Unset it to stop using that token."
138
- );
139
- }
29
+ const logout = new import_extra_typings.Command("logout").description("Log out of Convex on this machine").allowExcessArguments(false).action(async () => {
30
+ const ctx = await (0, import_context.oneoffContext)({
31
+ url: void 0,
32
+ adminKey: void 0,
33
+ envFile: void 0
140
34
  });
141
- }
142
- const logout = createLogoutCommand();
35
+ if (ctx.fs.exists((0, import_globalConfig.globalConfigPath)())) {
36
+ (0, import_fsUtils.recursivelyDelete)(ctx, (0, import_globalConfig.globalConfigPath)());
37
+ }
38
+ (0, import_log.logFinishedStep)(
39
+ "You have been logged out of Convex.\n Run `npx convex dev` to log in."
40
+ );
41
+ });
143
42
  //# sourceMappingURL=logout.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/logout.ts"],
4
- "sourcesContent": ["import { Command } from \"@commander-js/extra-typings\";\nimport { oneoffContext } from \"../bundler/context.js\";\nimport { logFinishedStep, logMessage, logWarning } from \"../bundler/log.js\";\nimport { recursivelyDelete } from \"./lib/fsUtils.js\";\nimport { globalConfigPath } from \"./lib/utils/globalConfig.js\";\nimport {\n getProfileSelection,\n profileConfigPath,\n readProfileToken,\n readProfileSettings,\n updateProfileSettings,\n savedProfileNames,\n} from \"./lib/profiles.js\";\nimport path from \"path\";\nimport { rootDirectory } from \"./lib/utils/utils.js\";\nimport { promptOptions } from \"./lib/utils/prompts.js\";\n\nexport function createLogoutCommand() {\n return new Command(\"logout\")\n .description(\n \"Log out of the selected account. Directory selections are preserved.\",\n )\n .option(\"--account <name>\", \"Remove only this account's saved credentials\")\n .option(\n \"--all\",\n \"Remove all saved account credentials, preserving account selections\",\n )\n .allowExcessArguments(false)\n .action(async (options, cmd) => {\n if (options.all && options.account !== undefined)\n cmd.error(\"Pass either --account or --all, not both.\");\n const ctx = await oneoffContext({\n url: undefined,\n adminKey: undefined,\n envFile: undefined,\n skipAuth: true,\n });\n\n let all = !!options.all;\n let profile = all\n ? null\n : await getProfileSelection(ctx, { name: options.account });\n if (\n !all &&\n options.account === undefined &&\n process.stdin.isTTY &&\n profile !== null\n ) {\n const token = readProfileToken(ctx, profile.name);\n const settings = await readProfileSettings(ctx);\n const selectedName = profile.name;\n // A matching compatibility token is another copy of this account's login.\n const hasOtherLogins =\n savedProfileNames(ctx).some((name) => name !== selectedName) ||\n (typeof settings.accessToken === \"string\" &&\n settings.accessToken.length > 0 &&\n settings.accessToken !== token);\n if (hasOtherLogins) {\n const scope = await promptOptions(ctx, {\n message: \"Which saved logins would you like to log out of?\",\n choices: [\n { name: `Only account \"${profile.name}\"`, value: \"profile\" },\n { name: \"All saved logins on this device\", value: \"all\" },\n ],\n default: \"profile\",\n });\n if (scope === \"all\") {\n profile = null;\n all = true;\n }\n }\n }\n\n let warnAboutLegacyCredentials = false;\n if (profile !== null) {\n const selectedName = profile.name;\n await updateProfileSettings(\n ctx,\n (settings) => {\n const token = readProfileToken(ctx, selectedName);\n // A migrated account can share its token with old CLI versions.\n if (token !== null && settings.accessToken === token) {\n delete settings.accessToken;\n } else if (\n settings.defaultProfile === selectedName &&\n typeof settings.accessToken === \"string\" &&\n settings.accessToken.length > 0\n ) {\n // Editing the default or logging in with an older CLI can leave this\n // token belonging to a different account.\n warnAboutLegacyCredentials = true;\n }\n },\n () => {\n const configPath = profileConfigPath(selectedName);\n recursivelyDelete(ctx, configPath, {\n force: true,\n followSymlinks: false,\n });\n },\n );\n } else {\n await updateProfileSettings(\n ctx,\n async (settings) => {\n if (\n !all &&\n savedProfileNames(ctx).length > 0 &&\n settings.accessToken === undefined\n ) {\n return await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage:\n \"No account is selected. Use `npx convex logout --account <name>` or `npx convex logout --all`.\",\n });\n }\n delete settings.accessToken;\n },\n () => {\n const profilesDir = path.join(rootDirectory(), \"profiles\");\n if (all)\n recursivelyDelete(ctx, profilesDir, {\n force: true,\n followSymlinks: false,\n });\n },\n );\n }\n\n logFinishedStep(\n profile !== null\n ? `Removed credentials for account \"${profile.name}\".\\n Run \\`npx convex login --account ${profile.name}\\` to log in.`\n : `${all ? \"Removed all saved Convex account credentials.\" : \"Removed your saved Convex login credentials.\"}\\n Run \\`npx convex login\\` to log in.`,\n );\n if (warnAboutLegacyCredentials) {\n logWarning(\n `Saved credentials remain in ${globalConfigPath()} for older CLI versions. To remove all saved account credentials, run \\`npx convex logout --all\\`.`,\n );\n }\n if (process.env.CONVEX_OVERRIDE_ACCESS_TOKEN) {\n logMessage(\n \"CONVEX_OVERRIDE_ACCESS_TOKEN still supplies credentials. Unset it to stop using that token.\",\n );\n }\n });\n}\n\nexport const logout = createLogoutCommand();\n"],
5
- "mappings": "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",
6
- "names": ["path"]
4
+ "sourcesContent": ["import { Command } from \"@commander-js/extra-typings\";\nimport { oneoffContext } from \"../bundler/context.js\";\nimport { logFinishedStep } from \"../bundler/log.js\";\nimport { recursivelyDelete } from \"./lib/fsUtils.js\";\nimport { globalConfigPath } from \"./lib/utils/globalConfig.js\";\n\nexport const logout = new Command(\"logout\")\n .description(\"Log out of Convex on this machine\")\n .allowExcessArguments(false)\n .action(async () => {\n const ctx = await oneoffContext({\n url: undefined,\n adminKey: undefined,\n envFile: undefined,\n });\n\n if (ctx.fs.exists(globalConfigPath())) {\n recursivelyDelete(ctx, globalConfigPath());\n }\n\n logFinishedStep(\n \"You have been logged out of Convex.\\n Run `npx convex dev` to log in.\",\n );\n });\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAwB;AACxB,qBAA8B;AAC9B,iBAAgC;AAChC,qBAAkC;AAClC,0BAAiC;AAE1B,MAAM,SAAS,IAAI,6BAAQ,QAAQ,EACvC,YAAY,mCAAmC,EAC/C,qBAAqB,KAAK,EAC1B,OAAO,YAAY;AAClB,QAAM,MAAM,UAAM,8BAAc;AAAA,IAC9B,KAAK;AAAA,IACL,UAAU;AAAA,IACV,SAAS;AAAA,EACX,CAAC;AAED,MAAI,IAAI,GAAG,WAAO,sCAAiB,CAAC,GAAG;AACrC,0CAAkB,SAAK,sCAAiB,CAAC;AAAA,EAC3C;AAEA;AAAA,IACE;AAAA,EACF;AACF,CAAC;",
6
+ "names": []
7
7
  }
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
  var mcp_exports = {};
30
20
  __export(mcp_exports, {
@@ -32,7 +22,6 @@ __export(mcp_exports, {
32
22
  mcp: () => mcp
33
23
  });
34
24
  module.exports = __toCommonJS(mcp_exports);
35
- var import_path = __toESM(require("path"), 1);
36
25
  var import_extra_typings = require("@commander-js/extra-typings");
37
26
  var import_context = require("../bundler/context.js");
38
27
  var import_log = require("../bundler/log.js");
@@ -110,11 +99,6 @@ function enabledTools(options) {
110
99
  function makeServer(options) {
111
100
  const enabledToolsByName = enabledTools(options);
112
101
  const mutex = new import_mutex.Mutex();
113
- const serverDirectory = process.cwd();
114
- options = {
115
- ...options,
116
- envFile: options.envFile === void 0 ? void 0 : import_path.default.resolve(serverDirectory, options.envFile)
117
- };
118
102
  const server = new import_server.Server(
119
103
  {
120
104
  name: "Convex MCP Server",
@@ -128,7 +112,16 @@ function makeServer(options) {
128
112
  );
129
113
  server.setRequestHandler("tools/call", async (request) => {
130
114
  const ctx = new import_requestContext.RequestContext(options);
115
+ await (0, import_deploymentSelection.initializeBigBrainAuth)(ctx, options);
131
116
  try {
117
+ const authorized = await (0, import_login.checkAuthorization)(ctx, false);
118
+ if (!authorized) {
119
+ await ctx.crash({
120
+ exitCode: 1,
121
+ errorType: "fatal",
122
+ printedMessage: "Not Authorized: Run `npx convex dev` to login to your Convex project."
123
+ });
124
+ }
132
125
  if (!request.params.arguments) {
133
126
  await ctx.crash({
134
127
  exitCode: 1,
@@ -146,33 +139,7 @@ function makeServer(options) {
146
139
  }
147
140
  const input = convexTool.inputSchema.parse(request.params.arguments);
148
141
  const result = await mutex.runExclusive(async () => {
149
- const projectDir = "deploymentSelector" in input ? ctx.decodeDeploymentSelectorUnchecked(input.deploymentSelector).projectDir : ("projectDir" in input ? input.projectDir : void 0) ?? options.projectDir;
150
- const previousDirectory = process.cwd();
151
- try {
152
- if (projectDir !== void 0)
153
- process.chdir(import_path.default.resolve(serverDirectory, projectDir));
154
- await (0, import_deploymentSelection.initializeBigBrainAuth)(ctx, options);
155
- if (!await (0, import_login.checkAuthorization)(ctx, false)) {
156
- await ctx.crash({
157
- exitCode: 1,
158
- errorType: "fatal",
159
- printedMessage: "Not Authorized: Run `npx convex dev` to login to your Convex project."
160
- });
161
- }
162
- const absoluteDirectory = process.cwd();
163
- const resolvedInput = "deploymentSelector" in input ? {
164
- ...input,
165
- deploymentSelector: (0, import_requestContext.encodeDeploymentSelector)(
166
- absoluteDirectory,
167
- ctx.decodeDeploymentSelectorUnchecked(
168
- input.deploymentSelector
169
- ).deployment
170
- )
171
- } : projectDir === void 0 ? input : { ...input, projectDir: absoluteDirectory };
172
- return await convexTool.handler(ctx, resolvedInput);
173
- } finally {
174
- process.chdir(previousDirectory);
175
- }
142
+ return await convexTool.handler(ctx, input);
176
143
  });
177
144
  return {
178
145
  content: [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/mcp.ts"],
4
- "sourcesContent": ["import path from \"path\";\nimport { Command, Option } from \"@commander-js/extra-typings\";\nimport { oneoffContext } from \"../bundler/context.js\";\nimport { logError } from \"../bundler/log.js\";\nimport { CallToolRequest, Server } from \"@modelcontextprotocol/server\";\nimport { serveStdio } from \"@modelcontextprotocol/server/stdio\";\nimport { actionDescription } from \"./lib/command.js\";\nimport { checkAuthorization } from \"./lib/login.js\";\nimport {\n encodeDeploymentSelector,\n McpOptions,\n RequestContext,\n RequestCrash,\n} from \"./lib/mcp/requestContext.js\";\nimport { mcpTool, convexTools, ConvexTool } from \"./lib/mcp/tools/index.js\";\nimport { Mutex } from \"./lib/utils/mutex.js\";\nimport { initializeBigBrainAuth } from \"./lib/deploymentSelection.js\";\n\nconst allToolNames = convexTools.map((t) => t.name).sort();\n\nexport const mcp = new Command(\"mcp\")\n .summary(\"Manage the Model Context Protocol server for Convex [BETA]\")\n .description(\n \"Commands to initialize and run a Model Context Protocol server for Convex that can be used with AI tools.\\n\" +\n \"This server exposes your Convex codebase to AI tools in a structured way.\",\n )\n .allowExcessArguments(false);\n\nmcp\n .command(\"start\")\n .summary(\"Start the MCP server\")\n .description(\n \"Start the Model Context Protocol server for Convex that can be used with AI tools.\",\n )\n .option(\n \"--project-dir <project-dir>\",\n \"Run the MCP server for a single project. By default, the MCP server can run for multiple projects, and each tool call specifies its project directory.\",\n )\n .option(\n \"--disable-tools <tool-names>\",\n `Comma separated list of tool names to disable (options: ${allToolNames.join(\", \")})`,\n )\n .option(\n \"--cautiously-allow-production-pii\",\n \"Allow read-only tools (data, logs, queries) on production deployments. These tools may expose PII. Defaults to false.\",\n false,\n )\n .option(\n \"--dangerously-enable-production-deployments\",\n \"DANGEROUSLY allow the MCP server to access production deployments, including mutating tools. Defaults to false.\",\n false,\n )\n // Deprecated option, we swapped the default. no-op.\n .addOption(\n new Option(\"--disable-production-deployments\")\n .conflicts(\"--dangerously-enable-production-deployments\")\n .hideHelp(),\n )\n .addDeploymentSelectionOptions(actionDescription(\"Run the MCP server on\"))\n .action(async (options) => {\n const ctx = await oneoffContext(options);\n try {\n // `serveStdio` only calls the factory once a client connects, and answers\n // a factory throw with an opaque `-32603`, so reject a bad\n // `--disable-tools` here instead.\n enabledTools(options);\n } catch (error: any) {\n await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n errForSentry: `Failed to start MCP server: ${error}`,\n printedMessage: `Failed to start MCP server: ${error}`,\n });\n }\n // The SDK picks the era from the client's opening message: a request\n // carrying the 2026-07-28 `_meta` envelope pins a stateless connection,\n // while an `initialize` is still served by the same factory over the legacy\n // protocol.\n // The returned handle's `close()` is intentionally never called: the\n // server lives until the client kills the process, and process exit tears\n // the transport down.\n serveStdio(() => makeServer(options), {\n legacy: \"serve\",\n // The only channel for out-of-band failures (transport errors, dropped\n // malformed notifications). stdout carries the protocol, so they go to\n // stderr.\n onerror: (error) => logError(`MCP server error: ${error.message}`),\n });\n // Keep the process running\n await new Promise(() => {});\n });\n\nfunction enabledTools(\n options: McpOptions,\n): Record<string, ConvexTool<any, any>> {\n const disabledToolNames = new Set<string>();\n for (const toolName of options.disableTools?.split(\",\") ?? []) {\n const name = toolName.trim();\n if (!allToolNames.includes(name)) {\n // eslint-disable-next-line no-restricted-syntax\n throw new Error(\n `Disabled tool ${name} not found (valid tools: ${allToolNames.join(\", \")})`,\n );\n }\n disabledToolNames.add(name);\n }\n\n const enabledToolsByName: Record<string, ConvexTool<any, any>> = {};\n for (const tool of convexTools) {\n if (!disabledToolNames.has(tool.name)) {\n enabledToolsByName[tool.name] = tool;\n }\n }\n return enabledToolsByName;\n}\n\nexport function makeServer(options: McpOptions) {\n const enabledToolsByName = enabledTools(options);\n const mutex = new Mutex();\n const serverDirectory = process.cwd();\n options = {\n ...options,\n envFile:\n options.envFile === undefined\n ? undefined\n : path.resolve(serverDirectory, options.envFile),\n };\n const server = new Server(\n {\n name: \"Convex MCP Server\",\n version: \"0.0.1\",\n },\n {\n capabilities: {\n tools: {},\n },\n },\n );\n server.setRequestHandler(\"tools/call\", async (request: CallToolRequest) => {\n const ctx = new RequestContext(options);\n try {\n if (!request.params.arguments) {\n await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage: \"No arguments provided\",\n });\n }\n const convexTool = enabledToolsByName[request.params.name];\n if (!convexTool) {\n await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage: `Tool ${request.params.name} not found`,\n });\n }\n const input = convexTool.inputSchema.parse(request.params.arguments);\n\n // Serialize tool handlers since they're mutating the current working directory.\n const result = await mutex.runExclusive(async () => {\n const projectDir =\n \"deploymentSelector\" in input\n ? ctx.decodeDeploymentSelectorUnchecked(input.deploymentSelector)\n .projectDir\n : ((\"projectDir\" in input ? input.projectDir : undefined) ??\n options.projectDir);\n const previousDirectory = process.cwd();\n try {\n if (projectDir !== undefined)\n process.chdir(path.resolve(serverDirectory, projectDir));\n await initializeBigBrainAuth(ctx, options);\n if (!(await checkAuthorization(ctx, false))) {\n await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage:\n \"Not Authorized: Run `npx convex dev` to login to your Convex project.\",\n });\n }\n const absoluteDirectory = process.cwd();\n const resolvedInput =\n \"deploymentSelector\" in input\n ? {\n ...input,\n deploymentSelector: encodeDeploymentSelector(\n absoluteDirectory,\n ctx.decodeDeploymentSelectorUnchecked(\n input.deploymentSelector,\n ).deployment,\n ),\n }\n : projectDir === undefined\n ? input\n : { ...input, projectDir: absoluteDirectory };\n return await convexTool.handler(ctx, resolvedInput);\n } finally {\n process.chdir(previousDirectory);\n }\n });\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify(result),\n },\n ],\n };\n } catch (error: any) {\n let message: string;\n if (error instanceof RequestCrash) {\n message = error.printedMessage;\n } else if (error instanceof Error) {\n message = error.message;\n } else {\n message = String(error);\n }\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({ error: message }),\n },\n ],\n isError: true,\n };\n }\n });\n server.setRequestHandler(\"tools/list\", async () => {\n return {\n tools: Object.values(enabledToolsByName).map(mcpTool),\n };\n });\n return server;\n}\n"],
5
- "mappings": "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",
6
- "names": ["path"]
4
+ "sourcesContent": ["import { Command, Option } from \"@commander-js/extra-typings\";\nimport { oneoffContext } from \"../bundler/context.js\";\nimport { logError } from \"../bundler/log.js\";\nimport { CallToolRequest, Server } from \"@modelcontextprotocol/server\";\nimport { serveStdio } from \"@modelcontextprotocol/server/stdio\";\nimport { actionDescription } from \"./lib/command.js\";\nimport { checkAuthorization } from \"./lib/login.js\";\nimport {\n McpOptions,\n RequestContext,\n RequestCrash,\n} from \"./lib/mcp/requestContext.js\";\nimport { mcpTool, convexTools, ConvexTool } from \"./lib/mcp/tools/index.js\";\nimport { Mutex } from \"./lib/utils/mutex.js\";\nimport { initializeBigBrainAuth } from \"./lib/deploymentSelection.js\";\n\nconst allToolNames = convexTools.map((t) => t.name).sort();\n\nexport const mcp = new Command(\"mcp\")\n .summary(\"Manage the Model Context Protocol server for Convex [BETA]\")\n .description(\n \"Commands to initialize and run a Model Context Protocol server for Convex that can be used with AI tools.\\n\" +\n \"This server exposes your Convex codebase to AI tools in a structured way.\",\n )\n .allowExcessArguments(false);\n\nmcp\n .command(\"start\")\n .summary(\"Start the MCP server\")\n .description(\n \"Start the Model Context Protocol server for Convex that can be used with AI tools.\",\n )\n .option(\n \"--project-dir <project-dir>\",\n \"Run the MCP server for a single project. By default, the MCP server can run for multiple projects, and each tool call specifies its project directory.\",\n )\n .option(\n \"--disable-tools <tool-names>\",\n `Comma separated list of tool names to disable (options: ${allToolNames.join(\", \")})`,\n )\n .option(\n \"--cautiously-allow-production-pii\",\n \"Allow read-only tools (data, logs, queries) on production deployments. These tools may expose PII. Defaults to false.\",\n false,\n )\n .option(\n \"--dangerously-enable-production-deployments\",\n \"DANGEROUSLY allow the MCP server to access production deployments, including mutating tools. Defaults to false.\",\n false,\n )\n // Deprecated option, we swapped the default. no-op.\n .addOption(\n new Option(\"--disable-production-deployments\")\n .conflicts(\"--dangerously-enable-production-deployments\")\n .hideHelp(),\n )\n .addDeploymentSelectionOptions(actionDescription(\"Run the MCP server on\"))\n .action(async (options) => {\n const ctx = await oneoffContext(options);\n try {\n // `serveStdio` only calls the factory once a client connects, and answers\n // a factory throw with an opaque `-32603`, so reject a bad\n // `--disable-tools` here instead.\n enabledTools(options);\n } catch (error: any) {\n await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n errForSentry: `Failed to start MCP server: ${error}`,\n printedMessage: `Failed to start MCP server: ${error}`,\n });\n }\n // The SDK picks the era from the client's opening message: a request\n // carrying the 2026-07-28 `_meta` envelope pins a stateless connection,\n // while an `initialize` is still served by the same factory over the legacy\n // protocol.\n // The returned handle's `close()` is intentionally never called: the\n // server lives until the client kills the process, and process exit tears\n // the transport down.\n serveStdio(() => makeServer(options), {\n legacy: \"serve\",\n // The only channel for out-of-band failures (transport errors, dropped\n // malformed notifications). stdout carries the protocol, so they go to\n // stderr.\n onerror: (error) => logError(`MCP server error: ${error.message}`),\n });\n // Keep the process running\n await new Promise(() => {});\n });\n\nfunction enabledTools(\n options: McpOptions,\n): Record<string, ConvexTool<any, any>> {\n const disabledToolNames = new Set<string>();\n for (const toolName of options.disableTools?.split(\",\") ?? []) {\n const name = toolName.trim();\n if (!allToolNames.includes(name)) {\n // eslint-disable-next-line no-restricted-syntax\n throw new Error(\n `Disabled tool ${name} not found (valid tools: ${allToolNames.join(\", \")})`,\n );\n }\n disabledToolNames.add(name);\n }\n\n const enabledToolsByName: Record<string, ConvexTool<any, any>> = {};\n for (const tool of convexTools) {\n if (!disabledToolNames.has(tool.name)) {\n enabledToolsByName[tool.name] = tool;\n }\n }\n return enabledToolsByName;\n}\n\nexport function makeServer(options: McpOptions) {\n const enabledToolsByName = enabledTools(options);\n const mutex = new Mutex();\n const server = new Server(\n {\n name: \"Convex MCP Server\",\n version: \"0.0.1\",\n },\n {\n capabilities: {\n tools: {},\n },\n },\n );\n server.setRequestHandler(\"tools/call\", async (request: CallToolRequest) => {\n const ctx = new RequestContext(options);\n await initializeBigBrainAuth(ctx, options);\n try {\n const authorized = await checkAuthorization(ctx, false);\n if (!authorized) {\n await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage:\n \"Not Authorized: Run `npx convex dev` to login to your Convex project.\",\n });\n }\n if (!request.params.arguments) {\n await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage: \"No arguments provided\",\n });\n }\n const convexTool = enabledToolsByName[request.params.name];\n if (!convexTool) {\n await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage: `Tool ${request.params.name} not found`,\n });\n }\n const input = convexTool.inputSchema.parse(request.params.arguments);\n\n // Serialize tool handlers since they're mutating the current working directory.\n const result = await mutex.runExclusive(async () => {\n return await convexTool.handler(ctx, input);\n });\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify(result),\n },\n ],\n };\n } catch (error: any) {\n let message: string;\n if (error instanceof RequestCrash) {\n message = error.printedMessage;\n } else if (error instanceof Error) {\n message = error.message;\n } else {\n message = String(error);\n }\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({ error: message }),\n },\n ],\n isError: true,\n };\n }\n });\n server.setRequestHandler(\"tools/list\", async () => {\n return {\n tools: Object.values(enabledToolsByName).map(mcpTool),\n };\n });\n return server;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
7
  }
@@ -44,7 +44,6 @@ var import_logout = require("./logout.js");
44
44
  var import_logs = require("./logs.js");
45
45
  var import_mcp = require("./mcp.js");
46
46
  var import_network_test = require("./network_test.js");
47
- var import_account = require("./account.js");
48
47
  var import_project = require("./project.js");
49
48
  var import_reinit = require("./reinit.js");
50
49
  var import_run = require("./run.js");
@@ -53,6 +52,6 @@ var import_update = require("./update.js");
53
52
  var import_version = require("./version.js");
54
53
  function buildProgram() {
55
54
  const program = new import_extra_typings.Command();
56
- return program.name("convex").usage("<command> [options]").description("Start developing with Convex by running `npx convex dev`.").addCommand(import_login.login, { hidden: true }).addCommand(import_init.init, { hidden: true }).addCommand(import_reinit.reinit, { hidden: true }).addCommand(import_dev.dev).addCommand(import_deploy.deploy).addCommand(import_deployments.deployments, { hidden: true }).addCommand(import_run.run).addCommand(import_convexImport.convexImport).addCommand(import_dashboard.dashboard).addCommand(import_docs.docs).addCommand(import_logs.logs).addCommand(import_typecheck.typecheck, { hidden: true }).addCommand(import_auth.auth, { hidden: true }).addCommand(import_convexExport.convexExport).addCommand(import_env.env).addCommand(import_data.data).addCommand(import_deployment.deployment).addCommand(import_project.project).addCommand(import_codegen.codegen).addCommand(import_update.update).addCommand(import_logout.logout).addCommand(import_account.account).addCommand(import_network_test.networkTest, { hidden: true }).addCommand(import_integration.integration, { hidden: true }).addCommand(import_functionSpec.functionSpec).addCommand(import_insights.insights).addCommand(import_mcp.mcp).addCommand(import_aiFiles.aiFiles).helpCommand("help <command>", "Show help for given <command>").version(import_version.version).configureHelp({ visibleOptions: () => [] }).showHelpAfterError();
55
+ return program.name("convex").usage("<command> [options]").description("Start developing with Convex by running `npx convex dev`.").addCommand(import_login.login, { hidden: true }).addCommand(import_init.init, { hidden: true }).addCommand(import_reinit.reinit, { hidden: true }).addCommand(import_dev.dev).addCommand(import_deploy.deploy).addCommand(import_deployments.deployments, { hidden: true }).addCommand(import_run.run).addCommand(import_convexImport.convexImport).addCommand(import_dashboard.dashboard).addCommand(import_docs.docs).addCommand(import_logs.logs).addCommand(import_typecheck.typecheck, { hidden: true }).addCommand(import_auth.auth, { hidden: true }).addCommand(import_convexExport.convexExport).addCommand(import_env.env).addCommand(import_data.data).addCommand(import_deployment.deployment).addCommand(import_project.project).addCommand(import_codegen.codegen).addCommand(import_update.update).addCommand(import_logout.logout).addCommand(import_network_test.networkTest, { hidden: true }).addCommand(import_integration.integration, { hidden: true }).addCommand(import_functionSpec.functionSpec).addCommand(import_insights.insights).addCommand(import_mcp.mcp).addCommand(import_aiFiles.aiFiles).helpCommand("help <command>", "Show help for given <command>").version(import_version.version).configureHelp({ visibleOptions: () => [] }).showHelpAfterError();
57
56
  }
58
57
  //# sourceMappingURL=program.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cli/program.ts"],
4
- "sourcesContent": ["import { Command } from \"@commander-js/extra-typings\";\nimport { aiFiles } from \"./aiFiles.js\";\nimport { auth } from \"./auth.js\";\nimport { codegen } from \"./codegen.js\";\nimport { convexExport } from \"./convexExport.js\";\nimport { convexImport } from \"./convexImport.js\";\nimport { dashboard } from \"./dashboard.js\";\nimport { data } from \"./data.js\";\nimport { deploy } from \"./deploy.js\";\nimport { deployment } from \"./deployment.js\";\nimport { deployments } from \"./deployments.js\";\nimport { dev } from \"./dev.js\";\nimport { docs } from \"./docs.js\";\nimport { env } from \"./env.js\";\nimport { functionSpec } from \"./functionSpec.js\";\nimport { init } from \"./init.js\";\nimport { insights } from \"./insights.js\";\nimport { integration } from \"./integration.js\";\nimport { login } from \"./login.js\";\nimport { logout } from \"./logout.js\";\nimport { logs } from \"./logs.js\";\nimport { mcp } from \"./mcp.js\";\nimport { networkTest } from \"./network_test.js\";\nimport { account } from \"./account.js\";\nimport { project } from \"./project.js\";\nimport { reinit } from \"./reinit.js\";\nimport { run } from \"./run.js\";\nimport { typecheck } from \"./typecheck.js\";\nimport { update } from \"./update.js\";\nimport { version } from \"./version.js\";\n\nexport function buildProgram() {\n const program = new Command();\n return (\n program\n .name(\"convex\")\n .usage(\"<command> [options]\")\n .description(\"Start developing with Convex by running `npx convex dev`.\")\n .addCommand(login, { hidden: true })\n .addCommand(init, { hidden: true })\n .addCommand(reinit, { hidden: true })\n .addCommand(dev)\n .addCommand(deploy)\n .addCommand(deployments, { hidden: true })\n .addCommand(run)\n .addCommand(convexImport)\n .addCommand(dashboard)\n .addCommand(docs)\n .addCommand(logs)\n .addCommand(typecheck, { hidden: true })\n .addCommand(auth, { hidden: true })\n .addCommand(convexExport)\n .addCommand(env)\n .addCommand(data)\n .addCommand(deployment)\n .addCommand(project)\n .addCommand(codegen)\n .addCommand(update)\n .addCommand(logout)\n .addCommand(account)\n .addCommand(networkTest, { hidden: true })\n .addCommand(integration, { hidden: true })\n .addCommand(functionSpec)\n .addCommand(insights)\n .addCommand(mcp)\n .addCommand(aiFiles)\n .helpCommand(\"help <command>\", \"Show help for given <command>\")\n .version(version)\n // Hide version and help so they don't clutter\n // the list of commands.\n .configureHelp({ visibleOptions: () => [] })\n .showHelpAfterError()\n );\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAwB;AACxB,qBAAwB;AACxB,kBAAqB;AACrB,qBAAwB;AACxB,0BAA6B;AAC7B,0BAA6B;AAC7B,uBAA0B;AAC1B,kBAAqB;AACrB,oBAAuB;AACvB,wBAA2B;AAC3B,yBAA4B;AAC5B,iBAAoB;AACpB,kBAAqB;AACrB,iBAAoB;AACpB,0BAA6B;AAC7B,kBAAqB;AACrB,sBAAyB;AACzB,yBAA4B;AAC5B,mBAAsB;AACtB,oBAAuB;AACvB,kBAAqB;AACrB,iBAAoB;AACpB,0BAA4B;AAC5B,qBAAwB;AACxB,qBAAwB;AACxB,oBAAuB;AACvB,iBAAoB;AACpB,uBAA0B;AAC1B,oBAAuB;AACvB,qBAAwB;AAEjB,SAAS,eAAe;AAC7B,QAAM,UAAU,IAAI,6BAAQ;AAC5B,SACE,QACG,KAAK,QAAQ,EACb,MAAM,qBAAqB,EAC3B,YAAY,2DAA2D,EACvE,WAAW,oBAAO,EAAE,QAAQ,KAAK,CAAC,EAClC,WAAW,kBAAM,EAAE,QAAQ,KAAK,CAAC,EACjC,WAAW,sBAAQ,EAAE,QAAQ,KAAK,CAAC,EACnC,WAAW,cAAG,EACd,WAAW,oBAAM,EACjB,WAAW,gCAAa,EAAE,QAAQ,KAAK,CAAC,EACxC,WAAW,cAAG,EACd,WAAW,gCAAY,EACvB,WAAW,0BAAS,EACpB,WAAW,gBAAI,EACf,WAAW,gBAAI,EACf,WAAW,4BAAW,EAAE,QAAQ,KAAK,CAAC,EACtC,WAAW,kBAAM,EAAE,QAAQ,KAAK,CAAC,EACjC,WAAW,gCAAY,EACvB,WAAW,cAAG,EACd,WAAW,gBAAI,EACf,WAAW,4BAAU,EACrB,WAAW,sBAAO,EAClB,WAAW,sBAAO,EAClB,WAAW,oBAAM,EACjB,WAAW,oBAAM,EACjB,WAAW,sBAAO,EAClB,WAAW,iCAAa,EAAE,QAAQ,KAAK,CAAC,EACxC,WAAW,gCAAa,EAAE,QAAQ,KAAK,CAAC,EACxC,WAAW,gCAAY,EACvB,WAAW,wBAAQ,EACnB,WAAW,cAAG,EACd,WAAW,sBAAO,EAClB,YAAY,kBAAkB,+BAA+B,EAC7D,QAAQ,sBAAO,EAGf,cAAc,EAAE,gBAAgB,MAAM,CAAC,EAAE,CAAC,EAC1C,mBAAmB;AAE1B;",
4
+ "sourcesContent": ["import { Command } from \"@commander-js/extra-typings\";\nimport { aiFiles } from \"./aiFiles.js\";\nimport { auth } from \"./auth.js\";\nimport { codegen } from \"./codegen.js\";\nimport { convexExport } from \"./convexExport.js\";\nimport { convexImport } from \"./convexImport.js\";\nimport { dashboard } from \"./dashboard.js\";\nimport { data } from \"./data.js\";\nimport { deploy } from \"./deploy.js\";\nimport { deployment } from \"./deployment.js\";\nimport { deployments } from \"./deployments.js\";\nimport { dev } from \"./dev.js\";\nimport { docs } from \"./docs.js\";\nimport { env } from \"./env.js\";\nimport { functionSpec } from \"./functionSpec.js\";\nimport { init } from \"./init.js\";\nimport { insights } from \"./insights.js\";\nimport { integration } from \"./integration.js\";\nimport { login } from \"./login.js\";\nimport { logout } from \"./logout.js\";\nimport { logs } from \"./logs.js\";\nimport { mcp } from \"./mcp.js\";\nimport { networkTest } from \"./network_test.js\";\nimport { project } from \"./project.js\";\nimport { reinit } from \"./reinit.js\";\nimport { run } from \"./run.js\";\nimport { typecheck } from \"./typecheck.js\";\nimport { update } from \"./update.js\";\nimport { version } from \"./version.js\";\n\nexport function buildProgram() {\n const program = new Command();\n return (\n program\n .name(\"convex\")\n .usage(\"<command> [options]\")\n .description(\"Start developing with Convex by running `npx convex dev`.\")\n .addCommand(login, { hidden: true })\n .addCommand(init, { hidden: true })\n .addCommand(reinit, { hidden: true })\n .addCommand(dev)\n .addCommand(deploy)\n .addCommand(deployments, { hidden: true })\n .addCommand(run)\n .addCommand(convexImport)\n .addCommand(dashboard)\n .addCommand(docs)\n .addCommand(logs)\n .addCommand(typecheck, { hidden: true })\n .addCommand(auth, { hidden: true })\n .addCommand(convexExport)\n .addCommand(env)\n .addCommand(data)\n .addCommand(deployment)\n .addCommand(project)\n .addCommand(codegen)\n .addCommand(update)\n .addCommand(logout)\n .addCommand(networkTest, { hidden: true })\n .addCommand(integration, { hidden: true })\n .addCommand(functionSpec)\n .addCommand(insights)\n .addCommand(mcp)\n .addCommand(aiFiles)\n .helpCommand(\"help <command>\", \"Show help for given <command>\")\n .version(version)\n // Hide version and help so they don't clutter\n // the list of commands.\n .configureHelp({ visibleOptions: () => [] })\n .showHelpAfterError()\n );\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAwB;AACxB,qBAAwB;AACxB,kBAAqB;AACrB,qBAAwB;AACxB,0BAA6B;AAC7B,0BAA6B;AAC7B,uBAA0B;AAC1B,kBAAqB;AACrB,oBAAuB;AACvB,wBAA2B;AAC3B,yBAA4B;AAC5B,iBAAoB;AACpB,kBAAqB;AACrB,iBAAoB;AACpB,0BAA6B;AAC7B,kBAAqB;AACrB,sBAAyB;AACzB,yBAA4B;AAC5B,mBAAsB;AACtB,oBAAuB;AACvB,kBAAqB;AACrB,iBAAoB;AACpB,0BAA4B;AAC5B,qBAAwB;AACxB,oBAAuB;AACvB,iBAAoB;AACpB,uBAA0B;AAC1B,oBAAuB;AACvB,qBAAwB;AAEjB,SAAS,eAAe;AAC7B,QAAM,UAAU,IAAI,6BAAQ;AAC5B,SACE,QACG,KAAK,QAAQ,EACb,MAAM,qBAAqB,EAC3B,YAAY,2DAA2D,EACvE,WAAW,oBAAO,EAAE,QAAQ,KAAK,CAAC,EAClC,WAAW,kBAAM,EAAE,QAAQ,KAAK,CAAC,EACjC,WAAW,sBAAQ,EAAE,QAAQ,KAAK,CAAC,EACnC,WAAW,cAAG,EACd,WAAW,oBAAM,EACjB,WAAW,gCAAa,EAAE,QAAQ,KAAK,CAAC,EACxC,WAAW,cAAG,EACd,WAAW,gCAAY,EACvB,WAAW,0BAAS,EACpB,WAAW,gBAAI,EACf,WAAW,gBAAI,EACf,WAAW,4BAAW,EAAE,QAAQ,KAAK,CAAC,EACtC,WAAW,kBAAM,EAAE,QAAQ,KAAK,CAAC,EACjC,WAAW,gCAAY,EACvB,WAAW,cAAG,EACd,WAAW,gBAAI,EACf,WAAW,4BAAU,EACrB,WAAW,sBAAO,EAClB,WAAW,sBAAO,EAClB,WAAW,oBAAM,EACjB,WAAW,oBAAM,EACjB,WAAW,iCAAa,EAAE,QAAQ,KAAK,CAAC,EACxC,WAAW,gCAAa,EAAE,QAAQ,KAAK,CAAC,EACxC,WAAW,gCAAY,EACvB,WAAW,wBAAQ,EACnB,WAAW,cAAG,EACd,WAAW,sBAAO,EAClB,YAAY,kBAAkB,+BAA+B,EAC7D,QAAQ,sBAAO,EAGf,cAAc,EAAE,gBAAgB,MAAM,CAAC,EAAE,CAAC,EAC1C,mBAAmB;AAE1B;",
6
6
  "names": []
7
7
  }
package/dist/cjs/index.js CHANGED
@@ -21,5 +21,5 @@ __export(index_exports, {
21
21
  version: () => version
22
22
  });
23
23
  module.exports = __toCommonJS(index_exports);
24
- const version = "1.48.0-alpha.0";
24
+ const version = "1.48.0";
25
25
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["export const version = \"1.48.0-alpha.0\";\n"],
4
+ "sourcesContent": ["export const version = \"1.48.0\";\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,UAAU;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/server/authentication.ts"],
4
- "sourcesContent": ["import { JSONValue } from \"../values/index.js\";\n\n/**\n * The value exported by your Convex project in `auth.config.ts`.\n *\n * ```ts\n * import { AuthConfig } from \"convex/server\";\n *\n * export default {\n * providers: [\n * {\n * domain: \"https://your.issuer.url.com\",\n * applicationID: \"your-application-id\",\n * },\n * ],\n * } satisfies AuthConfig;\n * ```\n */\nexport type AuthConfig = {\n providers: AuthProvider[];\n};\n\n/**\n * An authentication provider allowed to issue JWTs for your app.\n *\n * See: https://docs.convex.dev/auth/advanced/custom-auth and https://docs.convex.dev/auth/advanced/custom-jwt\n */\nexport type AuthProvider =\n // OIDC provider\n | {\n /**\n * Tokens issued by the auth provider must have this application ID\n * in their audiences.\n */\n applicationID: string;\n\n /**\n * The domain of the OIDC auth provider.\n */\n domain: string;\n }\n // Custom JWT provider (see https://docs.convex.dev/auth/advanced/custom-jwt)\n | {\n type: \"customJwt\";\n\n /**\n * Tokens issued by the auth provider must have this application ID\n * in their audiences.\n *\n * Warning: omitting applicationID is often insecure\n * (see https://docs.convex.dev/auth/advanced/custom-jwt#warning-omitting-applicationid-is-often-insecure).\n */\n applicationID?: string;\n\n /**\n * The issuer of the JWT auth provider (e.g. `https://auth.example.com`)\n */\n issuer: string;\n\n /**\n * The URL to fetch the JWKS (e.g. `https://auth.example.com/.well-known/jwks.json`)\n */\n jwks: string;\n\n /**\n * The algorithm used to sign the JWT tokens. Convex currently only\n * supports RS256 and ES256.\n */\n algorithm: \"RS256\" | \"ES256\";\n };\n\n/**\n * Information about an authenticated user, derived from a\n * [JWT](https://datatracker.ietf.org/doc/html/rfc7519).\n *\n * The only fields guaranteed to be present are\n * {@link UserIdentity.tokenIdentifier} and {@link UserIdentity.issuer}. All\n * remaining fields may or may not be present depending on the information given\n * by the identity provider.\n *\n * The explicitly listed fields are derived from the OpenID Connect (OIDC) standard fields,\n * see the [OIDC specification](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims)\n * for more information on these fields.\n *\n * Any additional fields are custom claims that may be present in the JWT,\n * and their type depends on your identity provider configuration. If you\n * know the type of the field, you can assert it in TypeScript like this\n * (for example as a `string`):\n *\n * ```typescript\n * const identity = await ctx.auth.getUserIdentity();\n * if (identity === null) {\n * return null;\n * }\n * const customClaim = identity.custom_claim as string;\n * ```\n *\n * @public\n */\nexport interface UserIdentity {\n /**\n * A stable and globally unique string for this identity (i.e. no other\n * user, even from a different identity provider, will have the same string.)\n *\n * JWT claims: `sub` + `iss`\n */\n readonly tokenIdentifier: string;\n\n /**\n * Identifier for the end-user from the identity provider, not necessarily\n * unique across different providers.\n *\n * JWT claim: `sub`\n */\n readonly subject: string;\n\n /**\n * The hostname of the identity provider used to authenticate this user.\n *\n * JWT claim: `iss`\n */\n readonly issuer: string;\n\n /**\n * JWT claim: `name`\n */\n readonly name?: string;\n\n /**\n * JWT claim: `given_name`\n */\n readonly givenName?: string;\n\n /**\n * JWT claim: `family_name`\n */\n readonly familyName?: string;\n\n /**\n * JWT claim: `nickname`\n */\n readonly nickname?: string;\n\n /**\n * JWT claim: `preferred_username`\n */\n readonly preferredUsername?: string;\n\n /**\n * JWT claim: `profile`\n */\n readonly profileUrl?: string;\n\n /**\n * JWT claim: `picture`\n */\n readonly pictureUrl?: string;\n\n /**\n * JWT claim: `email`\n */\n readonly email?: string;\n\n /**\n * JWT claim: `email_verified`\n */\n readonly emailVerified?: boolean;\n\n /**\n * JWT claim: `gender`\n */\n readonly gender?: string;\n\n /**\n * JWT claim: `birthdate`\n */\n readonly birthday?: string;\n\n /**\n * JWT claim: `zoneinfo`\n */\n readonly timezone?: string;\n\n /**\n * JWT claim: `locale`\n */\n readonly language?: string;\n\n /**\n * JWT claim: `phone_number`\n */\n readonly phoneNumber?: string;\n\n /**\n * JWT claim: `phone_number_verified`\n */\n readonly phoneNumberVerified?: boolean;\n\n /**\n * JWT claim: `address`\n */\n readonly address?: string;\n\n /**\n * JWT claim: `updated_at`\n */\n readonly updatedAt?: string;\n\n /**\n * Any custom claims.\n */\n [key: string]: JSONValue | undefined;\n}\n\nexport type UserIdentityAttributes = Omit<\n UserIdentity,\n // tokenIdentifier is always generated by us\n \"tokenIdentifier\"\n>;\n\n/**\n * An interface to access information about the currently authenticated user\n * within Convex query and mutation functions.\n *\n * @public\n */\nexport interface Auth {\n /**\n * Get details about the currently authenticated user.\n *\n * @returns A promise that resolves to a {@link UserIdentity} if the Convex\n * client was configured with a valid ID token, or if not, will:\n * + returns `null` on Convex queries, mutations, actions.\n * + `throw` on HTTP Actions.\n */\n getUserIdentity(): Promise<UserIdentity | null>;\n}\n"],
4
+ "sourcesContent": ["import { JSONValue } from \"../values/index.js\";\n\n/**\n * The value exported by your Convex project in `auth.config.ts`.\n *\n * ```ts\n * import { AuthConfig } from \"convex/server\";\n *\n * export default {\n * providers: [\n * {\n * domain: \"https://your.issuer.url.com\",\n * applicationID: \"your-application-id\",\n * },\n * ],\n * } satisfies AuthConfig;\n * ```\n */\nexport type AuthConfig = {\n providers: AuthProvider[];\n};\n\n/**\n * An authentication provider allowed to issue JWTs for your app.\n *\n * See: https://docs.convex.dev/auth/advanced/custom-auth and https://docs.convex.dev/auth/advanced/custom-jwt\n */\nexport type AuthProvider =\n // OIDC provider\n | {\n /**\n * Tokens issued by the auth provider must have this application ID\n * in their audiences.\n */\n applicationID: string;\n\n /**\n * The domain of the OIDC auth provider.\n */\n domain: string;\n }\n // Custom JWT provider (see https://docs.convex.dev/auth/advanced/custom-jwt)\n | {\n type: \"customJwt\";\n\n /**\n * Tokens issued by the auth provider must have this application ID\n * in their audiences.\n *\n * Warning: omitting applicationID is often insecure\n * (see https://docs.convex.dev/auth/advanced/custom-jwt#warning-omitting-applicationid-is-often-insecure).\n */\n applicationID?: string;\n\n /**\n * The issuer of the JWT auth provider (e.g. `https://auth.example.com`)\n */\n issuer: string;\n\n /**\n * The URL to fetch the JWKS (e.g. `https://auth.example.com/.well-known/jwks.json`)\n */\n jwks: string;\n\n /**\n * The algorithm used to sign the JWT tokens. Convex currently only\n * supports RS256 and ES256.\n */\n algorithm: \"RS256\" | \"ES256\";\n };\n\n/**\n * Information about an authenticated user, derived from a\n * [JWT](https://datatracker.ietf.org/doc/html/rfc7519).\n *\n * The only fields guaranteed to be present are\n * {@link UserIdentity.tokenIdentifier} and {@link UserIdentity.issuer}. All\n * remaining fields may or may not be present depending on the information given\n * by the identity provider.\n *\n * The explicitly listed fields are derived from the OpenID Connect (OIDC) standard fields,\n * see the [OIDC specification](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims)\n * for more information on these fields.\n *\n * Any additional fields are custom claims that may be present in the JWT,\n * and their type depends on your identity provider configuration. If you\n * know the type of the field, you can assert it in TypeScript like this\n * (for example as a `string`):\n *\n * ```typescript\n * const identity = await ctx.auth.getUserIdentity();\n * if (identity === null) {\n * return null;\n * }\n * const customClaim = identity.custom_claim as string;\n * ```\n *\n * @public\n */\nexport interface UserIdentity {\n /**\n * A stable and globally unique string for this identity (i.e. no other\n * user, even from a different identity provider, will have the same string.)\n *\n * JWT claims: `sub` + `iss`\n */\n readonly tokenIdentifier: string;\n\n /**\n * Identifier for the end-user from the identity provider, not necessarily\n * unique across different providers.\n *\n * JWT claim: `sub`\n */\n readonly subject: string;\n\n /**\n * The hostname of the identity provider used to authenticate this user.\n *\n * JWT claim: `iss`\n */\n readonly issuer: string;\n\n /**\n * JWT claim: `name`\n */\n readonly name?: string;\n\n /**\n * JWT claim: `given_name`\n */\n readonly givenName?: string;\n\n /**\n * JWT claim: `family_name`\n */\n readonly familyName?: string;\n\n /**\n * JWT claim: `nickname`\n */\n readonly nickname?: string;\n\n /**\n * JWT claim: `preferred_username`\n */\n readonly preferredUsername?: string;\n\n /**\n * JWT claim: `profile`\n */\n readonly profileUrl?: string;\n\n /**\n * JWT claim: `picture`\n */\n readonly pictureUrl?: string;\n\n /**\n * JWT claim: `email`\n */\n readonly email?: string;\n\n /**\n * JWT claim: `email_verified`\n */\n readonly emailVerified?: boolean;\n\n /**\n * JWT claim: `gender`\n */\n readonly gender?: string;\n\n /**\n * JWT claim: `birthdate`\n */\n readonly birthday?: string;\n\n /**\n * JWT claim: `zoneinfo`\n */\n readonly timezone?: string;\n\n /**\n * JWT claim: `locale`\n */\n readonly language?: string;\n\n /**\n * JWT claim: `phone_number`\n */\n readonly phoneNumber?: string;\n\n /**\n * JWT claim: `phone_number_verified`\n */\n readonly phoneNumberVerified?: boolean;\n\n /**\n * JWT claim: `address`\n */\n readonly address?: string;\n\n /**\n * JWT claim: `updated_at`\n */\n readonly updatedAt?: string;\n\n /**\n * Any custom claims.\n */\n [key: string]: JSONValue | undefined;\n}\n\nexport type UserIdentityAttributes = Omit<\n UserIdentity,\n // tokenIdentifier is always generated by us\n \"tokenIdentifier\"\n>;\n\n/**\n * An interface to access information about the currently authenticated user\n * within Convex query and mutation functions.\n *\n * @public\n */\nexport interface Auth {\n /**\n * Get details about the currently authenticated user.\n *\n * @returns A promise that resolves to a {@link UserIdentity} if the Convex\n * client was configured with a valid ID token, or if not, will:\n * + returns `null` on Convex queries, mutations, actions.\n * + `throw` on HTTP Actions.\n */\n getUserIdentity(): Promise<UserIdentity | null>;\n}\n\n/**\n * {@link Auth} for mutations, which can also sign JWTs with this deployment's\n * key.\n *\n * @public\n */\nexport interface MutationAuth extends Auth {\n /**\n * Sign an ES256 JWT with this deployment's key.\n *\n * Pass the `claims` and `expiresInSeconds` values that match your use case.\n *\n * Convex populates the header and sets the `iss`, `iat` and `exp` claims.\n *\n * The `iss` is `process.env.CONVEX_CLOUD_URL` for the app and\n * `${process.env.CONVEX_CLOUD_URL}/components/<name>` for a component.\n *\n * Anyone can verify these tokens against the public keys at\n * `${process.env.CONVEX_CLOUD_URL}/.well-known/jwks.json`.\n *\n * Claims are signed but not encrypted, so anyone holding the token can read\n * them.\n *\n * Prefer short token lifetimes: a token can't be revoked individually, and a\n * mutation can always sign a fresh one to reassert the claims. This API\n * allows a token to have a max expiration of 1 hour from issuance.\n *\n * Claims that start with `convex` or `cvx` (case insensitive) and the `nbf`\n * claim are reserved and may not be set.\n */\n signJwt(options: SignJwtOptions): Promise<string>;\n}\n\n/**\n * Claims that callers may not set on JWTs with {@link MutationAuth.signJwt}.\n */\nexport type ReservedJwtClaim = \"iss\" | \"iat\" | \"exp\" | \"nbf\";\n\n/**\n * Every ASCII casing of `S`: `AnyCase<\"cvx\">` is `\"cvx\" | \"cvX\" | \"cVx\" | ...`.\n */\ntype AnyCase<S extends string> = S extends `${infer First}${infer Rest}`\n ? `${Lowercase<First> | Uppercase<First>}${AnyCase<Rest>}`\n : S;\n\n/**\n * Claim names starting with `convex` or `cvx`, in any casing, are reserved\n * for Convex. They may not be set on JWTs with {@link MutationAuth.signJwt}.\n */\n// NOTE: only relatively short prefixes should ever be passed below. The AnyCase\n// type produces 2^length string literals which can get out of hand for anything\n// but short strings.\nexport type ReservedJwtClaimPrefix = AnyCase<\"convex\" | \"cvx\">;\n\n/**\n * Rejects claim names starting with a {@link ReservedJwtClaimPrefix}.\n */\n// Kept as a named alias rather than inlined into SignJwtClaims: typedoc's\n// markdown renderer mangles template-literal index signatures into invalid\n// MDX, but renders a reference to a named type as plain text.\ntype ReservedPrefixJwtClaims = {\n [K: `${ReservedJwtClaimPrefix}${string}`]: never;\n};\n\n/**\n * The claims a caller passes to {@link MutationAuth.signJwt}: any JSON value,\n * except for the {@link ReservedJwtClaim}s and names starting with a\n * {@link ReservedJwtClaimPrefix}.\n */\nexport type SignJwtClaims = Record<string, JSONValue> & {\n [K in ReservedJwtClaim]?: never;\n} & ReservedPrefixJwtClaims;\n\nexport type SignJwtOptions = {\n claims?: SignJwtClaims;\n /** How long the token stays valid, at least 1 second and at most 1 hour. */\n expiresInSeconds: number;\n};\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }