convex 1.34.0 → 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 +98 -43
- package/dist/browser.bundle.js +13 -10
- 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/browser/sync/authentication_manager.js +4 -1
- package/dist/cjs/browser/sync/authentication_manager.js.map +2 -2
- package/dist/cjs/browser/sync/web_socket_manager.js +1 -7
- package/dist/cjs/browser/sync/web_socket_manager.js.map +2 -2
- package/dist/cjs/cli/aiFiles.js +39 -20
- 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 +34 -32
- 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 +73 -0
- package/dist/cjs/cli/lib/aiFiles/agentsmd.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/claudemd.js +73 -0
- package/dist/cjs/cli/lib/aiFiles/claudemd.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/cursorrules.js +48 -0
- package/dist/cjs/cli/lib/aiFiles/cursorrules.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js +58 -0
- package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/index.js +215 -0
- package/dist/cjs/cli/lib/aiFiles/index.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/paths.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/skills.js +196 -0
- package/dist/cjs/cli/lib/aiFiles/skills.js.map +7 -0
- 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 +198 -0
- package/dist/cjs/cli/lib/aiFiles/status.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/utils.js +128 -0
- package/dist/cjs/cli/lib/aiFiles/utils.js.map +7 -0
- 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 +10 -6
- package/dist/cjs/cli/lib/command.js.map +2 -2
- package/dist/cjs/cli/lib/config.js +43 -7
- 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 +15 -8
- 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 +12 -13
- 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/cli/lib/versionApi.js +7 -4
- package/dist/cjs/cli/lib/versionApi.js.map +2 -2
- package/dist/cjs/cli/lib/workos/workos.js +4 -6
- package/dist/cjs/cli/lib/workos/workos.js.map +2 -2
- 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/browser/sync/authentication_manager.d.ts.map +1 -1
- package/dist/cjs-types/browser/sync/web_socket_manager.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 +19 -0
- package/dist/cjs-types/cli/lib/aiFiles/agentsmd.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/agentsmd.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/aiFiles/agentsmd.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.d.ts +19 -0
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/cursorrules.d.ts +10 -0
- package/dist/cjs-types/cli/lib/aiFiles/cursorrules.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts +12 -0
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/index.d.ts +42 -0
- package/dist/cjs-types/cli/lib/aiFiles/index.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/index.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/integration.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/{ai → aiFiles}/paths.d.ts +4 -0
- package/dist/cjs-types/cli/lib/aiFiles/paths.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/prompt.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts +20 -0
- package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts.map +1 -0
- 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 +6 -0
- package/dist/cjs-types/cli/lib/aiFiles/status.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/utils.d.ts +56 -0
- package/dist/cjs-types/cli/lib/aiFiles/utils.d.ts.map +1 -0
- 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 +18 -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/cli/lib/versionApi.d.ts +7 -1
- package/dist/cjs-types/cli/lib/versionApi.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/workos/workos.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 +2446 -1933
- 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/browser/sync/authentication_manager.js +4 -1
- package/dist/esm/browser/sync/authentication_manager.js.map +2 -2
- package/dist/esm/browser/sync/web_socket_manager.js +1 -7
- package/dist/esm/browser/sync/web_socket_manager.js.map +2 -2
- package/dist/esm/cli/aiFiles.js +41 -23
- 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 +35 -33
- 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 +56 -0
- package/dist/esm/cli/lib/aiFiles/agentsmd.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/claudemd.js +56 -0
- package/dist/esm/cli/lib/aiFiles/claudemd.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/cursorrules.js +16 -0
- package/dist/esm/cli/lib/aiFiles/cursorrules.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/guidelinesmd.js +35 -0
- package/dist/esm/cli/lib/aiFiles/guidelinesmd.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/index.js +193 -0
- package/dist/esm/cli/lib/aiFiles/index.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/paths.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/skills.js +163 -0
- package/dist/esm/cli/lib/aiFiles/skills.js.map +7 -0
- 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 +178 -0
- package/dist/esm/cli/lib/aiFiles/status.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/utils.js +97 -0
- package/dist/esm/cli/lib/aiFiles/utils.js.map +7 -0
- 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 +10 -6
- package/dist/esm/cli/lib/command.js.map +2 -2
- package/dist/esm/cli/lib/config.js +41 -6
- 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 +14 -12
- 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/cli/lib/versionApi.js +7 -4
- package/dist/esm/cli/lib/versionApi.js.map +2 -2
- package/dist/esm/cli/lib/workos/workos.js +4 -6
- package/dist/esm/cli/lib/workos/workos.js.map +2 -2
- 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/browser/sync/authentication_manager.d.ts.map +1 -1
- package/dist/esm-types/browser/sync/web_socket_manager.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 +19 -0
- package/dist/esm-types/cli/lib/aiFiles/agentsmd.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/agentsmd.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/aiFiles/agentsmd.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/claudemd.d.ts +19 -0
- package/dist/esm-types/cli/lib/aiFiles/claudemd.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/claudemd.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/aiFiles/claudemd.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/cursorrules.d.ts +10 -0
- package/dist/esm-types/cli/lib/aiFiles/cursorrules.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts +12 -0
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/index.d.ts +42 -0
- package/dist/esm-types/cli/lib/aiFiles/index.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/index.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/integration.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/{ai → aiFiles}/paths.d.ts +4 -0
- package/dist/esm-types/cli/lib/aiFiles/paths.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/prompt.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/skills.d.ts +20 -0
- package/dist/esm-types/cli/lib/aiFiles/skills.d.ts.map +1 -0
- 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 +6 -0
- package/dist/esm-types/cli/lib/aiFiles/status.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/utils.d.ts +56 -0
- package/dist/esm-types/cli/lib/aiFiles/utils.d.ts.map +1 -0
- 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 +18 -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/cli/lib/versionApi.d.ts +7 -1
- package/dist/esm-types/cli/lib/versionApi.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/workos/workos.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 +55 -15
- package/dist/react.bundle.js.map +3 -3
- package/package.json +11 -7
- package/schemas/convex.schema.json +22 -3
- 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/browser/sync/authentication_manager.ts +9 -4
- package/src/browser/sync/client_node.test.ts +125 -0
- package/src/browser/sync/web_socket_manager.ts +1 -7
- package/src/cli/aiFiles.ts +56 -33
- package/src/cli/codegen_templates/readme.ts +14 -1
- package/src/cli/configure.test.ts +138 -0
- package/src/cli/configure.ts +62 -55
- 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 +399 -37
- 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/{ai → aiFiles}/MANUAL_TESTING.md +6 -2
- package/src/cli/lib/aiFiles/agentsmd.test.ts +133 -0
- package/src/cli/lib/aiFiles/agentsmd.ts +81 -0
- package/src/cli/lib/aiFiles/claudemd.test.ts +92 -0
- package/src/cli/lib/aiFiles/claudemd.ts +81 -0
- package/src/cli/lib/aiFiles/cursorrules.ts +25 -0
- package/src/cli/lib/aiFiles/guidelinesmd.test.ts +50 -0
- package/src/cli/lib/aiFiles/guidelinesmd.ts +49 -0
- package/src/cli/lib/{ai → aiFiles}/index.test.ts +343 -516
- package/src/cli/lib/aiFiles/index.ts +297 -0
- package/src/cli/lib/{ai → aiFiles}/integration.test.ts +195 -158
- package/src/cli/lib/{ai → aiFiles}/paths.ts +5 -0
- package/src/cli/lib/{ai → aiFiles}/prompt.test.ts +79 -31
- package/src/cli/lib/aiFiles/skills.ts +243 -0
- 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 +246 -0
- package/src/cli/lib/aiFiles/utils.test.ts +50 -0
- package/src/cli/lib/aiFiles/utils.ts +191 -0
- package/src/cli/lib/api.ts +88 -7
- package/src/cli/lib/command.ts +18 -8
- package/src/cli/lib/config.test.ts +185 -8
- package/src/cli/lib/config.ts +73 -12
- 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 +97 -60
- package/src/cli/lib/updates.ts +17 -15
- 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/cli/lib/versionApi.test.ts +13 -10
- package/src/cli/lib/versionApi.ts +13 -5
- package/src/cli/lib/workos/workos.ts +4 -5
- 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/ai/config.js +0 -144
- package/dist/cjs/cli/lib/ai/config.js.map +0 -7
- package/dist/cjs/cli/lib/ai/index.js +0 -704
- package/dist/cjs/cli/lib/ai/index.js.map +0 -7
- package/dist/cjs/cli/lib/ai/paths.js.map +0 -7
- package/dist/cjs-types/cli/lib/ai/config.d.ts +0 -50
- package/dist/cjs-types/cli/lib/ai/config.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/config.test.d.ts +0 -2
- package/dist/cjs-types/cli/lib/ai/config.test.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/index.d.ts +0 -56
- package/dist/cjs-types/cli/lib/ai/index.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/index.test.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/integration.test.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/paths.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/prompt.test.d.ts.map +0 -1
- package/dist/esm/cli/lib/ai/config.js +0 -109
- package/dist/esm/cli/lib/ai/config.js.map +0 -7
- package/dist/esm/cli/lib/ai/index.js +0 -684
- package/dist/esm/cli/lib/ai/index.js.map +0 -7
- package/dist/esm/cli/lib/ai/paths.js.map +0 -7
- package/dist/esm-types/cli/lib/ai/config.d.ts +0 -50
- package/dist/esm-types/cli/lib/ai/config.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/config.test.d.ts +0 -2
- package/dist/esm-types/cli/lib/ai/config.test.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/index.d.ts +0 -56
- package/dist/esm-types/cli/lib/ai/index.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/index.test.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/integration.test.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/paths.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/prompt.test.d.ts.map +0 -1
- package/src/cli/lib/ai/config.test.ts +0 -338
- package/src/cli/lib/ai/config.ts +0 -159
- package/src/cli/lib/ai/index.ts +0 -1006
- /package/dist/cjs/cli/lib/{ai → aiFiles}/paths.js +0 -0
- /package/dist/cjs-types/cli/lib/{ai → aiFiles}/index.test.d.ts +0 -0
- /package/dist/cjs-types/cli/lib/{ai → aiFiles}/integration.test.d.ts +0 -0
- /package/dist/cjs-types/cli/lib/{ai → aiFiles}/prompt.test.d.ts +0 -0
- /package/dist/esm/cli/lib/{ai → aiFiles}/paths.js +0 -0
- /package/dist/esm-types/cli/lib/{ai → aiFiles}/index.test.d.ts +0 -0
- /package/dist/esm-types/cli/lib/{ai → aiFiles}/integration.test.d.ts +0 -0
- /package/dist/esm-types/cli/lib/{ai → aiFiles}/prompt.test.d.ts +0 -0
|
@@ -11,9 +11,20 @@ import { PlatformProjectDetails } from "@convex-dev/platform/managementApi";
|
|
|
11
11
|
import {
|
|
12
12
|
getDeploymentSelection,
|
|
13
13
|
getProjectDetails,
|
|
14
|
+
deploymentNameFromSelection,
|
|
14
15
|
} from "./lib/deploymentSelection.js";
|
|
15
|
-
import {
|
|
16
|
+
import { saveSelectedDeployment } from "./deploymentSelect.js";
|
|
16
17
|
import { deploymentCreate, resolveRegionDetails } from "./deploymentCreate.js";
|
|
18
|
+
import { ensureBackendBinaryDownloaded } from "./lib/localDeployment/download.js";
|
|
19
|
+
import {
|
|
20
|
+
loadProjectLocalConfig,
|
|
21
|
+
saveDeploymentConfig,
|
|
22
|
+
} from "./lib/localDeployment/filePaths.js";
|
|
23
|
+
import {
|
|
24
|
+
chooseLocalBackendPorts,
|
|
25
|
+
LOCAL_BACKEND_INSTANCE_SECRET,
|
|
26
|
+
} from "./lib/localDeployment/utils.js";
|
|
27
|
+
import { bigBrainStart } from "./lib/localDeployment/bigBrain.js";
|
|
17
28
|
|
|
18
29
|
vi.mock("@sentry/node", () => ({
|
|
19
30
|
captureException: vi.fn(),
|
|
@@ -31,10 +42,29 @@ vi.mock("./lib/deploymentSelection.js", () => ({
|
|
|
31
42
|
initializeBigBrainAuth: vi.fn(),
|
|
32
43
|
getDeploymentSelection: vi.fn(),
|
|
33
44
|
getProjectDetails: vi.fn(),
|
|
45
|
+
deploymentNameFromSelection: vi.fn().mockReturnValue(null),
|
|
34
46
|
}));
|
|
35
47
|
|
|
36
48
|
vi.mock("./deploymentSelect.js", () => ({
|
|
37
|
-
|
|
49
|
+
saveSelectedDeployment: vi.fn(),
|
|
50
|
+
}));
|
|
51
|
+
|
|
52
|
+
vi.mock("./lib/localDeployment/download.js", () => ({
|
|
53
|
+
ensureBackendBinaryDownloaded: vi.fn(),
|
|
54
|
+
}));
|
|
55
|
+
|
|
56
|
+
vi.mock("./lib/localDeployment/filePaths.js", () => ({
|
|
57
|
+
loadProjectLocalConfig: vi.fn(),
|
|
58
|
+
saveDeploymentConfig: vi.fn(),
|
|
59
|
+
}));
|
|
60
|
+
|
|
61
|
+
vi.mock("./lib/localDeployment/utils.js", () => ({
|
|
62
|
+
chooseLocalBackendPorts: vi.fn(),
|
|
63
|
+
LOCAL_BACKEND_INSTANCE_SECRET: "MockSecret123",
|
|
64
|
+
}));
|
|
65
|
+
|
|
66
|
+
vi.mock("./lib/localDeployment/bigBrain.js", () => ({
|
|
67
|
+
bigBrainStart: vi.fn(),
|
|
38
68
|
}));
|
|
39
69
|
|
|
40
70
|
const mockRegions = [
|
|
@@ -107,7 +137,9 @@ describe("non-interactive create flow", () => {
|
|
|
107
137
|
beforeEach(() => {
|
|
108
138
|
vi.mocked(getDeploymentSelection).mockReset();
|
|
109
139
|
vi.mocked(getProjectDetails).mockReset();
|
|
110
|
-
vi.mocked(
|
|
140
|
+
vi.mocked(saveSelectedDeployment).mockReset();
|
|
141
|
+
vi.mocked(deploymentNameFromSelection).mockReset();
|
|
142
|
+
vi.mocked(deploymentNameFromSelection).mockReturnValue(null);
|
|
111
143
|
});
|
|
112
144
|
|
|
113
145
|
describe("validation errors", () => {
|
|
@@ -128,6 +160,165 @@ describe("non-interactive create flow", () => {
|
|
|
128
160
|
expect.stringContaining("--type is required"),
|
|
129
161
|
);
|
|
130
162
|
});
|
|
163
|
+
|
|
164
|
+
test("creates a local deployment: downloads binary, chooses ports, registers with Big Brain, saves config", async () => {
|
|
165
|
+
vi.mocked(getDeploymentSelection).mockResolvedValue({
|
|
166
|
+
kind: "existingDeployment",
|
|
167
|
+
deploymentToActOn: {
|
|
168
|
+
url: "https://joyful-capybara-123.convex.cloud",
|
|
169
|
+
adminKey: "admin-key",
|
|
170
|
+
deploymentFields: {
|
|
171
|
+
deploymentName: "joyful-capybara-123",
|
|
172
|
+
deploymentType: "dev",
|
|
173
|
+
teamSlug: "my-team",
|
|
174
|
+
projectSlug: "my-project",
|
|
175
|
+
},
|
|
176
|
+
source: "deployKey" as const,
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
vi.mocked(getProjectDetails).mockResolvedValue(fakeProject);
|
|
180
|
+
vi.mocked(loadProjectLocalConfig).mockReturnValue(null);
|
|
181
|
+
vi.mocked(ensureBackendBinaryDownloaded).mockResolvedValue({
|
|
182
|
+
binaryPath: "/path",
|
|
183
|
+
version: "1.0.0",
|
|
184
|
+
});
|
|
185
|
+
vi.mocked(chooseLocalBackendPorts).mockResolvedValue({
|
|
186
|
+
cloudPort: 3210,
|
|
187
|
+
sitePort: 3211,
|
|
188
|
+
});
|
|
189
|
+
vi.mocked(bigBrainStart).mockResolvedValue({
|
|
190
|
+
deploymentName: "local-test-123",
|
|
191
|
+
adminKey: "test-key",
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
await deploymentCreate.parseAsync(["local"], { from: "user" });
|
|
195
|
+
|
|
196
|
+
expect(saveDeploymentConfig).toHaveBeenCalledWith(
|
|
197
|
+
expect.anything(),
|
|
198
|
+
"local",
|
|
199
|
+
"local-test-123",
|
|
200
|
+
{
|
|
201
|
+
backendVersion: "1.0.0",
|
|
202
|
+
ports: { cloud: 3210, site: 3211 },
|
|
203
|
+
adminKey: "test-key",
|
|
204
|
+
instanceSecret: LOCAL_BACKEND_INSTANCE_SECRET,
|
|
205
|
+
},
|
|
206
|
+
);
|
|
207
|
+
expect(mockPlatformPost).not.toHaveBeenCalled();
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
test("creates a local deployment with --select and selects it", async () => {
|
|
211
|
+
vi.mocked(getDeploymentSelection).mockResolvedValue({
|
|
212
|
+
kind: "existingDeployment",
|
|
213
|
+
deploymentToActOn: {
|
|
214
|
+
url: "https://joyful-capybara-123.convex.cloud",
|
|
215
|
+
adminKey: "admin-key",
|
|
216
|
+
deploymentFields: {
|
|
217
|
+
deploymentName: "joyful-capybara-123",
|
|
218
|
+
deploymentType: "dev",
|
|
219
|
+
teamSlug: "my-team",
|
|
220
|
+
projectSlug: "my-project",
|
|
221
|
+
},
|
|
222
|
+
source: "deployKey" as const,
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
vi.mocked(getProjectDetails).mockResolvedValue(fakeProject);
|
|
226
|
+
vi.mocked(loadProjectLocalConfig).mockReturnValue(null);
|
|
227
|
+
vi.mocked(ensureBackendBinaryDownloaded).mockResolvedValue({
|
|
228
|
+
binaryPath: "/path",
|
|
229
|
+
version: "1.0.0",
|
|
230
|
+
});
|
|
231
|
+
vi.mocked(chooseLocalBackendPorts).mockResolvedValue({
|
|
232
|
+
cloudPort: 3210,
|
|
233
|
+
sitePort: 3211,
|
|
234
|
+
});
|
|
235
|
+
vi.mocked(bigBrainStart).mockResolvedValue({
|
|
236
|
+
deploymentName: "local-test-123",
|
|
237
|
+
adminKey: "test-key",
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
await deploymentCreate.parseAsync(["local", "--select"], {
|
|
241
|
+
from: "user",
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
expect(saveSelectedDeployment).toHaveBeenCalledWith(
|
|
245
|
+
expect.anything(),
|
|
246
|
+
"local",
|
|
247
|
+
{
|
|
248
|
+
kind: "deploymentWithinProject",
|
|
249
|
+
targetProject: {
|
|
250
|
+
kind: "deploymentName",
|
|
251
|
+
deploymentName: "local-test-123",
|
|
252
|
+
deploymentType: "local",
|
|
253
|
+
},
|
|
254
|
+
selectionWithinProject: {
|
|
255
|
+
kind: "deploymentSelector",
|
|
256
|
+
selector: "local",
|
|
257
|
+
},
|
|
258
|
+
},
|
|
259
|
+
null,
|
|
260
|
+
);
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
test("crashes when creating a local deployment with --type", async () => {
|
|
264
|
+
await expect(
|
|
265
|
+
deploymentCreate.parseAsync(["local", "--type", "dev"], {
|
|
266
|
+
from: "user",
|
|
267
|
+
}),
|
|
268
|
+
).rejects.toThrow();
|
|
269
|
+
expect(process.stderr.write).toHaveBeenCalledWith(
|
|
270
|
+
expect.stringContaining(
|
|
271
|
+
"--type cannot be used when creating a local deployment",
|
|
272
|
+
),
|
|
273
|
+
);
|
|
274
|
+
expect(mockPlatformPost).not.toHaveBeenCalled();
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
test("errors when local deployment already exists", async () => {
|
|
278
|
+
vi.mocked(getDeploymentSelection).mockResolvedValue({
|
|
279
|
+
kind: "existingDeployment",
|
|
280
|
+
deploymentToActOn: {
|
|
281
|
+
url: "https://joyful-capybara-123.convex.cloud",
|
|
282
|
+
adminKey: "admin-key",
|
|
283
|
+
deploymentFields: {
|
|
284
|
+
deploymentName: "joyful-capybara-123",
|
|
285
|
+
deploymentType: "dev",
|
|
286
|
+
teamSlug: "my-team",
|
|
287
|
+
projectSlug: "my-project",
|
|
288
|
+
},
|
|
289
|
+
source: "deployKey" as const,
|
|
290
|
+
},
|
|
291
|
+
});
|
|
292
|
+
vi.mocked(loadProjectLocalConfig).mockReturnValue({
|
|
293
|
+
deploymentName: "existing-local-123",
|
|
294
|
+
config: {} as any,
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
await expect(
|
|
298
|
+
deploymentCreate.parseAsync(["local"], { from: "user" }),
|
|
299
|
+
).rejects.toThrow();
|
|
300
|
+
expect(process.stderr.write).toHaveBeenCalledWith(
|
|
301
|
+
expect.stringContaining("A local deployment already exists"),
|
|
302
|
+
);
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
test.each(["region", "default", "expiration"] as const)(
|
|
306
|
+
"rejects --%s with local",
|
|
307
|
+
async (flag) => {
|
|
308
|
+
const args = ["local", `--${flag}`];
|
|
309
|
+
if (flag === "region") args.push("us");
|
|
310
|
+
if (flag === "expiration") args.push("none");
|
|
311
|
+
|
|
312
|
+
await expect(
|
|
313
|
+
deploymentCreate.parseAsync(args, { from: "user" }),
|
|
314
|
+
).rejects.toThrow();
|
|
315
|
+
expect(process.stderr.write).toHaveBeenCalledWith(
|
|
316
|
+
expect.stringContaining(
|
|
317
|
+
`--${flag} cannot be used when creating a local deployment`,
|
|
318
|
+
),
|
|
319
|
+
);
|
|
320
|
+
},
|
|
321
|
+
);
|
|
131
322
|
});
|
|
132
323
|
|
|
133
324
|
describe("with project configured", () => {
|
|
@@ -285,7 +476,7 @@ describe("non-interactive create flow", () => {
|
|
|
285
476
|
);
|
|
286
477
|
});
|
|
287
478
|
|
|
288
|
-
test("creates a deployment with --select calls
|
|
479
|
+
test("creates a deployment with --select calls saveSelectedDeployment", async () => {
|
|
289
480
|
setupPlatformForCreate({
|
|
290
481
|
reference: "dev/my-deployment",
|
|
291
482
|
});
|
|
@@ -295,9 +486,22 @@ describe("non-interactive create flow", () => {
|
|
|
295
486
|
{ from: "user" },
|
|
296
487
|
);
|
|
297
488
|
|
|
298
|
-
expect(
|
|
489
|
+
expect(saveSelectedDeployment).toHaveBeenCalledWith(
|
|
299
490
|
expect.anything(),
|
|
300
491
|
"dev/my-deployment",
|
|
492
|
+
{
|
|
493
|
+
kind: "deploymentWithinProject",
|
|
494
|
+
targetProject: {
|
|
495
|
+
kind: "teamAndProjectSlugs",
|
|
496
|
+
teamSlug: "my-team",
|
|
497
|
+
projectSlug: "my-project",
|
|
498
|
+
},
|
|
499
|
+
selectionWithinProject: {
|
|
500
|
+
kind: "deploymentSelector",
|
|
501
|
+
selector: "dev/my-deployment",
|
|
502
|
+
},
|
|
503
|
+
},
|
|
504
|
+
null,
|
|
301
505
|
);
|
|
302
506
|
});
|
|
303
507
|
});
|
|
@@ -321,7 +525,6 @@ describe("non-interactive create flow", () => {
|
|
|
321
525
|
teamSlug: "other-team",
|
|
322
526
|
projectSlug: "other-project",
|
|
323
527
|
});
|
|
324
|
-
expect(getDeploymentSelection).not.toHaveBeenCalled();
|
|
325
528
|
expect(mockPlatformPost).toHaveBeenCalledWith(
|
|
326
529
|
"/projects/{project_id}/create_deployment",
|
|
327
530
|
expect.objectContaining({
|
|
@@ -333,6 +536,83 @@ describe("non-interactive create flow", () => {
|
|
|
333
536
|
});
|
|
334
537
|
});
|
|
335
538
|
|
|
539
|
+
describe("--expiration flag", () => {
|
|
540
|
+
beforeEach(() => {
|
|
541
|
+
vi.mocked(getDeploymentSelection).mockResolvedValue({
|
|
542
|
+
kind: "existingDeployment",
|
|
543
|
+
deploymentToActOn: {
|
|
544
|
+
url: "https://joyful-capybara-123.convex.cloud",
|
|
545
|
+
adminKey: "admin-key",
|
|
546
|
+
deploymentFields: {
|
|
547
|
+
deploymentName: "joyful-capybara-123",
|
|
548
|
+
deploymentType: "dev",
|
|
549
|
+
teamSlug: "my-team",
|
|
550
|
+
projectSlug: "my-project",
|
|
551
|
+
},
|
|
552
|
+
source: "deployKey" as const,
|
|
553
|
+
},
|
|
554
|
+
});
|
|
555
|
+
vi.mocked(getProjectDetails).mockResolvedValue(fakeProject);
|
|
556
|
+
});
|
|
557
|
+
|
|
558
|
+
test("--expiration none sends expiresAt: null", async () => {
|
|
559
|
+
setupPlatformForCreate();
|
|
560
|
+
|
|
561
|
+
await deploymentCreate.parseAsync(
|
|
562
|
+
["my-deployment", "--type", "dev", "--expiration", "none"],
|
|
563
|
+
{ from: "user" },
|
|
564
|
+
);
|
|
565
|
+
|
|
566
|
+
expect(mockPlatformPost).toHaveBeenCalledWith(
|
|
567
|
+
"/projects/{project_id}/create_deployment",
|
|
568
|
+
expect.objectContaining({
|
|
569
|
+
body: expect.objectContaining({
|
|
570
|
+
expiresAt: null,
|
|
571
|
+
}),
|
|
572
|
+
}),
|
|
573
|
+
);
|
|
574
|
+
});
|
|
575
|
+
|
|
576
|
+
test("--expiration with timestamp sends correct ms value", async () => {
|
|
577
|
+
setupPlatformForCreate();
|
|
578
|
+
|
|
579
|
+
// Use a timestamp far enough in the future to pass validation
|
|
580
|
+
const futureMs = Date.now() + 2 * 60 * 60 * 1000; // 2 hours from now
|
|
581
|
+
const futureSec = Math.floor(futureMs / 1000);
|
|
582
|
+
|
|
583
|
+
await deploymentCreate.parseAsync(
|
|
584
|
+
[
|
|
585
|
+
"my-deployment",
|
|
586
|
+
"--type",
|
|
587
|
+
"dev",
|
|
588
|
+
"--expiration",
|
|
589
|
+
futureSec.toString(),
|
|
590
|
+
],
|
|
591
|
+
{ from: "user" },
|
|
592
|
+
);
|
|
593
|
+
|
|
594
|
+
expect(mockPlatformPost).toHaveBeenCalledWith(
|
|
595
|
+
"/projects/{project_id}/create_deployment",
|
|
596
|
+
expect.objectContaining({
|
|
597
|
+
body: expect.objectContaining({
|
|
598
|
+
expiresAt: futureSec * 1000,
|
|
599
|
+
}),
|
|
600
|
+
}),
|
|
601
|
+
);
|
|
602
|
+
});
|
|
603
|
+
|
|
604
|
+
test("no --expiration flag does not include expiresAt in body", async () => {
|
|
605
|
+
setupPlatformForCreate();
|
|
606
|
+
|
|
607
|
+
await deploymentCreate.parseAsync(["my-deployment", "--type", "dev"], {
|
|
608
|
+
from: "user",
|
|
609
|
+
});
|
|
610
|
+
|
|
611
|
+
const call = mockPlatformPost.mock.calls[0];
|
|
612
|
+
expect(call[1].body).not.toHaveProperty("expiresAt");
|
|
613
|
+
});
|
|
614
|
+
});
|
|
615
|
+
|
|
336
616
|
describe("without project configured", () => {
|
|
337
617
|
beforeEach(() => {
|
|
338
618
|
vi.mocked(getDeploymentSelection).mockResolvedValue({
|
|
@@ -367,6 +647,22 @@ describe("non-interactive create flow", () => {
|
|
|
367
647
|
});
|
|
368
648
|
expect(mockPlatformPost).toHaveBeenCalled();
|
|
369
649
|
});
|
|
650
|
+
|
|
651
|
+
test("hint includes full team:project:ref when no project configured in current directory", async () => {
|
|
652
|
+
vi.mocked(getProjectDetails).mockResolvedValue(fakeProject);
|
|
653
|
+
setupPlatformForCreate();
|
|
654
|
+
|
|
655
|
+
await deploymentCreate.parseAsync(
|
|
656
|
+
["my-team:my-project:my-deployment", "--type", "dev"],
|
|
657
|
+
{ from: "user" },
|
|
658
|
+
);
|
|
659
|
+
|
|
660
|
+
expect(process.stderr.write).toHaveBeenCalledWith(
|
|
661
|
+
expect.stringContaining(
|
|
662
|
+
"npx convex deployment select my-team:my-project:dev/my-deployment",
|
|
663
|
+
),
|
|
664
|
+
);
|
|
665
|
+
});
|
|
370
666
|
});
|
|
371
667
|
});
|
|
372
668
|
|
|
@@ -375,8 +671,10 @@ describe("interactive create flow", () => {
|
|
|
375
671
|
process.stdin.isTTY = true;
|
|
376
672
|
vi.mocked(getDeploymentSelection).mockReset();
|
|
377
673
|
vi.mocked(getProjectDetails).mockReset();
|
|
378
|
-
vi.mocked(
|
|
674
|
+
vi.mocked(saveSelectedDeployment).mockReset();
|
|
379
675
|
vi.mocked(selectRegion).mockReset();
|
|
676
|
+
vi.mocked(deploymentNameFromSelection).mockReset();
|
|
677
|
+
vi.mocked(deploymentNameFromSelection).mockReturnValue(null);
|
|
380
678
|
|
|
381
679
|
// Default: project configured via deployment selection
|
|
382
680
|
vi.mocked(getDeploymentSelection).mockResolvedValue({
|
|
@@ -447,7 +745,7 @@ describe("interactive create flow", () => {
|
|
|
447
745
|
|
|
448
746
|
// Ref prompt (input)
|
|
449
747
|
await screen.next();
|
|
450
|
-
expect(screen.getScreen()).toContain("
|
|
748
|
+
expect(screen.getScreen()).toContain("How to name this deployment?");
|
|
451
749
|
screen.type("my-feature");
|
|
452
750
|
screen.keypress("enter");
|
|
453
751
|
|
|
@@ -476,7 +774,7 @@ describe("interactive create flow", () => {
|
|
|
476
774
|
|
|
477
775
|
// Ref prompt (input)
|
|
478
776
|
await screen.next();
|
|
479
|
-
expect(screen.getScreen()).toContain("
|
|
777
|
+
expect(screen.getScreen()).toContain("How to name this deployment?");
|
|
480
778
|
screen.type("my-feature");
|
|
481
779
|
screen.keypress("enter");
|
|
482
780
|
|
|
@@ -526,14 +824,16 @@ describe("interactive create flow", () => {
|
|
|
526
824
|
|
|
527
825
|
// Ref prompt — enter invalid ref "dev"
|
|
528
826
|
await screen.next();
|
|
529
|
-
expect(screen.getScreen()).toContain("
|
|
827
|
+
expect(screen.getScreen()).toContain("How to name this deployment?");
|
|
530
828
|
screen.type("dev");
|
|
531
829
|
screen.keypress("enter");
|
|
532
830
|
|
|
533
|
-
//
|
|
831
|
+
// Inline validation error, then edit input
|
|
534
832
|
await screen.next();
|
|
535
|
-
expect(screen.getScreen()).toContain(
|
|
536
|
-
|
|
833
|
+
expect(screen.getScreen()).toContain(
|
|
834
|
+
'"dev" is not a valid deployment reference.',
|
|
835
|
+
);
|
|
836
|
+
screen.type("/my-feature");
|
|
537
837
|
screen.keypress("enter");
|
|
538
838
|
|
|
539
839
|
await promise;
|
|
@@ -542,13 +842,48 @@ describe("interactive create flow", () => {
|
|
|
542
842
|
"/projects/{project_id}/create_deployment",
|
|
543
843
|
expect.objectContaining({
|
|
544
844
|
body: expect.objectContaining({
|
|
545
|
-
reference: "my-feature",
|
|
845
|
+
reference: "dev/my-feature",
|
|
546
846
|
isDefault: null,
|
|
547
847
|
}),
|
|
548
848
|
}),
|
|
549
849
|
);
|
|
550
850
|
});
|
|
551
851
|
|
|
852
|
+
test("interactive ref prompt rejects 'local' as a deployment reference", async () => {
|
|
853
|
+
setupDefaultRoutes();
|
|
854
|
+
|
|
855
|
+
const promise = deploymentCreate.parseAsync(["--type", "dev"], {
|
|
856
|
+
from: "user",
|
|
857
|
+
});
|
|
858
|
+
|
|
859
|
+
// Ref prompt — enter "local"
|
|
860
|
+
await screen.next();
|
|
861
|
+
expect(screen.getScreen()).toContain("How to name this deployment?");
|
|
862
|
+
screen.type("local");
|
|
863
|
+
screen.keypress("enter");
|
|
864
|
+
|
|
865
|
+
// Inline validation error
|
|
866
|
+
await screen.next();
|
|
867
|
+
expect(screen.getScreen()).toContain(
|
|
868
|
+
'"local" is not a valid deployment reference',
|
|
869
|
+
);
|
|
870
|
+
|
|
871
|
+
// Fix the input
|
|
872
|
+
screen.type("ization-improvements");
|
|
873
|
+
screen.keypress("enter");
|
|
874
|
+
|
|
875
|
+
await promise;
|
|
876
|
+
|
|
877
|
+
expect(mockPlatformPost).toHaveBeenCalledWith(
|
|
878
|
+
"/projects/{project_id}/create_deployment",
|
|
879
|
+
expect.objectContaining({
|
|
880
|
+
body: expect.objectContaining({
|
|
881
|
+
reference: "localization-improvements",
|
|
882
|
+
}),
|
|
883
|
+
}),
|
|
884
|
+
);
|
|
885
|
+
});
|
|
886
|
+
|
|
552
887
|
test("--region invalid crashes", async () => {
|
|
553
888
|
setupDefaultRoutes();
|
|
554
889
|
|