convex 1.47.0 → 1.48.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/dist/browser.bundle.js +1 -1
  2. package/dist/browser.bundle.js.map +1 -1
  3. package/dist/cjs/bundler/context.js +7 -5
  4. package/dist/cjs/bundler/context.js.map +2 -2
  5. package/dist/cjs/bundler/fs.js +47 -6
  6. package/dist/cjs/bundler/fs.js.map +2 -2
  7. package/dist/cjs/cli/account.js +237 -0
  8. package/dist/cjs/cli/account.js.map +7 -0
  9. package/dist/cjs/cli/configure.js +15 -2
  10. package/dist/cjs/cli/configure.js.map +2 -2
  11. package/dist/cjs/cli/lib/deployKeyWarning.js +43 -0
  12. package/dist/cjs/cli/lib/deployKeyWarning.js.map +7 -0
  13. package/dist/cjs/cli/lib/deployment.js +2 -0
  14. package/dist/cjs/cli/lib/deployment.js.map +2 -2
  15. package/dist/cjs/cli/lib/deploymentSelection.js +27 -18
  16. package/dist/cjs/cli/lib/deploymentSelection.js.map +2 -2
  17. package/dist/cjs/cli/lib/envvars.js +32 -0
  18. package/dist/cjs/cli/lib/envvars.js.map +2 -2
  19. package/dist/cjs/cli/lib/fsUtils.js +1 -1
  20. package/dist/cjs/cli/lib/fsUtils.js.map +2 -2
  21. package/dist/cjs/cli/lib/generateDocs.js +1 -1
  22. package/dist/cjs/cli/lib/generateDocs.js.map +1 -1
  23. package/dist/cjs/cli/lib/login.js +28 -4
  24. package/dist/cjs/cli/lib/login.js.map +2 -2
  25. package/dist/cjs/cli/lib/mcp/requestContext.js +5 -1
  26. package/dist/cjs/cli/lib/mcp/requestContext.js.map +2 -2
  27. package/dist/cjs/cli/lib/profileManagement.js +196 -0
  28. package/dist/cjs/cli/lib/profileManagement.js.map +7 -0
  29. package/dist/cjs/cli/lib/profiles.js +333 -0
  30. package/dist/cjs/cli/lib/profiles.js.map +7 -0
  31. package/dist/cjs/cli/lib/utils/utils.js +18 -9
  32. package/dist/cjs/cli/lib/utils/utils.js.map +2 -2
  33. package/dist/cjs/cli/login.js +213 -114
  34. package/dist/cjs/cli/login.js.map +3 -3
  35. package/dist/cjs/cli/logout.js +113 -12
  36. package/dist/cjs/cli/logout.js.map +3 -3
  37. package/dist/cjs/cli/mcp.js +43 -10
  38. package/dist/cjs/cli/mcp.js.map +3 -3
  39. package/dist/cjs/cli/program.js +2 -1
  40. package/dist/cjs/cli/program.js.map +2 -2
  41. package/dist/cjs/index.js +1 -1
  42. package/dist/cjs/index.js.map +1 -1
  43. package/dist/cjs-types/bundler/context.d.ts +5 -0
  44. package/dist/cjs-types/bundler/context.d.ts.map +1 -1
  45. package/dist/cjs-types/bundler/fs.d.ts +7 -2
  46. package/dist/cjs-types/bundler/fs.d.ts.map +1 -1
  47. package/dist/cjs-types/cli/account.d.ts +6 -0
  48. package/dist/cjs-types/cli/account.d.ts.map +1 -0
  49. package/dist/cjs-types/cli/configure.d.ts.map +1 -1
  50. package/dist/cjs-types/cli/lib/deployKeyWarning.d.ts +3 -0
  51. package/dist/cjs-types/cli/lib/deployKeyWarning.d.ts.map +1 -0
  52. package/dist/cjs-types/cli/lib/deployment.d.ts +2 -0
  53. package/dist/cjs-types/cli/lib/deployment.d.ts.map +1 -1
  54. package/dist/cjs-types/cli/lib/deploymentSelection.d.ts +2 -1
  55. package/dist/cjs-types/cli/lib/deploymentSelection.d.ts.map +1 -1
  56. package/dist/cjs-types/cli/lib/envvars.d.ts +6 -0
  57. package/dist/cjs-types/cli/lib/envvars.d.ts.map +1 -1
  58. package/dist/cjs-types/cli/lib/fsUtils.d.ts +1 -0
  59. package/dist/cjs-types/cli/lib/fsUtils.d.ts.map +1 -1
  60. package/dist/cjs-types/cli/lib/login.d.ts +3 -1
  61. package/dist/cjs-types/cli/lib/login.d.ts.map +1 -1
  62. package/dist/cjs-types/cli/lib/mcp/requestContext.d.ts.map +1 -1
  63. package/dist/cjs-types/cli/lib/mcp/tools/insights.d.ts +2 -2
  64. package/dist/cjs-types/cli/lib/profileManagement.d.ts +10 -0
  65. package/dist/cjs-types/cli/lib/profileManagement.d.ts.map +1 -0
  66. package/dist/cjs-types/cli/lib/profiles.d.ts +59 -0
  67. package/dist/cjs-types/cli/lib/profiles.d.ts.map +1 -0
  68. package/dist/cjs-types/cli/lib/utils/utils.d.ts +5 -0
  69. package/dist/cjs-types/cli/lib/utils/utils.d.ts.map +1 -1
  70. package/dist/cjs-types/cli/login.d.ts +21 -0
  71. package/dist/cjs-types/cli/login.d.ts.map +1 -1
  72. package/dist/cjs-types/cli/logout.d.ts +8 -1
  73. package/dist/cjs-types/cli/logout.d.ts.map +1 -1
  74. package/dist/cjs-types/cli/mcp.d.ts.map +1 -1
  75. package/dist/cjs-types/cli/program.d.ts.map +1 -1
  76. package/dist/cjs-types/index.d.ts +1 -1
  77. package/dist/cjs-types/index.d.ts.map +1 -1
  78. package/dist/cli.bundle.cjs +2118 -1096
  79. package/dist/cli.bundle.cjs.map +4 -4
  80. package/dist/esm/bundler/context.js +7 -5
  81. package/dist/esm/bundler/context.js.map +2 -2
  82. package/dist/esm/bundler/fs.js +47 -6
  83. package/dist/esm/bundler/fs.js.map +2 -2
  84. package/dist/esm/cli/account.js +221 -0
  85. package/dist/esm/cli/account.js.map +7 -0
  86. package/dist/esm/cli/configure.js +15 -2
  87. package/dist/esm/cli/configure.js.map +2 -2
  88. package/dist/esm/cli/lib/deployKeyWarning.js +27 -0
  89. package/dist/esm/cli/lib/deployKeyWarning.js.map +7 -0
  90. package/dist/esm/cli/lib/deployment.js +2 -2
  91. package/dist/esm/cli/lib/deployment.js.map +2 -2
  92. package/dist/esm/cli/lib/deploymentSelection.js +35 -20
  93. package/dist/esm/cli/lib/deploymentSelection.js.map +2 -2
  94. package/dist/esm/cli/lib/envvars.js +35 -1
  95. package/dist/esm/cli/lib/envvars.js.map +2 -2
  96. package/dist/esm/cli/lib/fsUtils.js +1 -1
  97. package/dist/esm/cli/lib/fsUtils.js.map +2 -2
  98. package/dist/esm/cli/lib/generateDocs.js +1 -1
  99. package/dist/esm/cli/lib/generateDocs.js.map +1 -1
  100. package/dist/esm/cli/lib/login.js +36 -4
  101. package/dist/esm/cli/lib/login.js.map +2 -2
  102. package/dist/esm/cli/lib/mcp/requestContext.js +5 -1
  103. package/dist/esm/cli/lib/mcp/requestContext.js.map +2 -2
  104. package/dist/esm/cli/lib/profileManagement.js +179 -0
  105. package/dist/esm/cli/lib/profileManagement.js.map +7 -0
  106. package/dist/esm/cli/lib/profiles.js +288 -0
  107. package/dist/esm/cli/lib/profiles.js.map +7 -0
  108. package/dist/esm/cli/lib/utils/utils.js +16 -9
  109. package/dist/esm/cli/lib/utils/utils.js.map +2 -2
  110. package/dist/esm/cli/login.js +225 -112
  111. package/dist/esm/cli/login.js.map +3 -3
  112. package/dist/esm/cli/logout.js +110 -13
  113. package/dist/esm/cli/logout.js.map +2 -2
  114. package/dist/esm/cli/mcp.js +34 -10
  115. package/dist/esm/cli/mcp.js.map +2 -2
  116. package/dist/esm/cli/program.js +2 -1
  117. package/dist/esm/cli/program.js.map +2 -2
  118. package/dist/esm/index.js +1 -1
  119. package/dist/esm/index.js.map +1 -1
  120. package/dist/esm-types/bundler/context.d.ts +5 -0
  121. package/dist/esm-types/bundler/context.d.ts.map +1 -1
  122. package/dist/esm-types/bundler/fs.d.ts +7 -2
  123. package/dist/esm-types/bundler/fs.d.ts.map +1 -1
  124. package/dist/esm-types/cli/account.d.ts +6 -0
  125. package/dist/esm-types/cli/account.d.ts.map +1 -0
  126. package/dist/esm-types/cli/configure.d.ts.map +1 -1
  127. package/dist/esm-types/cli/lib/deployKeyWarning.d.ts +3 -0
  128. package/dist/esm-types/cli/lib/deployKeyWarning.d.ts.map +1 -0
  129. package/dist/esm-types/cli/lib/deployment.d.ts +2 -0
  130. package/dist/esm-types/cli/lib/deployment.d.ts.map +1 -1
  131. package/dist/esm-types/cli/lib/deploymentSelection.d.ts +2 -1
  132. package/dist/esm-types/cli/lib/deploymentSelection.d.ts.map +1 -1
  133. package/dist/esm-types/cli/lib/envvars.d.ts +6 -0
  134. package/dist/esm-types/cli/lib/envvars.d.ts.map +1 -1
  135. package/dist/esm-types/cli/lib/fsUtils.d.ts +1 -0
  136. package/dist/esm-types/cli/lib/fsUtils.d.ts.map +1 -1
  137. package/dist/esm-types/cli/lib/login.d.ts +3 -1
  138. package/dist/esm-types/cli/lib/login.d.ts.map +1 -1
  139. package/dist/esm-types/cli/lib/mcp/requestContext.d.ts.map +1 -1
  140. package/dist/esm-types/cli/lib/mcp/tools/insights.d.ts +2 -2
  141. package/dist/esm-types/cli/lib/profileManagement.d.ts +10 -0
  142. package/dist/esm-types/cli/lib/profileManagement.d.ts.map +1 -0
  143. package/dist/esm-types/cli/lib/profiles.d.ts +59 -0
  144. package/dist/esm-types/cli/lib/profiles.d.ts.map +1 -0
  145. package/dist/esm-types/cli/lib/utils/utils.d.ts +5 -0
  146. package/dist/esm-types/cli/lib/utils/utils.d.ts.map +1 -1
  147. package/dist/esm-types/cli/login.d.ts +21 -0
  148. package/dist/esm-types/cli/login.d.ts.map +1 -1
  149. package/dist/esm-types/cli/logout.d.ts +8 -1
  150. package/dist/esm-types/cli/logout.d.ts.map +1 -1
  151. package/dist/esm-types/cli/mcp.d.ts.map +1 -1
  152. package/dist/esm-types/cli/program.d.ts.map +1 -1
  153. package/dist/esm-types/index.d.ts +1 -1
  154. package/dist/esm-types/index.d.ts.map +1 -1
  155. package/dist/react.bundle.js +1 -1
  156. package/dist/react.bundle.js.map +1 -1
  157. package/package.json +1 -1
  158. package/src/bundler/context.ts +9 -5
  159. package/src/bundler/fs.ts +54 -5
  160. package/src/cli/account.ts +320 -0
  161. package/src/cli/configure.ts +18 -2
  162. package/src/cli/lib/deployKeyWarning.ts +43 -0
  163. package/src/cli/lib/deployment.ts +2 -2
  164. package/src/cli/lib/deploymentSelection.ts +37 -18
  165. package/src/cli/lib/envvars.ts +43 -1
  166. package/src/cli/lib/fsUtils.ts +5 -2
  167. package/src/cli/lib/generateDocs.ts +1 -1
  168. package/src/cli/lib/login.ts +47 -3
  169. package/src/cli/lib/mcp/requestContext.ts +7 -1
  170. package/src/cli/lib/profileManagement.ts +262 -0
  171. package/src/cli/lib/profiles.ts +398 -0
  172. package/src/cli/lib/utils/utils.ts +19 -15
  173. package/src/cli/login.ts +293 -168
  174. package/src/cli/logout.ts +142 -17
  175. package/src/cli/mcp.ts +48 -11
  176. package/src/cli/program.ts +2 -0
  177. package/src/index.ts +1 -1
