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.
- package/CHANGELOG.md +28 -4
- package/README.md +1 -1
- package/dist/browser.bundle.js +1 -1
- package/dist/browser.bundle.js.map +1 -1
- package/dist/cjs/bundler/context.js +5 -7
- package/dist/cjs/bundler/context.js.map +2 -2
- package/dist/cjs/bundler/fs.js +6 -47
- package/dist/cjs/bundler/fs.js.map +2 -2
- package/dist/cjs/cli/aiFiles.js +26 -4
- package/dist/cjs/cli/aiFiles.js.map +2 -2
- package/dist/cjs/cli/configure.js +2 -15
- package/dist/cjs/cli/configure.js.map +2 -2
- package/dist/cjs/cli/env.js +6 -3
- package/dist/cjs/cli/env.js.map +2 -2
- package/dist/cjs/cli/envDefault.js +5 -2
- package/dist/cjs/cli/envDefault.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js +2 -1
- package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/index.js +13 -2
- package/dist/cjs/cli/lib/aiFiles/index.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/skills.js +6 -5
- package/dist/cjs/cli/lib/aiFiles/skills.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/state.js +1 -1
- package/dist/cjs/cli/lib/aiFiles/state.js.map +1 -1
- package/dist/cjs/cli/lib/components.js +12 -2
- package/dist/cjs/cli/lib/components.js.map +2 -2
- package/dist/cjs/cli/lib/deployApi/startPush.js +42 -1
- package/dist/cjs/cli/lib/deployApi/startPush.js.map +2 -2
- package/dist/cjs/cli/lib/deployment.js +0 -2
- package/dist/cjs/cli/lib/deployment.js.map +2 -2
- package/dist/cjs/cli/lib/deploymentSelection.js +18 -27
- package/dist/cjs/cli/lib/deploymentSelection.js.map +2 -2
- package/dist/cjs/cli/lib/env.js +9 -1
- package/dist/cjs/cli/lib/env.js.map +2 -2
- package/dist/cjs/cli/lib/envvars.js +0 -32
- package/dist/cjs/cli/lib/envvars.js.map +2 -2
- package/dist/cjs/cli/lib/fsUtils.js +1 -1
- package/dist/cjs/cli/lib/fsUtils.js.map +2 -2
- package/dist/cjs/cli/lib/generateDocs.js +1 -1
- package/dist/cjs/cli/lib/generateDocs.js.map +1 -1
- package/dist/cjs/cli/lib/localDeployment/dashboard.js +11 -1
- package/dist/cjs/cli/lib/localDeployment/dashboard.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/download.js +16 -1
- package/dist/cjs/cli/lib/localDeployment/download.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/utils.js +4 -0
- package/dist/cjs/cli/lib/localDeployment/utils.js.map +2 -2
- package/dist/cjs/cli/lib/login.js +4 -28
- package/dist/cjs/cli/lib/login.js.map +2 -2
- package/dist/cjs/cli/lib/mcp/requestContext.js +1 -5
- package/dist/cjs/cli/lib/mcp/requestContext.js.map +2 -2
- package/dist/cjs/cli/lib/utils/aiAgent.js +32 -0
- package/dist/cjs/cli/lib/utils/aiAgent.js.map +7 -0
- package/dist/cjs/cli/lib/utils/utils.js +9 -18
- package/dist/cjs/cli/lib/utils/utils.js.map +2 -2
- package/dist/cjs/cli/login.js +114 -213
- package/dist/cjs/cli/login.js.map +3 -3
- package/dist/cjs/cli/logout.js +12 -113
- package/dist/cjs/cli/logout.js.map +3 -3
- package/dist/cjs/cli/mcp.js +10 -43
- package/dist/cjs/cli/mcp.js.map +3 -3
- package/dist/cjs/cli/program.js +1 -2
- package/dist/cjs/cli/program.js.map +2 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/server/authentication.js.map +1 -1
- package/dist/cjs/server/components/index.js.map +2 -2
- package/dist/cjs/server/impl/authentication_impl.js +15 -1
- package/dist/cjs/server/impl/authentication_impl.js.map +2 -2
- package/dist/cjs/server/impl/registration_impl.js +1 -1
- package/dist/cjs/server/impl/registration_impl.js.map +2 -2
- package/dist/cjs/server/index.js.map +2 -2
- package/dist/cjs/server/meta.js.map +1 -1
- package/dist/cjs/server/registration.js.map +1 -1
- package/dist/cjs/server/schema.js +0 -2
- package/dist/cjs/server/schema.js.map +2 -2
- package/dist/cjs/server/storage.js.map +1 -1
- package/dist/cjs-types/bundler/context.d.ts +0 -5
- package/dist/cjs-types/bundler/context.d.ts.map +1 -1
- package/dist/cjs-types/bundler/fs.d.ts +2 -7
- package/dist/cjs-types/bundler/fs.d.ts.map +1 -1
- package/dist/cjs-types/cli/aiFiles.d.ts.map +1 -1
- package/dist/cjs-types/cli/configure.d.ts.map +1 -1
- package/dist/cjs-types/cli/env.d.ts.map +1 -1
- package/dist/cjs-types/cli/envDefault.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts +3 -1
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/index.d.ts +11 -1
- package/dist/cjs-types/cli/lib/aiFiles/index.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts +4 -1
- package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/components.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts +13 -0
- package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deployment.d.ts +0 -2
- package/dist/cjs-types/cli/lib/deployment.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deploymentSelection.d.ts +1 -2
- package/dist/cjs-types/cli/lib/deploymentSelection.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/env.d.ts +1 -0
- package/dist/cjs-types/cli/lib/env.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/envvars.d.ts +0 -6
- package/dist/cjs-types/cli/lib/envvars.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/fsUtils.d.ts +0 -1
- package/dist/cjs-types/cli/lib/fsUtils.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/dashboard.d.ts +6 -0
- package/dist/cjs-types/cli/lib/localDeployment/dashboard.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/download.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts +1 -0
- package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/login.d.ts +1 -3
- package/dist/cjs-types/cli/lib/login.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/mcp/requestContext.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/mcp/tools/insights.d.ts +2 -2
- package/dist/cjs-types/cli/lib/utils/aiAgent.d.ts +8 -0
- package/dist/cjs-types/cli/lib/utils/aiAgent.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/utils/utils.d.ts +0 -5
- package/dist/cjs-types/cli/lib/utils/utils.d.ts.map +1 -1
- package/dist/cjs-types/cli/login.d.ts +0 -21
- package/dist/cjs-types/cli/login.d.ts.map +1 -1
- package/dist/cjs-types/cli/logout.d.ts +1 -8
- package/dist/cjs-types/cli/logout.d.ts.map +1 -1
- package/dist/cjs-types/cli/mcp.d.ts.map +1 -1
- package/dist/cjs-types/cli/program.d.ts.map +1 -1
- package/dist/cjs-types/index.d.ts +1 -1
- package/dist/cjs-types/index.d.ts.map +1 -1
- package/dist/cjs-types/server/authentication.d.ts +65 -0
- package/dist/cjs-types/server/authentication.d.ts.map +1 -1
- package/dist/cjs-types/server/components/index.d.ts +6 -0
- package/dist/cjs-types/server/components/index.d.ts.map +1 -1
- package/dist/cjs-types/server/impl/authentication_impl.d.ts +2 -1
- package/dist/cjs-types/server/impl/authentication_impl.d.ts.map +1 -1
- package/dist/cjs-types/server/index.d.ts +2 -2
- package/dist/cjs-types/server/index.d.ts.map +1 -1
- package/dist/cjs-types/server/meta.d.ts +8 -0
- package/dist/cjs-types/server/meta.d.ts.map +1 -1
- package/dist/cjs-types/server/registration.d.ts +5 -3
- package/dist/cjs-types/server/registration.d.ts.map +1 -1
- package/dist/cjs-types/server/schema.d.ts +0 -2
- package/dist/cjs-types/server/schema.d.ts.map +1 -1
- package/dist/cjs-types/server/storage.d.ts +28 -25
- package/dist/cjs-types/server/storage.d.ts.map +1 -1
- package/dist/cli.bundle.cjs +1379 -2142
- package/dist/cli.bundle.cjs.map +4 -4
- package/dist/esm/bundler/context.js +5 -7
- package/dist/esm/bundler/context.js.map +2 -2
- package/dist/esm/bundler/fs.js +6 -47
- package/dist/esm/bundler/fs.js.map +2 -2
- package/dist/esm/cli/aiFiles.js +26 -4
- package/dist/esm/cli/aiFiles.js.map +2 -2
- package/dist/esm/cli/configure.js +2 -15
- package/dist/esm/cli/configure.js.map +2 -2
- package/dist/esm/cli/env.js +6 -3
- package/dist/esm/cli/env.js.map +2 -2
- package/dist/esm/cli/envDefault.js +5 -2
- package/dist/esm/cli/envDefault.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/guidelinesmd.js +2 -1
- package/dist/esm/cli/lib/aiFiles/guidelinesmd.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/index.js +13 -2
- package/dist/esm/cli/lib/aiFiles/index.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/skills.js +6 -5
- package/dist/esm/cli/lib/aiFiles/skills.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/state.js +1 -1
- package/dist/esm/cli/lib/aiFiles/state.js.map +1 -1
- package/dist/esm/cli/lib/components.js +15 -2
- package/dist/esm/cli/lib/components.js.map +2 -2
- package/dist/esm/cli/lib/deployApi/startPush.js +39 -0
- package/dist/esm/cli/lib/deployApi/startPush.js.map +2 -2
- package/dist/esm/cli/lib/deployment.js +2 -2
- package/dist/esm/cli/lib/deployment.js.map +2 -2
- package/dist/esm/cli/lib/deploymentSelection.js +20 -35
- package/dist/esm/cli/lib/deploymentSelection.js.map +2 -2
- package/dist/esm/cli/lib/env.js +9 -1
- package/dist/esm/cli/lib/env.js.map +2 -2
- package/dist/esm/cli/lib/envvars.js +1 -35
- package/dist/esm/cli/lib/envvars.js.map +2 -2
- package/dist/esm/cli/lib/fsUtils.js +1 -1
- package/dist/esm/cli/lib/fsUtils.js.map +2 -2
- package/dist/esm/cli/lib/generateDocs.js +1 -1
- package/dist/esm/cli/lib/generateDocs.js.map +1 -1
- package/dist/esm/cli/lib/localDeployment/dashboard.js +9 -0
- package/dist/esm/cli/lib/localDeployment/dashboard.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/download.js +16 -1
- package/dist/esm/cli/lib/localDeployment/download.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/utils.js +3 -0
- package/dist/esm/cli/lib/localDeployment/utils.js.map +2 -2
- package/dist/esm/cli/lib/login.js +4 -36
- package/dist/esm/cli/lib/login.js.map +2 -2
- package/dist/esm/cli/lib/mcp/requestContext.js +1 -5
- package/dist/esm/cli/lib/mcp/requestContext.js.map +2 -2
- package/dist/esm/cli/lib/utils/aiAgent.js +10 -0
- package/dist/esm/cli/lib/utils/aiAgent.js.map +7 -0
- package/dist/esm/cli/lib/utils/utils.js +9 -16
- package/dist/esm/cli/lib/utils/utils.js.map +2 -2
- package/dist/esm/cli/login.js +112 -225
- package/dist/esm/cli/login.js.map +3 -3
- package/dist/esm/cli/logout.js +13 -110
- package/dist/esm/cli/logout.js.map +2 -2
- package/dist/esm/cli/mcp.js +10 -34
- package/dist/esm/cli/mcp.js.map +2 -2
- package/dist/esm/cli/program.js +1 -2
- package/dist/esm/cli/program.js.map +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/server/components/index.js.map +2 -2
- package/dist/esm/server/impl/authentication_impl.js +13 -0
- package/dist/esm/server/impl/authentication_impl.js.map +2 -2
- package/dist/esm/server/impl/registration_impl.js +2 -2
- package/dist/esm/server/impl/registration_impl.js.map +2 -2
- package/dist/esm/server/index.js.map +2 -2
- package/dist/esm/server/schema.js +0 -2
- package/dist/esm/server/schema.js.map +2 -2
- package/dist/esm-types/bundler/context.d.ts +0 -5
- package/dist/esm-types/bundler/context.d.ts.map +1 -1
- package/dist/esm-types/bundler/fs.d.ts +2 -7
- package/dist/esm-types/bundler/fs.d.ts.map +1 -1
- package/dist/esm-types/cli/aiFiles.d.ts.map +1 -1
- package/dist/esm-types/cli/configure.d.ts.map +1 -1
- package/dist/esm-types/cli/env.d.ts.map +1 -1
- package/dist/esm-types/cli/envDefault.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts +3 -1
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/index.d.ts +11 -1
- package/dist/esm-types/cli/lib/aiFiles/index.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/skills.d.ts +4 -1
- package/dist/esm-types/cli/lib/aiFiles/skills.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/components.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deployApi/startPush.d.ts +13 -0
- package/dist/esm-types/cli/lib/deployApi/startPush.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deployment.d.ts +0 -2
- package/dist/esm-types/cli/lib/deployment.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deploymentSelection.d.ts +1 -2
- package/dist/esm-types/cli/lib/deploymentSelection.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/env.d.ts +1 -0
- package/dist/esm-types/cli/lib/env.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/envvars.d.ts +0 -6
- package/dist/esm-types/cli/lib/envvars.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/fsUtils.d.ts +0 -1
- package/dist/esm-types/cli/lib/fsUtils.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/dashboard.d.ts +6 -0
- package/dist/esm-types/cli/lib/localDeployment/dashboard.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/download.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/utils.d.ts +1 -0
- package/dist/esm-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/login.d.ts +1 -3
- package/dist/esm-types/cli/lib/login.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/mcp/requestContext.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/mcp/tools/insights.d.ts +2 -2
- package/dist/esm-types/cli/lib/utils/aiAgent.d.ts +8 -0
- package/dist/esm-types/cli/lib/utils/aiAgent.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/utils/utils.d.ts +0 -5
- package/dist/esm-types/cli/lib/utils/utils.d.ts.map +1 -1
- package/dist/esm-types/cli/login.d.ts +0 -21
- package/dist/esm-types/cli/login.d.ts.map +1 -1
- package/dist/esm-types/cli/logout.d.ts +1 -8
- package/dist/esm-types/cli/logout.d.ts.map +1 -1
- package/dist/esm-types/cli/mcp.d.ts.map +1 -1
- package/dist/esm-types/cli/program.d.ts.map +1 -1
- package/dist/esm-types/index.d.ts +1 -1
- package/dist/esm-types/index.d.ts.map +1 -1
- package/dist/esm-types/server/authentication.d.ts +65 -0
- package/dist/esm-types/server/authentication.d.ts.map +1 -1
- package/dist/esm-types/server/components/index.d.ts +6 -0
- package/dist/esm-types/server/components/index.d.ts.map +1 -1
- package/dist/esm-types/server/impl/authentication_impl.d.ts +2 -1
- package/dist/esm-types/server/impl/authentication_impl.d.ts.map +1 -1
- package/dist/esm-types/server/index.d.ts +2 -2
- package/dist/esm-types/server/index.d.ts.map +1 -1
- package/dist/esm-types/server/meta.d.ts +8 -0
- package/dist/esm-types/server/meta.d.ts.map +1 -1
- package/dist/esm-types/server/registration.d.ts +5 -3
- package/dist/esm-types/server/registration.d.ts.map +1 -1
- package/dist/esm-types/server/schema.d.ts +0 -2
- package/dist/esm-types/server/schema.d.ts.map +1 -1
- package/dist/esm-types/server/storage.d.ts +28 -25
- package/dist/esm-types/server/storage.d.ts.map +1 -1
- package/dist/react.bundle.js +1 -1
- package/dist/react.bundle.js.map +1 -1
- package/package.json +3 -2
- package/schemas/convex.schema.json +1 -2
- package/src/bundler/context.ts +5 -9
- package/src/bundler/fs.ts +5 -54
- package/src/cli/aiFiles.ts +30 -4
- package/src/cli/configure.ts +2 -18
- package/src/cli/env.ts +4 -1
- package/src/cli/envDefault.ts +4 -1
- package/src/cli/lib/aiFiles/guidelinesmd.ts +7 -2
- package/src/cli/lib/aiFiles/index.ts +23 -3
- package/src/cli/lib/aiFiles/skills.ts +11 -7
- package/src/cli/lib/aiFiles/state.ts +1 -1
- package/src/cli/lib/components.ts +18 -3
- package/src/cli/lib/deployApi/startPush.ts +64 -0
- package/src/cli/lib/deployment.ts +2 -2
- package/src/cli/lib/deploymentSelection.ts +18 -37
- package/src/cli/lib/env.ts +13 -2
- package/src/cli/lib/envvars.ts +1 -43
- package/src/cli/lib/fsUtils.ts +2 -5
- package/src/cli/lib/generateDocs.ts +1 -1
- package/src/cli/lib/localDeployment/dashboard.ts +19 -0
- package/src/cli/lib/localDeployment/download.ts +17 -1
- package/src/cli/lib/localDeployment/utils.ts +4 -0
- package/src/cli/lib/login.ts +3 -47
- package/src/cli/lib/mcp/requestContext.ts +1 -7
- package/src/cli/lib/utils/aiAgent.ts +15 -0
- package/src/cli/lib/utils/utils.ts +15 -19
- package/src/cli/login.ts +168 -293
- package/src/cli/logout.ts +17 -142
- package/src/cli/mcp.ts +11 -48
- package/src/cli/program.ts +0 -2
- package/src/index.ts +1 -1
- package/src/server/authentication.ts +79 -0
- package/src/server/components/index.ts +11 -0
- package/src/server/impl/authentication_impl.ts +15 -1
- package/src/server/impl/registration_impl.ts +2 -2
- package/src/server/index.ts +6 -0
- package/src/server/meta.ts +0 -8
- package/src/server/registration.ts +5 -2
- package/src/server/schema.ts +0 -2
- package/src/server/storage.ts +29 -42
- package/dist/cjs/cli/account.js +0 -237
- package/dist/cjs/cli/account.js.map +0 -7
- package/dist/cjs/cli/lib/deployKeyWarning.js +0 -43
- package/dist/cjs/cli/lib/deployKeyWarning.js.map +0 -7
- package/dist/cjs/cli/lib/profileManagement.js +0 -196
- package/dist/cjs/cli/lib/profileManagement.js.map +0 -7
- package/dist/cjs/cli/lib/profiles.js +0 -333
- package/dist/cjs/cli/lib/profiles.js.map +0 -7
- package/dist/cjs-types/cli/account.d.ts +0 -6
- package/dist/cjs-types/cli/account.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/deployKeyWarning.d.ts +0 -3
- package/dist/cjs-types/cli/lib/deployKeyWarning.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/profileManagement.d.ts +0 -10
- package/dist/cjs-types/cli/lib/profileManagement.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/profiles.d.ts +0 -59
- package/dist/cjs-types/cli/lib/profiles.d.ts.map +0 -1
- package/dist/esm/cli/account.js +0 -221
- package/dist/esm/cli/account.js.map +0 -7
- package/dist/esm/cli/lib/deployKeyWarning.js +0 -27
- package/dist/esm/cli/lib/deployKeyWarning.js.map +0 -7
- package/dist/esm/cli/lib/profileManagement.js +0 -179
- package/dist/esm/cli/lib/profileManagement.js.map +0 -7
- package/dist/esm/cli/lib/profiles.js +0 -288
- package/dist/esm/cli/lib/profiles.js.map +0 -7
- package/dist/esm-types/cli/account.d.ts +0 -6
- package/dist/esm-types/cli/account.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/deployKeyWarning.d.ts +0 -3
- package/dist/esm-types/cli/lib/deployKeyWarning.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/profileManagement.d.ts +0 -10
- package/dist/esm-types/cli/lib/profileManagement.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/profiles.d.ts +0 -59
- package/dist/esm-types/cli/lib/profiles.d.ts.map +0 -1
- package/src/cli/account.ts +0 -320
- package/src/cli/lib/deployKeyWarning.ts +0 -43
- package/src/cli/lib/profileManagement.ts +0 -262
- package/src/cli/lib/profiles.ts +0 -398
package/src/cli/mcp.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import path from "path";
|
|
2
1
|
import { Command, Option } from "@commander-js/extra-typings";
|
|
3
2
|
import { oneoffContext } from "../bundler/context.js";
|
|
4
3
|
import { logError } from "../bundler/log.js";
|
|
@@ -7,7 +6,6 @@ import { serveStdio } from "@modelcontextprotocol/server/stdio";
|
|
|
7
6
|
import { actionDescription } from "./lib/command.js";
|
|
8
7
|
import { checkAuthorization } from "./lib/login.js";
|
|
9
8
|
import {
|
|
10
|
-
encodeDeploymentSelector,
|
|
11
9
|
McpOptions,
|
|
12
10
|
RequestContext,
|
|
13
11
|
RequestCrash,
|
|
@@ -117,14 +115,6 @@ function enabledTools(
|
|
|
117
115
|
export function makeServer(options: McpOptions) {
|
|
118
116
|
const enabledToolsByName = enabledTools(options);
|
|
119
117
|
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
|
-
};
|
|
128
118
|
const server = new Server(
|
|
129
119
|
{
|
|
130
120
|
name: "Convex MCP Server",
|
|
@@ -138,7 +128,17 @@ export function makeServer(options: McpOptions) {
|
|
|
138
128
|
);
|
|
139
129
|
server.setRequestHandler("tools/call", async (request: CallToolRequest) => {
|
|
140
130
|
const ctx = new RequestContext(options);
|
|
131
|
+
await initializeBigBrainAuth(ctx, options);
|
|
141
132
|
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,44 +158,7 @@ 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
|
-
|
|
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
|
-
}
|
|
161
|
+
return await convexTool.handler(ctx, input);
|
|
199
162
|
});
|
|
200
163
|
return {
|
|
201
164
|
content: [
|
package/src/cli/program.ts
CHANGED
|
@@ -21,7 +21,6 @@ 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";
|
|
25
24
|
import { project } from "./project.js";
|
|
26
25
|
import { reinit } from "./reinit.js";
|
|
27
26
|
import { run } from "./run.js";
|
|
@@ -57,7 +56,6 @@ export function buildProgram() {
|
|
|
57
56
|
.addCommand(codegen)
|
|
58
57
|
.addCommand(update)
|
|
59
58
|
.addCommand(logout)
|
|
60
|
-
.addCommand(account)
|
|
61
59
|
.addCommand(networkTest, { hidden: true })
|
|
62
60
|
.addCommand(integration, { hidden: true })
|
|
63
61
|
.addCommand(functionSpec)
|
package/src/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = "1.48.0
|
|
1
|
+
export const version = "1.48.0";
|
|
@@ -235,3 +235,82 @@ export interface Auth {
|
|
|
235
235
|
*/
|
|
236
236
|
getUserIdentity(): Promise<UserIdentity | null>;
|
|
237
237
|
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* {@link Auth} for mutations, which can also sign JWTs with this deployment's
|
|
241
|
+
* key.
|
|
242
|
+
*
|
|
243
|
+
* @public
|
|
244
|
+
*/
|
|
245
|
+
export interface MutationAuth extends Auth {
|
|
246
|
+
/**
|
|
247
|
+
* Sign an ES256 JWT with this deployment's key.
|
|
248
|
+
*
|
|
249
|
+
* Pass the `claims` and `expiresInSeconds` values that match your use case.
|
|
250
|
+
*
|
|
251
|
+
* Convex populates the header and sets the `iss`, `iat` and `exp` claims.
|
|
252
|
+
*
|
|
253
|
+
* The `iss` is `process.env.CONVEX_CLOUD_URL` for the app and
|
|
254
|
+
* `${process.env.CONVEX_CLOUD_URL}/components/<name>` for a component.
|
|
255
|
+
*
|
|
256
|
+
* Anyone can verify these tokens against the public keys at
|
|
257
|
+
* `${process.env.CONVEX_CLOUD_URL}/.well-known/jwks.json`.
|
|
258
|
+
*
|
|
259
|
+
* Claims are signed but not encrypted, so anyone holding the token can read
|
|
260
|
+
* them.
|
|
261
|
+
*
|
|
262
|
+
* Prefer short token lifetimes: a token can't be revoked individually, and a
|
|
263
|
+
* mutation can always sign a fresh one to reassert the claims. This API
|
|
264
|
+
* allows a token to have a max expiration of 1 hour from issuance.
|
|
265
|
+
*
|
|
266
|
+
* Claims that start with `convex` or `cvx` (case insensitive) and the `nbf`
|
|
267
|
+
* claim are reserved and may not be set.
|
|
268
|
+
*/
|
|
269
|
+
signJwt(options: SignJwtOptions): Promise<string>;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Claims that callers may not set on JWTs with {@link MutationAuth.signJwt}.
|
|
274
|
+
*/
|
|
275
|
+
export type ReservedJwtClaim = "iss" | "iat" | "exp" | "nbf";
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Every ASCII casing of `S`: `AnyCase<"cvx">` is `"cvx" | "cvX" | "cVx" | ...`.
|
|
279
|
+
*/
|
|
280
|
+
type AnyCase<S extends string> = S extends `${infer First}${infer Rest}`
|
|
281
|
+
? `${Lowercase<First> | Uppercase<First>}${AnyCase<Rest>}`
|
|
282
|
+
: S;
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Claim names starting with `convex` or `cvx`, in any casing, are reserved
|
|
286
|
+
* for Convex. They may not be set on JWTs with {@link MutationAuth.signJwt}.
|
|
287
|
+
*/
|
|
288
|
+
// NOTE: only relatively short prefixes should ever be passed below. The AnyCase
|
|
289
|
+
// type produces 2^length string literals which can get out of hand for anything
|
|
290
|
+
// but short strings.
|
|
291
|
+
export type ReservedJwtClaimPrefix = AnyCase<"convex" | "cvx">;
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Rejects claim names starting with a {@link ReservedJwtClaimPrefix}.
|
|
295
|
+
*/
|
|
296
|
+
// Kept as a named alias rather than inlined into SignJwtClaims: typedoc's
|
|
297
|
+
// markdown renderer mangles template-literal index signatures into invalid
|
|
298
|
+
// MDX, but renders a reference to a named type as plain text.
|
|
299
|
+
type ReservedPrefixJwtClaims = {
|
|
300
|
+
[K: `${ReservedJwtClaimPrefix}${string}`]: never;
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* The claims a caller passes to {@link MutationAuth.signJwt}: any JSON value,
|
|
305
|
+
* except for the {@link ReservedJwtClaim}s and names starting with a
|
|
306
|
+
* {@link ReservedJwtClaimPrefix}.
|
|
307
|
+
*/
|
|
308
|
+
export type SignJwtClaims = Record<string, JSONValue> & {
|
|
309
|
+
[K in ReservedJwtClaim]?: never;
|
|
310
|
+
} & ReservedPrefixJwtClaims;
|
|
311
|
+
|
|
312
|
+
export type SignJwtOptions = {
|
|
313
|
+
claims?: SignJwtClaims;
|
|
314
|
+
/** How long the token stays valid, at least 1 second and at most 1 hour. */
|
|
315
|
+
expiresInSeconds: number;
|
|
316
|
+
};
|
|
@@ -49,6 +49,17 @@ export type FunctionHandle<
|
|
|
49
49
|
ReturnType = any,
|
|
50
50
|
> = string & FunctionReference<Type, "internal", Args, ReturnType>;
|
|
51
51
|
|
|
52
|
+
/**
|
|
53
|
+
* A {@link FunctionHandle} with the type semantics of {@link FunctionReference_future}.
|
|
54
|
+
*
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
export type FunctionHandle_future<
|
|
58
|
+
Type extends FunctionType,
|
|
59
|
+
Args extends DefaultFunctionArgs = any,
|
|
60
|
+
ReturnType = any,
|
|
61
|
+
> = string & FunctionReference_future<Type, "internal", Args, ReturnType>;
|
|
62
|
+
|
|
52
63
|
/**
|
|
53
64
|
* Create a serializable reference to a Convex function.
|
|
54
65
|
* Passing a this reference to another component allows that component to call this
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Auth } from "../authentication.js";
|
|
1
|
+
import { Auth, MutationAuth } from "../authentication.js";
|
|
2
|
+
import { version } from "../../index.js";
|
|
2
3
|
import { performAsyncSyscall } from "./syscall.js";
|
|
3
4
|
|
|
4
5
|
export function setupAuth(requestId: string): Auth {
|
|
@@ -10,3 +11,16 @@ export function setupAuth(requestId: string): Auth {
|
|
|
10
11
|
},
|
|
11
12
|
};
|
|
12
13
|
}
|
|
14
|
+
|
|
15
|
+
export function setupMutationAuth(requestId: string): MutationAuth {
|
|
16
|
+
return {
|
|
17
|
+
...setupAuth(requestId),
|
|
18
|
+
signJwt: async (options) => {
|
|
19
|
+
return await performAsyncSyscall("1.0/signJwt", {
|
|
20
|
+
requestId,
|
|
21
|
+
version,
|
|
22
|
+
...options,
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
} from "../registration.js";
|
|
25
25
|
import { setupActionCalls } from "./actions_impl.js";
|
|
26
26
|
import { setupActionVectorSearch } from "./vector_search_impl.js";
|
|
27
|
-
import { setupAuth } from "./authentication_impl.js";
|
|
27
|
+
import { setupAuth, setupMutationAuth } from "./authentication_impl.js";
|
|
28
28
|
import { setupReader, setupWriter } from "./database_impl.js";
|
|
29
29
|
import { QueryImpl, QueryInitializerImpl } from "./query_impl.js";
|
|
30
30
|
import {
|
|
@@ -55,7 +55,7 @@ async function invokeMutation<
|
|
|
55
55
|
const args = jsonToConvex(JSON.parse(argsStr));
|
|
56
56
|
const mutationCtx = {
|
|
57
57
|
db: setupWriter(),
|
|
58
|
-
auth:
|
|
58
|
+
auth: setupMutationAuth(requestId),
|
|
59
59
|
storage: setupStorageWriter(requestId),
|
|
60
60
|
scheduler: setupMutationScheduler(),
|
|
61
61
|
meta: setupMutationMeta(visibility),
|
package/src/server/index.ts
CHANGED
|
@@ -55,7 +55,12 @@ export type {
|
|
|
55
55
|
Auth,
|
|
56
56
|
AuthConfig,
|
|
57
57
|
AuthProvider,
|
|
58
|
+
MutationAuth,
|
|
58
59
|
UserIdentity,
|
|
60
|
+
ReservedJwtClaim,
|
|
61
|
+
ReservedJwtClaimPrefix,
|
|
62
|
+
SignJwtClaims,
|
|
63
|
+
SignJwtOptions,
|
|
59
64
|
UserIdentityAttributes,
|
|
60
65
|
} from "./authentication.js";
|
|
61
66
|
export * from "./database.js";
|
|
@@ -209,6 +214,7 @@ export type {
|
|
|
209
214
|
ComponentDefinition,
|
|
210
215
|
AnyComponents,
|
|
211
216
|
FunctionHandle,
|
|
217
|
+
FunctionHandle_future,
|
|
212
218
|
} from "./components/index.js";
|
|
213
219
|
|
|
214
220
|
/**
|
package/src/server/meta.ts
CHANGED
|
@@ -26,13 +26,9 @@ export type TransactionMetrics = {
|
|
|
26
26
|
documentsWritten: TransactionMetric;
|
|
27
27
|
functionsScheduled: TransactionMetric;
|
|
28
28
|
scheduledFunctionArgsBytes: TransactionMetric;
|
|
29
|
-
/** @internal */
|
|
30
29
|
filesWritten: TransactionMetric;
|
|
31
|
-
/** @internal */
|
|
32
30
|
fileWriteBytes: TransactionMetric;
|
|
33
|
-
/** @internal */
|
|
34
31
|
filesRead: TransactionMetric;
|
|
35
|
-
/** @internal */
|
|
36
32
|
fileReadBytes: TransactionMetric;
|
|
37
33
|
};
|
|
38
34
|
|
|
@@ -51,13 +47,9 @@ export interface TransactionLimits {
|
|
|
51
47
|
documentsWritten?: number;
|
|
52
48
|
functionsScheduled?: number;
|
|
53
49
|
scheduledFunctionArgsBytes?: number;
|
|
54
|
-
/** @internal */
|
|
55
50
|
filesWritten?: number;
|
|
56
|
-
/** @internal */
|
|
57
51
|
fileWriteBytes?: number;
|
|
58
|
-
/** @internal */
|
|
59
52
|
filesRead?: number;
|
|
60
|
-
/** @internal */
|
|
61
53
|
fileReadBytes?: number;
|
|
62
54
|
}
|
|
63
55
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Auth,
|
|
3
|
+
MutationAuth,
|
|
3
4
|
GenericDatabaseReader,
|
|
4
5
|
GenericDatabaseReaderWithTable,
|
|
5
6
|
GenericDatabaseWriter,
|
|
@@ -87,12 +88,14 @@ export interface GenericMutationCtx<DataModel extends GenericDataModel> {
|
|
|
87
88
|
db: GenericDatabaseWriter<DataModel>;
|
|
88
89
|
|
|
89
90
|
/**
|
|
90
|
-
*
|
|
91
|
+
* Auth functionality for mutations.
|
|
91
92
|
*
|
|
92
93
|
* Call `await ctx.auth.getUserIdentity()` to get the current user's identity,
|
|
93
94
|
* or `null` if the user is not authenticated.
|
|
95
|
+
*
|
|
96
|
+
* `ctx.auth.signJwt` is available for creating deployment issued JWTs.
|
|
94
97
|
*/
|
|
95
|
-
auth:
|
|
98
|
+
auth: MutationAuth;
|
|
96
99
|
|
|
97
100
|
/**
|
|
98
101
|
* A utility for reading and writing files in storage.
|
package/src/server/schema.ts
CHANGED
|
@@ -226,8 +226,6 @@ export class TableDefinition<
|
|
|
226
226
|
*
|
|
227
227
|
* Returns indexes defined on this table.
|
|
228
228
|
* Intended for the advanced use cases of dynamically deciding which index to use for a query.
|
|
229
|
-
* If you think you need this, please chime in on ths issue in the Convex JS GitHub repo.
|
|
230
|
-
* https://github.com/get-convex/convex-js/issues/49
|
|
231
229
|
*/
|
|
232
230
|
" indexes"(): { indexDescriptor: string; fields: string[] }[] {
|
|
233
231
|
return this.indexes;
|
package/src/server/storage.ts
CHANGED
|
@@ -133,9 +133,9 @@ export interface StorageReader {
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
/**
|
|
136
|
-
* An interface to write files to storage within Convex mutation functions.
|
|
136
|
+
* An interface to read and write files to storage within Convex mutation functions.
|
|
137
137
|
*
|
|
138
|
-
* Available as `ctx.storage` in mutations.
|
|
138
|
+
* Available as `ctx.storage` in mutations, actions, and HTTP actions.
|
|
139
139
|
*
|
|
140
140
|
* @see https://docs.convex.dev/file-storage
|
|
141
141
|
* @public
|
|
@@ -195,46 +195,12 @@ export interface StorageWriter extends StorageReader {
|
|
|
195
195
|
storageId: T extends { __tableName: any } ? never : T,
|
|
196
196
|
): Promise<void>;
|
|
197
197
|
|
|
198
|
-
/**
|
|
199
|
-
* @internal
|
|
200
|
-
*/
|
|
201
|
-
// TODO: move `store` from StorageActionWriter to StorageWriter when mutation
|
|
202
|
-
// file storage access is ready for release
|
|
203
|
-
store(
|
|
204
|
-
blob: Blob,
|
|
205
|
-
options?: { sha256?: string },
|
|
206
|
-
): Promise<GenericId<"_storage">>;
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* @internal
|
|
210
|
-
*/
|
|
211
|
-
// TODO: move `get` from StorageActionWriter to StorageWriter when mutation
|
|
212
|
-
// file storage access is ready for release
|
|
213
|
-
get(storageId: GenericId<"_storage">): Promise<Blob | null>;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* An interface to read and write files to storage within Convex actions and HTTP actions.
|
|
218
|
-
*
|
|
219
|
-
* In actions, `ctx.storage` has additional methods not available in mutations:
|
|
220
|
-
* `get()` to download a file as a Blob, and `store()` to upload a Blob directly.
|
|
221
|
-
*
|
|
222
|
-
* @example
|
|
223
|
-
* ```typescript
|
|
224
|
-
* // In an action, download and re-upload a file:
|
|
225
|
-
* const blob = await ctx.storage.get(storageId);
|
|
226
|
-
* if (blob) {
|
|
227
|
-
* const newStorageId = await ctx.storage.store(blob);
|
|
228
|
-
* }
|
|
229
|
-
* ```
|
|
230
|
-
*
|
|
231
|
-
* @public
|
|
232
|
-
*/
|
|
233
|
-
export interface StorageActionWriter extends StorageWriter {
|
|
234
198
|
/**
|
|
235
199
|
* Download a file from storage as a Blob.
|
|
236
200
|
*
|
|
237
|
-
*
|
|
201
|
+
* In mutations, files read count toward the transaction's `filesRead` and
|
|
202
|
+
* `fileReadBytes` limits. Use
|
|
203
|
+
* `ctx.meta.getTransactionMetrics()` to check the remaining headroom.
|
|
238
204
|
*
|
|
239
205
|
* @param storageId - The `Id<"_storage">` of the file.
|
|
240
206
|
* @returns A Blob containing the file contents, or `null` if the file doesn't exist.
|
|
@@ -249,16 +215,21 @@ export interface StorageActionWriter extends StorageWriter {
|
|
|
249
215
|
get<T extends StorageId>(
|
|
250
216
|
storageId: T extends { __tableName: any } ? never : T,
|
|
251
217
|
): Promise<Blob | null>;
|
|
218
|
+
|
|
252
219
|
/**
|
|
253
220
|
* Upload a Blob directly to storage.
|
|
254
221
|
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
222
|
+
* To upload files from a client, use {@link StorageWriter.generateUploadUrl}
|
|
223
|
+
* instead.
|
|
224
|
+
*
|
|
225
|
+
* In mutations, files stored count toward the transaction's `filesWritten`
|
|
226
|
+
* and `fileWriteBytes` limits. Use
|
|
227
|
+
* `ctx.meta.getTransactionMetrics()` to check the remaining headroom.
|
|
257
228
|
*
|
|
258
229
|
* @example
|
|
259
230
|
* ```typescript
|
|
260
231
|
* const storageId = await ctx.storage.store(blob);
|
|
261
|
-
* //
|
|
232
|
+
* // If in an action, save storageId to the database via ctx.runMutation
|
|
262
233
|
* ```
|
|
263
234
|
*
|
|
264
235
|
* @param blob - The Blob to store.
|
|
@@ -270,3 +241,19 @@ export interface StorageActionWriter extends StorageWriter {
|
|
|
270
241
|
options?: { sha256?: string },
|
|
271
242
|
): Promise<GenericId<"_storage">>;
|
|
272
243
|
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* An interface to read and write files to storage within Convex actions and HTTP actions.
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* // In an action, download and re-upload a file:
|
|
251
|
+
* const blob = await ctx.storage.get(storageId);
|
|
252
|
+
* if (blob) {
|
|
253
|
+
* const newStorageId = await ctx.storage.store(blob);
|
|
254
|
+
* }
|
|
255
|
+
* ```
|
|
256
|
+
*
|
|
257
|
+
* @public
|
|
258
|
+
*/
|
|
259
|
+
export interface StorageActionWriter extends StorageWriter {}
|