convex 1.34.1 → 1.35.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 +86 -43
- package/dist/browser.bundle.js +8 -2
- package/dist/browser.bundle.js.map +3 -3
- package/dist/cjs/browser/index-node.js +3 -1
- package/dist/cjs/browser/index.js +3 -1
- package/dist/cjs/browser/index.js.map +2 -2
- package/dist/cjs/browser/query_options.js.map +2 -2
- package/dist/cjs/cli/aiFiles.js +31 -13
- package/dist/cjs/cli/aiFiles.js.map +3 -3
- package/dist/cjs/cli/codegen_templates/readme.js +14 -1
- package/dist/cjs/cli/codegen_templates/readme.js.map +2 -2
- package/dist/cjs/cli/configure.js +21 -24
- package/dist/cjs/cli/configure.js.map +2 -2
- package/dist/cjs/cli/deploy.js +7 -8
- package/dist/cjs/cli/deploy.js.map +2 -2
- package/dist/cjs/cli/deploymentCreate.js +225 -40
- package/dist/cjs/cli/deploymentCreate.js.map +3 -3
- package/dist/cjs/cli/deploymentSelect.js +14 -13
- package/dist/cjs/cli/deploymentSelect.js.map +2 -2
- package/dist/cjs/cli/dev.js +30 -11
- package/dist/cjs/cli/dev.js.map +2 -2
- package/dist/cjs/cli/docs.js +1 -1
- package/dist/cjs/cli/docs.js.map +2 -2
- package/dist/cjs/cli/init.js +1 -1
- package/dist/cjs/cli/init.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/agentsmd.js +14 -10
- package/dist/cjs/cli/lib/aiFiles/agentsmd.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/claudemd.js +14 -10
- package/dist/cjs/cli/lib/aiFiles/claudemd.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js +10 -3
- package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/index.js +70 -86
- package/dist/cjs/cli/lib/aiFiles/index.js.map +3 -3
- package/dist/cjs/cli/lib/aiFiles/skills.js +28 -12
- package/dist/cjs/cli/lib/aiFiles/skills.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/state.js +96 -0
- package/dist/cjs/cli/lib/aiFiles/state.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/status.js +31 -28
- package/dist/cjs/cli/lib/aiFiles/status.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/utils.js +31 -14
- package/dist/cjs/cli/lib/aiFiles/utils.js.map +2 -2
- package/dist/cjs/cli/lib/api.js +70 -7
- package/dist/cjs/cli/lib/api.js.map +2 -2
- package/dist/cjs/cli/lib/command.js +4 -5
- package/dist/cjs/cli/lib/command.js.map +2 -2
- package/dist/cjs/cli/lib/config.js +41 -4
- package/dist/cjs/cli/lib/config.js.map +3 -3
- package/dist/cjs/cli/lib/deploy2.js +9 -26
- package/dist/cjs/cli/lib/deploy2.js.map +2 -2
- package/dist/cjs/cli/lib/deployApi/componentDefinition.js +4 -1
- package/dist/cjs/cli/lib/deployApi/componentDefinition.js.map +2 -2
- package/dist/cjs/cli/lib/deploymentSelection.js +45 -2
- package/dist/cjs/cli/lib/deploymentSelection.js.map +2 -2
- package/dist/cjs/cli/lib/deploymentSelector.js +1 -0
- package/dist/cjs/cli/lib/deploymentSelector.js.map +2 -2
- package/dist/cjs/cli/lib/dev.js +162 -117
- package/dist/cjs/cli/lib/dev.js.map +2 -2
- package/dist/cjs/cli/lib/env.js +1 -13
- package/dist/cjs/cli/lib/env.js.map +2 -2
- package/dist/cjs/cli/lib/expiration.js +104 -0
- package/dist/cjs/cli/lib/expiration.js.map +7 -0
- package/dist/cjs/cli/lib/generatedFunctionLogsApi.js.map +1 -1
- package/dist/cjs/cli/lib/init.js +4 -3
- package/dist/cjs/cli/lib/init.js.map +2 -2
- package/dist/cjs/cli/lib/insights.js +1 -1
- package/dist/cjs/cli/lib/insights.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/anonymous.js +14 -7
- package/dist/cjs/cli/lib/localDeployment/anonymous.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/localDeployment.js +8 -10
- package/dist/cjs/cli/lib/localDeployment/localDeployment.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/run.js +1 -0
- package/dist/cjs/cli/lib/localDeployment/run.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/upgrade.js +2 -2
- package/dist/cjs/cli/lib/localDeployment/upgrade.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/utils.js +9 -0
- package/dist/cjs/cli/lib/localDeployment/utils.js.map +2 -2
- package/dist/cjs/cli/lib/mcp/tools/status.js +1 -1
- package/dist/cjs/cli/lib/mcp/tools/status.js.map +2 -2
- package/dist/cjs/cli/lib/updates.js +8 -9
- package/dist/cjs/cli/lib/updates.js.map +2 -2
- package/dist/cjs/cli/lib/usage.js +2 -1
- package/dist/cjs/cli/lib/usage.js.map +2 -2
- package/dist/cjs/cli/lib/utils/prompts.js +2 -1
- package/dist/cjs/cli/lib/utils/prompts.js.map +2 -2
- package/dist/cjs/cli/lib/utils/utils.js +46 -20
- package/dist/cjs/cli/lib/utils/utils.js.map +3 -3
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react/client.js +43 -6
- package/dist/cjs/react/client.js.map +2 -2
- package/dist/cjs/react/index.js +2 -0
- package/dist/cjs/react/index.js.map +2 -2
- package/dist/cjs/react-clerk/ConvexProviderWithClerk.js.map +1 -1
- package/dist/cjs/server/api.js.map +2 -2
- package/dist/cjs/server/components/definition.js.map +1 -1
- package/dist/cjs/server/components/index.js +40 -4
- package/dist/cjs/server/components/index.js.map +2 -2
- package/dist/cjs/server/data_model.js.map +1 -1
- package/dist/cjs/server/impl/meta_impl.js +78 -0
- package/dist/cjs/server/impl/meta_impl.js.map +7 -0
- package/dist/cjs/server/impl/registration_impl.js +16 -11
- 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 +17 -0
- package/dist/cjs/server/meta.js.map +7 -0
- package/dist/cjs/server/registration.js.map +1 -1
- package/dist/cjs-types/browser/index.d.ts +1 -0
- package/dist/cjs-types/browser/index.d.ts.map +1 -1
- package/dist/cjs-types/browser/query_options.d.ts +12 -9
- package/dist/cjs-types/browser/query_options.d.ts.map +1 -1
- package/dist/cjs-types/cli/aiFiles.d.ts.map +1 -1
- package/dist/cjs-types/cli/codegen_templates/readme.d.ts.map +1 -1
- package/dist/cjs-types/cli/configure.d.ts.map +1 -1
- package/dist/cjs-types/cli/configure.test.d.ts +2 -0
- package/dist/cjs-types/cli/configure.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/deploy.d.ts.map +1 -1
- package/dist/cjs-types/cli/deploymentCreate.d.ts +1 -0
- package/dist/cjs-types/cli/deploymentCreate.d.ts.map +1 -1
- package/dist/cjs-types/cli/deploymentSelect.d.ts +2 -1
- package/dist/cjs-types/cli/deploymentSelect.d.ts.map +1 -1
- package/dist/cjs-types/cli/dev.d.ts +3 -1
- package/dist/cjs-types/cli/dev.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/agentsmd.d.ts +5 -5
- package/dist/cjs-types/cli/lib/aiFiles/agentsmd.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.d.ts +5 -5
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts +3 -3
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/index.d.ts +20 -18
- package/dist/cjs-types/cli/lib/aiFiles/index.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts +6 -4
- package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/state.d.ts +38 -0
- package/dist/cjs-types/cli/lib/aiFiles/state.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/state.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/aiFiles/state.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/status.d.ts +4 -1
- package/dist/cjs-types/cli/lib/aiFiles/status.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/utils.d.ts +13 -3
- package/dist/cjs-types/cli/lib/aiFiles/utils.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/utils.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/aiFiles/utils.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/api.d.ts +3 -3
- package/dist/cjs-types/cli/lib/api.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/command.d.ts +2 -1
- package/dist/cjs-types/cli/lib/command.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/config.d.ts +17 -6
- package/dist/cjs-types/cli/lib/config.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deploy2.d.ts +5 -2
- package/dist/cjs-types/cli/lib/deploy2.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deployApi/componentDefinition.d.ts +27 -12
- package/dist/cjs-types/cli/lib/deployApi/componentDefinition.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deployApi/definitionConfig.d.ts +24 -24
- package/dist/cjs-types/cli/lib/deployApi/modules.d.ts +14 -14
- package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts +61 -52
- package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deploymentSelection.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deploymentSelector.d.ts +2 -0
- package/dist/cjs-types/cli/lib/deploymentSelector.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/dev.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/env.d.ts +0 -4
- package/dist/cjs-types/cli/lib/env.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/expiration.d.ts +35 -0
- package/dist/cjs-types/cli/lib/expiration.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/expiration.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/expiration.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts +16 -1
- package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/init.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/anonymous.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/localDeployment.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/run.d.ts +15 -0
- package/dist/cjs-types/cli/lib/localDeployment/run.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts +7 -0
- package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/mcp/requestContext.d.ts +3 -3
- package/dist/cjs-types/cli/lib/mcp/tools/insights.d.ts +2 -2
- package/dist/cjs-types/cli/lib/updates.d.ts +4 -3
- package/dist/cjs-types/cli/lib/updates.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/usage.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/utils/prompts.d.ts +1 -0
- package/dist/cjs-types/cli/lib/utils/prompts.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/utils/utils.d.ts +16 -2
- package/dist/cjs-types/cli/lib/utils/utils.d.ts.map +1 -1
- package/dist/cjs-types/index.d.ts +1 -1
- package/dist/cjs-types/react/client.d.ts +54 -2
- package/dist/cjs-types/react/client.d.ts.map +1 -1
- package/dist/cjs-types/react/index.d.ts +7 -2
- package/dist/cjs-types/react/index.d.ts.map +1 -1
- package/dist/cjs-types/react/use_query_object_options.test.d.ts +5 -0
- package/dist/cjs-types/react/use_query_object_options.test.d.ts.map +1 -0
- package/dist/cjs-types/react/use_query_result.test.d.ts +5 -0
- package/dist/cjs-types/react/use_query_result.test.d.ts.map +1 -0
- package/dist/cjs-types/react-clerk/ConvexProviderWithClerk.d.ts +1 -1
- package/dist/cjs-types/server/api.d.ts +5 -1
- package/dist/cjs-types/server/api.d.ts.map +1 -1
- package/dist/cjs-types/server/components/definition.d.ts +1 -0
- package/dist/cjs-types/server/components/definition.d.ts.map +1 -1
- package/dist/cjs-types/server/components/index.d.ts +5 -1
- package/dist/cjs-types/server/components/index.d.ts.map +1 -1
- package/dist/cjs-types/server/data_model.d.ts +2 -1
- package/dist/cjs-types/server/data_model.d.ts.map +1 -1
- package/dist/cjs-types/server/impl/meta_impl.d.ts +5 -0
- package/dist/cjs-types/server/impl/meta_impl.d.ts.map +1 -0
- package/dist/cjs-types/server/impl/registration_impl.d.ts.map +1 -1
- package/dist/cjs-types/server/index.d.ts +1 -0
- package/dist/cjs-types/server/index.d.ts.map +1 -1
- package/dist/cjs-types/server/meta.d.ts +72 -0
- package/dist/cjs-types/server/meta.d.ts.map +1 -0
- package/dist/cjs-types/server/registration.d.ts.map +1 -1
- package/dist/cli.bundle.cjs +1670 -1214
- package/dist/cli.bundle.cjs.map +4 -4
- package/dist/esm/browser/index-node.js +1 -0
- package/dist/esm/browser/index.js +1 -0
- package/dist/esm/browser/index.js.map +2 -2
- package/dist/esm/browser/query_options.js.map +2 -2
- package/dist/esm/cli/aiFiles.js +33 -15
- package/dist/esm/cli/aiFiles.js.map +2 -2
- package/dist/esm/cli/codegen_templates/readme.js +14 -1
- package/dist/esm/cli/codegen_templates/readme.js.map +2 -2
- package/dist/esm/cli/configure.js +23 -26
- package/dist/esm/cli/configure.js.map +2 -2
- package/dist/esm/cli/deploy.js +11 -10
- package/dist/esm/cli/deploy.js.map +2 -2
- package/dist/esm/cli/deploymentCreate.js +238 -42
- package/dist/esm/cli/deploymentCreate.js.map +2 -2
- package/dist/esm/cli/deploymentSelect.js +13 -12
- package/dist/esm/cli/deploymentSelect.js.map +2 -2
- package/dist/esm/cli/dev.js +34 -13
- package/dist/esm/cli/dev.js.map +2 -2
- package/dist/esm/cli/docs.js +1 -1
- package/dist/esm/cli/docs.js.map +2 -2
- package/dist/esm/cli/init.js +2 -2
- package/dist/esm/cli/init.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/agentsmd.js +13 -9
- package/dist/esm/cli/lib/aiFiles/agentsmd.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/claudemd.js +13 -9
- package/dist/esm/cli/lib/aiFiles/claudemd.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/guidelinesmd.js +12 -5
- package/dist/esm/cli/lib/aiFiles/guidelinesmd.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/index.js +72 -89
- package/dist/esm/cli/lib/aiFiles/index.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/skills.js +29 -13
- package/dist/esm/cli/lib/aiFiles/skills.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/state.js +60 -0
- package/dist/esm/cli/lib/aiFiles/state.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/status.js +32 -29
- package/dist/esm/cli/lib/aiFiles/status.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/utils.js +25 -10
- package/dist/esm/cli/lib/aiFiles/utils.js.map +2 -2
- package/dist/esm/cli/lib/api.js +70 -7
- package/dist/esm/cli/lib/api.js.map +2 -2
- package/dist/esm/cli/lib/command.js +4 -5
- package/dist/esm/cli/lib/command.js.map +2 -2
- package/dist/esm/cli/lib/config.js +39 -3
- package/dist/esm/cli/lib/config.js.map +2 -2
- package/dist/esm/cli/lib/deploy2.js +13 -26
- package/dist/esm/cli/lib/deploy2.js.map +2 -2
- package/dist/esm/cli/lib/deployApi/componentDefinition.js +4 -1
- package/dist/esm/cli/lib/deployApi/componentDefinition.js.map +2 -2
- package/dist/esm/cli/lib/deploymentSelection.js +46 -2
- package/dist/esm/cli/lib/deploymentSelection.js.map +2 -2
- package/dist/esm/cli/lib/deploymentSelector.js +1 -0
- package/dist/esm/cli/lib/deploymentSelector.js.map +2 -2
- package/dist/esm/cli/lib/dev.js +162 -118
- package/dist/esm/cli/lib/dev.js.map +2 -2
- package/dist/esm/cli/lib/env.js +0 -11
- package/dist/esm/cli/lib/env.js.map +2 -2
- package/dist/esm/cli/lib/expiration.js +80 -0
- package/dist/esm/cli/lib/expiration.js.map +7 -0
- package/dist/esm/cli/lib/init.js +4 -3
- package/dist/esm/cli/lib/init.js.map +2 -2
- package/dist/esm/cli/lib/insights.js +1 -1
- package/dist/esm/cli/lib/insights.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/anonymous.js +16 -9
- package/dist/esm/cli/lib/localDeployment/anonymous.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/localDeployment.js +9 -11
- package/dist/esm/cli/lib/localDeployment/localDeployment.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/run.js +1 -1
- package/dist/esm/cli/lib/localDeployment/run.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/upgrade.js +2 -2
- package/dist/esm/cli/lib/localDeployment/upgrade.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/utils.js +8 -0
- package/dist/esm/cli/lib/localDeployment/utils.js.map +2 -2
- package/dist/esm/cli/lib/mcp/tools/status.js +1 -1
- package/dist/esm/cli/lib/mcp/tools/status.js.map +2 -2
- package/dist/esm/cli/lib/updates.js +11 -9
- package/dist/esm/cli/lib/updates.js.map +2 -2
- package/dist/esm/cli/lib/usage.js +2 -1
- package/dist/esm/cli/lib/usage.js.map +2 -2
- package/dist/esm/cli/lib/utils/prompts.js +2 -1
- package/dist/esm/cli/lib/utils/prompts.js.map +2 -2
- package/dist/esm/cli/lib/utils/utils.js +45 -20
- package/dist/esm/cli/lib/utils/utils.js.map +3 -3
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/react/client.js +43 -6
- package/dist/esm/react/client.js.map +2 -2
- package/dist/esm/react/index.js +1 -0
- package/dist/esm/react/index.js.map +2 -2
- package/dist/esm/react-clerk/ConvexProviderWithClerk.js.map +1 -1
- package/dist/esm/server/api.js.map +2 -2
- package/dist/esm/server/components/index.js +40 -4
- package/dist/esm/server/components/index.js.map +2 -2
- package/dist/esm/server/impl/meta_impl.js +54 -0
- package/dist/esm/server/impl/meta_impl.js.map +7 -0
- package/dist/esm/server/impl/registration_impl.js +20 -11
- package/dist/esm/server/impl/registration_impl.js.map +2 -2
- package/dist/esm/server/index.js.map +2 -2
- package/dist/esm/server/meta.js +2 -0
- package/dist/esm/server/meta.js.map +7 -0
- package/dist/esm-types/browser/index.d.ts +1 -0
- package/dist/esm-types/browser/index.d.ts.map +1 -1
- package/dist/esm-types/browser/query_options.d.ts +12 -9
- package/dist/esm-types/browser/query_options.d.ts.map +1 -1
- package/dist/esm-types/cli/aiFiles.d.ts.map +1 -1
- package/dist/esm-types/cli/codegen_templates/readme.d.ts.map +1 -1
- package/dist/esm-types/cli/configure.d.ts.map +1 -1
- package/dist/esm-types/cli/configure.test.d.ts +2 -0
- package/dist/esm-types/cli/configure.test.d.ts.map +1 -0
- package/dist/esm-types/cli/deploy.d.ts.map +1 -1
- package/dist/esm-types/cli/deploymentCreate.d.ts +1 -0
- package/dist/esm-types/cli/deploymentCreate.d.ts.map +1 -1
- package/dist/esm-types/cli/deploymentSelect.d.ts +2 -1
- package/dist/esm-types/cli/deploymentSelect.d.ts.map +1 -1
- package/dist/esm-types/cli/dev.d.ts +3 -1
- package/dist/esm-types/cli/dev.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/agentsmd.d.ts +5 -5
- package/dist/esm-types/cli/lib/aiFiles/agentsmd.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/claudemd.d.ts +5 -5
- package/dist/esm-types/cli/lib/aiFiles/claudemd.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts +3 -3
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/index.d.ts +20 -18
- package/dist/esm-types/cli/lib/aiFiles/index.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/skills.d.ts +6 -4
- package/dist/esm-types/cli/lib/aiFiles/skills.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/state.d.ts +38 -0
- package/dist/esm-types/cli/lib/aiFiles/state.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/state.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/aiFiles/state.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/status.d.ts +4 -1
- package/dist/esm-types/cli/lib/aiFiles/status.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/utils.d.ts +13 -3
- package/dist/esm-types/cli/lib/aiFiles/utils.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/utils.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/aiFiles/utils.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/api.d.ts +3 -3
- package/dist/esm-types/cli/lib/api.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/command.d.ts +2 -1
- package/dist/esm-types/cli/lib/command.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/config.d.ts +17 -6
- package/dist/esm-types/cli/lib/config.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deploy2.d.ts +5 -2
- package/dist/esm-types/cli/lib/deploy2.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deployApi/componentDefinition.d.ts +27 -12
- package/dist/esm-types/cli/lib/deployApi/componentDefinition.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deployApi/definitionConfig.d.ts +24 -24
- package/dist/esm-types/cli/lib/deployApi/modules.d.ts +14 -14
- package/dist/esm-types/cli/lib/deployApi/startPush.d.ts +61 -52
- package/dist/esm-types/cli/lib/deployApi/startPush.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deploymentSelection.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deploymentSelector.d.ts +2 -0
- package/dist/esm-types/cli/lib/deploymentSelector.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/dev.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/env.d.ts +0 -4
- package/dist/esm-types/cli/lib/env.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/expiration.d.ts +35 -0
- package/dist/esm-types/cli/lib/expiration.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/expiration.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/expiration.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts +16 -1
- package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/init.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/anonymous.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/localDeployment.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/run.d.ts +15 -0
- package/dist/esm-types/cli/lib/localDeployment/run.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/utils.d.ts +7 -0
- package/dist/esm-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/mcp/requestContext.d.ts +3 -3
- package/dist/esm-types/cli/lib/mcp/tools/insights.d.ts +2 -2
- package/dist/esm-types/cli/lib/updates.d.ts +4 -3
- package/dist/esm-types/cli/lib/updates.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/usage.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/utils/prompts.d.ts +1 -0
- package/dist/esm-types/cli/lib/utils/prompts.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/utils/utils.d.ts +16 -2
- package/dist/esm-types/cli/lib/utils/utils.d.ts.map +1 -1
- package/dist/esm-types/index.d.ts +1 -1
- package/dist/esm-types/react/client.d.ts +54 -2
- package/dist/esm-types/react/client.d.ts.map +1 -1
- package/dist/esm-types/react/index.d.ts +7 -2
- package/dist/esm-types/react/index.d.ts.map +1 -1
- package/dist/esm-types/react/use_query_object_options.test.d.ts +5 -0
- package/dist/esm-types/react/use_query_object_options.test.d.ts.map +1 -0
- package/dist/esm-types/react/use_query_result.test.d.ts +5 -0
- package/dist/esm-types/react/use_query_result.test.d.ts.map +1 -0
- package/dist/esm-types/react-clerk/ConvexProviderWithClerk.d.ts +1 -1
- package/dist/esm-types/server/api.d.ts +5 -1
- package/dist/esm-types/server/api.d.ts.map +1 -1
- package/dist/esm-types/server/components/definition.d.ts +1 -0
- package/dist/esm-types/server/components/definition.d.ts.map +1 -1
- package/dist/esm-types/server/components/index.d.ts +5 -1
- package/dist/esm-types/server/components/index.d.ts.map +1 -1
- package/dist/esm-types/server/data_model.d.ts +2 -1
- package/dist/esm-types/server/data_model.d.ts.map +1 -1
- package/dist/esm-types/server/impl/meta_impl.d.ts +5 -0
- package/dist/esm-types/server/impl/meta_impl.d.ts.map +1 -0
- package/dist/esm-types/server/impl/registration_impl.d.ts.map +1 -1
- package/dist/esm-types/server/index.d.ts +1 -0
- package/dist/esm-types/server/index.d.ts.map +1 -1
- package/dist/esm-types/server/meta.d.ts +72 -0
- package/dist/esm-types/server/meta.d.ts.map +1 -0
- package/dist/esm-types/server/registration.d.ts.map +1 -1
- package/dist/react.bundle.js +50 -7
- package/dist/react.bundle.js.map +3 -3
- package/package.json +11 -7
- package/schemas/convex.schema.json +15 -2
- package/src/browser/index.ts +3 -0
- package/src/browser/query_options.test.ts +0 -9
- package/src/browser/query_options.ts +36 -15
- package/src/cli/aiFiles.ts +44 -14
- package/src/cli/codegen_templates/readme.ts +14 -1
- package/src/cli/configure.test.ts +138 -0
- package/src/cli/configure.ts +48 -47
- package/src/cli/deploy.ts +12 -9
- package/src/cli/deploymentCreate.test.ts +349 -14
- package/src/cli/deploymentCreate.ts +268 -41
- package/src/cli/deploymentSelect.test.ts +136 -27
- package/src/cli/deploymentSelect.ts +50 -41
- package/src/cli/deploymentSelection.test.ts +343 -35
- package/src/cli/dev.ts +49 -14
- package/src/cli/docs.ts +1 -1
- package/src/cli/init.ts +2 -2
- package/src/cli/lib/aiFiles/agentsmd.ts +15 -11
- package/src/cli/lib/aiFiles/claudemd.ts +15 -11
- package/src/cli/lib/aiFiles/guidelinesmd.test.ts +12 -2
- package/src/cli/lib/aiFiles/guidelinesmd.ts +15 -7
- package/src/cli/lib/aiFiles/index.test.ts +188 -222
- package/src/cli/lib/aiFiles/index.ts +119 -125
- package/src/cli/lib/aiFiles/integration.test.ts +112 -45
- package/src/cli/lib/aiFiles/prompt.test.ts +6 -6
- package/src/cli/lib/aiFiles/skills.ts +46 -16
- package/src/cli/lib/aiFiles/state.test.ts +280 -0
- package/src/cli/lib/aiFiles/state.ts +82 -0
- package/src/cli/lib/aiFiles/status.ts +45 -39
- package/src/cli/lib/aiFiles/utils.test.ts +50 -0
- package/src/cli/lib/aiFiles/utils.ts +38 -10
- package/src/cli/lib/api.ts +88 -7
- package/src/cli/lib/command.ts +12 -7
- package/src/cli/lib/config.test.ts +184 -7
- package/src/cli/lib/config.ts +67 -7
- package/src/cli/lib/deploy2.ts +14 -27
- package/src/cli/lib/deployApi/componentDefinition.ts +4 -1
- package/src/cli/lib/deploymentSelection.ts +59 -6
- package/src/cli/lib/deploymentSelector.test.ts +6 -0
- package/src/cli/lib/deploymentSelector.ts +2 -0
- package/src/cli/lib/dev.ts +202 -153
- package/src/cli/lib/env.ts +0 -15
- package/src/cli/lib/expiration.test.ts +159 -0
- package/src/cli/lib/expiration.ts +124 -0
- package/src/cli/lib/generatedFunctionLogsApi.ts +16 -1
- package/src/cli/lib/init.ts +6 -2
- package/src/cli/lib/insights.ts +1 -1
- package/src/cli/lib/localDeployment/anonymous.ts +19 -9
- package/src/cli/lib/localDeployment/localDeployment.ts +9 -11
- package/src/cli/lib/localDeployment/run.ts +1 -1
- package/src/cli/lib/localDeployment/upgrade.ts +12 -10
- package/src/cli/lib/localDeployment/utils.ts +12 -0
- package/src/cli/lib/mcp/tools/status.ts +1 -1
- package/src/cli/lib/updates.test.ts +102 -75
- package/src/cli/lib/updates.ts +14 -12
- package/src/cli/lib/usage.ts +3 -1
- package/src/cli/lib/utils/prompts.ts +2 -0
- package/src/cli/lib/utils/utils.test.ts +6 -6
- package/src/cli/lib/utils/utils.ts +66 -27
- package/src/index.ts +1 -1
- package/src/react/client.test.tsx +65 -0
- package/src/react/client.ts +129 -13
- package/src/react/index.ts +9 -1
- package/src/react/use_query_object_options.test.ts +50 -0
- package/src/react/use_query_result.test.ts +41 -0
- package/src/react-clerk/ConvexProviderWithClerk.test.tsx +1 -1
- package/src/react-clerk/ConvexProviderWithClerk.tsx +1 -1
- package/src/server/api.ts +5 -1
- package/src/server/components/definition.ts +3 -0
- package/src/server/components/index.ts +62 -5
- package/src/server/data_model.ts +2 -1
- package/src/server/impl/meta_impl.ts +74 -0
- package/src/server/impl/registration_impl.ts +21 -9
- package/src/server/index.ts +8 -0
- package/src/server/meta.ts +76 -0
- package/src/server/registration.ts +10 -0
- package/src/server/schema.test.ts +78 -1
- package/dist/cjs/cli/lib/aiFiles/config.js +0 -171
- package/dist/cjs/cli/lib/aiFiles/config.js.map +0 -7
- package/dist/cjs-types/cli/lib/aiFiles/config.d.ts +0 -46
- package/dist/cjs-types/cli/lib/aiFiles/config.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/aiFiles/config.test.d.ts +0 -2
- package/dist/cjs-types/cli/lib/aiFiles/config.test.d.ts.map +0 -1
- package/dist/esm/cli/lib/aiFiles/config.js +0 -135
- package/dist/esm/cli/lib/aiFiles/config.js.map +0 -7
- package/dist/esm-types/cli/lib/aiFiles/config.d.ts +0 -46
- package/dist/esm-types/cli/lib/aiFiles/config.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/aiFiles/config.test.d.ts +0 -2
- package/dist/esm-types/cli/lib/aiFiles/config.test.d.ts.map +0 -1
- package/src/cli/lib/aiFiles/config.test.ts +0 -460
- package/src/cli/lib/aiFiles/config.ts +0 -188
- package/src/values/.claude/settings.local.json +0 -10
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
DeploymentSelection,
|
|
11
11
|
getDeploymentSelection,
|
|
12
12
|
getProjectDetails,
|
|
13
|
+
deploymentNameFromSelection,
|
|
13
14
|
} from "./lib/deploymentSelection.js";
|
|
14
15
|
import {
|
|
15
16
|
logNoDefaultRegionMessage,
|
|
@@ -19,35 +20,53 @@ import {
|
|
|
19
20
|
} from "./lib/utils/utils.js";
|
|
20
21
|
import { PlatformProjectDetails } from "@convex-dev/platform/managementApi";
|
|
21
22
|
import { getTeamAndProjectFromPreviewAdminKey } from "./lib/deployment.js";
|
|
22
|
-
import {
|
|
23
|
+
import { saveSelectedDeployment } from "./deploymentSelect.js";
|
|
23
24
|
import { promptOptions, promptString } from "./lib/utils/prompts.js";
|
|
24
25
|
import { chalkStderr } from "chalk";
|
|
25
26
|
import { parseDeploymentSelector } from "./lib/deploymentSelector.js";
|
|
27
|
+
import {
|
|
28
|
+
parseExpiration,
|
|
29
|
+
resolveExpiration,
|
|
30
|
+
validateExpiration,
|
|
31
|
+
} from "./lib/expiration.js";
|
|
32
|
+
import { ensureBackendBinaryDownloaded } from "./lib/localDeployment/download.js";
|
|
33
|
+
import {
|
|
34
|
+
loadProjectLocalConfig,
|
|
35
|
+
saveDeploymentConfig,
|
|
36
|
+
} from "./lib/localDeployment/filePaths.js";
|
|
37
|
+
import {
|
|
38
|
+
chooseLocalBackendPorts,
|
|
39
|
+
LOCAL_BACKEND_INSTANCE_SECRET,
|
|
40
|
+
} from "./lib/localDeployment/utils.js";
|
|
41
|
+
import { bigBrainStart } from "./lib/localDeployment/bigBrain.js";
|
|
42
|
+
|
|
43
|
+
const SUPPORTED_TYPES = ["dev", "prod", "preview"] as const;
|
|
26
44
|
|
|
27
45
|
export const deploymentCreate = new Command("create")
|
|
28
|
-
.summary("Create a new
|
|
46
|
+
.summary("Create a new deployment for a project")
|
|
29
47
|
.description(
|
|
30
|
-
"Create a new
|
|
31
|
-
" Create a dev deployment and select it:
|
|
32
|
-
" Create a prod staging
|
|
48
|
+
"Create a new deployment for a project.\n\n" +
|
|
49
|
+
" Create a dev deployment and select it: `npx convex deployment create dev/my-new-feature --type dev --select`\n" +
|
|
50
|
+
" Create a prod deployment named “staging”: `npx convex deployment create staging --type prod`\n" +
|
|
51
|
+
" Create a local deployment: `npx convex deployment create local`\n",
|
|
33
52
|
)
|
|
34
53
|
.argument("[ref]")
|
|
35
54
|
.allowExcessArguments(false)
|
|
36
55
|
.addOption(
|
|
37
|
-
new Option("--type <type>", "Deployment type").choices(
|
|
38
|
-
"dev",
|
|
39
|
-
"prod",
|
|
40
|
-
"preview",
|
|
41
|
-
] as const),
|
|
56
|
+
new Option("--type <type>", "Deployment type").choices(SUPPORTED_TYPES),
|
|
42
57
|
)
|
|
43
58
|
.option("--region <region>", "Deployment region")
|
|
44
59
|
.option(
|
|
45
60
|
"--select",
|
|
46
|
-
"Select the new deployment. This will update the Convex environment variables in .env.local
|
|
61
|
+
"Select the new deployment. This will update the Convex environment variables in .env.local. Subsequent `npx convex` commands will run against this deployment.",
|
|
47
62
|
)
|
|
48
63
|
.option(
|
|
49
64
|
"--default",
|
|
50
|
-
"
|
|
65
|
+
"Make the new deployment your default production deployment (used by `npx convex deploy`) or your personal dev deployment.",
|
|
66
|
+
)
|
|
67
|
+
.option(
|
|
68
|
+
"--expiration <value>",
|
|
69
|
+
'When the deployment expires (e.g. "none", "in 7 days", "2026-04-01T00:00:00Z", or a UNIX timestamp in seconds or milliseconds)',
|
|
51
70
|
)
|
|
52
71
|
.action(async (refParam, options) => {
|
|
53
72
|
const ctx = await oneoffContext({
|
|
@@ -56,10 +75,62 @@ export const deploymentCreate = new Command("create")
|
|
|
56
75
|
envFile: undefined,
|
|
57
76
|
});
|
|
58
77
|
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
:
|
|
78
|
+
const currentDeployment = await getDeploymentSelection(ctx, {
|
|
79
|
+
url: undefined,
|
|
80
|
+
adminKey: undefined,
|
|
81
|
+
envFile: undefined,
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
// Handle `deployment create local`
|
|
85
|
+
if (refParam !== undefined) {
|
|
86
|
+
if (refParam === "local") {
|
|
87
|
+
const cloudOnlyFlags = [
|
|
88
|
+
"type",
|
|
89
|
+
"region",
|
|
90
|
+
"default",
|
|
91
|
+
"expiration",
|
|
92
|
+
] as const;
|
|
93
|
+
for (const flag of cloudOnlyFlags) {
|
|
94
|
+
if (options[flag]) {
|
|
95
|
+
return await ctx.crash({
|
|
96
|
+
exitCode: 1,
|
|
97
|
+
errorType: "fatal",
|
|
98
|
+
printedMessage: `--${flag} cannot be used when creating a local deployment`,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
await createLocalDeployment(
|
|
103
|
+
ctx,
|
|
104
|
+
currentDeployment,
|
|
105
|
+
options.select ?? false,
|
|
106
|
+
);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const expiresAt = await resolveExpiresAtOrCrash(ctx, options.expiration);
|
|
112
|
+
|
|
113
|
+
const {
|
|
114
|
+
ref,
|
|
115
|
+
regionDetails,
|
|
116
|
+
projectId,
|
|
117
|
+
type,
|
|
118
|
+
isDefault,
|
|
119
|
+
teamSlug,
|
|
120
|
+
projectSlug,
|
|
121
|
+
} = process.stdin.isTTY
|
|
122
|
+
? await resolveOptionsInteractively(
|
|
123
|
+
ctx,
|
|
124
|
+
currentDeployment,
|
|
125
|
+
refParam,
|
|
126
|
+
options,
|
|
127
|
+
)
|
|
128
|
+
: await resolveOptionsNoninteractively(
|
|
129
|
+
ctx,
|
|
130
|
+
currentDeployment,
|
|
131
|
+
refParam,
|
|
132
|
+
options,
|
|
133
|
+
);
|
|
63
134
|
|
|
64
135
|
showSpinner(
|
|
65
136
|
`Creating ${type} deployment` +
|
|
@@ -79,6 +150,7 @@ export const deploymentCreate = new Command("create")
|
|
|
79
150
|
region: regionDetails?.name ?? null,
|
|
80
151
|
reference: ref ?? null,
|
|
81
152
|
isDefault,
|
|
153
|
+
...(expiresAt !== undefined ? { expiresAt } : {}),
|
|
82
154
|
},
|
|
83
155
|
},
|
|
84
156
|
)
|
|
@@ -97,20 +169,113 @@ export const deploymentCreate = new Command("create")
|
|
|
97
169
|
|
|
98
170
|
if (!options.select) {
|
|
99
171
|
logFinishedStep(
|
|
100
|
-
`Provisioned a ${created.isDefault ? "default " : ""}${created.deploymentType} deployment
|
|
101
|
-
);
|
|
102
|
-
logMessage(
|
|
103
|
-
chalkStderr.gray(
|
|
104
|
-
"Hint: use `npx convex deployment create --select` to immediately select the newly created deployment.",
|
|
105
|
-
),
|
|
172
|
+
`Provisioned a ${created.isDefault ? "default " : ""}${created.deploymentType} deployment.`,
|
|
106
173
|
);
|
|
174
|
+
if (type !== "prod") {
|
|
175
|
+
const selectRef = `${teamSlug}:${projectSlug}:${created.reference}`;
|
|
176
|
+
logMessage(
|
|
177
|
+
`\nTo make \`npx convex\` use this deployment, run ${chalkStderr.bold(`npx convex deployment select ${selectRef}`)}`,
|
|
178
|
+
);
|
|
179
|
+
logMessage(
|
|
180
|
+
chalkStderr.gray(
|
|
181
|
+
"Hint: use `--select` to immediately select the newly created deployment.",
|
|
182
|
+
),
|
|
183
|
+
);
|
|
184
|
+
}
|
|
107
185
|
}
|
|
108
186
|
|
|
109
187
|
if (options.select) {
|
|
110
|
-
|
|
188
|
+
const selection: DeploymentSelection = {
|
|
189
|
+
kind: "deploymentWithinProject",
|
|
190
|
+
targetProject: {
|
|
191
|
+
kind: "teamAndProjectSlugs",
|
|
192
|
+
teamSlug,
|
|
193
|
+
projectSlug,
|
|
194
|
+
},
|
|
195
|
+
selectionWithinProject: {
|
|
196
|
+
kind: "deploymentSelector",
|
|
197
|
+
selector: created.reference,
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
await saveSelectedDeployment(
|
|
201
|
+
ctx,
|
|
202
|
+
created.reference,
|
|
203
|
+
selection,
|
|
204
|
+
deploymentNameFromSelection(currentDeployment),
|
|
205
|
+
);
|
|
111
206
|
}
|
|
112
207
|
});
|
|
113
208
|
|
|
209
|
+
async function createLocalDeployment(
|
|
210
|
+
ctx: Context,
|
|
211
|
+
currentDeployment: DeploymentSelection,
|
|
212
|
+
select: boolean,
|
|
213
|
+
): Promise<void> {
|
|
214
|
+
const existing = loadProjectLocalConfig(ctx);
|
|
215
|
+
if (existing) {
|
|
216
|
+
return await ctx.crash({
|
|
217
|
+
exitCode: 1,
|
|
218
|
+
errorType: "fatal",
|
|
219
|
+
printedMessage: "A local deployment already exists.",
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
const { teamSlug, slug: projectSlug } = await resolveProject(
|
|
224
|
+
ctx,
|
|
225
|
+
currentDeployment,
|
|
226
|
+
);
|
|
227
|
+
|
|
228
|
+
showSpinner("Downloading local backend...");
|
|
229
|
+
const { version } = await ensureBackendBinaryDownloaded(ctx, {
|
|
230
|
+
kind: "latest",
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
const { cloudPort, sitePort } = await chooseLocalBackendPorts(ctx);
|
|
234
|
+
|
|
235
|
+
showSpinner("Registering local deployment...");
|
|
236
|
+
const { deploymentName, adminKey } = await bigBrainStart(ctx, {
|
|
237
|
+
port: cloudPort,
|
|
238
|
+
projectSlug,
|
|
239
|
+
teamSlug,
|
|
240
|
+
instanceName: null,
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
saveDeploymentConfig(ctx, "local", deploymentName, {
|
|
244
|
+
backendVersion: version,
|
|
245
|
+
ports: { cloud: cloudPort, site: sitePort },
|
|
246
|
+
adminKey,
|
|
247
|
+
instanceSecret: LOCAL_BACKEND_INSTANCE_SECRET,
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
logFinishedStep("Created local deployment.");
|
|
251
|
+
|
|
252
|
+
if (select) {
|
|
253
|
+
const selection: DeploymentSelection = {
|
|
254
|
+
kind: "deploymentWithinProject",
|
|
255
|
+
targetProject: {
|
|
256
|
+
kind: "deploymentName",
|
|
257
|
+
deploymentName,
|
|
258
|
+
deploymentType: "local",
|
|
259
|
+
},
|
|
260
|
+
selectionWithinProject: {
|
|
261
|
+
kind: "deploymentSelector",
|
|
262
|
+
selector: "local",
|
|
263
|
+
},
|
|
264
|
+
};
|
|
265
|
+
await saveSelectedDeployment(
|
|
266
|
+
ctx,
|
|
267
|
+
"local",
|
|
268
|
+
selection,
|
|
269
|
+
deploymentNameFromSelection(currentDeployment),
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
const devCommand = select
|
|
274
|
+
? "npx convex dev"
|
|
275
|
+
: "npx convex dev --deployment local";
|
|
276
|
+
logMessage(`\nRun ${chalkStderr.bold(devCommand)} to start it.`);
|
|
277
|
+
}
|
|
278
|
+
|
|
114
279
|
type RefParam = Parameters<Parameters<typeof deploymentCreate.action>[0]>[0];
|
|
115
280
|
type OptionsParam = Parameters<
|
|
116
281
|
Parameters<typeof deploymentCreate.action>[0]
|
|
@@ -118,6 +283,7 @@ type OptionsParam = Parameters<
|
|
|
118
283
|
|
|
119
284
|
async function resolveOptionsNoninteractively(
|
|
120
285
|
ctx: Context,
|
|
286
|
+
currentDeployment: DeploymentSelection,
|
|
121
287
|
refParam: RefParam,
|
|
122
288
|
options: OptionsParam,
|
|
123
289
|
) {
|
|
@@ -151,7 +317,7 @@ async function resolveOptionsNoninteractively(
|
|
|
151
317
|
return await ctx.crash({
|
|
152
318
|
exitCode: 1,
|
|
153
319
|
errorType: "fatal",
|
|
154
|
-
printedMessage:
|
|
320
|
+
printedMessage: `--type is required (supported values: ${SUPPORTED_TYPES.join(", ")})`,
|
|
155
321
|
});
|
|
156
322
|
}
|
|
157
323
|
|
|
@@ -161,14 +327,7 @@ async function resolveOptionsNoninteractively(
|
|
|
161
327
|
teamSlug: teamAndProject.teamSlug,
|
|
162
328
|
projectSlug: teamAndProject.projectSlug,
|
|
163
329
|
})
|
|
164
|
-
: await resolveProject(
|
|
165
|
-
ctx,
|
|
166
|
-
await getDeploymentSelection(ctx, {
|
|
167
|
-
url: undefined,
|
|
168
|
-
adminKey: undefined,
|
|
169
|
-
envFile: undefined,
|
|
170
|
-
}),
|
|
171
|
-
);
|
|
330
|
+
: await resolveProject(ctx, currentDeployment);
|
|
172
331
|
const projectId = project.id;
|
|
173
332
|
|
|
174
333
|
// If no region is passed in, the team's default region will be used
|
|
@@ -188,11 +347,14 @@ async function resolveOptionsNoninteractively(
|
|
|
188
347
|
projectId,
|
|
189
348
|
regionDetails,
|
|
190
349
|
type: options.type,
|
|
350
|
+
teamSlug: project.teamSlug,
|
|
351
|
+
projectSlug: project.slug,
|
|
191
352
|
};
|
|
192
353
|
}
|
|
193
354
|
|
|
194
355
|
async function resolveOptionsInteractively(
|
|
195
356
|
ctx: Context,
|
|
357
|
+
currentDeployment: DeploymentSelection,
|
|
196
358
|
refParam: RefParam,
|
|
197
359
|
options: OptionsParam,
|
|
198
360
|
) {
|
|
@@ -232,7 +394,15 @@ async function resolveOptionsInteractively(
|
|
|
232
394
|
}
|
|
233
395
|
}
|
|
234
396
|
while (ref === undefined) {
|
|
235
|
-
const input = await promptString(ctx, {
|
|
397
|
+
const input = await promptString(ctx, {
|
|
398
|
+
message:
|
|
399
|
+
"How to name this deployment?\n" +
|
|
400
|
+
chalkStderr.reset.dim(
|
|
401
|
+
"The deployment reference will be used to identify your deployment on the dashboard and in CLI commands.\nExamples: staging, dev/james/feature-payment-integration",
|
|
402
|
+
) +
|
|
403
|
+
"\n>",
|
|
404
|
+
validate: validateTentativeReference,
|
|
405
|
+
});
|
|
236
406
|
const result = parseSelectorForNewDeployment(input);
|
|
237
407
|
if (result.kind === "invalid") {
|
|
238
408
|
logFailure(result.message);
|
|
@@ -248,14 +418,7 @@ async function resolveOptionsInteractively(
|
|
|
248
418
|
teamSlug: teamAndProject.teamSlug,
|
|
249
419
|
projectSlug: teamAndProject.projectSlug,
|
|
250
420
|
})
|
|
251
|
-
: await resolveProject(
|
|
252
|
-
ctx,
|
|
253
|
-
await getDeploymentSelection(ctx, {
|
|
254
|
-
url: undefined,
|
|
255
|
-
adminKey: undefined,
|
|
256
|
-
envFile: undefined,
|
|
257
|
-
}),
|
|
258
|
-
);
|
|
421
|
+
: await resolveProject(ctx, currentDeployment);
|
|
259
422
|
|
|
260
423
|
const availableRegions = await fetchAvailableRegions(ctx, project.teamId);
|
|
261
424
|
let regionDetails: AvailableRegion;
|
|
@@ -300,6 +463,8 @@ async function resolveOptionsInteractively(
|
|
|
300
463
|
projectId: project.id,
|
|
301
464
|
regionDetails,
|
|
302
465
|
type: deploymentType,
|
|
466
|
+
teamSlug: project.teamSlug,
|
|
467
|
+
projectSlug: project.slug,
|
|
303
468
|
};
|
|
304
469
|
}
|
|
305
470
|
|
|
@@ -316,6 +481,11 @@ function parseSelectorForNewDeployment(
|
|
|
316
481
|
): NewDeploymentSelectorResult {
|
|
317
482
|
const selector = parseDeploymentSelector(selectorString);
|
|
318
483
|
switch (selector.kind) {
|
|
484
|
+
case "local":
|
|
485
|
+
return {
|
|
486
|
+
kind: "invalid",
|
|
487
|
+
message: `"local" is not a valid deployment reference. To create a local deployment, run ${chalkStderr.bold("npx convex deployment create local")}`,
|
|
488
|
+
};
|
|
319
489
|
case "deploymentName":
|
|
320
490
|
return {
|
|
321
491
|
kind: "invalid",
|
|
@@ -508,6 +678,36 @@ async function crashInvalidRegion(
|
|
|
508
678
|
});
|
|
509
679
|
}
|
|
510
680
|
|
|
681
|
+
async function resolveExpiresAtOrCrash(
|
|
682
|
+
ctx: Context,
|
|
683
|
+
expiration: string | undefined,
|
|
684
|
+
): Promise<number | null | undefined> {
|
|
685
|
+
if (!expiration) {
|
|
686
|
+
return undefined;
|
|
687
|
+
}
|
|
688
|
+
const parsed = parseExpiration(expiration);
|
|
689
|
+
if (parsed.kind === "error") {
|
|
690
|
+
return await ctx.crash({
|
|
691
|
+
exitCode: 1,
|
|
692
|
+
errorType: "fatal",
|
|
693
|
+
printedMessage: parsed.message,
|
|
694
|
+
});
|
|
695
|
+
}
|
|
696
|
+
const now = Date.now();
|
|
697
|
+
const resolved = resolveExpiration(parsed, now);
|
|
698
|
+
if (resolved !== null) {
|
|
699
|
+
const validation = validateExpiration(resolved, now);
|
|
700
|
+
if (validation.kind === "error") {
|
|
701
|
+
return await ctx.crash({
|
|
702
|
+
exitCode: 1,
|
|
703
|
+
errorType: "fatal",
|
|
704
|
+
printedMessage: validation.message,
|
|
705
|
+
});
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
return resolved;
|
|
709
|
+
}
|
|
710
|
+
|
|
511
711
|
/**
|
|
512
712
|
* Helper to log a value passed in as a CLI argument in the interactive flow.
|
|
513
713
|
*/
|
|
@@ -515,3 +715,30 @@ function logAndUse<T extends string | boolean>(label: string, value: T): T {
|
|
|
515
715
|
logFinishedStep(`Using ${label}: ${chalkStderr.bold(value)}`);
|
|
516
716
|
return value;
|
|
517
717
|
}
|
|
718
|
+
|
|
719
|
+
// This is an oversimplification, it’s fine if it fails later
|
|
720
|
+
function validateTentativeReference(tentativeReference: string): true | string {
|
|
721
|
+
if (tentativeReference.length < 3) {
|
|
722
|
+
return "References must be at least 3 characters";
|
|
723
|
+
}
|
|
724
|
+
if (tentativeReference.length > 100) {
|
|
725
|
+
return "References must be at most 100 characters";
|
|
726
|
+
}
|
|
727
|
+
if (!/^[a-z0-9/-]+$/.test(tentativeReference)) {
|
|
728
|
+
return "References can only contain lowercase letters, numbers, hyphens, and slashes";
|
|
729
|
+
}
|
|
730
|
+
if (tentativeReference === "dev") {
|
|
731
|
+
return '"dev" is not a valid deployment reference.';
|
|
732
|
+
}
|
|
733
|
+
if (tentativeReference === "prod") {
|
|
734
|
+
return '"prod" is not a valid deployment reference.';
|
|
735
|
+
}
|
|
736
|
+
if (tentativeReference === "local") {
|
|
737
|
+
return `"local" is not a valid deployment reference. To create a local deployment, run ${chalkStderr.bold("npx convex deployment create local")}`;
|
|
738
|
+
}
|
|
739
|
+
if (/^[a-z]+-[a-z]+-\d+$/.test(tentativeReference)) {
|
|
740
|
+
return "References cannot be in the format abc-xyz-123, as it is reserved for deployment names";
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
return true;
|
|
744
|
+
}
|