package/src/cli/mcp.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import path from "path";
1
2
  import { Command, Option } from "@commander-js/extra-typings";
2
3
  import { oneoffContext } from "../bundler/context.js";
3
4
  import { logError } from "../bundler/log.js";
@@ -6,6 +7,7 @@ import { serveStdio } from "@modelcontextprotocol/server/stdio";
6
7
  import { actionDescription } from "./lib/command.js";
7
8
  import { checkAuthorization } from "./lib/login.js";
8
9
  import {
10
+ encodeDeploymentSelector,
9
11
  McpOptions,
10
12
  RequestContext,
11
13
  RequestCrash,
@@ -115,6 +117,14 @@ function enabledTools(
115
117
  export function makeServer(options: McpOptions) {
116
118
  const enabledToolsByName = enabledTools(options);
117
119
  const mutex = new Mutex();
120
+ const serverDirectory = process.cwd();
121
+ options = {
122
+ ...options,
123
+ envFile:
124
+ options.envFile === undefined
125
+ ? undefined
126
+ : path.resolve(serverDirectory, options.envFile),
127
+ };
118
128
  const server = new Server(
119
129
  {
120
130
  name: "Convex MCP Server",
@@ -128,17 +138,7 @@ export function makeServer(options: McpOptions) {
128
138
  );
129
139
  server.setRequestHandler("tools/call", async (request: CallToolRequest) => {
130
140
  const ctx = new RequestContext(options);
131
- await initializeBigBrainAuth(ctx, options);
132
141
  try {
133
- const authorized = await checkAuthorization(ctx, false);
134
- if (!authorized) {
135
- await ctx.crash({
136
- exitCode: 1,
137
- errorType: "fatal",
138
- printedMessage:
139
- "Not Authorized: Run `npx convex dev` to login to your Convex project.",
140
- });
141
- }
142
142
  if (!request.params.arguments) {
143
143
  await ctx.crash({
144
144
  exitCode: 1,
@@ -158,7 +158,44 @@ export function makeServer(options: McpOptions) {
158
158
 
159
159
  // Serialize tool handlers since they're mutating the current working directory.
160
160
  const result = await mutex.runExclusive(async () => {
161
- return await convexTool.handler(ctx, input);
161
+ const projectDir =
162
+ "deploymentSelector" in input
163
+ ? ctx.decodeDeploymentSelectorUnchecked(input.deploymentSelector)
164
+ .projectDir
165
+ : (("projectDir" in input ? input.projectDir : undefined) ??
166
+ options.projectDir);
167
+ const previousDirectory = process.cwd();
168
+ try {
169
+ if (projectDir !== undefined)
170
+ process.chdir(path.resolve(serverDirectory, projectDir));
171
+ await initializeBigBrainAuth(ctx, options);
172
+ if (!(await checkAuthorization(ctx, false))) {
173
+ await ctx.crash({
174
+ exitCode: 1,
175
+ errorType: "fatal",
176
+ printedMessage:
177
+ "Not Authorized: Run `npx convex dev` to login to your Convex project.",
178
+ });
179
+ }
180
+ const absoluteDirectory = process.cwd();
181
+ const resolvedInput =
182
+ "deploymentSelector" in input
183
+ ? {
184
+ ...input,
185
+ deploymentSelector: encodeDeploymentSelector(
186
+ absoluteDirectory,
187
+ ctx.decodeDeploymentSelectorUnchecked(
188
+ input.deploymentSelector,
189
+ ).deployment,
190
+ ),
191
+ }
192
+ : projectDir === undefined
193
+ ? input
194
+ : { ...input, projectDir: absoluteDirectory };
195
+ return await convexTool.handler(ctx, resolvedInput);
196
+ } finally {
197
+ process.chdir(previousDirectory);
198
+ }
162
199
  });
163
200
  return {
164
201
  content: [
@@ -21,6 +21,7 @@ import { logout } from "./logout.js";
21
21
  import { logs } from "./logs.js";
22
22
  import { mcp } from "./mcp.js";
23
23
  import { networkTest } from "./network_test.js";
24
+ import { account } from "./account.js";
24
25
  import { project } from "./project.js";
25
26
  import { reinit } from "./reinit.js";
26
27
  import { run } from "./run.js";
@@ -56,6 +57,7 @@ export function buildProgram() {
56
57
  .addCommand(codegen)
57
58
  .addCommand(update)
58
59
  .addCommand(logout)
60
+ .addCommand(account)
59
61
  .addCommand(networkTest, { hidden: true })
60
62
  .addCommand(integration, { hidden: true })
61
63
  .addCommand(functionSpec)
package/src/index.ts CHANGED
@@ -1 +1 @@
1
- export const version = "1.47.0";
1
+ export const version = "1.48.0-alpha.0";