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
|
@@ -8,22 +8,19 @@ import {
|
|
|
8
8
|
} from "./lib/deploymentSelection.js";
|
|
9
9
|
import { parseDeploymentSelector } from "./lib/deploymentSelector.js";
|
|
10
10
|
import { updateEnvAndConfigForDeploymentSelection } from "./configure.js";
|
|
11
|
-
import {
|
|
11
|
+
import { fetchDeploymentCanonicalUrls } from "./lib/deploy2.js";
|
|
12
12
|
import { chalkStderr } from "chalk";
|
|
13
13
|
export const deploymentSelect = new Command("select").summary("Select the deployment to use when running commands").description(
|
|
14
|
-
"Select the deployment to use when running commands.\n\nThe deployment will be used by all `npx convex` commands, except `npx convex deploy`. You can also run individual commands on another deployment by using the --deployment flag on that command.\n\nExamples:\n npx convex select dev # Select your personal dev deployment in the current project\n npx convex select
|
|
14
|
+
"Select the deployment to use when running commands.\n\nThe deployment will be used by all `npx convex` commands, except `npx convex deploy`. You can also run individual commands on another deployment by using the --deployment flag on that command.\n\nExamples:\n npx convex select dev # Select your personal cloud dev deployment in the current project\n npx convex select local # Select your local deployment\n npx convex select dev/james # Select a deployment in the same project by its reference\n npx convex select some-project:dev/james # Select a deployment in another project in the same team\n npx convex select some-team:some-project:dev/james # Select a deployment in a particular team/project\n"
|
|
15
15
|
).argument("<deployment>", "The deployment to use").allowExcessArguments(false).action(async (selector) => {
|
|
16
16
|
const ctx = await oneoffContext({
|
|
17
17
|
url: void 0,
|
|
18
18
|
adminKey: void 0,
|
|
19
19
|
envFile: void 0
|
|
20
20
|
});
|
|
21
|
-
await selectDeployment(ctx, selector);
|
|
22
|
-
});
|
|
23
|
-
export async function selectDeployment(ctx, selector) {
|
|
24
21
|
const currentSelection = await getDeploymentSelection(ctx, {});
|
|
25
22
|
const parsed = parseDeploymentSelector(selector);
|
|
26
|
-
if (currentSelection.kind === "chooseProject" && parsed.kind !== "inTeamProject" && parsed.kind !== "deploymentName") {
|
|
23
|
+
if (currentSelection.kind === "chooseProject" && parsed.kind !== "inTeamProject" && parsed.kind !== "deploymentName" && parsed.kind !== "local") {
|
|
27
24
|
return await ctx.crash({
|
|
28
25
|
exitCode: 1,
|
|
29
26
|
errorType: "fatal",
|
|
@@ -36,13 +33,17 @@ export async function selectDeployment(ctx, selector) {
|
|
|
36
33
|
envFile: void 0,
|
|
37
34
|
deployment: selector
|
|
38
35
|
});
|
|
39
|
-
|
|
36
|
+
await saveSelectedDeployment(
|
|
40
37
|
ctx,
|
|
38
|
+
selector,
|
|
41
39
|
newSelection,
|
|
42
|
-
|
|
43
|
-
ensureLocalRunning: false
|
|
44
|
-
}
|
|
40
|
+
deploymentNameFromSelection(currentSelection)
|
|
45
41
|
);
|
|
42
|
+
});
|
|
43
|
+
export async function saveSelectedDeployment(ctx, selector, selection, previousDeploymentName) {
|
|
44
|
+
const deployment = await loadSelectedDeploymentCredentials(ctx, selection, {
|
|
45
|
+
ensureLocalRunning: false
|
|
46
|
+
});
|
|
46
47
|
if (deployment.deploymentFields === null) {
|
|
47
48
|
return ctx.crash({
|
|
48
49
|
exitCode: 1,
|
|
@@ -58,7 +59,7 @@ export async function selectDeployment(ctx, selector) {
|
|
|
58
59
|
printedMessage: `Selecting a production deployment is unsupported. To run commands on a production deployment, pass the ${chalkStderr.bold(`--deployment ${selector}`)} flag to each command.`
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
|
-
const siteUrl = await
|
|
62
|
+
const { convexSiteUrl: siteUrl } = deployment.deploymentFields.deploymentType === "local" ? { convexSiteUrl: null } : await fetchDeploymentCanonicalUrls(ctx, {
|
|
62
63
|
adminKey: deployment.adminKey,
|
|
63
64
|
deploymentUrl: deployment.url
|
|
64
65
|
});
|
|
@@ -72,7 +73,7 @@ export async function selectDeployment(ctx, selector) {
|
|
|
72
73
|
projectSlug: deployment.deploymentFields.projectSlug,
|
|
73
74
|
deploymentType: deployment.deploymentFields.deploymentType
|
|
74
75
|
},
|
|
75
|
-
|
|
76
|
+
previousDeploymentName
|
|
76
77
|
);
|
|
77
78
|
}
|
|
78
79
|
//# sourceMappingURL=deploymentSelect.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cli/deploymentSelect.ts"],
|
|
4
|
-
"sourcesContent": ["import { Command } from \"@commander-js/extra-typings\";\nimport { Context, oneoffContext } from \"../bundler/context.js\";\nimport { loadSelectedDeploymentCredentials } from \"./lib/api.js\";\nimport {\n getDeploymentSelection,\n deploymentNameFromSelection,\n} from \"./lib/deploymentSelection.js\";\nimport { parseDeploymentSelector } from \"./lib/deploymentSelector.js\";\nimport { updateEnvAndConfigForDeploymentSelection } from \"./configure.js\";\nimport {
|
|
5
|
-
"mappings": ";AAAA,SAAS,eAAe;AACxB,SAAkB,qBAAqB;AACvC,SAAS,yCAAyC;AAClD;AAAA,
|
|
4
|
+
"sourcesContent": ["import { Command } from \"@commander-js/extra-typings\";\nimport { Context, oneoffContext } from \"../bundler/context.js\";\nimport { loadSelectedDeploymentCredentials } from \"./lib/api.js\";\nimport {\n DeploymentSelection,\n getDeploymentSelection,\n deploymentNameFromSelection,\n} from \"./lib/deploymentSelection.js\";\nimport { parseDeploymentSelector } from \"./lib/deploymentSelector.js\";\nimport { updateEnvAndConfigForDeploymentSelection } from \"./configure.js\";\nimport { fetchDeploymentCanonicalUrls } from \"./lib/deploy2.js\";\nimport { chalkStderr } from \"chalk\";\n\nexport const deploymentSelect = new Command(\"select\")\n .summary(\"Select the deployment to use when running commands\")\n .description(\n \"Select the deployment to use when running commands.\\n\\n\" +\n \"The deployment will be used by all `npx convex` commands, except `npx convex deploy`. You can also run individual commands on another deployment by using the --deployment flag on that command.\\n\\n\" +\n \"Examples:\\n\" +\n \" npx convex select dev # Select your personal cloud dev deployment in the current project\\n\" +\n \" npx convex select local # Select your local deployment\\n\" +\n \" npx convex select dev/james # Select a deployment in the same project by its reference\\n\" +\n \" npx convex select some-project:dev/james # Select a deployment in another project in the same team\\n\" +\n \" npx convex select some-team:some-project:dev/james # Select a deployment in a particular team/project\\n\",\n )\n .argument(\"<deployment>\", \"The deployment to use\")\n .allowExcessArguments(false)\n .action(async (selector) => {\n const ctx = await oneoffContext({\n url: undefined,\n adminKey: undefined,\n envFile: undefined,\n });\n\n // Get the current deployment selection (no flags, just env/config state)\n const currentSelection = await getDeploymentSelection(ctx, {});\n\n // If no project is configured and the selector needs project context, show a specific error\n const parsed = parseDeploymentSelector(selector);\n if (\n currentSelection.kind === \"chooseProject\" &&\n parsed.kind !== \"inTeamProject\" &&\n parsed.kind !== \"deploymentName\" &&\n parsed.kind !== \"local\"\n ) {\n return await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage: `No project configured. Run \\`npx convex dev\\` to set up a project first, or use a full selector like 'my-team:my-project:dev/james' or 'happy-capybara-123'.`,\n });\n }\n\n // Resolve the new deployment using the selector relative to the current project\n const newSelection = await getDeploymentSelection(ctx, {\n url: undefined,\n adminKey: undefined,\n envFile: undefined,\n deployment: selector,\n });\n\n await saveSelectedDeployment(\n ctx,\n selector,\n newSelection,\n deploymentNameFromSelection(currentSelection),\n );\n });\n\nexport async function saveSelectedDeployment(\n ctx: Context,\n selector: string,\n selection: DeploymentSelection,\n previousDeploymentName: string | null,\n): Promise<void> {\n const deployment = await loadSelectedDeploymentCredentials(ctx, selection, {\n ensureLocalRunning: false,\n });\n\n if (deployment.deploymentFields === null) {\n // Should be unreachable since for now, `select` only allows users\n // to select deployments that exist in Big Brain\n return ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage: null,\n errForSentry: `Unexpected selection in select: ${JSON.stringify(deployment)}`,\n });\n }\n\n if (deployment.deploymentFields.deploymentType === \"prod\") {\n return await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage: `Selecting a production deployment is unsupported. To run commands on a production deployment, pass the ${chalkStderr.bold(`--deployment ${selector}`)} flag to each command.`,\n });\n }\n\n const { convexSiteUrl: siteUrl } =\n deployment.deploymentFields.deploymentType === \"local\"\n ? { convexSiteUrl: null }\n : await fetchDeploymentCanonicalUrls(ctx, {\n adminKey: deployment.adminKey,\n deploymentUrl: deployment.url,\n });\n\n await updateEnvAndConfigForDeploymentSelection(\n ctx,\n {\n url: deployment.url,\n siteUrl,\n deploymentName: deployment.deploymentFields.deploymentName,\n teamSlug: deployment.deploymentFields.teamSlug,\n projectSlug: deployment.deploymentFields.projectSlug,\n deploymentType: deployment.deploymentFields.deploymentType,\n },\n previousDeploymentName,\n );\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,eAAe;AACxB,SAAkB,qBAAqB;AACvC,SAAS,yCAAyC;AAClD;AAAA,EAEE;AAAA,EACA;AAAA,OACK;AACP,SAAS,+BAA+B;AACxC,SAAS,gDAAgD;AACzD,SAAS,oCAAoC;AAC7C,SAAS,mBAAmB;AAErB,aAAM,mBAAmB,IAAI,QAAQ,QAAQ,EACjD,QAAQ,oDAAoD,EAC5D;AAAA,EACC;AAQF,EACC,SAAS,gBAAgB,uBAAuB,EAChD,qBAAqB,KAAK,EAC1B,OAAO,OAAO,aAAa;AAC1B,QAAM,MAAM,MAAM,cAAc;AAAA,IAC9B,KAAK;AAAA,IACL,UAAU;AAAA,IACV,SAAS;AAAA,EACX,CAAC;AAGD,QAAM,mBAAmB,MAAM,uBAAuB,KAAK,CAAC,CAAC;AAG7D,QAAM,SAAS,wBAAwB,QAAQ;AAC/C,MACE,iBAAiB,SAAS,mBAC1B,OAAO,SAAS,mBAChB,OAAO,SAAS,oBAChB,OAAO,SAAS,SAChB;AACA,WAAO,MAAM,IAAI,MAAM;AAAA,MACrB,UAAU;AAAA,MACV,WAAW;AAAA,MACX,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAGA,QAAM,eAAe,MAAM,uBAAuB,KAAK;AAAA,IACrD,KAAK;AAAA,IACL,UAAU;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,EACd,CAAC;AAED,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,4BAA4B,gBAAgB;AAAA,EAC9C;AACF,CAAC;AAEH,sBAAsB,uBACpB,KACA,UACA,WACA,wBACe;AACf,QAAM,aAAa,MAAM,kCAAkC,KAAK,WAAW;AAAA,IACzE,oBAAoB;AAAA,EACtB,CAAC;AAED,MAAI,WAAW,qBAAqB,MAAM;AAGxC,WAAO,IAAI,MAAM;AAAA,MACf,UAAU;AAAA,MACV,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,cAAc,mCAAmC,KAAK,UAAU,UAAU,CAAC;AAAA,IAC7E,CAAC;AAAA,EACH;AAEA,MAAI,WAAW,iBAAiB,mBAAmB,QAAQ;AACzD,WAAO,MAAM,IAAI,MAAM;AAAA,MACrB,UAAU;AAAA,MACV,WAAW;AAAA,MACX,gBAAgB,0GAA0G,YAAY,KAAK,gBAAgB,QAAQ,EAAE,CAAC;AAAA,IACxK,CAAC;AAAA,EACH;AAEA,QAAM,EAAE,eAAe,QAAQ,IAC7B,WAAW,iBAAiB,mBAAmB,UAC3C,EAAE,eAAe,KAAK,IACtB,MAAM,6BAA6B,KAAK;AAAA,IACtC,UAAU,WAAW;AAAA,IACrB,eAAe,WAAW;AAAA,EAC5B,CAAC;AAEP,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,MACE,KAAK,WAAW;AAAA,MAChB;AAAA,MACA,gBAAgB,WAAW,iBAAiB;AAAA,MAC5C,UAAU,WAAW,iBAAiB;AAAA,MACtC,aAAa,WAAW,iBAAiB;AAAA,MACzC,gBAAgB,WAAW,iBAAiB;AAAA,IAC9C;AAAA,IACA;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/cli/dev.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import { Command, Option } from "@commander-js/extra-typings";
|
|
3
|
+
import { chalkStderr } from "chalk";
|
|
3
4
|
import { oneoffContext } from "../bundler/context.js";
|
|
4
5
|
import { logVerbose } from "../bundler/log.js";
|
|
5
6
|
import { deploymentCredentialsOrConfigure } from "./configure.js";
|
|
@@ -10,10 +11,12 @@ import {
|
|
|
10
11
|
CONVEX_DEPLOYMENT_ENV_VAR_NAME,
|
|
11
12
|
CONVEX_SELF_HOSTED_URL_VAR_NAME
|
|
12
13
|
} from "./lib/utils/utils.js";
|
|
13
|
-
import {
|
|
14
|
-
|
|
14
|
+
import {
|
|
15
|
+
getDeploymentSelection
|
|
16
|
+
} from "./lib/deploymentSelection.js";
|
|
17
|
+
import { checkVersionAndAiFilesStaleness } from "./lib/updates.js";
|
|
15
18
|
export const dev = new Command("dev").summary("Develop against a dev deployment, watching for changes").description(
|
|
16
|
-
"Develop against a dev deployment, watching for changes\n\n 1. Configures a new or existing project (if needed)\n 2. Updates generated types and pushes code to the configured dev deployment\n 3. Runs the provided command (if `--
|
|
19
|
+
"Develop against a dev deployment, watching for changes\n\n 1. Configures a new or existing project (if needed)\n 2. Updates generated types and pushes code to the configured dev deployment\n 3. Runs the provided command (if `--start` or `--run` is used)\n 4. Watches for file changes, and repeats step 2\n"
|
|
17
20
|
).allowExcessArguments(false).option("-v, --verbose", "Show full listing of changes").addOption(
|
|
18
21
|
new Option(
|
|
19
22
|
"--typecheck <mode>",
|
|
@@ -38,19 +41,21 @@ export const dev = new Command("dev").summary("Develop against a dev deployment,
|
|
|
38
41
|
"--until-success",
|
|
39
42
|
"Execute only the first 3 steps, on failure watch for local and remote changes and retry steps 2 and 3",
|
|
40
43
|
false
|
|
44
|
+
).addOption(
|
|
45
|
+
new Option(
|
|
46
|
+
"--start <command>",
|
|
47
|
+
"Start a long-running command alongside `convex dev`, like a frontend dev server. The command inherits stdin/stdout so you can interact with it directly. Example: npx convex dev --start 'vite --open'"
|
|
48
|
+
).conflicts(["--run", "--run-sh"])
|
|
49
|
+
).addOption(
|
|
50
|
+
new Option("--run-sh <command>", "Deprecated: use --start instead.").conflicts(["--start", "--run"]).hideHelp()
|
|
41
51
|
).addOption(
|
|
42
52
|
new Option(
|
|
43
53
|
"--run <functionName>",
|
|
44
54
|
"The identifier of the function to run in step 3, like `api.init.createData` or `myDir/myFile:myFunction`"
|
|
45
|
-
).conflicts(["--
|
|
55
|
+
).conflicts(["--start"])
|
|
46
56
|
).option(
|
|
47
57
|
"--run-component <functionName>",
|
|
48
58
|
"If --run is used and the function is in a component, the path the component tree defined in convex.config.ts. Components are a beta feature. This flag is unstable and may change in subsequent releases."
|
|
49
|
-
).addOption(
|
|
50
|
-
new Option(
|
|
51
|
-
"--run-sh <command>",
|
|
52
|
-
"A shell command to run in step 3, like `node myScript.js`. If you just want to run a Convex function, use `--run` instead."
|
|
53
|
-
).conflicts(["--run"])
|
|
54
59
|
).addOption(
|
|
55
60
|
new Option(
|
|
56
61
|
"--tail-logs [mode]",
|
|
@@ -60,7 +65,7 @@ export const dev = new Command("dev").summary("Develop against a dev deployment,
|
|
|
60
65
|
new Option(
|
|
61
66
|
"--configure [choice]",
|
|
62
67
|
"Ignore existing configuration and configure new or existing project, interactively or set by --team <team_slug>, --project <project_slug>, and --dev-deployment local|cloud"
|
|
63
|
-
).choices(["new", "existing"]).conflicts(["--local", "--cloud"])
|
|
68
|
+
).choices(["new", "existing"]).conflicts(["--local", "--cloud", "--url", "--admin-key", "--env-file"])
|
|
64
69
|
).addOption(
|
|
65
70
|
new Option(
|
|
66
71
|
"--team <team_slug>",
|
|
@@ -86,7 +91,7 @@ export const dev = new Command("dev").summary("Develop against a dev deployment,
|
|
|
86
91
|
"--env-file <envFile>",
|
|
87
92
|
`Path to a custom file of environment variables, for choosing the deployment, e.g. ${CONVEX_DEPLOYMENT_ENV_VAR_NAME} or ${CONVEX_SELF_HOSTED_URL_VAR_NAME}. Same format as .env.local or .env files, and overrides them.`
|
|
88
93
|
)
|
|
89
|
-
).addOption(new Option("--skip-push").default(false).hideHelp()).addOption(new Option("--admin-key <adminKey>").hideHelp()).addOption(new Option("--url <url>").hideHelp()).addOption(new Option("--override-auth-url <url>").hideHelp()).addOption(new Option("--override-auth-client <id>").hideHelp()).addOption(new Option("--override-auth-username <username>").hideHelp()).addOption(new Option("--override-auth-password <password>").hideHelp()).addOption(new Option("--local-cloud-port <port>").hideHelp()).addOption(new Option("--local-site-port <port>").hideHelp()).addOption(new Option("--local-backend-version <version>").hideHelp()).addOption(new Option("--local-force-upgrade").default(false).hideHelp()).addOption(
|
|
94
|
+
).addOption(new Option("--skip-push").default(false).hideHelp()).addOption(new Option("--admin-key <adminKey>").hideHelp()).addOption(new Option("--url <url>").hideHelp()).addOption(new Option("--override-auth-url <url>").hideHelp()).addOption(new Option("--override-auth-client <id>").hideHelp()).addOption(new Option("--override-auth-username <username>").hideHelp()).addOption(new Option("--override-auth-password <password>").hideHelp()).addOption(new Option("--local-cloud-port <port>").hideHelp()).addOption(new Option("--local-site-port <port>").hideHelp()).addOption(new Option("--local-backend-version <version>").hideHelp()).addOption(new Option("--local-force-upgrade").default(false).hideHelp()).addOption(new Option("--deployment <deployment>").hideHelp()).addOption(
|
|
90
95
|
new Option(
|
|
91
96
|
"--local",
|
|
92
97
|
"Use local deployment regardless of last used backend. DB data will not be downloaded from any cloud deployment."
|
|
@@ -102,6 +107,16 @@ export const dev = new Command("dev").summary("Develop against a dev deployment,
|
|
|
102
107
|
logVerbose("Received SIGINT, cleaning up...");
|
|
103
108
|
await ctx.flushAndExit(-2);
|
|
104
109
|
});
|
|
110
|
+
if (cmdOptions.deployment !== void 0) {
|
|
111
|
+
return await ctx.crash({
|
|
112
|
+
exitCode: 1,
|
|
113
|
+
errorType: "fatal",
|
|
114
|
+
printedMessage: "`--deployment` can\u2019t be used with `npx convex dev`. \n\n To select this deployment for development, run: \n" + chalkStderr.bold(
|
|
115
|
+
` npx convex deployment select ${cmdOptions.deployment}
|
|
116
|
+
`
|
|
117
|
+
) + " Then, run `npx convex dev` again."
|
|
118
|
+
});
|
|
119
|
+
}
|
|
105
120
|
const devOptions = await normalizeDevOptions(ctx, cmdOptions);
|
|
106
121
|
if (cmdOptions.configure === void 0) {
|
|
107
122
|
if (cmdOptions.team || cmdOptions.project || cmdOptions.devDeployment)
|
|
@@ -138,7 +153,13 @@ export const dev = new Command("dev").summary("Develop against a dev deployment,
|
|
|
138
153
|
localOptions["forceUpgrade"] = cmdOptions.localForceUpgrade;
|
|
139
154
|
}
|
|
140
155
|
const configure = cmdOptions.configure === true ? "ask" : cmdOptions.configure ?? null;
|
|
141
|
-
const deploymentSelection =
|
|
156
|
+
const deploymentSelection = configure !== null ? {
|
|
157
|
+
kind: "chooseProject",
|
|
158
|
+
selectionWithinProject: {
|
|
159
|
+
// For backwards compatibility, allow `--configure --prod`
|
|
160
|
+
kind: cmdOptions.prod ? "prod" : "unspecified"
|
|
161
|
+
}
|
|
162
|
+
} : await getDeploymentSelection(ctx, cmdOptions);
|
|
142
163
|
const credentials = await deploymentCredentialsOrConfigure(
|
|
143
164
|
ctx,
|
|
144
165
|
deploymentSelection,
|
|
@@ -165,7 +186,7 @@ export const dev = new Command("dev").summary("Develop against a dev deployment,
|
|
|
165
186
|
] : [],
|
|
166
187
|
...credentials.deploymentFields !== null ? [
|
|
167
188
|
usageStateWarning(ctx, credentials.deploymentFields.deploymentName),
|
|
168
|
-
|
|
189
|
+
checkVersionAndAiFilesStaleness(ctx)
|
|
169
190
|
] : []
|
|
170
191
|
]);
|
|
171
192
|
});
|
package/dist/esm/cli/dev.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cli/dev.ts"],
|
|
4
|
-
"sourcesContent": ["import { Command, Option } from \"@commander-js/extra-typings\";\nimport { oneoffContext } from \"../bundler/context.js\";\nimport { logVerbose } from \"../bundler/log.js\";\nimport { deploymentCredentialsOrConfigure } from \"./configure.js\";\nimport { usageStateWarning } from \"./lib/usage.js\";\nimport { normalizeDevOptions } from \"./lib/command.js\";\nimport { devAgainstDeployment } from \"./lib/dev.js\";\nimport {\n CONVEX_DEPLOYMENT_ENV_VAR_NAME,\n CONVEX_SELF_HOSTED_URL_VAR_NAME,\n} from \"./lib/utils/utils.js\";\nimport { getDeploymentSelection } from \"./lib/deploymentSelection.js\";\nimport { checkVersion } from \"./lib/updates.js\";\n\nexport const dev = new Command(\"dev\")\n .summary(\"Develop against a dev deployment, watching for changes\")\n .description(\n \"Develop against a dev deployment, watching for changes\\n\\n\" +\n \" 1. Configures a new or existing project (if needed)\\n\" +\n \" 2. Updates generated types and pushes code to the configured dev deployment\\n\" +\n \" 3. Runs the provided command (if `--run` or `--run-sh` is used)\\n\" +\n \" 4. Watches for file changes, and repeats step 2\\n\",\n )\n .allowExcessArguments(false)\n .option(\"-v, --verbose\", \"Show full listing of changes\")\n .addOption(\n new Option(\n \"--typecheck <mode>\",\n `Check TypeScript files with \\`tsc --noEmit\\`.`,\n )\n .choices([\"enable\", \"try\", \"disable\"] as const)\n .default(\"try\" as const),\n )\n .option(\n \"--typecheck-components\",\n \"Check TypeScript files within component implementations with `tsc --noEmit`.\",\n false,\n )\n .addOption(\n new Option(\"--codegen <mode>\", \"Regenerate code in `convex/_generated/`\")\n .choices([\"enable\", \"disable\"] as const)\n .default(\"enable\" as const),\n )\n .addOption(\n new Option(\n \"--push-all-modules\",\n \"Push all modules without checking for unchanged module hashes from the server\",\n )\n .default(false)\n .hideHelp(),\n )\n .option(\n \"--once\",\n \"Execute only the first 3 steps, stop on any failure\",\n false,\n )\n .option(\n \"--until-success\",\n \"Execute only the first 3 steps, on failure watch for local and remote changes and retry steps 2 and 3\",\n false,\n )\n .addOption(\n new Option(\n \"--run <functionName>\",\n \"The identifier of the function to run in step 3, \" +\n \"like `api.init.createData` or `myDir/myFile:myFunction`\",\n ).conflicts([\"--run-sh\"]),\n )\n .option(\n \"--run-component <functionName>\",\n \"If --run is used and the function is in a component, the path the component tree defined in convex.config.ts. \" +\n \"Components are a beta feature. This flag is unstable and may change in subsequent releases.\",\n )\n .addOption(\n new Option(\n \"--run-sh <command>\",\n \"A shell command to run in step 3, like `node myScript.js`. \" +\n \"If you just want to run a Convex function, use `--run` instead.\",\n ).conflicts([\"--run\"]),\n )\n .addOption(\n new Option(\n \"--tail-logs [mode]\",\n \"Choose whether to tail Convex function logs in this terminal\",\n )\n .choices([\"always\", \"pause-on-deploy\", \"disable\"] as const)\n .default(\"pause-on-deploy\"),\n )\n .addOption(new Option(\"--trace-events\").default(false).hideHelp())\n .addOption(new Option(\"--debug-bundle-path <path>\").hideHelp())\n .addOption(new Option(\"--debug-node-apis\").hideHelp())\n .addOption(new Option(\"--live-component-sources\").hideHelp())\n .addOption(\n new Option(\n \"--configure [choice]\",\n \"Ignore existing configuration and configure new or existing project, interactively or set by --team <team_slug>, --project <project_slug>, and --dev-deployment local|cloud\",\n )\n .choices([\"new\", \"existing\"] as const)\n .conflicts([\"--local\", \"--cloud\"]),\n )\n .addOption(\n new Option(\n \"--team <team_slug>\",\n \"The team you'd like to use for this project\",\n ).hideHelp(),\n )\n .addOption(\n new Option(\n \"--project <project_slug>\",\n \"The name of the project you'd like to configure\",\n ).hideHelp(),\n )\n .addOption(\n new Option(\n \"--dev-deployment <mode>\",\n \"Use a local or cloud deployment for dev for this project\",\n )\n .choices([\"cloud\", \"local\"] as const)\n .conflicts([\"--prod\"])\n .hideHelp(),\n )\n .addOption(\n new Option(\n \"--prod\",\n \"Develop live against this project's production deployment.\",\n )\n .default(false)\n .hideHelp(),\n )\n .addOption(\n new Option(\n \"--env-file <envFile>\",\n `Path to a custom file of environment variables, for choosing the \\\ndeployment, e.g. ${CONVEX_DEPLOYMENT_ENV_VAR_NAME} or ${CONVEX_SELF_HOSTED_URL_VAR_NAME}. \\\nSame format as .env.local or .env files, and overrides them.`,\n ),\n )\n .addOption(new Option(\"--skip-push\").default(false).hideHelp())\n .addOption(new Option(\"--admin-key <adminKey>\").hideHelp())\n .addOption(new Option(\"--url <url>\").hideHelp())\n // Options for testing\n .addOption(new Option(\"--override-auth-url <url>\").hideHelp())\n .addOption(new Option(\"--override-auth-client <id>\").hideHelp())\n .addOption(new Option(\"--override-auth-username <username>\").hideHelp())\n .addOption(new Option(\"--override-auth-password <password>\").hideHelp())\n .addOption(new Option(\"--local-cloud-port <port>\").hideHelp())\n .addOption(new Option(\"--local-site-port <port>\").hideHelp())\n .addOption(new Option(\"--local-backend-version <version>\").hideHelp())\n .addOption(new Option(\"--local-force-upgrade\").default(false).hideHelp())\n .addOption(\n new Option(\n \"--local\",\n \"Use local deployment regardless of last used backend. DB data will not be downloaded from any cloud deployment.\",\n )\n .default(false)\n .conflicts([\"--prod\", \"--url\", \"--admin-key\", \"--cloud\"])\n .hideHelp(),\n )\n .addOption(\n new Option(\n \"--cloud\",\n \"Use cloud deployment regardles of last used backend. DB data will not be uploaded from local.\",\n )\n .default(false)\n .conflicts([\"--prod\", \"--url\", \"--admin-key\", \"--local\"])\n .hideHelp(),\n )\n .showHelpAfterError()\n .action(async (cmdOptions) => {\n const ctx = await oneoffContext(cmdOptions);\n process.on(\"SIGINT\", async () => {\n logVerbose(\"Received SIGINT, cleaning up...\");\n await ctx.flushAndExit(-2);\n });\n\n const devOptions = await normalizeDevOptions(ctx, cmdOptions);\n\n if (cmdOptions.configure === undefined) {\n if (cmdOptions.team || cmdOptions.project || cmdOptions.devDeployment)\n return await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage:\n \"`--team, --project, and --dev-deployment can can only be used with `--configure`.\",\n });\n }\n\n const localOptions: {\n ports?: { cloud: number; site: number };\n backendVersion?: string | undefined;\n forceUpgrade: boolean;\n } = { forceUpgrade: false };\n if (!cmdOptions.local && cmdOptions.devDeployment !== \"local\") {\n if (\n cmdOptions.localCloudPort !== undefined ||\n cmdOptions.localSitePort !== undefined ||\n cmdOptions.localBackendVersion !== undefined ||\n cmdOptions.localForceUpgrade === true\n ) {\n return await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage:\n \"`--local-*` options can only be used with `--configure --dev-deployment local` or `--local`.\",\n });\n }\n } else {\n if (cmdOptions.localCloudPort !== undefined) {\n if (cmdOptions.localSitePort === undefined) {\n return await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage:\n \"`--local-cloud-port` requires `--local-site-port` to be set.\",\n });\n }\n localOptions[\"ports\"] = {\n cloud: parseInt(cmdOptions.localCloudPort),\n site: parseInt(cmdOptions.localSitePort),\n };\n }\n localOptions[\"backendVersion\"] = cmdOptions.localBackendVersion;\n localOptions[\"forceUpgrade\"] = cmdOptions.localForceUpgrade;\n }\n\n const configure =\n cmdOptions.configure === true ? \"ask\" : (cmdOptions.configure ?? null);\n const deploymentSelection = await getDeploymentSelection(ctx, cmdOptions);\n const credentials = await deploymentCredentialsOrConfigure(\n ctx,\n deploymentSelection,\n configure,\n {\n ...cmdOptions,\n localOptions,\n },\n );\n\n await Promise.all([\n ...(!cmdOptions.skipPush\n ? [\n devAgainstDeployment(\n ctx,\n {\n url: credentials.url,\n adminKey: credentials.adminKey,\n deploymentName:\n credentials.deploymentFields?.deploymentName ?? null,\n ...(credentials.deploymentFields?.deploymentType !== undefined\n ? {\n deploymentType:\n credentials.deploymentFields.deploymentType,\n }\n : {}),\n },\n devOptions,\n ),\n ]\n : []),\n ...(credentials.deploymentFields !== null\n ? [\n usageStateWarning(ctx, credentials.deploymentFields.deploymentName),\n checkVersion(ctx),\n ]\n : []),\n ]);\n });\n"],
|
|
5
|
-
"mappings": ";AAAA,SAAS,SAAS,cAAc;AAChC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,wCAAwC;AACjD,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AACpC,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,
|
|
4
|
+
"sourcesContent": ["import { Command, Option } from \"@commander-js/extra-typings\";\nimport { chalkStderr } from \"chalk\";\nimport { oneoffContext } from \"../bundler/context.js\";\nimport { logVerbose } from \"../bundler/log.js\";\nimport { deploymentCredentialsOrConfigure } from \"./configure.js\";\nimport { usageStateWarning } from \"./lib/usage.js\";\nimport { normalizeDevOptions } from \"./lib/command.js\";\nimport { devAgainstDeployment } from \"./lib/dev.js\";\nimport {\n CONVEX_DEPLOYMENT_ENV_VAR_NAME,\n CONVEX_SELF_HOSTED_URL_VAR_NAME,\n} from \"./lib/utils/utils.js\";\nimport {\n getDeploymentSelection,\n type DeploymentSelection,\n} from \"./lib/deploymentSelection.js\";\nimport { checkVersionAndAiFilesStaleness } from \"./lib/updates.js\";\n\nexport const dev = new Command(\"dev\")\n .summary(\"Develop against a dev deployment, watching for changes\")\n .description(\n \"Develop against a dev deployment, watching for changes\\n\\n\" +\n \" 1. Configures a new or existing project (if needed)\\n\" +\n \" 2. Updates generated types and pushes code to the configured dev deployment\\n\" +\n \" 3. Runs the provided command (if `--start` or `--run` is used)\\n\" +\n \" 4. Watches for file changes, and repeats step 2\\n\",\n )\n .allowExcessArguments(false)\n .option(\"-v, --verbose\", \"Show full listing of changes\")\n .addOption(\n new Option(\n \"--typecheck <mode>\",\n `Check TypeScript files with \\`tsc --noEmit\\`.`,\n )\n .choices([\"enable\", \"try\", \"disable\"] as const)\n .default(\"try\" as const),\n )\n .option(\n \"--typecheck-components\",\n \"Check TypeScript files within component implementations with `tsc --noEmit`.\",\n false,\n )\n .addOption(\n new Option(\"--codegen <mode>\", \"Regenerate code in `convex/_generated/`\")\n .choices([\"enable\", \"disable\"] as const)\n .default(\"enable\" as const),\n )\n .addOption(\n new Option(\n \"--push-all-modules\",\n \"Push all modules without checking for unchanged module hashes from the server\",\n )\n .default(false)\n .hideHelp(),\n )\n .option(\n \"--once\",\n \"Execute only the first 3 steps, stop on any failure\",\n false,\n )\n .option(\n \"--until-success\",\n \"Execute only the first 3 steps, on failure watch for local and remote changes and retry steps 2 and 3\",\n false,\n )\n .addOption(\n new Option(\n \"--start <command>\",\n \"Start a long-running command alongside `convex dev`, like a frontend \" +\n \"dev server. The command inherits stdin/stdout so you can interact \" +\n \"with it directly. Example: npx convex dev --start 'vite --open'\",\n ).conflicts([\"--run\", \"--run-sh\"]),\n )\n .addOption(\n new Option(\"--run-sh <command>\", \"Deprecated: use --start instead.\")\n .conflicts([\"--start\", \"--run\"])\n .hideHelp(),\n )\n .addOption(\n new Option(\n \"--run <functionName>\",\n \"The identifier of the function to run in step 3, \" +\n \"like `api.init.createData` or `myDir/myFile:myFunction`\",\n ).conflicts([\"--start\"]),\n )\n .option(\n \"--run-component <functionName>\",\n \"If --run is used and the function is in a component, the path the component tree defined in convex.config.ts. \" +\n \"Components are a beta feature. This flag is unstable and may change in subsequent releases.\",\n )\n .addOption(\n new Option(\n \"--tail-logs [mode]\",\n \"Choose whether to tail Convex function logs in this terminal\",\n )\n .choices([\"always\", \"pause-on-deploy\", \"disable\"] as const)\n .default(\"pause-on-deploy\"),\n )\n .addOption(new Option(\"--trace-events\").default(false).hideHelp())\n .addOption(new Option(\"--debug-bundle-path <path>\").hideHelp())\n .addOption(new Option(\"--debug-node-apis\").hideHelp())\n .addOption(new Option(\"--live-component-sources\").hideHelp())\n .addOption(\n new Option(\n \"--configure [choice]\",\n \"Ignore existing configuration and configure new or existing project, interactively or set by --team <team_slug>, --project <project_slug>, and --dev-deployment local|cloud\",\n )\n .choices([\"new\", \"existing\"] as const)\n .conflicts([\"--local\", \"--cloud\", \"--url\", \"--admin-key\", \"--env-file\"]),\n )\n .addOption(\n new Option(\n \"--team <team_slug>\",\n \"The team you'd like to use for this project\",\n ).hideHelp(),\n )\n .addOption(\n new Option(\n \"--project <project_slug>\",\n \"The name of the project you'd like to configure\",\n ).hideHelp(),\n )\n .addOption(\n new Option(\n \"--dev-deployment <mode>\",\n \"Use a local or cloud deployment for dev for this project\",\n )\n .choices([\"cloud\", \"local\"] as const)\n .conflicts([\"--prod\"])\n .hideHelp(),\n )\n .addOption(\n new Option(\n \"--prod\",\n \"Develop live against this project's production deployment.\",\n )\n .default(false)\n .hideHelp(),\n )\n .addOption(\n new Option(\n \"--env-file <envFile>\",\n `Path to a custom file of environment variables, for choosing the \\\ndeployment, e.g. ${CONVEX_DEPLOYMENT_ENV_VAR_NAME} or ${CONVEX_SELF_HOSTED_URL_VAR_NAME}. \\\nSame format as .env.local or .env files, and overrides them.`,\n ),\n )\n .addOption(new Option(\"--skip-push\").default(false).hideHelp())\n .addOption(new Option(\"--admin-key <adminKey>\").hideHelp())\n .addOption(new Option(\"--url <url>\").hideHelp())\n // Options for testing\n .addOption(new Option(\"--override-auth-url <url>\").hideHelp())\n .addOption(new Option(\"--override-auth-client <id>\").hideHelp())\n .addOption(new Option(\"--override-auth-username <username>\").hideHelp())\n .addOption(new Option(\"--override-auth-password <password>\").hideHelp())\n .addOption(new Option(\"--local-cloud-port <port>\").hideHelp())\n .addOption(new Option(\"--local-site-port <port>\").hideHelp())\n .addOption(new Option(\"--local-backend-version <version>\").hideHelp())\n .addOption(new Option(\"--local-force-upgrade\").default(false).hideHelp())\n .addOption(new Option(\"--deployment <deployment>\").hideHelp())\n .addOption(\n new Option(\n \"--local\",\n \"Use local deployment regardless of last used backend. DB data will not be downloaded from any cloud deployment.\",\n )\n .default(false)\n .conflicts([\"--prod\", \"--url\", \"--admin-key\", \"--cloud\"])\n .hideHelp(),\n )\n .addOption(\n new Option(\n \"--cloud\",\n \"Use cloud deployment regardles of last used backend. DB data will not be uploaded from local.\",\n )\n .default(false)\n .conflicts([\"--prod\", \"--url\", \"--admin-key\", \"--local\"])\n .hideHelp(),\n )\n .showHelpAfterError()\n .action(async (cmdOptions) => {\n const ctx = await oneoffContext(cmdOptions);\n process.on(\"SIGINT\", async () => {\n logVerbose(\"Received SIGINT, cleaning up...\");\n await ctx.flushAndExit(-2);\n });\n\n if (cmdOptions.deployment !== undefined) {\n return await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage:\n \"`--deployment` can\u2019t be used with `npx convex dev`. \\n\\n\" +\n \" To select this deployment for development, run: \\n\" +\n chalkStderr.bold(\n ` npx convex deployment select ${cmdOptions.deployment}\\n`,\n ) +\n \" Then, run `npx convex dev` again.\",\n });\n }\n\n const devOptions = await normalizeDevOptions(ctx, cmdOptions);\n\n if (cmdOptions.configure === undefined) {\n if (cmdOptions.team || cmdOptions.project || cmdOptions.devDeployment)\n return await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage:\n \"`--team, --project, and --dev-deployment can can only be used with `--configure`.\",\n });\n }\n\n const localOptions: {\n ports?: { cloud: number; site: number };\n backendVersion?: string | undefined;\n forceUpgrade: boolean;\n } = { forceUpgrade: false };\n if (!cmdOptions.local && cmdOptions.devDeployment !== \"local\") {\n if (\n cmdOptions.localCloudPort !== undefined ||\n cmdOptions.localSitePort !== undefined ||\n cmdOptions.localBackendVersion !== undefined ||\n cmdOptions.localForceUpgrade === true\n ) {\n return await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage:\n \"`--local-*` options can only be used with `--configure --dev-deployment local` or `--local`.\",\n });\n }\n } else {\n if (cmdOptions.localCloudPort !== undefined) {\n if (cmdOptions.localSitePort === undefined) {\n return await ctx.crash({\n exitCode: 1,\n errorType: \"fatal\",\n printedMessage:\n \"`--local-cloud-port` requires `--local-site-port` to be set.\",\n });\n }\n localOptions[\"ports\"] = {\n cloud: parseInt(cmdOptions.localCloudPort),\n site: parseInt(cmdOptions.localSitePort),\n };\n }\n localOptions[\"backendVersion\"] = cmdOptions.localBackendVersion;\n localOptions[\"forceUpgrade\"] = cmdOptions.localForceUpgrade;\n }\n\n const configure =\n cmdOptions.configure === true ? \"ask\" : (cmdOptions.configure ?? null);\n // --configure means \"pick a project\" \u2014 skip deployment selection entirely\n const deploymentSelection =\n configure !== null\n ? ({\n kind: \"chooseProject\",\n selectionWithinProject: {\n // For backwards compatibility, allow `--configure --prod`\n kind: cmdOptions.prod ? \"prod\" : \"unspecified\",\n },\n } satisfies DeploymentSelection)\n : await getDeploymentSelection(ctx, cmdOptions);\n const credentials = await deploymentCredentialsOrConfigure(\n ctx,\n deploymentSelection,\n configure,\n {\n ...cmdOptions,\n localOptions,\n },\n );\n\n await Promise.all([\n ...(!cmdOptions.skipPush\n ? [\n devAgainstDeployment(\n ctx,\n {\n url: credentials.url,\n adminKey: credentials.adminKey,\n deploymentName:\n credentials.deploymentFields?.deploymentName ?? null,\n ...(credentials.deploymentFields?.deploymentType !== undefined\n ? {\n deploymentType:\n credentials.deploymentFields.deploymentType,\n }\n : {}),\n },\n devOptions,\n ),\n ]\n : []),\n ...(credentials.deploymentFields !== null\n ? [\n usageStateWarning(ctx, credentials.deploymentFields.deploymentName),\n checkVersionAndAiFilesStaleness(ctx),\n ]\n : []),\n ]);\n });\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/cli/docs.js
CHANGED
|
@@ -33,7 +33,7 @@ export const docs = new Command("docs").description("Open the docs in the browse
|
|
|
33
33
|
`get_cookie/${configuredDeployment}`,
|
|
34
34
|
BIG_BRAIN_URL
|
|
35
35
|
);
|
|
36
|
-
const fetch =
|
|
36
|
+
const fetch = bigBrainFetch(ctx);
|
|
37
37
|
try {
|
|
38
38
|
const res = await fetch(getCookieUrl);
|
|
39
39
|
deprecationCheckWarning(ctx, res);
|
package/dist/esm/cli/docs.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cli/docs.ts"],
|
|
4
|
-
"sourcesContent": ["import { Command } from \"@commander-js/extra-typings\";\nimport { chalkStderr } from \"chalk\";\nimport open from \"open\";\nimport { Context, oneoffContext } from \"../bundler/context.js\";\nimport { logMessage } from \"../bundler/log.js\";\nimport {\n BIG_BRAIN_URL,\n bigBrainFetch,\n deprecationCheckWarning,\n} from \"./lib/utils/utils.js\";\nimport {\n getDeploymentSelection,\n deploymentNameFromSelection,\n} from \"./lib/deploymentSelection.js\";\n\nexport const docs = new Command(\"docs\")\n .description(\"Open the docs in the browser\")\n .allowExcessArguments(false)\n .option(\"--no-open\", \"Print docs URL instead of opening it in your browser\")\n .action(async (options) => {\n const ctx = await oneoffContext({\n url: undefined,\n adminKey: undefined,\n envFile: undefined,\n });\n const deploymentSelection = await getDeploymentSelection(ctx, {\n url: undefined,\n adminKey: undefined,\n envFile: undefined,\n });\n const configuredDeployment =\n deploymentNameFromSelection(deploymentSelection);\n if (configuredDeployment === null) {\n await openDocs(ctx, options.open);\n return;\n }\n const getCookieUrl = new URL(\n `get_cookie/${configuredDeployment}`,\n BIG_BRAIN_URL,\n );\n const fetch =
|
|
5
|
-
"mappings": ";AAAA,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAC5B,OAAO,UAAU;AACjB,SAAkB,qBAAqB;AACvC,SAAS,kBAAkB;AAC3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEA,aAAM,OAAO,IAAI,QAAQ,MAAM,EACnC,YAAY,8BAA8B,EAC1C,qBAAqB,KAAK,EAC1B,OAAO,aAAa,sDAAsD,EAC1E,OAAO,OAAO,YAAY;AACzB,QAAM,MAAM,MAAM,cAAc;AAAA,IAC9B,KAAK;AAAA,IACL,UAAU;AAAA,IACV,SAAS;AAAA,EACX,CAAC;AACD,QAAM,sBAAsB,MAAM,uBAAuB,KAAK;AAAA,IAC5D,KAAK;AAAA,IACL,UAAU;AAAA,IACV,SAAS;AAAA,EACX,CAAC;AACD,QAAM,uBACJ,4BAA4B,mBAAmB;AACjD,MAAI,yBAAyB,MAAM;AACjC,UAAM,SAAS,KAAK,QAAQ,IAAI;AAChC;AAAA,EACF;AACA,QAAM,eAAe,IAAI;AAAA,IACvB,cAAc,oBAAoB;AAAA,IAClC;AAAA,EACF;AACA,QAAM,QAAQ,
|
|
4
|
+
"sourcesContent": ["import { Command } from \"@commander-js/extra-typings\";\nimport { chalkStderr } from \"chalk\";\nimport open from \"open\";\nimport { Context, oneoffContext } from \"../bundler/context.js\";\nimport { logMessage } from \"../bundler/log.js\";\nimport {\n BIG_BRAIN_URL,\n bigBrainFetch,\n deprecationCheckWarning,\n} from \"./lib/utils/utils.js\";\nimport {\n getDeploymentSelection,\n deploymentNameFromSelection,\n} from \"./lib/deploymentSelection.js\";\n\nexport const docs = new Command(\"docs\")\n .description(\"Open the docs in the browser\")\n .allowExcessArguments(false)\n .option(\"--no-open\", \"Print docs URL instead of opening it in your browser\")\n .action(async (options) => {\n const ctx = await oneoffContext({\n url: undefined,\n adminKey: undefined,\n envFile: undefined,\n });\n const deploymentSelection = await getDeploymentSelection(ctx, {\n url: undefined,\n adminKey: undefined,\n envFile: undefined,\n });\n const configuredDeployment =\n deploymentNameFromSelection(deploymentSelection);\n if (configuredDeployment === null) {\n await openDocs(ctx, options.open);\n return;\n }\n const getCookieUrl = new URL(\n `get_cookie/${configuredDeployment}`,\n BIG_BRAIN_URL,\n );\n const fetch = bigBrainFetch(ctx);\n try {\n const res = await fetch(getCookieUrl);\n deprecationCheckWarning(ctx, res);\n const { cookie } = await res.json();\n await openDocs(ctx, options.open, cookie);\n } catch {\n await openDocs(ctx, options.open);\n }\n });\n\nasync function openDocs(ctx: Context, toOpen: boolean, cookie?: string) {\n let docsUrl = \"https://docs.convex.dev\";\n if (cookie !== undefined) {\n docsUrl += \"/?t=\" + cookie;\n }\n if (toOpen) {\n await open(docsUrl);\n logMessage(chalkStderr.green(\"Docs have launched! Check your browser.\"));\n } else {\n logMessage(chalkStderr.green(`Find Convex docs here: ${docsUrl}`));\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAC5B,OAAO,UAAU;AACjB,SAAkB,qBAAqB;AACvC,SAAS,kBAAkB;AAC3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEA,aAAM,OAAO,IAAI,QAAQ,MAAM,EACnC,YAAY,8BAA8B,EAC1C,qBAAqB,KAAK,EAC1B,OAAO,aAAa,sDAAsD,EAC1E,OAAO,OAAO,YAAY;AACzB,QAAM,MAAM,MAAM,cAAc;AAAA,IAC9B,KAAK;AAAA,IACL,UAAU;AAAA,IACV,SAAS;AAAA,EACX,CAAC;AACD,QAAM,sBAAsB,MAAM,uBAAuB,KAAK;AAAA,IAC5D,KAAK;AAAA,IACL,UAAU;AAAA,IACV,SAAS;AAAA,EACX,CAAC;AACD,QAAM,uBACJ,4BAA4B,mBAAmB;AACjD,MAAI,yBAAyB,MAAM;AACjC,UAAM,SAAS,KAAK,QAAQ,IAAI;AAChC;AAAA,EACF;AACA,QAAM,eAAe,IAAI;AAAA,IACvB,cAAc,oBAAoB;AAAA,IAClC;AAAA,EACF;AACA,QAAM,QAAQ,cAAc,GAAG;AAC/B,MAAI;AACF,UAAM,MAAM,MAAM,MAAM,YAAY;AACpC,4BAAwB,KAAK,GAAG;AAChC,UAAM,EAAE,OAAO,IAAI,MAAM,IAAI,KAAK;AAClC,UAAM,SAAS,KAAK,QAAQ,MAAM,MAAM;AAAA,EAC1C,QAAQ;AACN,UAAM,SAAS,KAAK,QAAQ,IAAI;AAAA,EAClC;AACF,CAAC;AAEH,eAAe,SAAS,KAAc,QAAiB,QAAiB;AACtE,MAAI,UAAU;AACd,MAAI,WAAW,QAAW;AACxB,eAAW,SAAS;AAAA,EACtB;AACA,MAAI,QAAQ;AACV,UAAM,KAAK,OAAO;AAClB,eAAW,YAAY,MAAM,yCAAyC,CAAC;AAAA,EACzE,OAAO;AACL,eAAW,YAAY,MAAM,0BAA0B,OAAO,EAAE,CAAC;AAAA,EACnE;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/cli/init.js
CHANGED
|
@@ -4,7 +4,7 @@ import { oneoffContext } from "../bundler/context.js";
|
|
|
4
4
|
import { logVerbose } from "../bundler/log.js";
|
|
5
5
|
import { deploymentCredentialsOrConfigure } from "./configure.js";
|
|
6
6
|
import { getDeploymentSelection } from "./lib/deploymentSelection.js";
|
|
7
|
-
import {
|
|
7
|
+
import { checkVersionAndAiFilesStaleness } from "./lib/updates.js";
|
|
8
8
|
import { usageStateWarning } from "./lib/usage.js";
|
|
9
9
|
export const init = new Command("init").description(
|
|
10
10
|
"Ensures a Convex project is configured and initialized in the current directory. Does nothing if one is already configured. Unlike `npx convex dev`, it will not push code or typecheck.\nTypically you can skip this and run `npx convex dev` directly which will both initialize and continously deploy code. \n\nTo initialize an agent: `export CONVEX_AGENT_MODE=anonymous && npx convex init && npx convex env set < .env.defaults && npx convex dev`."
|
|
@@ -30,7 +30,7 @@ export const init = new Command("init").description(
|
|
|
30
30
|
if (credentials.deploymentFields !== null) {
|
|
31
31
|
await Promise.all([
|
|
32
32
|
usageStateWarning(ctx, credentials.deploymentFields.deploymentName),
|
|
33
|
-
|
|
33
|
+
checkVersionAndAiFilesStaleness(ctx)
|
|
34
34
|
]);
|
|
35
35
|
}
|
|
36
36
|
await ctx.flushAndExit(0);
|
package/dist/esm/cli/init.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cli/init.ts"],
|
|
4
|
-
"sourcesContent": ["import { Command } from \"@commander-js/extra-typings\";\nimport { oneoffContext } from \"../bundler/context.js\";\nimport { logVerbose } from \"../bundler/log.js\";\nimport { deploymentCredentialsOrConfigure } from \"./configure.js\";\nimport { getDeploymentSelection } from \"./lib/deploymentSelection.js\";\nimport {
|
|
5
|
-
"mappings": ";AAAA,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,wCAAwC;AACjD,SAAS,8BAA8B;AACvC,SAAS,
|
|
4
|
+
"sourcesContent": ["import { Command } from \"@commander-js/extra-typings\";\nimport { oneoffContext } from \"../bundler/context.js\";\nimport { logVerbose } from \"../bundler/log.js\";\nimport { deploymentCredentialsOrConfigure } from \"./configure.js\";\nimport { getDeploymentSelection } from \"./lib/deploymentSelection.js\";\nimport { checkVersionAndAiFilesStaleness } from \"./lib/updates.js\";\nimport { usageStateWarning } from \"./lib/usage.js\";\n\n// Equivalent to `npx convex dev --once --skip-push`.\nexport const init = new Command(\"init\")\n .description(\n \"Ensures a Convex project is configured and initialized in the current directory. Does nothing if one is already configured. Unlike `npx convex dev`, it will not push code or typecheck.\\nTypically you can skip this and run `npx convex dev` directly which will both initialize and continously deploy code. \\n\\nTo initialize an agent: `export CONVEX_AGENT_MODE=anonymous && npx convex init && npx convex env set < .env.defaults && npx convex dev`.\",\n )\n .summary(\n \"Ensures a Convex project is configured. Does not push code. No-ops if already configured.\",\n )\n .allowExcessArguments(false)\n .action(async () => {\n const ctx = await oneoffContext({\n url: undefined,\n adminKey: undefined,\n envFile: undefined,\n });\n process.on(\"SIGINT\", async () => {\n logVerbose(\"Received SIGINT, cleaning up...\");\n await ctx.flushAndExit(-2);\n });\n\n const deploymentSelection = await getDeploymentSelection(ctx, {});\n const credentials = await deploymentCredentialsOrConfigure(\n ctx,\n deploymentSelection,\n null,\n { prod: false, localOptions: { forceUpgrade: false } },\n );\n\n if (credentials.deploymentFields !== null) {\n await Promise.all([\n usageStateWarning(ctx, credentials.deploymentFields.deploymentName),\n checkVersionAndAiFilesStaleness(ctx),\n ]);\n }\n\n await ctx.flushAndExit(0);\n });\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,wCAAwC;AACjD,SAAS,8BAA8B;AACvC,SAAS,uCAAuC;AAChD,SAAS,yBAAyB;AAG3B,aAAM,OAAO,IAAI,QAAQ,MAAM,EACnC;AAAA,EACC;AACF,EACC;AAAA,EACC;AACF,EACC,qBAAqB,KAAK,EAC1B,OAAO,YAAY;AAClB,QAAM,MAAM,MAAM,cAAc;AAAA,IAC9B,KAAK;AAAA,IACL,UAAU;AAAA,IACV,SAAS;AAAA,EACX,CAAC;AACD,UAAQ,GAAG,UAAU,YAAY;AAC/B,eAAW,iCAAiC;AAC5C,UAAM,IAAI,aAAa,EAAE;AAAA,EAC3B,CAAC;AAED,QAAM,sBAAsB,MAAM,uBAAuB,KAAK,CAAC,CAAC;AAChE,QAAM,cAAc,MAAM;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,MAAM,OAAO,cAAc,EAAE,cAAc,MAAM,EAAE;AAAA,EACvD;AAEA,MAAI,YAAY,qBAAqB,MAAM;AACzC,UAAM,QAAQ,IAAI;AAAA,MAChB,kBAAkB,KAAK,YAAY,iBAAiB,cAAc;AAAA,MAClE,gCAAgC,GAAG;AAAA,IACrC,CAAC;AAAA,EACH;AAEA,QAAM,IAAI,aAAa,CAAC;AAC1B,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -7,10 +7,12 @@ import {
|
|
|
7
7
|
import { agentsMdPath } from "./paths.js";
|
|
8
8
|
import {
|
|
9
9
|
injectManagedSection,
|
|
10
|
-
|
|
10
|
+
attemptToStripManagedSection,
|
|
11
11
|
hasManagedSection,
|
|
12
|
-
|
|
12
|
+
attemptToRemoveMarkdownSection
|
|
13
13
|
} from "./utils.js";
|
|
14
|
+
import { logMessage } from "../../../bundler/log.js";
|
|
15
|
+
import { chalkStderr } from "chalk";
|
|
14
16
|
function target(projectDir) {
|
|
15
17
|
return {
|
|
16
18
|
filePath: agentsMdPath(projectDir),
|
|
@@ -24,13 +26,13 @@ export async function injectAgentsMdSection({
|
|
|
24
26
|
}) {
|
|
25
27
|
return injectManagedSection({ ...target(projectDir), section });
|
|
26
28
|
}
|
|
27
|
-
export async function
|
|
28
|
-
return
|
|
29
|
+
export async function attemptToStripAgentsMdSection(projectDir) {
|
|
30
|
+
return attemptToStripManagedSection(target(projectDir));
|
|
29
31
|
}
|
|
30
|
-
export async function
|
|
31
|
-
return
|
|
32
|
+
export async function attemptToRemoveAgentsMdSection(projectDir) {
|
|
33
|
+
return attemptToRemoveMarkdownSection({
|
|
32
34
|
projectDir,
|
|
33
|
-
strip:
|
|
35
|
+
strip: attemptToStripAgentsMdSection,
|
|
34
36
|
fileName: "AGENTS.md"
|
|
35
37
|
});
|
|
36
38
|
}
|
|
@@ -39,14 +41,16 @@ export async function hasAgentsMdInstalled(projectDir) {
|
|
|
39
41
|
}
|
|
40
42
|
export async function applyAgentsMdSection({
|
|
41
43
|
projectDir,
|
|
42
|
-
|
|
44
|
+
state,
|
|
43
45
|
convexDirName
|
|
44
46
|
}) {
|
|
45
47
|
const result = await injectAgentsMdSection({
|
|
46
48
|
section: agentsMdConvexSection(convexDirName),
|
|
47
49
|
projectDir
|
|
48
50
|
});
|
|
49
|
-
|
|
51
|
+
if (result.didWrite)
|
|
52
|
+
logMessage(`${chalkStderr.green("\u2714")} AGENTS.md written`);
|
|
53
|
+
state.agentsMdSectionHash = result.sectionHash;
|
|
50
54
|
return result.didWrite;
|
|
51
55
|
}
|
|
52
56
|
//# sourceMappingURL=agentsmd.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/cli/lib/aiFiles/agentsmd.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n AGENTS_MD_START_MARKER,\n AGENTS_MD_END_MARKER,\n agentsMdConvexSection,\n} from \"../../codegen_templates/agentsmd.js\";\nimport { agentsMdPath } from \"./paths.js\";\nimport { type
|
|
5
|
-
"mappings": ";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAE7B;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;
|
|
4
|
+
"sourcesContent": ["import {\n AGENTS_MD_START_MARKER,\n AGENTS_MD_END_MARKER,\n agentsMdConvexSection,\n} from \"../../codegen_templates/agentsmd.js\";\nimport { agentsMdPath } from \"./paths.js\";\nimport { type AiFilesState } from \"./state.js\";\nimport {\n type ManagedSectionTarget,\n type InjectResult,\n type StripResult,\n injectManagedSection,\n attemptToStripManagedSection,\n hasManagedSection,\n attemptToRemoveMarkdownSection,\n} from \"./utils.js\";\nimport { logMessage } from \"../../../bundler/log.js\";\nimport { chalkStderr } from \"chalk\";\n\nfunction target(projectDir?: string): ManagedSectionTarget {\n return {\n filePath: agentsMdPath(projectDir),\n startMarker: AGENTS_MD_START_MARKER,\n endMarker: AGENTS_MD_END_MARKER,\n };\n}\n\nexport async function injectAgentsMdSection({\n section,\n projectDir,\n}: {\n section: string;\n projectDir?: string;\n}): Promise<InjectResult> {\n return injectManagedSection({ ...target(projectDir), section });\n}\n\nexport async function attemptToStripAgentsMdSection(\n projectDir: string,\n): Promise<StripResult> {\n return attemptToStripManagedSection(target(projectDir));\n}\n\nexport async function attemptToRemoveAgentsMdSection(\n projectDir: string,\n): Promise<boolean> {\n return attemptToRemoveMarkdownSection({\n projectDir,\n strip: attemptToStripAgentsMdSection,\n fileName: \"AGENTS.md\",\n });\n}\n\nexport async function hasAgentsMdInstalled(\n projectDir: string,\n): Promise<boolean> {\n return hasManagedSection(target(projectDir));\n}\n\n/**\n * Inject (or update) the Convex section in AGENTS.md and record the hash.\n * Returns true if the file was actually written.\n */\nexport async function applyAgentsMdSection({\n projectDir,\n state,\n convexDirName,\n}: {\n projectDir: string;\n state: AiFilesState;\n convexDirName: string;\n}): Promise<boolean> {\n const result = await injectAgentsMdSection({\n section: agentsMdConvexSection(convexDirName),\n projectDir,\n });\n if (result.didWrite)\n logMessage(`${chalkStderr.green(\"\u2714\")} AGENTS.md written`);\n state.agentsMdSectionHash = result.sectionHash;\n return result.didWrite;\n}\n"],
|
|
5
|
+
"mappings": ";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAE7B;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAE5B,SAAS,OAAO,YAA2C;AACzD,SAAO;AAAA,IACL,UAAU,aAAa,UAAU;AAAA,IACjC,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AACF;AAEA,sBAAsB,sBAAsB;AAAA,EAC1C;AAAA,EACA;AACF,GAG0B;AACxB,SAAO,qBAAqB,EAAE,GAAG,OAAO,UAAU,GAAG,QAAQ,CAAC;AAChE;AAEA,sBAAsB,8BACpB,YACsB;AACtB,SAAO,6BAA6B,OAAO,UAAU,CAAC;AACxD;AAEA,sBAAsB,+BACpB,YACkB;AAClB,SAAO,+BAA+B;AAAA,IACpC;AAAA,IACA,OAAO;AAAA,IACP,UAAU;AAAA,EACZ,CAAC;AACH;AAEA,sBAAsB,qBACpB,YACkB;AAClB,SAAO,kBAAkB,OAAO,UAAU,CAAC;AAC7C;AAMA,sBAAsB,qBAAqB;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AACF,GAIqB;AACnB,QAAM,SAAS,MAAM,sBAAsB;AAAA,IACzC,SAAS,sBAAsB,aAAa;AAAA,IAC5C;AAAA,EACF,CAAC;AACD,MAAI,OAAO;AACT,eAAW,GAAG,YAAY,MAAM,QAAG,CAAC,oBAAoB;AAC1D,QAAM,sBAAsB,OAAO;AACnC,SAAO,OAAO;AAChB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -7,10 +7,12 @@ import {
|
|
|
7
7
|
import { claudeMdPath } from "./paths.js";
|
|
8
8
|
import {
|
|
9
9
|
injectManagedSection,
|
|
10
|
-
|
|
10
|
+
attemptToStripManagedSection,
|
|
11
11
|
hasManagedSection,
|
|
12
|
-
|
|
12
|
+
attemptToRemoveMarkdownSection
|
|
13
13
|
} from "./utils.js";
|
|
14
|
+
import { logMessage } from "../../../bundler/log.js";
|
|
15
|
+
import { chalkStderr } from "chalk";
|
|
14
16
|
function target(projectDir) {
|
|
15
17
|
return {
|
|
16
18
|
filePath: claudeMdPath(projectDir),
|
|
@@ -24,13 +26,13 @@ export async function injectClaudeMdSection({
|
|
|
24
26
|
}) {
|
|
25
27
|
return injectManagedSection({ ...target(projectDir), section });
|
|
26
28
|
}
|
|
27
|
-
export async function
|
|
28
|
-
return
|
|
29
|
+
export async function attemptToStripClaudeMdSection(projectDir) {
|
|
30
|
+
return attemptToStripManagedSection(target(projectDir));
|
|
29
31
|
}
|
|
30
|
-
export async function
|
|
31
|
-
return
|
|
32
|
+
export async function attemptToRemoveClaudeMdSection(projectDir) {
|
|
33
|
+
return attemptToRemoveMarkdownSection({
|
|
32
34
|
projectDir,
|
|
33
|
-
strip:
|
|
35
|
+
strip: attemptToStripClaudeMdSection,
|
|
34
36
|
fileName: "CLAUDE.md"
|
|
35
37
|
});
|
|
36
38
|
}
|
|
@@ -39,14 +41,16 @@ export async function hasClaudeMdInstalled(projectDir) {
|
|
|
39
41
|
}
|
|
40
42
|
export async function applyClaudeMdSection({
|
|
41
43
|
projectDir,
|
|
42
|
-
|
|
44
|
+
state,
|
|
43
45
|
convexDirName
|
|
44
46
|
}) {
|
|
45
47
|
const result = await injectClaudeMdSection({
|
|
46
48
|
section: claudeMdConvexSection(convexDirName),
|
|
47
49
|
projectDir
|
|
48
50
|
});
|
|
49
|
-
|
|
51
|
+
if (result.didWrite)
|
|
52
|
+
logMessage(`${chalkStderr.green("\u2714")} CLAUDE.md written`);
|
|
53
|
+
state.claudeMdHash = result.sectionHash;
|
|
50
54
|
return result.didWrite;
|
|
51
55
|
}
|
|
52
56
|
//# sourceMappingURL=claudemd.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/cli/lib/aiFiles/claudemd.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n CLAUDE_MD_END_MARKER,\n CLAUDE_MD_START_MARKER,\n claudeMdConvexSection,\n} from \"../../codegen_templates/claudemd.js\";\nimport { claudeMdPath } from \"./paths.js\";\nimport { type
|
|
5
|
-
"mappings": ";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAE7B;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;
|
|
4
|
+
"sourcesContent": ["import {\n CLAUDE_MD_END_MARKER,\n CLAUDE_MD_START_MARKER,\n claudeMdConvexSection,\n} from \"../../codegen_templates/claudemd.js\";\nimport { claudeMdPath } from \"./paths.js\";\nimport { type AiFilesState } from \"./state.js\";\nimport {\n type ManagedSectionTarget,\n type InjectResult,\n type StripResult,\n injectManagedSection,\n attemptToStripManagedSection,\n hasManagedSection,\n attemptToRemoveMarkdownSection,\n} from \"./utils.js\";\nimport { logMessage } from \"../../../bundler/log.js\";\nimport { chalkStderr } from \"chalk\";\n\nfunction target(projectDir?: string): ManagedSectionTarget {\n return {\n filePath: claudeMdPath(projectDir),\n startMarker: CLAUDE_MD_START_MARKER,\n endMarker: CLAUDE_MD_END_MARKER,\n };\n}\n\nexport async function injectClaudeMdSection({\n section,\n projectDir,\n}: {\n section: string;\n projectDir?: string;\n}): Promise<InjectResult> {\n return injectManagedSection({ ...target(projectDir), section });\n}\n\nexport async function attemptToStripClaudeMdSection(\n projectDir: string,\n): Promise<StripResult> {\n return attemptToStripManagedSection(target(projectDir));\n}\n\nexport async function attemptToRemoveClaudeMdSection(\n projectDir: string,\n): Promise<boolean> {\n return attemptToRemoveMarkdownSection({\n projectDir,\n strip: attemptToStripClaudeMdSection,\n fileName: \"CLAUDE.md\",\n });\n}\n\nexport async function hasClaudeMdInstalled(\n projectDir: string,\n): Promise<boolean> {\n return hasManagedSection(target(projectDir));\n}\n\n/**\n * Inject (or update) the Convex section in CLAUDE.md and record the hash.\n * Returns true if the file was actually written.\n */\nexport async function applyClaudeMdSection({\n projectDir,\n state,\n convexDirName,\n}: {\n projectDir: string;\n state: AiFilesState;\n convexDirName: string;\n}): Promise<boolean> {\n const result = await injectClaudeMdSection({\n section: claudeMdConvexSection(convexDirName),\n projectDir,\n });\n if (result.didWrite)\n logMessage(`${chalkStderr.green(\"\u2714\")} CLAUDE.md written`);\n state.claudeMdHash = result.sectionHash;\n return result.didWrite;\n}\n"],
|
|
5
|
+
"mappings": ";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAE7B;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAE5B,SAAS,OAAO,YAA2C;AACzD,SAAO;AAAA,IACL,UAAU,aAAa,UAAU;AAAA,IACjC,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AACF;AAEA,sBAAsB,sBAAsB;AAAA,EAC1C;AAAA,EACA;AACF,GAG0B;AACxB,SAAO,qBAAqB,EAAE,GAAG,OAAO,UAAU,GAAG,QAAQ,CAAC;AAChE;AAEA,sBAAsB,8BACpB,YACsB;AACtB,SAAO,6BAA6B,OAAO,UAAU,CAAC;AACxD;AAEA,sBAAsB,+BACpB,YACkB;AAClB,SAAO,+BAA+B;AAAA,IACpC;AAAA,IACA,OAAO;AAAA,IACP,UAAU;AAAA,EACZ,CAAC;AACH;AAEA,sBAAsB,qBACpB,YACkB;AAClB,SAAO,kBAAkB,OAAO,UAAU,CAAC;AAC7C;AAMA,sBAAsB,qBAAqB;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AACF,GAIqB;AACnB,QAAM,SAAS,MAAM,sBAAsB;AAAA,IACzC,SAAS,sBAAsB,aAAa;AAAA,IAC5C;AAAA,EACF,CAAC;AACD,MAAI,OAAO;AACT,eAAW,GAAG,YAAY,MAAM,QAAG,CAAC,oBAAoB;AAC1D,QAAM,eAAe,OAAO;AAC5B,SAAO,OAAO;AAChB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,14 +4,17 @@ import { chalkStderr } from "chalk";
|
|
|
4
4
|
import { logMessage } from "../../../bundler/log.js";
|
|
5
5
|
import { downloadGuidelines } from "../versionApi.js";
|
|
6
6
|
import { hashSha256 } from "../utils/hash.js";
|
|
7
|
-
import { guidelinesPathForConvexDir } from "./paths.js";
|
|
8
|
-
import {
|
|
7
|
+
import { aiDirForConvexDir, guidelinesPathForConvexDir } from "./paths.js";
|
|
8
|
+
import { attemptReadFile, exhaustiveCheck } from "./utils.js";
|
|
9
9
|
export async function hasGuidelinesInstalled(convexDir) {
|
|
10
|
-
|
|
10
|
+
const result = await attemptReadFile(guidelinesPathForConvexDir(convexDir));
|
|
11
|
+
if (result.kind === "content") return true;
|
|
12
|
+
if (result.kind === "empty" || result.kind === "not-found") return false;
|
|
13
|
+
return exhaustiveCheck(result);
|
|
11
14
|
}
|
|
12
15
|
export async function installGuidelinesFile({
|
|
13
16
|
convexDir,
|
|
14
|
-
|
|
17
|
+
state
|
|
15
18
|
}) {
|
|
16
19
|
const guidelines = await downloadGuidelines();
|
|
17
20
|
if (guidelines === null) {
|
|
@@ -22,7 +25,11 @@ export async function installGuidelinesFile({
|
|
|
22
25
|
);
|
|
23
26
|
return;
|
|
24
27
|
}
|
|
28
|
+
await fs.mkdir(aiDirForConvexDir(convexDir), { recursive: true });
|
|
25
29
|
await fs.writeFile(guidelinesPathForConvexDir(convexDir), guidelines, "utf8");
|
|
26
|
-
|
|
30
|
+
state.guidelinesHash = hashSha256(guidelines);
|
|
31
|
+
logMessage(
|
|
32
|
+
`${chalkStderr.green("\u2714")} ${guidelinesPathForConvexDir(convexDir)} written`
|
|
33
|
+
);
|
|
27
34
|
}
|
|
28
35
|
//# sourceMappingURL=guidelinesmd.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/cli/lib/aiFiles/guidelinesmd.ts"],
|
|
4
|
-
"sourcesContent": ["// eslint-disable-next-line no-restricted-imports\nimport { promises as fs } from \"fs\";\nimport { chalkStderr } from \"chalk\";\nimport { logMessage } from \"../../../bundler/log.js\";\nimport { downloadGuidelines } from \"../versionApi.js\";\nimport { hashSha256 } from \"../utils/hash.js\";\nimport { guidelinesPathForConvexDir } from \"./paths.js\";\nimport {
|
|
5
|
-
"mappings": ";AACA,SAAS,YAAY,UAAU;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,SAAS,0BAA0B;AACnC,SAAS,kBAAkB;AAC3B,SAAS,kCAAkC;
|
|
4
|
+
"sourcesContent": ["// eslint-disable-next-line no-restricted-imports\nimport { promises as fs } from \"fs\";\nimport { chalkStderr } from \"chalk\";\nimport { logMessage } from \"../../../bundler/log.js\";\nimport { downloadGuidelines } from \"../versionApi.js\";\nimport { hashSha256 } from \"../utils/hash.js\";\nimport { aiDirForConvexDir, guidelinesPathForConvexDir } from \"./paths.js\";\nimport { attemptReadFile, exhaustiveCheck } from \"./utils.js\";\nimport { type AiFilesState } from \"./state.js\";\n\nexport async function hasGuidelinesInstalled(\n convexDir: string,\n): Promise<boolean> {\n const result = await attemptReadFile(guidelinesPathForConvexDir(convexDir));\n if (result.kind === \"content\") return true;\n if (result.kind === \"empty\" || result.kind === \"not-found\") return false;\n return exhaustiveCheck(result);\n}\n\n/**\n * Download and write the guidelines file.\n * Guidelines live in `_generated/` so local edits are not expected and are\n * not preserved.\n */\nexport async function installGuidelinesFile({\n convexDir,\n state,\n}: {\n convexDir: string;\n state: AiFilesState;\n}): Promise<void> {\n const guidelines = await downloadGuidelines();\n if (guidelines === null) {\n logMessage(\n chalkStderr.yellow(\n \"Could not download Convex AI guidelines right now. You can retry with: npx convex ai-files install\",\n ),\n );\n return;\n }\n\n await fs.mkdir(aiDirForConvexDir(convexDir), { recursive: true });\n await fs.writeFile(guidelinesPathForConvexDir(convexDir), guidelines, \"utf8\");\n state.guidelinesHash = hashSha256(guidelines);\n\n logMessage(\n `${chalkStderr.green(\"\u2714\")} ${guidelinesPathForConvexDir(convexDir)} written`,\n );\n}\n"],
|
|
5
|
+
"mappings": ";AACA,SAAS,YAAY,UAAU;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,SAAS,0BAA0B;AACnC,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB,kCAAkC;AAC9D,SAAS,iBAAiB,uBAAuB;AAGjD,sBAAsB,uBACpB,WACkB;AAClB,QAAM,SAAS,MAAM,gBAAgB,2BAA2B,SAAS,CAAC;AAC1E,MAAI,OAAO,SAAS,UAAW,QAAO;AACtC,MAAI,OAAO,SAAS,WAAW,OAAO,SAAS,YAAa,QAAO;AACnE,SAAO,gBAAgB,MAAM;AAC/B;AAOA,sBAAsB,sBAAsB;AAAA,EAC1C;AAAA,EACA;AACF,GAGkB;AAChB,QAAM,aAAa,MAAM,mBAAmB;AAC5C,MAAI,eAAe,MAAM;AACvB;AAAA,MACE,YAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF;AACA;AAAA,EACF;AAEA,QAAM,GAAG,MAAM,kBAAkB,SAAS,GAAG,EAAE,WAAW,KAAK,CAAC;AAChE,QAAM,GAAG,UAAU,2BAA2B,SAAS,GAAG,YAAY,MAAM;AAC5E,QAAM,iBAAiB,WAAW,UAAU;AAE5C;AAAA,IACE,GAAG,YAAY,MAAM,QAAG,CAAC,IAAI,2BAA2B,SAAS,CAAC;AAAA,EACpE;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|