@hubspot/cli 8.2.0 → 8.2.1-experimental.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/api/migrate.js +8 -4
- package/api/releases.d.ts +36 -0
- package/api/releases.js +41 -0
- package/bin/cli.js +12 -6
- package/commands/account/auth.d.ts +3 -1
- package/commands/account/auth.js +25 -7
- package/commands/account/clean.js +7 -6
- package/commands/account/createOverride.js +10 -7
- package/commands/account/info.js +36 -17
- package/commands/account/link.d.ts +4 -0
- package/commands/account/link.js +87 -0
- package/commands/account/list.js +32 -76
- package/commands/account/remove.js +4 -3
- package/commands/account/removeOverride.js +11 -10
- package/commands/account/rename.js +5 -6
- package/commands/account/unlink.d.ts +4 -0
- package/commands/account/unlink.js +68 -0
- package/commands/account/use.js +75 -6
- package/commands/account.js +4 -0
- package/commands/api.d.ts +13 -0
- package/commands/api.js +161 -0
- package/commands/app/logDetails.d.ts +9 -0
- package/commands/app/logDetails.js +86 -0
- package/commands/app/logs.d.ts +13 -0
- package/commands/app/logs.js +126 -0
- package/commands/app/migrate.js +13 -13
- package/commands/app/secret/add.js +6 -7
- package/commands/app/secret/delete.js +9 -10
- package/commands/app/secret/list.js +6 -7
- package/commands/app/secret/update.js +8 -9
- package/commands/app.js +8 -1
- package/commands/auth.js +20 -16
- package/commands/cms/app/create.js +9 -5
- package/commands/cms/convertFields.js +8 -8
- package/commands/cms/delete.js +2 -3
- package/commands/cms/fetch.js +7 -7
- package/commands/cms/function/create.js +9 -5
- package/commands/cms/function/deploy.js +2 -3
- package/commands/cms/function/list.js +11 -7
- package/commands/cms/function/logs.js +17 -23
- package/commands/cms/function/server.js +2 -3
- package/commands/cms/getReactModule.js +7 -8
- package/commands/cms/lighthouseScore.js +25 -24
- package/commands/cms/lint.js +4 -5
- package/commands/cms/list.js +5 -6
- package/commands/cms/module/create.js +15 -5
- package/commands/cms/module/marketplace-validate.js +7 -8
- package/commands/cms/mv.js +2 -3
- package/commands/cms/template/create.js +10 -6
- package/commands/cms/theme/create.js +5 -5
- package/commands/cms/theme/generate-selectors.js +5 -4
- package/commands/cms/theme/marketplace-validate.js +8 -9
- package/commands/cms/theme/preview.js +16 -8
- package/commands/cms/upload.js +15 -12
- package/commands/cms/watch.js +5 -5
- package/commands/cms/webpack/create.js +5 -5
- package/commands/completion.js +3 -5
- package/commands/config/migrate.js +6 -7
- package/commands/config/set.js +29 -11
- package/commands/customObject/create.js +4 -5
- package/commands/customObject/createSchema.js +6 -8
- package/commands/customObject/deleteSchema.js +4 -5
- package/commands/customObject/fetchAllSchemas.js +2 -3
- package/commands/customObject/fetchSchema.js +2 -3
- package/commands/customObject/listSchemas.js +2 -3
- package/commands/customObject/updateSchema.js +6 -8
- package/commands/doctor.js +8 -8
- package/commands/feedback.js +6 -4
- package/commands/filemanager/fetch.js +5 -6
- package/commands/filemanager/upload.js +5 -5
- package/commands/getStarted.js +20 -19
- package/commands/hubdb/clear.js +6 -3
- package/commands/hubdb/create.js +4 -5
- package/commands/hubdb/delete.js +9 -6
- package/commands/hubdb/fetch.js +6 -3
- package/commands/hubdb/list.d.ts +1 -1
- package/commands/hubdb/list.js +23 -22
- package/commands/init.js +18 -15
- package/commands/mcp/setup.d.ts +2 -0
- package/commands/mcp/setup.js +35 -8
- package/commands/mcp/start.js +2 -3
- package/commands/open.js +4 -5
- package/commands/project/add.js +13 -8
- package/commands/project/appInstallStatus.d.ts +5 -0
- package/commands/project/appInstallStatus.js +135 -0
- package/commands/project/create.js +29 -17
- package/commands/project/delete.d.ts +7 -0
- package/commands/project/delete.js +74 -0
- package/commands/project/deploy.d.ts +2 -1
- package/commands/project/deploy.js +68 -48
- package/commands/project/dev/index.d.ts +3 -3
- package/commands/project/dev/index.js +33 -68
- package/commands/project/dev/unifiedFlow.js +73 -22
- package/commands/project/download.js +12 -9
- package/commands/project/info.d.ts +5 -0
- package/commands/project/info.js +70 -0
- package/commands/project/installApp.d.ts +8 -0
- package/commands/project/installApp.js +180 -0
- package/commands/project/installDeps.js +11 -6
- package/commands/project/lint.js +43 -12
- package/commands/project/list.d.ts +2 -2
- package/commands/project/list.js +15 -14
- package/commands/project/listBuilds.d.ts +1 -1
- package/commands/project/listBuilds.js +16 -12
- package/commands/project/logs.js +7 -10
- package/commands/project/migrate.js +18 -18
- package/commands/project/open.js +5 -6
- package/commands/project/profile/add.d.ts +2 -1
- package/commands/project/profile/add.js +34 -9
- package/commands/project/profile/delete.d.ts +1 -1
- package/commands/project/profile/delete.js +15 -11
- package/commands/project/release/create.d.ts +8 -0
- package/commands/project/release/create.js +158 -0
- package/commands/project/release/info.d.ts +7 -0
- package/commands/project/release/info.js +148 -0
- package/commands/project/release/list.d.ts +7 -0
- package/commands/project/release/list.js +119 -0
- package/commands/project/release.d.ts +3 -0
- package/commands/project/release.js +20 -0
- package/commands/project/updateDeps.js +9 -6
- package/commands/project/upload.d.ts +7 -1
- package/commands/project/upload.js +145 -32
- package/commands/project/validate.d.ts +1 -1
- package/commands/project/validate.js +12 -12
- package/commands/project/watch.js +23 -22
- package/commands/project.js +16 -3
- package/commands/sandbox/create.js +18 -45
- package/commands/sandbox/delete.js +15 -17
- package/commands/secret/addSecret.js +6 -7
- package/commands/secret/deleteSecret.js +5 -6
- package/commands/secret/listSecret.js +2 -3
- package/commands/secret/updateSecret.js +4 -5
- package/commands/testAccount/create.d.ts +3 -2
- package/commands/testAccount/create.js +30 -22
- package/commands/testAccount/createConfig.js +7 -8
- package/commands/testAccount/delete.js +27 -18
- package/commands/testAccount/importData.d.ts +1 -1
- package/commands/testAccount/importData.js +6 -7
- package/commands/upgrade.js +11 -10
- package/lang/en.d.ts +558 -40
- package/lang/en.js +595 -63
- package/lib/CLIWebSocketServer.d.ts +5 -3
- package/lib/CLIWebSocketServer.js +31 -4
- package/lib/accountAuth.d.ts +3 -1
- package/lib/accountAuth.js +47 -17
- package/lib/accountTargetDiscovery.d.ts +15 -0
- package/lib/accountTargetDiscovery.js +175 -0
- package/lib/api/usageTracking.d.ts +30 -0
- package/lib/api/usageTracking.js +11 -0
- package/lib/app/install.d.ts +22 -0
- package/lib/app/install.js +42 -0
- package/lib/app/logs.d.ts +38 -0
- package/lib/app/logs.js +225 -0
- package/lib/app/migrate.js +18 -5
- package/lib/app/urls.d.ts +2 -0
- package/lib/app/urls.js +7 -1
- package/lib/auth/awaitPersonalAccessKeyOverWebsocket.d.ts +4 -0
- package/lib/auth/awaitPersonalAccessKeyOverWebsocket.js +146 -0
- package/lib/buildAccount.d.ts +1 -6
- package/lib/buildAccount.js +10 -43
- package/lib/commonOpts.js +6 -2
- package/lib/configOptions.d.ts +10 -10
- package/lib/configOptions.js +10 -11
- package/lib/constants.d.ts +12 -3
- package/lib/constants.js +14 -3
- package/lib/dependencyManagement.js +7 -7
- package/lib/doctor/Diagnosis.js +5 -5
- package/lib/doctor/Doctor.d.ts +1 -0
- package/lib/doctor/Doctor.js +33 -7
- package/lib/errorHandlers/index.js +4 -3
- package/lib/errorHandlers/suppressError.js +4 -0
- package/lib/errors/PromptExitError.d.ts +6 -0
- package/lib/errors/PromptExitError.js +11 -0
- package/lib/getStartedV2Actions.js +5 -4
- package/lib/hasFeature.js +1 -2
- package/lib/importData.js +3 -4
- package/lib/jsonOutput.d.ts +109 -0
- package/lib/jsonOutput.js +94 -0
- package/lib/link/accountTableUtils.d.ts +10 -0
- package/lib/link/accountTableUtils.js +39 -0
- package/lib/link/index.d.ts +18 -0
- package/lib/link/index.js +185 -0
- package/lib/link/linkUtils.d.ts +5 -0
- package/lib/link/linkUtils.js +49 -0
- package/lib/link/prompts.d.ts +7 -0
- package/lib/link/prompts.js +126 -0
- package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
- package/lib/link/renderLinkedAccountsTable.js +14 -0
- package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
- package/lib/link/warnIfLinkedDirectory.js +9 -0
- package/lib/links.js +6 -5
- package/lib/mcp/clients.d.ts +13 -0
- package/lib/mcp/clients.js +62 -0
- package/lib/mcp/promotion.d.ts +3 -0
- package/lib/mcp/promotion.js +109 -0
- package/lib/mcp/setup.d.ts +8 -2
- package/lib/mcp/setup.js +123 -38
- package/lib/middleware/autoUpdateMiddleware.js +6 -3
- package/lib/middleware/commandTargetingUtils.js +1 -0
- package/lib/npm/npmCli.d.ts +1 -0
- package/lib/npm/npmCli.js +13 -0
- package/lib/process.d.ts +1 -1
- package/lib/process.js +10 -3
- package/lib/projects/ProjectLogsManager.js +6 -3
- package/lib/projects/builds.d.ts +2 -0
- package/lib/projects/builds.js +22 -0
- package/lib/projects/components.js +15 -4
- package/lib/projects/create/index.js +2 -2
- package/lib/projects/create/legacy.js +2 -2
- package/lib/projects/create/v2.js +5 -5
- package/lib/projects/delete.d.ts +13 -0
- package/lib/projects/delete.js +193 -0
- package/lib/projects/deploy.d.ts +1 -1
- package/lib/projects/deploy.js +2 -2
- package/lib/projects/installApp.d.ts +58 -0
- package/lib/projects/installApp.js +283 -0
- package/lib/projects/localDev/AppDevModeInterface.d.ts +0 -3
- package/lib/projects/localDev/AppDevModeInterface.js +35 -53
- package/lib/projects/localDev/DevSessionManager.d.ts +8 -5
- package/lib/projects/localDev/DevSessionManager.js +35 -49
- package/lib/projects/localDev/LocalDevProcess.js +13 -10
- package/lib/projects/localDev/LocalDevState.d.ts +3 -2
- package/lib/projects/localDev/LocalDevState.js +3 -1
- package/lib/projects/localDev/LocalDevWebsocketServer.js +1 -1
- package/lib/projects/localDev/UIExtensionsDevModeInterface.js +2 -0
- package/lib/projects/localDev/helpers/account.d.ts +1 -7
- package/lib/projects/localDev/helpers/account.js +12 -100
- package/lib/projects/localDev/helpers/process.d.ts +1 -1
- package/lib/projects/localDev/helpers/process.js +4 -10
- package/lib/projects/localDev/helpers/project.d.ts +8 -6
- package/lib/projects/localDev/helpers/project.js +80 -29
- package/lib/projects/npmAuditOnUpload.d.ts +10 -0
- package/lib/projects/npmAuditOnUpload.js +73 -0
- package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
- package/lib/projects/pollProjectBuildAndDeploy.js +3 -2
- package/lib/projects/preview.d.ts +7 -0
- package/lib/projects/preview.js +48 -0
- package/lib/projects/projectInfo.d.ts +5 -0
- package/lib/projects/projectInfo.js +82 -0
- package/lib/projects/projectProfiles.d.ts +1 -2
- package/lib/projects/projectProfiles.js +5 -17
- package/lib/projects/release.d.ts +4 -0
- package/lib/projects/release.js +90 -0
- package/lib/projects/ui.d.ts +1 -0
- package/lib/projects/ui.js +14 -0
- package/lib/projects/uieLinting.d.ts +21 -3
- package/lib/projects/uieLinting.js +132 -28
- package/lib/projects/upload.d.ts +12 -2
- package/lib/projects/upload.js +59 -13
- package/lib/projects/urls.d.ts +0 -1
- package/lib/projects/urls.js +6 -13
- package/lib/projects/validateLintConfigOnUpload.d.ts +9 -0
- package/lib/projects/validateLintConfigOnUpload.js +45 -0
- package/lib/projects/workspaces.d.ts +60 -0
- package/lib/projects/workspaces.js +411 -0
- package/lib/prompts/createApiSamplePrompt.js +4 -0
- package/lib/prompts/downloadProjectPrompt.js +11 -10
- package/lib/prompts/installAppPrompt.js +3 -2
- package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -5
- package/lib/prompts/personalAccessKeyPrompt.js +10 -7
- package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
- package/lib/prompts/projectDevTargetAccountPrompt.js +26 -18
- package/lib/prompts/projectProfilePrompt.d.ts +2 -0
- package/lib/prompts/projectProfilePrompt.js +46 -0
- package/lib/prompts/projectsLogsPrompt.js +3 -0
- package/lib/prompts/promptUtils.js +4 -2
- package/lib/prompts/selectAppPrompt.js +1 -0
- package/lib/prompts/selectHubDBTablePrompt.js +8 -4
- package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
- package/lib/prompts/setAsDefaultAccountPrompt.js +2 -1
- package/lib/sandboxes.d.ts +1 -9
- package/lib/sandboxes.js +0 -21
- package/lib/serverlessLogs.js +2 -2
- package/lib/theme/cmsDevServerProcess.d.ts +2 -0
- package/lib/theme/cmsDevServerProcess.js +8 -7
- package/lib/theme/migrate.d.ts +1 -1
- package/lib/theme/migrate.js +1 -5
- package/lib/ui/SpinniesManager.d.ts +1 -0
- package/lib/ui/SpinniesManager.js +22 -6
- package/lib/ui/accountTable.d.ts +8 -0
- package/lib/ui/accountTable.js +67 -0
- package/lib/ui/appLogs.d.ts +32 -0
- package/lib/ui/appLogs.js +175 -0
- package/lib/ui/spinniesUtils.d.ts +0 -1
- package/lib/ui/spinniesUtils.js +6 -16
- package/lib/usageTracking.d.ts +10 -20
- package/lib/usageTracking.js +77 -30
- package/lib/yargs/makeWrappedYargsHandler.d.ts +7 -0
- package/lib/yargs/makeWrappedYargsHandler.js +179 -0
- package/lib/yargs/makeYargsBuilder.d.ts +13 -0
- package/lib/yargs/makeYargsBuilder.js +33 -0
- package/lib/yargs/parseYargsOrExit.d.ts +4 -0
- package/lib/yargs/parseYargsOrExit.js +25 -0
- package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
- package/lib/yargs/strictEnforceBoolean.js +13 -0
- package/lib/yargsUtils.d.ts +3 -16
- package/lib/yargsUtils.js +3 -48
- package/mcp-server/Tool.d.ts +20 -0
- package/mcp-server/Tool.js +79 -0
- package/mcp-server/server.js +47 -3
- package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +5 -3
- package/mcp-server/tools/cms/HsCreateFunctionTool.js +18 -23
- package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +5 -3
- package/mcp-server/tools/cms/HsCreateModuleTool.js +21 -26
- package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +5 -3
- package/mcp-server/tools/cms/HsCreateTemplateTool.js +16 -16
- package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +5 -3
- package/mcp-server/tools/cms/HsFunctionLogsTool.js +16 -15
- package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +5 -3
- package/mcp-server/tools/cms/HsListFunctionsTool.js +14 -13
- package/mcp-server/tools/cms/HsListTool.d.ts +5 -3
- package/mcp-server/tools/cms/HsListTool.js +14 -16
- package/mcp-server/tools/index.d.ts +3 -2
- package/mcp-server/tools/index.js +26 -22
- package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +8 -4
- package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -15
- package/mcp-server/tools/project/AuthAccountTool.d.ts +18 -0
- package/mcp-server/tools/project/AuthAccountTool.js +78 -0
- package/mcp-server/tools/project/CreateProjectTool.d.ts +8 -4
- package/mcp-server/tools/project/CreateProjectTool.js +21 -17
- package/mcp-server/tools/project/CreateTestAccountTool.d.ts +5 -3
- package/mcp-server/tools/project/CreateTestAccountTool.js +35 -24
- package/mcp-server/tools/project/DeployProjectTool.d.ts +5 -3
- package/mcp-server/tools/project/DeployProjectTool.js +14 -16
- package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
- package/mcp-server/tools/project/DocFetchTool.js +8 -6
- package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
- package/mcp-server/tools/project/DocsSearchTool.js +39 -15
- package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
- package/mcp-server/tools/project/FindProjectsTool.js +60 -0
- package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +6 -3
- package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +16 -13
- package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +6 -3
- package/mcp-server/tools/project/GetApplicationInfoTool.js +19 -14
- package/mcp-server/tools/project/GetBuildLogsTool.d.ts +4 -2
- package/mcp-server/tools/project/GetBuildLogsTool.js +19 -13
- package/mcp-server/tools/project/GetBuildStatusTool.d.ts +4 -2
- package/mcp-server/tools/project/GetBuildStatusTool.js +19 -13
- package/mcp-server/tools/project/GetConfigValuesTool.d.ts +6 -3
- package/mcp-server/tools/project/GetConfigValuesTool.js +20 -13
- package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +4 -2
- package/mcp-server/tools/project/GuidedWalkthroughTool.js +4 -6
- package/mcp-server/tools/project/UploadProjectTools.d.ts +5 -3
- package/mcp-server/tools/project/UploadProjectTools.js +18 -15
- package/mcp-server/tools/project/ValidateProjectTool.d.ts +5 -3
- package/mcp-server/tools/project/ValidateProjectTool.js +13 -10
- package/mcp-server/tools/project/constants.d.ts +3 -1
- package/mcp-server/tools/project/constants.js +3 -1
- package/mcp-server/types.d.ts +0 -7
- package/mcp-server/types.js +1 -13
- package/mcp-server/utils/command.d.ts +25 -2
- package/mcp-server/utils/command.js +68 -16
- package/mcp-server/utils/config.js +6 -0
- package/mcp-server/utils/logger.d.ts +13 -0
- package/mcp-server/utils/logger.js +59 -0
- package/mcp-server/utils/toolUsageTracking.js +28 -11
- package/package.json +22 -15
- package/types/AccountTargets.d.ts +37 -0
- package/types/AccountTargets.js +12 -0
- package/types/Link.d.ts +32 -0
- package/types/Link.js +5 -0
- package/types/LocalDev.d.ts +8 -2
- package/types/PackageJson.d.ts +1 -0
- package/types/ProjectComponents.d.ts +2 -1
- package/types/Projects.d.ts +24 -0
- package/types/Prompts.d.ts +1 -0
- package/types/Yargs.d.ts +22 -2
- package/ui/components/ActionSection.d.ts +1 -1
- package/ui/components/InputField.d.ts +1 -1
- package/ui/components/SelectInput.d.ts +1 -1
- package/ui/components/StatusIcon.d.ts +1 -1
- package/ui/components/Table.d.ts +5 -5
- package/ui/components/getStarted/GetStartedFlow.d.ts +1 -1
- package/ui/components/getStarted/screens/InstallationScreen.d.ts +1 -1
- package/ui/components/getStarted/screens/ProjectSetupScreen.d.ts +1 -1
- package/ui/components/getStarted/screens/UploadScreen.d.ts +1 -1
- package/api/__tests__/migrate.test.d.ts +0 -1
- package/api/__tests__/migrate.test.js +0 -199
- package/commands/__tests__/account.test.d.ts +0 -1
- package/commands/__tests__/account.test.js +0 -69
- package/commands/__tests__/auth.test.d.ts +0 -1
- package/commands/__tests__/auth.test.js +0 -43
- package/commands/__tests__/cms.test.d.ts +0 -1
- package/commands/__tests__/cms.test.js +0 -87
- package/commands/__tests__/config.test.d.ts +0 -1
- package/commands/__tests__/config.test.js +0 -44
- package/commands/__tests__/customObject.test.d.ts +0 -1
- package/commands/__tests__/customObject.test.js +0 -68
- package/commands/__tests__/doctor.test.d.ts +0 -1
- package/commands/__tests__/doctor.test.js +0 -132
- package/commands/__tests__/feedback.test.d.ts +0 -1
- package/commands/__tests__/feedback.test.js +0 -24
- package/commands/__tests__/filemanager.test.d.ts +0 -1
- package/commands/__tests__/filemanager.test.js +0 -45
- package/commands/__tests__/getStarted.test.d.ts +0 -1
- package/commands/__tests__/getStarted.test.js +0 -173
- package/commands/__tests__/hubdb.test.d.ts +0 -1
- package/commands/__tests__/hubdb.test.js +0 -50
- package/commands/__tests__/init.test.d.ts +0 -1
- package/commands/__tests__/init.test.js +0 -42
- package/commands/__tests__/mcp.test.d.ts +0 -1
- package/commands/__tests__/mcp.test.js +0 -46
- package/commands/__tests__/open.test.d.ts +0 -1
- package/commands/__tests__/open.test.js +0 -58
- package/commands/__tests__/project.test.d.ts +0 -1
- package/commands/__tests__/project.test.js +0 -125
- package/commands/__tests__/sandbox.test.d.ts +0 -1
- package/commands/__tests__/sandbox.test.js +0 -44
- package/commands/__tests__/secret.test.d.ts +0 -1
- package/commands/__tests__/secret.test.js +0 -49
- package/commands/__tests__/testAccount.test.d.ts +0 -1
- package/commands/__tests__/testAccount.test.js +0 -57
- package/commands/__tests__/upgrade.test.d.ts +0 -1
- package/commands/__tests__/upgrade.test.js +0 -309
- package/commands/account/__tests__/auth.test.d.ts +0 -1
- package/commands/account/__tests__/auth.test.js +0 -206
- package/commands/account/__tests__/clean.test.d.ts +0 -1
- package/commands/account/__tests__/clean.test.js +0 -28
- package/commands/account/__tests__/createOverride.test.d.ts +0 -1
- package/commands/account/__tests__/createOverride.test.js +0 -32
- package/commands/account/__tests__/info.test.d.ts +0 -1
- package/commands/account/__tests__/info.test.js +0 -28
- package/commands/account/__tests__/list.test.d.ts +0 -1
- package/commands/account/__tests__/list.test.js +0 -153
- package/commands/account/__tests__/remove.test.d.ts +0 -1
- package/commands/account/__tests__/remove.test.js +0 -36
- package/commands/account/__tests__/removeOverride.d.ts +0 -1
- package/commands/account/__tests__/removeOverride.js +0 -25
- package/commands/account/__tests__/rename.test.d.ts +0 -1
- package/commands/account/__tests__/rename.test.js +0 -82
- package/commands/account/__tests__/use.test.d.ts +0 -1
- package/commands/account/__tests__/use.test.js +0 -170
- package/commands/app/__tests__/migrate.test.d.ts +0 -1
- package/commands/app/__tests__/migrate.test.js +0 -111
- package/commands/app/secret/__tests__/add.test.d.ts +0 -1
- package/commands/app/secret/__tests__/add.test.js +0 -140
- package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
- package/commands/app/secret/__tests__/delete.test.js +0 -28
- package/commands/app/secret/__tests__/list.test.d.ts +0 -1
- package/commands/app/secret/__tests__/list.test.js +0 -25
- package/commands/app/secret/__tests__/update.test.d.ts +0 -1
- package/commands/app/secret/__tests__/update.test.js +0 -28
- package/commands/cms/__tests__/delete.test.d.ts +0 -1
- package/commands/cms/__tests__/delete.test.js +0 -39
- package/commands/cms/__tests__/fetch.test.d.ts +0 -1
- package/commands/cms/__tests__/fetch.test.js +0 -156
- package/commands/cms/__tests__/function.test.d.ts +0 -1
- package/commands/cms/__tests__/function.test.js +0 -50
- package/commands/cms/__tests__/lint.test.d.ts +0 -1
- package/commands/cms/__tests__/lint.test.js +0 -33
- package/commands/cms/__tests__/list.test.d.ts +0 -1
- package/commands/cms/__tests__/list.test.js +0 -42
- package/commands/cms/__tests__/module.test.d.ts +0 -1
- package/commands/cms/__tests__/module.test.js +0 -45
- package/commands/cms/__tests__/mv.test.d.ts +0 -1
- package/commands/cms/__tests__/mv.test.js +0 -46
- package/commands/cms/__tests__/theme.test.d.ts +0 -1
- package/commands/cms/__tests__/theme.test.js +0 -54
- package/commands/cms/__tests__/upload.test.d.ts +0 -1
- package/commands/cms/__tests__/upload.test.js +0 -308
- package/commands/cms/__tests__/watch.test.d.ts +0 -1
- package/commands/cms/__tests__/watch.test.js +0 -204
- package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
- package/commands/cms/function/__tests__/logs.test.js +0 -70
- package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
- package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
- package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
- package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
- package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
- package/commands/cms/theme/__tests__/preview.test.js +0 -54
- package/commands/customObject/__tests__/create.test.d.ts +0 -1
- package/commands/customObject/__tests__/create.test.js +0 -40
- package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/createSchema.test.js +0 -28
- package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
- package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
- package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
- package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
- package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
- package/commands/customObject/__tests__/listSchemas.test.js +0 -29
- package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/updateSchema.test.js +0 -40
- package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
- package/commands/filemanager/__tests__/fetch.test.js +0 -32
- package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
- package/commands/filemanager/__tests__/upload.test.js +0 -191
- package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
- package/commands/hubdb/__tests__/clear.test.js +0 -28
- package/commands/hubdb/__tests__/create.test.d.ts +0 -1
- package/commands/hubdb/__tests__/create.test.js +0 -28
- package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
- package/commands/hubdb/__tests__/delete.test.js +0 -28
- package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
- package/commands/hubdb/__tests__/fetch.test.js +0 -28
- package/commands/hubdb/__tests__/list.test.d.ts +0 -1
- package/commands/hubdb/__tests__/list.test.js +0 -88
- package/commands/mcp/__tests__/setup.test.d.ts +0 -1
- package/commands/mcp/__tests__/setup.test.js +0 -26
- package/commands/mcp/__tests__/start.test.d.ts +0 -1
- package/commands/mcp/__tests__/start.test.js +0 -144
- package/commands/project/__tests__/add.test.d.ts +0 -1
- package/commands/project/__tests__/add.test.js +0 -107
- package/commands/project/__tests__/create.test.d.ts +0 -1
- package/commands/project/__tests__/create.test.js +0 -97
- package/commands/project/__tests__/deploy.test.d.ts +0 -1
- package/commands/project/__tests__/deploy.test.js +0 -307
- package/commands/project/__tests__/dev.test.d.ts +0 -1
- package/commands/project/__tests__/dev.test.js +0 -273
- package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
- package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
- package/commands/project/__tests__/download.test.d.ts +0 -1
- package/commands/project/__tests__/download.test.js +0 -39
- package/commands/project/__tests__/installDeps.test.d.ts +0 -1
- package/commands/project/__tests__/installDeps.test.js +0 -140
- package/commands/project/__tests__/lint.test.d.ts +0 -1
- package/commands/project/__tests__/lint.test.js +0 -704
- package/commands/project/__tests__/list.test.d.ts +0 -1
- package/commands/project/__tests__/list.test.js +0 -31
- package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
- package/commands/project/__tests__/listBuilds.test.js +0 -38
- package/commands/project/__tests__/logs.test.d.ts +0 -1
- package/commands/project/__tests__/logs.test.js +0 -202
- package/commands/project/__tests__/migrate.test.d.ts +0 -1
- package/commands/project/__tests__/migrate.test.js +0 -106
- package/commands/project/__tests__/open.test.d.ts +0 -1
- package/commands/project/__tests__/open.test.js +0 -39
- package/commands/project/__tests__/profile.test.d.ts +0 -1
- package/commands/project/__tests__/profile.test.js +0 -42
- package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
- package/commands/project/__tests__/updateDeps.test.js +0 -140
- package/commands/project/__tests__/upload.test.d.ts +0 -1
- package/commands/project/__tests__/upload.test.js +0 -234
- package/commands/project/__tests__/validate.test.d.ts +0 -1
- package/commands/project/__tests__/validate.test.js +0 -381
- package/commands/project/__tests__/watch.test.d.ts +0 -1
- package/commands/project/__tests__/watch.test.js +0 -35
- package/commands/project/dev/deprecatedFlow.d.ts +0 -11
- package/commands/project/dev/deprecatedFlow.js +0 -135
- package/commands/sandbox/__tests__/create.test.d.ts +0 -1
- package/commands/sandbox/__tests__/create.test.js +0 -245
- package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
- package/commands/sandbox/__tests__/delete.test.js +0 -31
- package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/addSecret.test.js +0 -162
- package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/deleteSecret.test.js +0 -41
- package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/listSecret.test.js +0 -29
- package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/updateSecret.test.js +0 -29
- package/commands/testAccount/__tests__/create.test.d.ts +0 -1
- package/commands/testAccount/__tests__/create.test.js +0 -106
- package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
- package/commands/testAccount/__tests__/createConfig.test.js +0 -32
- package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
- package/commands/testAccount/__tests__/delete.test.js +0 -29
- package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
- package/commands/testAccount/__tests__/importData.test.js +0 -92
- package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
- package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
- package/lib/__tests__/accountAuth.test.d.ts +0 -1
- package/lib/__tests__/accountAuth.test.js +0 -258
- package/lib/__tests__/accountTypes.test.d.ts +0 -1
- package/lib/__tests__/accountTypes.test.js +0 -98
- package/lib/__tests__/buildAccount.test.d.ts +0 -1
- package/lib/__tests__/buildAccount.test.js +0 -262
- package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
- package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
- package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
- package/lib/__tests__/commandSuggestion.test.js +0 -121
- package/lib/__tests__/commonOpts.test.d.ts +0 -1
- package/lib/__tests__/commonOpts.test.js +0 -80
- package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
- package/lib/__tests__/dependencyManagement.test.js +0 -1067
- package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
- package/lib/__tests__/developerTestAccounts.test.js +0 -156
- package/lib/__tests__/hasFeature.test.d.ts +0 -1
- package/lib/__tests__/hasFeature.test.js +0 -167
- package/lib/__tests__/http.test.d.ts +0 -1
- package/lib/__tests__/http.test.js +0 -40
- package/lib/__tests__/importData.test.d.ts +0 -1
- package/lib/__tests__/importData.test.js +0 -98
- package/lib/__tests__/npmCli.test.d.ts +0 -1
- package/lib/__tests__/npmCli.test.js +0 -84
- package/lib/__tests__/oauth.test.d.ts +0 -1
- package/lib/__tests__/oauth.test.js +0 -109
- package/lib/__tests__/parsing.test.d.ts +0 -1
- package/lib/__tests__/parsing.test.js +0 -34
- package/lib/__tests__/polling.test.d.ts +0 -1
- package/lib/__tests__/polling.test.js +0 -76
- package/lib/__tests__/process.test.d.ts +0 -1
- package/lib/__tests__/process.test.js +0 -89
- package/lib/__tests__/sandboxSync.test.d.ts +0 -1
- package/lib/__tests__/sandboxSync.test.js +0 -147
- package/lib/__tests__/sandboxes.test.d.ts +0 -1
- package/lib/__tests__/sandboxes.test.js +0 -156
- package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
- package/lib/__tests__/serverlessLogs.test.js +0 -163
- package/lib/__tests__/usageTracking.test.d.ts +0 -1
- package/lib/__tests__/usageTracking.test.js +0 -197
- package/lib/__tests__/validation.test.d.ts +0 -1
- package/lib/__tests__/validation.test.js +0 -143
- package/lib/__tests__/yargsUtils.test.d.ts +0 -1
- package/lib/__tests__/yargsUtils.test.js +0 -124
- package/lib/app/__tests__/migrate.test.d.ts +0 -1
- package/lib/app/__tests__/migrate.test.js +0 -638
- package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
- package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
- package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
- package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
- package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
- package/lib/doctor/__tests__/Doctor.test.js +0 -560
- package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
- package/lib/errorHandlers/__tests__/index.test.js +0 -278
- package/lib/mcp/__tests__/setup.test.d.ts +0 -1
- package/lib/mcp/__tests__/setup.test.js +0 -523
- package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
- package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
- package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
- package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
- package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
- package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
- package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
- package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
- package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
- package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
- package/lib/projects/__tests__/DevServerManager.test.js +0 -185
- package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
- package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
- package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
- package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
- package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
- package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
- package/lib/projects/__tests__/components.test.d.ts +0 -1
- package/lib/projects/__tests__/components.test.js +0 -426
- package/lib/projects/__tests__/deploy.test.d.ts +0 -1
- package/lib/projects/__tests__/deploy.test.js +0 -231
- package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
- package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
- package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
- package/lib/projects/__tests__/platformVersion.test.js +0 -63
- package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
- package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
- package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
- package/lib/projects/__tests__/projectProfiles.test.js +0 -441
- package/lib/projects/__tests__/projects.test.d.ts +0 -1
- package/lib/projects/__tests__/projects.test.js +0 -58
- package/lib/projects/__tests__/structure.test.d.ts +0 -1
- package/lib/projects/__tests__/structure.test.js +0 -210
- package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
- package/lib/projects/__tests__/uieLinting.test.js +0 -631
- package/lib/projects/__tests__/upload.test.d.ts +0 -1
- package/lib/projects/__tests__/upload.test.js +0 -183
- package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
- package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
- package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
- package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
- package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
- package/lib/projects/create/__tests__/legacy.test.js +0 -72
- package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
- package/lib/projects/create/__tests__/v2.test.js +0 -257
- package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +0 -40
- package/lib/projects/localDev/DevServerManager_DEPRECATED.js +0 -128
- package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +0 -59
- package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +0 -383
- package/lib/projects/platformVersion.d.ts +0 -9
- package/lib/projects/platformVersion.js +0 -39
- package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
- package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
- package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
- package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
- package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
- package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
- package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
- package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
- package/lib/sandboxSync.d.ts +0 -4
- package/lib/sandboxSync.js +0 -102
- package/lib/theme/__tests__/migrate.test.d.ts +0 -1
- package/lib/theme/__tests__/migrate.test.js +0 -256
- package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
- package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
- package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
- package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
- package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
- package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
- package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
- package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
- package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
- package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
- package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -132
- package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
- package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
- package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
- package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
- package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
- package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
- package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
- package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
- package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
- package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
- package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
- package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
- package/mcp-server/utils/__tests__/command.test.js +0 -275
- package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
- package/mcp-server/utils/__tests__/content.test.js +0 -164
- package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
- package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
package/lang/en.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { mapToUserFriendlyName } from '@hubspot/project-parsing-lib/transform';
|
|
3
|
-
import { PLATFORM_VERSIONS } from '@hubspot/
|
|
3
|
+
import { PLATFORM_VERSIONS } from '@hubspot/project-parsing-lib/constants';
|
|
4
4
|
import { PERSONAL_ACCESS_KEY_AUTH_METHOD } from '@hubspot/local-dev-lib/constants/auth';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { APP_AUTH_TYPES, APP_DISTRIBUTION_TYPES, LEGACY_PUBLIC_APP_FILE, LOCAL_DEV_DEFAULT_PORT, PROJECT_CONFIG_FILE, PROJECT_WITH_APP, } from '../lib/constants.js';
|
|
6
|
+
import { ARCHIVED_HUBSPOT_CONFIG_YAML_FILE_NAME, DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME, GLOBAL_CONFIG_PATH, } from '@hubspot/local-dev-lib/constants/config';
|
|
7
|
+
import { indent, UI_COLORS, uiAccountDescription, uiAuthCommandReference, uiBetaTag, uiCommandReference, uiDeprecatedTag, uiLink, } from '../lib/ui/index.js';
|
|
8
|
+
import { getLocalDevUiUrl, getProjectDetailUrl, getProjectSettingsUrl, } from '../lib/projects/urls.js';
|
|
8
9
|
import { getProductUpdatesUrl } from '../lib/links.js';
|
|
9
|
-
import { APP_DISTRIBUTION_TYPES, APP_AUTH_TYPES, PROJECT_CONFIG_FILE, PROJECT_WITH_APP, LEGACY_PUBLIC_APP_FILE, } from '../lib/constants.js';
|
|
10
10
|
export const commands = {
|
|
11
11
|
generalErrors: {
|
|
12
12
|
srcIsProject: (src, command) => `"${src}" is in a project folder. Did you mean "hs project ${command}"?`,
|
|
@@ -123,6 +123,9 @@ export const commands = {
|
|
|
123
123
|
options: {
|
|
124
124
|
account: 'HubSpot account to authenticate',
|
|
125
125
|
personalAccessKey: 'Enter existing personal access key',
|
|
126
|
+
default: 'Set the authenticated account as the default account',
|
|
127
|
+
name: 'Set a name for the account in the CLI config',
|
|
128
|
+
useDefaultName: 'Use the account name derived from the HubSpot portal name',
|
|
126
129
|
},
|
|
127
130
|
errors: {
|
|
128
131
|
invalidAccountIdProvided: `--account must be a number.`,
|
|
@@ -137,8 +140,12 @@ export const commands = {
|
|
|
137
140
|
},
|
|
138
141
|
list: {
|
|
139
142
|
accounts: `${chalk.bold('Accounts')}:`,
|
|
143
|
+
allAccounts: `${chalk.bold('All Accounts')}:`,
|
|
144
|
+
linkedAccounts: `${chalk.bold('Linked Accounts')}:`,
|
|
140
145
|
defaultAccountTitle: `${chalk.bold('Default Account')}`,
|
|
146
|
+
linkedDefaultTitle: `${chalk.bold('Linked Default Account')}`,
|
|
141
147
|
currentResolvedDefaultAccount: (accountId) => `Account: ${uiAccountDescription(accountId)}`,
|
|
148
|
+
directory: (dir) => `Directory: ${dir}`,
|
|
142
149
|
describe: 'List names of accounts defined in config.',
|
|
143
150
|
configPath: (configPath) => `Source: ${configPath}`,
|
|
144
151
|
overrideFilePathTitle: `${chalk.bold('Default Account Override')}`,
|
|
@@ -185,6 +192,70 @@ export const commands = {
|
|
|
185
192
|
success: {
|
|
186
193
|
defaultAccountUpdated: (accountName) => `Default account updated to "${accountName}"`,
|
|
187
194
|
},
|
|
195
|
+
linked: {
|
|
196
|
+
editingLinkedDefault: (dir) => `Editing the default linked account for this directory (not the global default):\n${indent(1)}${dir}`,
|
|
197
|
+
alreadyDefault: (accountId) => `${uiAccountDescription(accountId)} is the only linked account and is already the default.`,
|
|
198
|
+
setLinkedDefault: (account) => `Linked default set to ${chalk.cyan(account)}`,
|
|
199
|
+
accountNotLinked: (account) => `${account} is not linked to this directory.`,
|
|
200
|
+
promptToLink: (account) => `Would you like to link ${account} to this directory?`,
|
|
201
|
+
settingGlobalDefault: 'Setting global default instead.',
|
|
202
|
+
nonInteractiveNotLinked: (account) => `${account} is not linked to this directory. Setting global default instead.`,
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
link: {
|
|
206
|
+
describe: 'Link authenticated HubSpot accounts to the current directory',
|
|
207
|
+
verboseDescribe: `Link one or more authenticated HubSpot accounts to the current directory. Linked accounts are saved in a local ${chalk.bold('.hs/settings.json')} file (added to .gitignore automatically).\n\nThis lets the CLI know which account to use when you run commands from this directory, without changing the global default. Run ${uiCommandReference('hs account current')} to see the active configuration.`,
|
|
208
|
+
shared: {
|
|
209
|
+
noLinkedAccounts: 'No HubSpot accounts are linked in this directory.',
|
|
210
|
+
globalAccountsAvailable: (count) => `You have ${chalk.cyan(count.toString())} ${count === 1 ? 'account' : 'accounts'} in your global config.`,
|
|
211
|
+
configurePrompt: `To configure this directory, run:\n${indent(1)}${uiCommandReference('hs account link')}`,
|
|
212
|
+
deprecatedConfigNotSupported: (command) => `${uiCommandReference(command)} does not support deprecated config. Run ${uiCommandReference('hs config migrate')} to migrate to global config. Then re-run ${uiCommandReference(command)}`,
|
|
213
|
+
writeSettingsFailed: (path, err) => `Failed to write to ${path}: ${err}`,
|
|
214
|
+
savedToSettings: (path) => `Saved to ${path}`,
|
|
215
|
+
usingLinkedAccounts: (settingsPath) => `This directory has linked accounts via ${settingsPath}. Only linked accounts will be available for this command. To manage linked accounts, run ${uiCommandReference('hs account link')}.`,
|
|
216
|
+
accountAutoLinked: (accountId) => `Automatically linked ${uiAccountDescription(accountId)} to this directory.`,
|
|
217
|
+
accountAutoLinkFailed: (accountId) => `Could not automatically link ${uiAccountDescription(accountId)} to this directory. Run ${uiCommandReference('hs account link')} to link it manually.`,
|
|
218
|
+
},
|
|
219
|
+
linkingDirectory: (dir) => `Linking HubSpot account(s) for directory:\n${indent(1)}${dir}`,
|
|
220
|
+
managingLinkedAccounts: (dir) => `Managing linked accounts for:\n${indent(1)}${dir}`,
|
|
221
|
+
settingsInfo: (path) => `\u2139 Accounts linked here are saved in ${path}`,
|
|
222
|
+
success: {
|
|
223
|
+
created: (path) => `Linked to ${path} (created .hs and added to .gitignore).\n${indent(1)}Now when you work within this directory, the CLI will use the linked account(s).`,
|
|
224
|
+
},
|
|
225
|
+
errors: {
|
|
226
|
+
authFailed: `Authentication failed to complete`,
|
|
227
|
+
},
|
|
228
|
+
events: {
|
|
229
|
+
accountsLinked: (count) => `Linked ${count} account${count !== 1 ? 's' : ''}`,
|
|
230
|
+
accountsUnlinked: (count) => `Unlinked ${count} account${count !== 1 ? 's' : ''}`,
|
|
231
|
+
overrideAccountDetected: (accountId) => `\nCurrent default account (from .hsaccount):\n${indent(1)}${uiAccountDescription(accountId)}`,
|
|
232
|
+
defaultAccountSet: (accountId) => `Linked default account set to ${chalk.cyan(uiAccountDescription(accountId))}`,
|
|
233
|
+
defaultAccountRemoved: (isSelectionRequired) => `The linked default account was removed. ${isSelectionRequired ? 'A linked default account is required.\n' : ''}`,
|
|
234
|
+
defaultAccountRemains: (accountId) => `Linked default account remains ${chalk.cyan(uiAccountDescription(accountId))}`,
|
|
235
|
+
updatedLinkedAccounts: 'Updated linked accounts',
|
|
236
|
+
noAccountsLinked: `All accounts have been unlinked. Your global config accounts will be used.\n${indent(1)}The ${chalk.bold('.hs')} directory is no longer needed and can be safely deleted.`,
|
|
237
|
+
overrideFileRemoved: '.hsaccount file removed',
|
|
238
|
+
invalidDefaultAccount: (accountId) => `Default account ${uiAccountDescription(accountId)} is not in the linked accounts list and has been reset. Please select a new default.`,
|
|
239
|
+
},
|
|
240
|
+
prompts: {
|
|
241
|
+
howToProceed: 'How would you like to link an account?',
|
|
242
|
+
whatToDo: 'Which action would you like to perform?',
|
|
243
|
+
linkExisting: 'Link existing authenticated account(s)',
|
|
244
|
+
authenticateNew: 'Authenticate and link a new account',
|
|
245
|
+
cancel: 'Cancel',
|
|
246
|
+
selectDefault: 'Select a linked default account',
|
|
247
|
+
selectToLink: 'Select authenticated account(s) to link:',
|
|
248
|
+
selectToUnlink: 'Select account(s) to unlink',
|
|
249
|
+
alreadyLinked: '- Already linked',
|
|
250
|
+
fromHsAccount: '(from .hsaccount)',
|
|
251
|
+
newlyAuthenticated: '(just authenticated)',
|
|
252
|
+
mustSelectOne: 'You must select at least one account to link',
|
|
253
|
+
keepAsDefault: 'Keep this as the default?',
|
|
254
|
+
},
|
|
255
|
+
},
|
|
256
|
+
unlink: {
|
|
257
|
+
describe: 'Unlink HubSpot account(s) from the current directory',
|
|
258
|
+
verboseDescribe: `Remove one or more linked accounts from this directory's ${chalk.bold('.hs/settings.json')}. If the default account is removed, you will be prompted to select a new one.\n\nThis does not delete the account from the global config - it only removes the local association.`,
|
|
188
259
|
},
|
|
189
260
|
remove: {
|
|
190
261
|
describe: 'Remove an account from the config.',
|
|
@@ -253,6 +324,9 @@ export const commands = {
|
|
|
253
324
|
},
|
|
254
325
|
name: (name) => `${chalk.bold('Account name')}: ${name}`,
|
|
255
326
|
scopeGroups: `${chalk.bold('Scopes available')}:`,
|
|
327
|
+
linkedDefaultTitle: `${chalk.bold('Linked Default Account')}`,
|
|
328
|
+
settingsPath: (path) => `Source: ${path}`,
|
|
329
|
+
linkedDefault: (account) => `Account: ${account}`,
|
|
256
330
|
},
|
|
257
331
|
clean: {
|
|
258
332
|
describe: 'Check for inactive accounts and removes them from the CLI config.',
|
|
@@ -1251,22 +1325,34 @@ export const commands = {
|
|
|
1251
1325
|
},
|
|
1252
1326
|
mcp: {
|
|
1253
1327
|
describe: 'Commands for managing HubSpot MCP servers.',
|
|
1328
|
+
promotion: {
|
|
1329
|
+
activeNudge: `${chalk.bold('Tip:')} Work faster with AI coding tools. Run ${uiCommandReference('hs mcp setup')} to connect HubSpot developer context to supported clients.`,
|
|
1330
|
+
},
|
|
1254
1331
|
setup: {
|
|
1255
|
-
describe: '
|
|
1332
|
+
describe: `Run ${uiCommandReference('hs mcp setup')} to connect the HubSpot Dev MCP and work faster with your AI coding tools.`,
|
|
1256
1333
|
installingDocSearch: 'Adding the docs-search mcp server',
|
|
1257
1334
|
codex: 'Codex CLI',
|
|
1258
1335
|
claudeCode: 'Claude Code',
|
|
1259
1336
|
cursor: 'Cursor',
|
|
1337
|
+
devin: 'Devin',
|
|
1260
1338
|
gemini: 'Gemini CLI',
|
|
1261
|
-
|
|
1339
|
+
opencode: 'OpenCode',
|
|
1262
1340
|
vsCode: 'VSCode',
|
|
1341
|
+
other: 'Other (manual setup)',
|
|
1263
1342
|
args: {
|
|
1264
1343
|
client: 'Target apps to configure',
|
|
1344
|
+
standalone: 'Use npx for all of the hs commands run by the MCP server. This allows you to use the MCP server without having the CLI globally installed.',
|
|
1345
|
+
cliVersion: 'Pin a specific CLI version for standalone mode',
|
|
1265
1346
|
docsSearch: 'Should the docs search mcp server be installed',
|
|
1266
1347
|
},
|
|
1348
|
+
examples: {
|
|
1349
|
+
nonInteractive: 'Configure Claude Code without prompts',
|
|
1350
|
+
standalone: 'Configure Cursor in standalone mode with a pinned CLI version',
|
|
1351
|
+
},
|
|
1267
1352
|
success: (derivedTargets) => `You can now use the HubSpot CLI MCP Server in ${derivedTargets.join(', ')}. ${chalk.bold('You may need to restart these tools to apply the changes')}.`,
|
|
1268
1353
|
errors: {
|
|
1269
1354
|
errorParsingJsonFIle: (filename, errorMessage) => `Unable to update ${chalk.bold(filename)} due to invalid JSON: ${errorMessage}`,
|
|
1355
|
+
cliVersionRequiresStandalone: '`--cli-version` requires `--standalone`. Pass `--standalone` to use a specific CLI version.',
|
|
1270
1356
|
},
|
|
1271
1357
|
spinners: {
|
|
1272
1358
|
failedToConfigure: 'Failed to configure the HubSpot mcp server.',
|
|
@@ -1291,17 +1377,28 @@ export const commands = {
|
|
|
1291
1377
|
geminiNotFound: "Gemini CLI is not installed (missing 'gemini' command). Install it and re-run hs mcp setup.",
|
|
1292
1378
|
geminiInstallFailed: 'Failed to configure Gemini CLI',
|
|
1293
1379
|
alreadyInstalled: 'HubSpot CLI mcp server already installed, reinstalling',
|
|
1294
|
-
//
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1380
|
+
// Devin
|
|
1381
|
+
configuringDevin: 'Configuring Devin...',
|
|
1382
|
+
devinNotFound: 'Devin is not installed. Install it and re-run hs mcp setup.',
|
|
1383
|
+
failedToConfigureDevin: 'Failed to configure Devin',
|
|
1384
|
+
configuredDevin: 'Configured Devin',
|
|
1385
|
+
// OpenCode
|
|
1386
|
+
configuringOpenCode: 'Configuring OpenCode...',
|
|
1387
|
+
openCodeNotFound: "OpenCode is not installed (missing 'opencode' command). Install it and re-run hs mcp setup.",
|
|
1388
|
+
openCodeInstallFailed: 'Failed to configure OpenCode',
|
|
1389
|
+
configuredOpenCode: 'Configured OpenCode',
|
|
1299
1390
|
// VS Code
|
|
1300
1391
|
configuringVsCode: 'Configuring VSCode...',
|
|
1301
1392
|
failedToConfigureVsCode: 'Failed to configure VSCode',
|
|
1302
1393
|
configuredVsCode: 'Configured VSCode',
|
|
1303
1394
|
vsCodeNotFound: "VSCode CLI is not installed (missing 'code' command). Install it and re-run hs mcp setup.",
|
|
1304
1395
|
},
|
|
1396
|
+
otherInstructions: {
|
|
1397
|
+
header: 'To connect the HubSpot MCP server to another tool, add the following MCP server configuration.',
|
|
1398
|
+
docsNote: "Each tool handles MCP setup differently. Check your tool's documentation for how to add an MCP server using a command or JSON config.",
|
|
1399
|
+
commandLabel: 'Command:',
|
|
1400
|
+
jsonLabel: 'JSON configuration (for tools that use a config file):',
|
|
1401
|
+
},
|
|
1305
1402
|
prompts: {
|
|
1306
1403
|
targets: '[--client] Which tools would you like to add the HubSpot CLI MCP server to?',
|
|
1307
1404
|
targetsRequired: 'Must choose at least one app to configure.',
|
|
@@ -1320,6 +1417,30 @@ export const commands = {
|
|
|
1320
1417
|
shuttingDown: 'Shutting down MCP server...',
|
|
1321
1418
|
},
|
|
1322
1419
|
},
|
|
1420
|
+
api: {
|
|
1421
|
+
describe: 'Make an authenticated HTTP request to any HubSpot API endpoint that supports PAKs.',
|
|
1422
|
+
verboseDescribe: `Make an authenticated HTTP request to any HubSpot API that supports PAKs using your CLI authentication.\n\nThis command is intended for testing and exploration of HubSpot APIs. It uses the authentication credentials configured in the CLI to make requests on your behalf.\n\nThe endpoint should be the API path, e.g. ${chalk.bold('/crm/v3/objects/contacts')}. The request will be authenticated using the account specified by ${uiCommandReference('--account')} or the default account.\n\nNote: The available endpoints depend on the scopes granted to your personal access key. If you receive a 403 error, check that your key includes the required scopes for the endpoint you are trying to reach. ${uiLink('Learn more about the HubSpot API', 'https://developers.hubspot.com/docs/api-reference/latest/overview')}`,
|
|
1423
|
+
positionals: {
|
|
1424
|
+
endpoint: {
|
|
1425
|
+
describe: 'API endpoint path (e.g. /crm/v3/objects/contacts)',
|
|
1426
|
+
},
|
|
1427
|
+
},
|
|
1428
|
+
options: {
|
|
1429
|
+
method: {
|
|
1430
|
+
describe: 'HTTP method to use. Defaults to GET, or POST if --data is provided',
|
|
1431
|
+
},
|
|
1432
|
+
data: {
|
|
1433
|
+
describe: 'JSON-formatted request body for POST, PUT, and PATCH requests',
|
|
1434
|
+
},
|
|
1435
|
+
},
|
|
1436
|
+
requestLog: (method, url) => `${chalk.bold(method)} ${url}`,
|
|
1437
|
+
requestBodyLog: (body) => `Request body: ${body}`,
|
|
1438
|
+
responseLog: 'Response:',
|
|
1439
|
+
errors: {
|
|
1440
|
+
invalidJson: 'The value passed to --data is not valid JSON. Please provide a valid JSON string.',
|
|
1441
|
+
statusLine: (status, statusText) => `${chalk.red(`${status} ${statusText}`)}`,
|
|
1442
|
+
},
|
|
1443
|
+
},
|
|
1323
1444
|
open: {
|
|
1324
1445
|
describe: 'Open a HubSpot page in your browser.',
|
|
1325
1446
|
options: {
|
|
@@ -1343,6 +1464,7 @@ export const commands = {
|
|
|
1343
1464
|
describe: 'Add a new project profile',
|
|
1344
1465
|
verboseDescribe: `Add a new project profile\n\nProfiles enable you to reference variables in your component configuration files. Use the syntax ${chalk.bold('\${VARIABLE_NAME}')} to reference profile variables in your component configuration files. Then target the profile using the ${uiCommandReference('--profile')} flag when you upload your project.`,
|
|
1345
1466
|
example: 'Add a new project profile named hsprofile.qa.json',
|
|
1467
|
+
exampleCopyFrom: 'Add a profile and copy variables from the staging profile',
|
|
1346
1468
|
logs: {
|
|
1347
1469
|
copyExistingProfile: (profileName) => `Found an existing profile. We can copy the variables from ${chalk.bold(profileName)} into your new profile.`,
|
|
1348
1470
|
copyExistingProfiles: 'We can copy the variables from one of your existing profiles into your new profile.',
|
|
@@ -1361,10 +1483,12 @@ export const commands = {
|
|
|
1361
1483
|
},
|
|
1362
1484
|
errors: {
|
|
1363
1485
|
noProjectConfig: 'No project config found. Please run this command from a project directory.',
|
|
1486
|
+
unsupportedPlatformVersion: 'This command is only available for projects 2025.2 and later.',
|
|
1364
1487
|
profileExists: (profileName) => `Profile ${chalk.bold(profileName)} already exists. Please choose a different name.`,
|
|
1365
1488
|
invalidTargetAccount: 'Target account is not configured in the CLI',
|
|
1366
1489
|
noAccountsConfigured: 'No accounts configured in the CLI',
|
|
1367
1490
|
failedToLoadProfile: (profileName) => `Unable to copy variables. Failed to load profile ${chalk.bold(profileName)}`,
|
|
1491
|
+
copyFromProfileNotFound: (profileName) => `Profile ${chalk.bold(profileName)} does not exist. Available profiles can be found in your project source directory.`,
|
|
1368
1492
|
failedToCreateProfile: 'Failed to create profile',
|
|
1369
1493
|
},
|
|
1370
1494
|
positionals: {
|
|
@@ -1372,6 +1496,7 @@ export const commands = {
|
|
|
1372
1496
|
},
|
|
1373
1497
|
options: {
|
|
1374
1498
|
targetAccount: 'The target account ID for this profile',
|
|
1499
|
+
copyFrom: 'Copy variables from an existing profile',
|
|
1375
1500
|
},
|
|
1376
1501
|
},
|
|
1377
1502
|
delete: {
|
|
@@ -1391,6 +1516,7 @@ export const commands = {
|
|
|
1391
1516
|
},
|
|
1392
1517
|
errors: {
|
|
1393
1518
|
noProjectConfig: 'No project config found. Please run this command from a project directory.',
|
|
1519
|
+
unsupportedPlatformVersion: 'This command is only available for projects 2025.2 and later.',
|
|
1394
1520
|
noProfileFound: (profileName) => `No profile with filename ${chalk.bold(profileName)} found in your project.`,
|
|
1395
1521
|
noProfilesFound: 'No profiles found in your project.',
|
|
1396
1522
|
failedToDeleteProfile: (profileName) => `Unable to delete profile ${chalk.bold(profileName)}. Please try again.`,
|
|
@@ -1405,26 +1531,19 @@ export const commands = {
|
|
|
1405
1531
|
describe: 'Start local dev for the current project.',
|
|
1406
1532
|
logs: {
|
|
1407
1533
|
header: 'HubSpot projects local development',
|
|
1408
|
-
placeholderAccountSelection: 'Using default account as target account (for now)',
|
|
1409
|
-
accountTypeInformation: 'Testing in a developer test account is strongly recommended, but you can use a sandbox account if your plan allows you to create one.',
|
|
1410
1534
|
learnMoreMessageV2: `Learn more about ${uiLink('HubSpot projects local dev', 'https://developers.hubspot.com/docs/developer-tooling/local-development/hubspot-cli/project-commands#start-a-local-development-server')} | ${uiLink('HubSpot account types', 'https://developers.hubspot.com/docs/getting-started/account-types')}`,
|
|
1411
|
-
learnMoreMessageLegacy: uiLink('Learn more about the projects local dev server', 'https://developers.hubspot.com/docs/developer-tooling/local-development/hubspot-cli/project-commands#start-a-local-development-server'),
|
|
1412
1535
|
profileProjectAccountExplanation: (accountId, profileName) => `Using account ${uiAccountDescription(accountId)} from profile ${chalk.bold(profileName)} for project upload`,
|
|
1413
1536
|
defaultProjectAccountExplanation: (accountId) => `Using default account ${uiAccountDescription(accountId)} for project upload`,
|
|
1414
1537
|
projectAccountFlagExplanation: (accountId) => `Using account ${uiAccountDescription(accountId)} provided by the --project-account flag for project upload`,
|
|
1415
|
-
accountFlagExplanation: (accountId) => `Using account ${uiAccountDescription(accountId)} provided by the --account flag for project upload`,
|
|
1416
1538
|
defaultSandboxOrDevTestTestingAccountExplanation: (accountId) => `Using default account ${uiAccountDescription(accountId)} for testing`,
|
|
1417
1539
|
testingAccountFlagExplanation: (accountId) => `Using account ${uiAccountDescription(accountId)} provided by the --testing-account flag for testing`,
|
|
1418
1540
|
},
|
|
1419
1541
|
errors: {
|
|
1420
1542
|
noProjectConfig: 'No project detected. Please run this command again from a project directory.',
|
|
1421
1543
|
noAccount: (accountId) => `An error occurred while reading account ${uiAccountDescription(accountId)} from your config. Run ${uiAuthCommandReference()} to re-auth this account.`,
|
|
1422
|
-
|
|
1423
|
-
invalidProjectComponents: 'Projects cannot contain both private and public apps. Move your apps to separate projects before attempting local development.',
|
|
1544
|
+
unsupportedPlatformVersion: (platformVersion) => `Local development is not supported for platform version ${chalk.bold(platformVersion)}. Please upgrade to 2025.2 or later.`,
|
|
1424
1545
|
noRunnableComponents: `No supported components were found in this project. Run ${uiCommandReference('hs project add')} to see a list of available components and add one to your project.`,
|
|
1425
1546
|
accountNotCombined: `\nLocal development of unified apps is currently only compatible with accounts that are opted into the unified apps beta. Make sure that this account is opted in or switch accounts using ${uiCommandReference('hs account use')}.`,
|
|
1426
|
-
unsupportedAccountFlagLegacy: 'The --project-account and --testing-account flags are not supported for projects with platform versions earlier than 2025.2.',
|
|
1427
|
-
unsupportedAccountFlagV2: 'The --account flag is is not supported supported for projects with platform versions 2025.2 and newer. Use --testing-account and --project-account flags to specify accounts to use for local dev',
|
|
1428
1547
|
localDevAlreadyRunning: `Another ${uiCommandReference('hs project dev')} process is already running. To proceed with local development of this project, stop the existing process and re-run ${uiCommandReference('hs project dev')}.`,
|
|
1429
1548
|
},
|
|
1430
1549
|
examples: {
|
|
@@ -1435,9 +1554,9 @@ export const commands = {
|
|
|
1435
1554
|
},
|
|
1436
1555
|
options: {
|
|
1437
1556
|
profile: 'The profile to target during local dev',
|
|
1438
|
-
projectAccount: 'The id of the account to upload your project to. Must be used with --testing-account.
|
|
1439
|
-
testingAccount: 'The id of the account to install apps and test on. Must be used with --project-account.
|
|
1440
|
-
|
|
1557
|
+
projectAccount: 'The id of the account to upload your project to. Must be used with --testing-account.',
|
|
1558
|
+
testingAccount: 'The id of the account to install apps and test on. Must be used with --project-account.',
|
|
1559
|
+
port: `The port for the local dev server. Defaults to ${LOCAL_DEV_DEFAULT_PORT}.`,
|
|
1441
1560
|
},
|
|
1442
1561
|
},
|
|
1443
1562
|
create: {
|
|
@@ -1448,6 +1567,9 @@ export const commands = {
|
|
|
1448
1567
|
failedToFetchProjectList: 'Failed to fetch the list of available project templates. Please try again later.',
|
|
1449
1568
|
cannotNestProjects: (projectDir) => `A project already exists at ${projectDir}. Projects cannot be nested within other projects. Please choose a different destination and try again.`,
|
|
1450
1569
|
},
|
|
1570
|
+
warnings: {
|
|
1571
|
+
betaPlatformVersion: (platformVersion) => `Your portal must be enrolled in the beta to use platform version ${platformVersion}. If you are not enrolled in the beta, your upload will fail. ${uiLink('Enroll in the beta', getProductUpdatesUrl('286886'))}`,
|
|
1572
|
+
},
|
|
1451
1573
|
logs: {
|
|
1452
1574
|
success: (projectName, projectDest) => `Project ${chalk.bold(projectName)} was successfully created in ${projectDest}`,
|
|
1453
1575
|
},
|
|
@@ -1510,7 +1632,6 @@ export const commands = {
|
|
|
1510
1632
|
},
|
|
1511
1633
|
},
|
|
1512
1634
|
header: `This command will migrate an app to the projects framework. It will walk you through the fields required to complete the migration and download the project source code into a directory of your choosing.\n${uiLink('Learn more about migrating apps to the projects framework', 'https://developers.hubspot.com/docs/platform/migrate-a-public-app-to-projects')}`,
|
|
1513
|
-
deprecationWarning: (platformVersion) => `The ${uiCommandReference('hs project migrate-app')} command is deprecated and will be removed. Use ${uiCommandReference(`hs app migrate --platform-version=${platformVersion}`)} going forward.`,
|
|
1514
1635
|
migrationStatus: {
|
|
1515
1636
|
inProgress: () => `Converting app configuration to ${chalk.bold(LEGACY_PUBLIC_APP_FILE)} component definition ...`,
|
|
1516
1637
|
success: () => `${chalk.bold('Your app was converted and build #1 is deployed')}`,
|
|
@@ -1615,13 +1736,16 @@ export const commands = {
|
|
|
1615
1736
|
deploy: {
|
|
1616
1737
|
describe: 'Deploy a project build.',
|
|
1617
1738
|
deployBuildIdPrompt: '[--build] Deploy which build?',
|
|
1739
|
+
profileMessage: (profileName, accountId) => `Deploying with ${chalk.bold(profileName)} profile: ${uiAccountDescription(accountId)}`,
|
|
1618
1740
|
debug: {
|
|
1619
1741
|
deploying: (path) => `Deploying project at path: ${path}`,
|
|
1620
1742
|
},
|
|
1621
1743
|
errors: {
|
|
1622
1744
|
deploy: 'Deploy error: an unknown error occurred.',
|
|
1623
1745
|
noBuilds: 'Deploy error: no builds for this project were found.',
|
|
1746
|
+
noSuccessfulBuilds: 'Deploy error: no successful builds for this project were found.',
|
|
1624
1747
|
noBuildId: 'You must specify a build to deploy',
|
|
1748
|
+
notSupportedForBuildVersion: `This build's platform version does not support deploy. Run ${uiCommandReference('hs project release create')} to create a release instead.`,
|
|
1625
1749
|
projectNotFound: (accountId, projectName) => `The project ${chalk.bold(projectName)} does not exist in account ${uiAccountDescription(accountId)}. Run ${uiCommandReference('hs project upload')} to upload your project files to HubSpot.`,
|
|
1626
1750
|
buildIdDoesNotExist: (accountId, buildId, projectName) => `Build ${buildId} does not exist for project ${chalk.bold(projectName)}. Run ${uiCommandReference('hs project list-builds')} to view existing builds for this project.`,
|
|
1627
1751
|
buildAlreadyDeployed: (accountId, buildId, projectName) => `Build ${buildId} is already deployed. ${uiLink('View project builds in HubSpot', getProjectDetailUrl(projectName, accountId))}`,
|
|
@@ -1632,7 +1756,7 @@ export const commands = {
|
|
|
1632
1756
|
deployIssueComponentWarning: (uid, componentTypeName, message) => `- [${mapToUserFriendlyName(componentTypeName)}] ${chalk.bold('(' + uid + ')')} ${message}`,
|
|
1633
1757
|
},
|
|
1634
1758
|
examples: {
|
|
1635
|
-
default: 'Deploy the
|
|
1759
|
+
default: 'Deploy the last successful build of the current project',
|
|
1636
1760
|
withOptions: 'Deploy build 5 of the project my-project',
|
|
1637
1761
|
withProfile: 'Deploy using the provided profile',
|
|
1638
1762
|
},
|
|
@@ -1641,7 +1765,77 @@ export const commands = {
|
|
|
1641
1765
|
project: 'Project name',
|
|
1642
1766
|
profile: 'The profile to target with this deploy',
|
|
1643
1767
|
force: 'Skip warnings and force deploy. Use this carefully as it will bypass warnings for destructive actions.',
|
|
1644
|
-
deployLatestBuild: 'Deploy the
|
|
1768
|
+
deployLatestBuild: 'Deploy the last successful build of the current project',
|
|
1769
|
+
},
|
|
1770
|
+
},
|
|
1771
|
+
release: {
|
|
1772
|
+
describe: 'Manage project releases.',
|
|
1773
|
+
create: {
|
|
1774
|
+
describe: 'Create a release for a project build.',
|
|
1775
|
+
verboseDescribe: `Create a release for a project build\n\nReleases mark an uploaded build with an auto-generated semantic version tag (e.g. v1.0.0).\n\nBy default, the latest build is used. Use ${uiCommandReference('--build')} to specify a different build ID.`,
|
|
1776
|
+
confirmPrompt: (projectName, buildId) => `Create a release for project ${chalk.bold(projectName)} using build ${chalk.bold(String(buildId))}?`,
|
|
1777
|
+
success: (releaseTag, buildId) => `Release ${chalk.bold(releaseTag)} created for build ${chalk.bold(String(buildId))}.`,
|
|
1778
|
+
cancelled: 'Release creation cancelled.',
|
|
1779
|
+
buildIdPrompt: '[--build] Select a successful build to release:',
|
|
1780
|
+
noUploadMessage: 'No upload message',
|
|
1781
|
+
buildStatus: {
|
|
1782
|
+
BUILDING: 'Build in progress',
|
|
1783
|
+
FAILURE: 'Build failed',
|
|
1784
|
+
PENDING: 'Pending',
|
|
1785
|
+
PREPARING: 'Preparing',
|
|
1786
|
+
},
|
|
1787
|
+
uploadPrompt: (projectName) => `No successful builds for project ${chalk.bold(projectName)}. Would you like to upload it?`,
|
|
1788
|
+
errors: {
|
|
1789
|
+
projectNotFound: (accountId, projectName) => `The project ${chalk.bold(projectName)} does not exist in account ${uiAccountDescription(accountId)}. Run ${uiCommandReference('hs project upload')} to upload your project files to HubSpot.`,
|
|
1790
|
+
buildNotFound: (buildId, projectName) => `Build ${chalk.bold(String(buildId))} was not found for project ${chalk.bold(projectName)}. Run ${uiCommandReference('hs project list-builds')} to view existing builds or ${uiCommandReference('hs project upload')} to upload a build first.`,
|
|
1791
|
+
noSuccessfulBuilds: (projectName) => `No successful builds found for project ${chalk.bold(projectName)}. Run ${uiCommandReference('hs project upload')} to create a new build.`,
|
|
1792
|
+
incompatibleBuildVersion: `This build's platform version does not support releases. Upgrade your project to a newer platform version to use releases.`,
|
|
1793
|
+
},
|
|
1794
|
+
options: {
|
|
1795
|
+
build: 'Build ID to release. Defaults to the latest build.',
|
|
1796
|
+
force: 'Skip all confirmation prompts, including automatic upload when no build exists.',
|
|
1797
|
+
},
|
|
1798
|
+
examples: {
|
|
1799
|
+
default: 'Create a release for the latest build',
|
|
1800
|
+
withBuild: 'Create a release for a specific build',
|
|
1801
|
+
},
|
|
1802
|
+
},
|
|
1803
|
+
list: {
|
|
1804
|
+
describe: 'List releases for the current project.',
|
|
1805
|
+
verboseDescribe: `List releases for the current project\n\nDisplays all releases in sorted order, newest first. Includes the version tag, build ID, and creation date. Use ${uiCommandReference('--limit')} to control how many results are shown.`,
|
|
1806
|
+
noReleases: 'No releases found for this project.',
|
|
1807
|
+
showingReleases: (count, projectName) => `Showing ${count} release${count === 1 ? '' : 's'} for ${chalk.bold(projectName)}:`,
|
|
1808
|
+
continueOrExitPrompt: 'Press <enter> to load more, or ctrl+c to exit',
|
|
1809
|
+
errors: {
|
|
1810
|
+
projectNotFound: (accountId, projectName) => `The project ${chalk.bold(projectName)} does not exist in account ${uiAccountDescription(accountId)}. Run ${uiCommandReference('hs project upload')} to upload your project files to HubSpot.`,
|
|
1811
|
+
},
|
|
1812
|
+
options: {
|
|
1813
|
+
limit: 'Number of releases to show',
|
|
1814
|
+
},
|
|
1815
|
+
examples: {
|
|
1816
|
+
default: 'List releases for the current project',
|
|
1817
|
+
withLimit: 'Show only the 5 most recent releases',
|
|
1818
|
+
},
|
|
1819
|
+
},
|
|
1820
|
+
info: {
|
|
1821
|
+
describe: 'Show details about a specific release.',
|
|
1822
|
+
verboseDescribe: `Show details about a specific release\n\nDisplays the release tag, build ID, creation date, and list of components included in the release. Use ${uiCommandReference('--json')} for machine-readable output.`,
|
|
1823
|
+
releaseDetails: (releaseTag, projectName) => `Release ${chalk.bold(releaseTag)} for ${chalk.bold(projectName)}:`,
|
|
1824
|
+
components: 'Components:',
|
|
1825
|
+
noComponents: 'No components found for this release.',
|
|
1826
|
+
moreReleasesHint: `Not all releases are shown. Use ${uiCommandReference('--tag')} to look up an older release directly.`,
|
|
1827
|
+
selectRelease: (projectName) => `Select a release for ${chalk.bold(projectName)}`,
|
|
1828
|
+
errors: {
|
|
1829
|
+
releaseNotFound: (releaseTag, projectName) => `Release ${chalk.bold(releaseTag)} was not found for project ${chalk.bold(projectName)}. Verify the project has been uploaded and the release tag exists. Run ${uiCommandReference('hs project release list')} to view existing releases.`,
|
|
1830
|
+
noReleases: 'No releases found for this project.',
|
|
1831
|
+
},
|
|
1832
|
+
options: {
|
|
1833
|
+
tag: 'Release tag to look up (e.g. v1.0.0)',
|
|
1834
|
+
},
|
|
1835
|
+
examples: {
|
|
1836
|
+
default: 'Show details about a specific release',
|
|
1837
|
+
json: 'Output release details as JSON',
|
|
1838
|
+
},
|
|
1645
1839
|
},
|
|
1646
1840
|
},
|
|
1647
1841
|
listBuilds: {
|
|
@@ -1674,6 +1868,7 @@ export const commands = {
|
|
|
1674
1868
|
noFunctionsLinkText: 'Visit developer docs',
|
|
1675
1869
|
noFunctionsInProject: `There aren't any functions in this project\n\t- Run ${uiCommandReference('hs project logs --help')} to learn more about logs\n\t- ${uiLink('Visit developer docs', 'https://developers.hubspot.com/docs/platform/serverless-functions')} to learn more about serverless functions`,
|
|
1676
1870
|
noFunctionWithName: (name) => `No function with name "${name}"`,
|
|
1871
|
+
functionNameRequired: `A function name is required. Pass ${uiCommandReference('--function=<name>')} or run without it to select one interactively.`,
|
|
1677
1872
|
functionNotDeployed: (name) => `The function with name "${name}" is not deployed`,
|
|
1678
1873
|
projectLogsManagerNotInitialized: 'Function called on ProjectLogsManager before initialization',
|
|
1679
1874
|
noDeployedBuild: 'This project has not been deployed yet. Deploy the project first, then try again.',
|
|
@@ -1719,19 +1914,29 @@ export const commands = {
|
|
|
1719
1914
|
examples: {
|
|
1720
1915
|
default: 'Upload a project into your HubSpot account',
|
|
1721
1916
|
withProfile: 'Upload a project into your HubSpot account when using profiles',
|
|
1917
|
+
withPreview: 'Upload and preview the build on a target portal',
|
|
1722
1918
|
},
|
|
1723
1919
|
logs: {
|
|
1920
|
+
forceCreateDeprecated: `The ${uiCommandReference('--force-create')} flag is deprecated. Use ${uiCommandReference('--force')} instead.`,
|
|
1724
1921
|
buildSucceeded: (buildId) => `Build #${buildId} succeeded\n`,
|
|
1725
1922
|
readyToGoLive: '🚀 Ready to take your project live?',
|
|
1726
1923
|
runCommand: (command) => `Run \`${uiCommandReference(command)}\``,
|
|
1727
1924
|
autoDeployDisabled: (deployCommand) => `Automatic deploys are disabled for this project. Run ${uiCommandReference(deployCommand)} to deploy this build.`,
|
|
1925
|
+
autoDeploySkipped: (deployCommand) => `Auto-deploy was skipped for this build. Run ${uiCommandReference(deployCommand)} to deploy this build.`,
|
|
1926
|
+
releaseManagementRequired: (releaseCommand) => `Run ${uiCommandReference(releaseCommand)} to create a release for this build.`,
|
|
1728
1927
|
},
|
|
1729
1928
|
errors: {
|
|
1929
|
+
noProjectConfig: 'No project detected. Run this command from a project directory.',
|
|
1730
1930
|
projectLockedError: `Your project is locked. This may mean that another user is running the ${uiCommandReference('hs project dev')} command for this project. If this is you, unlock the project in Projects UI.`,
|
|
1931
|
+
previewRequiresTarget: `${uiCommandReference('--preview')} requires ${uiCommandReference('--target=<portalId>')} to specify the portal to preview on.`,
|
|
1932
|
+
targetRequiresPreview: `${uiCommandReference('--target')} can only be used with ${uiCommandReference('--preview')}.`,
|
|
1731
1933
|
},
|
|
1732
1934
|
options: {
|
|
1935
|
+
force: {
|
|
1936
|
+
describe: 'Skip confirmation prompts and force the upload.',
|
|
1937
|
+
},
|
|
1733
1938
|
forceCreate: {
|
|
1734
|
-
describe:
|
|
1939
|
+
describe: uiDeprecatedTag(`Automatically create project if it does not exist. Use ${uiCommandReference('--force')} instead.`, false),
|
|
1735
1940
|
},
|
|
1736
1941
|
message: {
|
|
1737
1942
|
describe: 'Add a message when you upload your project and create a build',
|
|
@@ -1739,6 +1944,18 @@ export const commands = {
|
|
|
1739
1944
|
profile: {
|
|
1740
1945
|
describe: 'Profile to target for this upload',
|
|
1741
1946
|
},
|
|
1947
|
+
skipNpmAudit: {
|
|
1948
|
+
describe: 'Skip the npm audit security check before uploading',
|
|
1949
|
+
},
|
|
1950
|
+
skipAutoDeploy: {
|
|
1951
|
+
describe: 'Skip automatic deployment after a successful build',
|
|
1952
|
+
},
|
|
1953
|
+
preview: {
|
|
1954
|
+
describe: 'Preview the build on a target portal after a successful upload',
|
|
1955
|
+
},
|
|
1956
|
+
target: {
|
|
1957
|
+
describe: 'Portal ID to preview the build on',
|
|
1958
|
+
},
|
|
1742
1959
|
},
|
|
1743
1960
|
},
|
|
1744
1961
|
watch: {
|
|
@@ -1853,6 +2070,7 @@ export const commands = {
|
|
|
1853
2070
|
loading: {
|
|
1854
2071
|
checking: 'Checking lint packages and configuration…',
|
|
1855
2072
|
creatingConfig: 'Creating ESLint configuration files…',
|
|
2073
|
+
addingLintScripts: 'Adding lint scripts to package.json files…',
|
|
1856
2074
|
linting: 'Linting…',
|
|
1857
2075
|
},
|
|
1858
2076
|
noProjectConfig: 'No project detected. Run this command from a project directory.',
|
|
@@ -1862,6 +2080,7 @@ export const commands = {
|
|
|
1862
2080
|
return `The dependencies required for linting are missing or outdated.\n\nDependencies:\n${uniquePackages.map(p => ` - ${p}`).join('\n')}\n\n${directories.length === 1 ? 'Directory' : 'Directories'}:\n${directories.map(d => ` - ${d}`).join('\n')}\n\nWould you like to install the required dependencies?`;
|
|
1863
2081
|
},
|
|
1864
2082
|
skippingDirectoriesWarning: (directories) => `Skipping linting for the following ${directories.length === 1 ? 'directory' : 'directories'}:\n${directories.map(d => ` - ${d}`).join('\n')}`,
|
|
2083
|
+
skippedDirectoriesError: (directoryCount) => `Linting could not run for ${directoryCount === 1 ? 'the directory' : 'the directories'} above because the required dependencies are missing. Run ${uiCommandReference('hs project lint --install-missing-deps')} to install them.`,
|
|
1865
2084
|
deprecatedEslintConfigWarning: (details) => {
|
|
1866
2085
|
const dirCount = details.length;
|
|
1867
2086
|
const header = `Deprecated ESLint configuration file${dirCount === 1 ? '' : 's'} detected in the following ${dirCount === 1 ? 'directory' : 'directories'}:`;
|
|
@@ -1872,8 +2091,17 @@ export const commands = {
|
|
|
1872
2091
|
},
|
|
1873
2092
|
createEslintConfigPrompt: (directories) => `ESLint configuration file not found in the following ${directories.length === 1 ? 'directory' : 'directories'}:\n${directories.map(d => ` - ${d}`).join('\n')}\n\nWould you like to set up the required ESLint configuration?`,
|
|
1874
2093
|
eslintConfigCreated: (configPath) => `ESLint configuration created at ${configPath}`,
|
|
2094
|
+
createEslintConfigRequiresV2Platform: (platformVersion) => {
|
|
2095
|
+
if (!platformVersion) {
|
|
2096
|
+
return 'Automatic ESLint configuration requires a Developer Platform project (2025.2 or later) with platformVersion set in hsproject.json. Add an eslint.config.js file manually, or set platformVersion and try again.';
|
|
2097
|
+
}
|
|
2098
|
+
return `Automatic ESLint configuration is not available for platform version ${platformVersion}. Use Developer Platform 2025.2 or later, or add eslint.config.js manually.`;
|
|
2099
|
+
},
|
|
2100
|
+
failedToFetchRemoteEslintConfig: (platformVersion) => `Could not download the ESLint config from HubSpot project components for platform version ${platformVersion}. Check your network connection and try again, or add eslint.config.js manually.`,
|
|
1875
2101
|
failedToCreateEslintConfig: (configPath) => `Failed to create ESLint configuration at ${configPath}`,
|
|
1876
2102
|
eslintConfigRequired: 'ESLint configuration is required to run the lint command. Run the command again to create the configuration.',
|
|
2103
|
+
lintScriptsAdded: (scriptNames, packageJsonPath) => `Added ${scriptNames.map(s => `"${s}"`).join(' and ')} to ${packageJsonPath}`,
|
|
2104
|
+
failedToAddLintScripts: (packageJsonPath) => `Failed to add lint scripts to ${packageJsonPath}`,
|
|
1877
2105
|
},
|
|
1878
2106
|
updateDeps: {
|
|
1879
2107
|
help: {
|
|
@@ -1928,6 +2156,140 @@ export const commands = {
|
|
|
1928
2156
|
noProjectsFound: (accountId) => `No projects found for account ${uiAccountDescription(accountId)}`,
|
|
1929
2157
|
},
|
|
1930
2158
|
},
|
|
2159
|
+
info: {
|
|
2160
|
+
describe: 'Display information about a project, its app, and its components',
|
|
2161
|
+
verboseDescribe: `Display information about a project, its app, and its components\n\nShows the project's platform version, deployed build ID, auto-deploy status, app metadata, and a list of components.\n\nRun ${uiCommandReference('hs project info --json')} to output the result as JSON for scripting.`,
|
|
2162
|
+
project: {
|
|
2163
|
+
title: (name) => `Project: ${name}`,
|
|
2164
|
+
platformVersion: (version) => `Platform Version: ${version}`,
|
|
2165
|
+
id: (id) => `Project ID: ${id}`,
|
|
2166
|
+
deployedBuild: (buildId) => `Deployed Build: #${buildId}`,
|
|
2167
|
+
autoDeploy: (enabled) => `Auto-deploy: ${enabled ? 'Enabled' : 'Disabled'}`,
|
|
2168
|
+
},
|
|
2169
|
+
app: {
|
|
2170
|
+
title: 'App',
|
|
2171
|
+
name: (name) => `Name: ${name}`,
|
|
2172
|
+
id: (id) => `App ID: ${id}`,
|
|
2173
|
+
uid: (uid) => `UID: ${uid}`,
|
|
2174
|
+
authType: (authType) => `Auth Type: ${authType}`,
|
|
2175
|
+
distributionType: (distributionType) => `Distribution: ${distributionType}`,
|
|
2176
|
+
},
|
|
2177
|
+
examples: {
|
|
2178
|
+
default: 'Display project information',
|
|
2179
|
+
json: 'Output as JSON for scripting',
|
|
2180
|
+
},
|
|
2181
|
+
viewProjectLink: 'View project in HubSpot',
|
|
2182
|
+
componentsHeader: 'Components',
|
|
2183
|
+
labels: {
|
|
2184
|
+
type: 'Type',
|
|
2185
|
+
uid: 'UID',
|
|
2186
|
+
},
|
|
2187
|
+
errors: {
|
|
2188
|
+
noProjectConfig: `No project found in this directory.\n\nRun ${uiCommandReference('hs project create')} to start a new project, or change to a directory containing hsproject.json.`,
|
|
2189
|
+
projectNotFound: (projectName, accountId) => `Project "${projectName}" was not found in account ${uiAccountDescription(accountId)}. Make sure the project has been uploaded at least once.`,
|
|
2190
|
+
noDeployedBuild: `This project has not been deployed yet.\n\nRun ${uiCommandReference('hs project deploy')} to deploy your project.`,
|
|
2191
|
+
unsupportedPlatformVersion: (platformVersion) => `This command is not supported for platform version ${chalk.bold(platformVersion)}. Please upgrade to 2025.2 or later.`,
|
|
2192
|
+
},
|
|
2193
|
+
},
|
|
2194
|
+
delete: {
|
|
2195
|
+
describe: 'Delete a project from the current target account',
|
|
2196
|
+
verboseDescribe: `Delete a project from the current target account\n\nThis will permanently delete the project, all deployed components, and any app installations associated with it. Your local project files will not be affected.`,
|
|
2197
|
+
warnings: {
|
|
2198
|
+
irreversibleTitle: 'Warning: This will permanently delete your project',
|
|
2199
|
+
irreversible: 'Deleting this project will also delete all deployed components and app installations. This action cannot be undone. Your local project files will not be affected.',
|
|
2200
|
+
},
|
|
2201
|
+
prompts: {
|
|
2202
|
+
selectProject: (accountId) => `Select a project to delete in ${uiAccountDescription(accountId)}`,
|
|
2203
|
+
confirmDelete: (projectName, accountId) => `[--force] Delete ${chalk.bold(projectName)} from ${uiAccountDescription(accountId)}? This cannot be undone.`,
|
|
2204
|
+
validation: {
|
|
2205
|
+
projectRequired: 'Please select a project to delete',
|
|
2206
|
+
},
|
|
2207
|
+
},
|
|
2208
|
+
logs: {
|
|
2209
|
+
deleting: (projectName) => `Deleting project ${chalk.bold(projectName)}...`,
|
|
2210
|
+
deleted: (projectName, accountId) => `Deleted project ${chalk.bold(projectName)} from ${uiAccountDescription(accountId)}`,
|
|
2211
|
+
cancelled: 'Deletion cancelled',
|
|
2212
|
+
componentsToDeleteUnified: (components) => `The following deployed components will be deleted:\n${components.map(c => ` - ${chalk.bold(c.componentId)} (${mapToUserFriendlyName(c.componentType)})`).join('\n')}`,
|
|
2213
|
+
componentsToDeleteLegacy: (components) => `The following deployed components will be deleted:\n${components.map(c => ` - ${chalk.bold(c)}`).join('\n')}`,
|
|
2214
|
+
deletingComponents: (projectName) => `Deleting deployed components from ${chalk.bold(projectName)}...`,
|
|
2215
|
+
componentsDeleted: (projectName) => `Deleted deployed components from ${chalk.bold(projectName)}`,
|
|
2216
|
+
unableToDetermineIfComponentsWereDeleted: (projectName) => `Unable to determine if components were successfully deleted from ${chalk.bold(projectName)}. Please try again.`,
|
|
2217
|
+
installWarning: (installCount) => `This project has ${chalk.bold(String(installCount))} active app ${installCount === 1 ? 'installation' : 'installations'} that will be deleted.`,
|
|
2218
|
+
installCountUnknown: 'Unable to determine the number of active app installations for this project.',
|
|
2219
|
+
},
|
|
2220
|
+
errors: {
|
|
2221
|
+
noProjectsFound: (accountId) => `No projects found for account ${uiAccountDescription(accountId)}`,
|
|
2222
|
+
projectNotFound: (projectName, accountId) => `Project ${chalk.bold(projectName)} not found in ${uiAccountDescription(accountId)}`,
|
|
2223
|
+
deleteFailed: (projectName) => `Failed to delete project ${chalk.bold(projectName)}. Run with --debug for details or try again.`,
|
|
2224
|
+
cannotDelete: (projectName, reason) => `Cannot delete project ${chalk.bold(projectName)}: ${reason}`,
|
|
2225
|
+
noPlatformVersion: 'Unable to determine platform version for project',
|
|
2226
|
+
componentDeletionFailed: (projectName) => `Failed to delete deployed components from ${chalk.bold(projectName)}. The project was not deleted.`,
|
|
2227
|
+
},
|
|
2228
|
+
options: {
|
|
2229
|
+
project: 'name of the project to delete',
|
|
2230
|
+
force: 'skip confirmation prompt',
|
|
2231
|
+
},
|
|
2232
|
+
},
|
|
2233
|
+
installApp: {
|
|
2234
|
+
describe: 'Install a static auth app from the current project into the target account',
|
|
2235
|
+
verboseDescribe: `Install a static auth app from the current project into the target account.\n\nRun this command from within the project directory. The project must contain a privately distributed static auth app and must already be uploaded to the target account.`,
|
|
2236
|
+
examples: {
|
|
2237
|
+
default: 'Install the static auth app from the current project',
|
|
2238
|
+
withAccount: 'Install the app into a specific account',
|
|
2239
|
+
withProfile: 'Install the app into the account targeted by a profile',
|
|
2240
|
+
json: 'Output install result as JSON',
|
|
2241
|
+
},
|
|
2242
|
+
options: {
|
|
2243
|
+
force: 'Skip confirmation prompts',
|
|
2244
|
+
profile: 'The profile to target with this install',
|
|
2245
|
+
},
|
|
2246
|
+
errors: {
|
|
2247
|
+
noProjectConfig: `No project config found. Run this command from within a HubSpot project directory, or use ${uiCommandReference('hs project create')} to create a new one.`,
|
|
2248
|
+
unsupportedPlatformVersion: (platformVersion) => `This command is only supported for projects on platform version 2025.2 or later (detected: ${platformVersion}).`,
|
|
2249
|
+
failedToParseProject: 'Failed to parse the project. Check your project configuration is valid and try again.',
|
|
2250
|
+
noAppInProject: 'No app was found in the local project. This command requires a project that contains an app.',
|
|
2251
|
+
unsupportedAuthType: (authType) => `This command only supports static auth apps. Detected auth type: ${authType}.`,
|
|
2252
|
+
unsupportedDistribution: (distribution) => `This command only supports privately distributed apps. Detected distribution: ${distribution}.`,
|
|
2253
|
+
invalidAppDeveloperAccount: (accountId) => `Static auth apps can't be installed into the app developer account ${uiAccountDescription(accountId)}. Switch to a standard, sandbox, or developer test account with ${uiCommandReference('hs account use')}, or pass ${uiCommandReference('--account')}.`,
|
|
2254
|
+
projectNotFound: (accountId, projectName) => `The project ${chalk.bold(projectName)} does not exist in ${uiAccountDescription(accountId)}. Run ${uiCommandReference('hs project upload')} to upload your project files to HubSpot.`,
|
|
2255
|
+
appNotDeployed: (appName, accountId) => `The app ${chalk.bold(appName)} has not been deployed to ${uiAccountDescription(accountId)}. Upload the project with ${uiCommandReference('hs project upload')} and ensure the build succeeds, then try again.`,
|
|
2256
|
+
automaticInstallUnavailable: (appName, accountId) => `${chalk.bold(appName)} could not be installed automatically in ${uiAccountDescription(accountId)}.`,
|
|
2257
|
+
installFailed: (appName, accountId) => `Failed to install ${chalk.bold(appName)} in ${uiAccountDescription(accountId)}.`,
|
|
2258
|
+
},
|
|
2259
|
+
jsonErrors: {
|
|
2260
|
+
automaticInstallUnavailable: 'Automatic install is unavailable for this account.',
|
|
2261
|
+
installFailed: (appName, accountId) => `Failed to install ${appName} in account ${accountId}.`,
|
|
2262
|
+
},
|
|
2263
|
+
profileMessage: (profileName, accountId) => `Installing with ${chalk.bold(profileName)} profile: ${uiAccountDescription(accountId)}`,
|
|
2264
|
+
appDeveloperAccountNotice: (accountId) => `${uiAccountDescription(accountId)} is an app developer account, which can't have apps installed into it.`,
|
|
2265
|
+
selectInstallAccountPrompt: 'Select an account to install the app into',
|
|
2266
|
+
uploadAndDeployPrompt: (accountId) => `The app isn't deployed to ${uiAccountDescription(accountId)} yet. Upload and deploy the project now?`,
|
|
2267
|
+
alreadyInstalled: (appName, accountId) => `${chalk.bold(appName)} is already installed in ${uiAccountDescription(accountId)}.`,
|
|
2268
|
+
outdatedScopes: (appName, accountId) => `${chalk.bold(appName)} is installed in ${uiAccountDescription(accountId)} with outdated scopes.`,
|
|
2269
|
+
reinstallPrompt: 'Reinstall the app to grant the latest scopes?',
|
|
2270
|
+
installPrompt: (appName, accountId) => `Install ${chalk.bold(appName)} in ${uiAccountDescription(accountId)}?`,
|
|
2271
|
+
installFromBrowser: (installUrl) => `Install the app in HubSpot: ${uiLink('Open install page', installUrl)}`,
|
|
2272
|
+
success: (appName, accountId) => `${chalk.bold(appName)} installed in ${uiAccountDescription(accountId)}.`,
|
|
2273
|
+
},
|
|
2274
|
+
installStatus: {
|
|
2275
|
+
describe: 'Check whether a static auth app in the current project is installed in the target account. This command must be run from within a HubSpot project directory.',
|
|
2276
|
+
examples: {
|
|
2277
|
+
default: 'Check install status for the static auth app in the current project',
|
|
2278
|
+
json: 'Output install status as JSON',
|
|
2279
|
+
},
|
|
2280
|
+
errors: {
|
|
2281
|
+
noProjectConfig: `No project config found. Run this command from within a HubSpot project directory, or use ${uiCommandReference('hs project create')} to create a new one.`,
|
|
2282
|
+
unsupportedPlatformVersion: (platformVersion) => `This command is only supported for projects on platform version 2025.2 or later (detected: ${platformVersion}).`,
|
|
2283
|
+
failedToParseProject: 'Failed to parse the project. Check your project configuration is valid and try again.',
|
|
2284
|
+
noAppInProject: 'No app was found in the local project. Install status is only available for projects that contain an app.',
|
|
2285
|
+
unsupportedAuthType: (authType) => `This command only supports static auth apps. Detected auth type: ${authType}.`,
|
|
2286
|
+
},
|
|
2287
|
+
success: {
|
|
2288
|
+
installed: (appName, accountId) => `${chalk.bold(appName)} is installed in ${uiAccountDescription(accountId)}.`,
|
|
2289
|
+
installedWithOutdatedScopes: (appName, accountId) => `${chalk.bold(appName)} is installed in ${uiAccountDescription(accountId)} with outdated scopes. Reinstall the app to grant the latest scopes.`,
|
|
2290
|
+
},
|
|
2291
|
+
notInstalled: (appName, accountId) => `${chalk.bold(appName)} is not installed in ${uiAccountDescription(accountId)}.`,
|
|
2292
|
+
},
|
|
1931
2293
|
},
|
|
1932
2294
|
sandbox: {
|
|
1933
2295
|
describe: 'Commands for managing sandboxes.',
|
|
@@ -2122,6 +2484,111 @@ export const commands = {
|
|
|
2122
2484
|
},
|
|
2123
2485
|
},
|
|
2124
2486
|
},
|
|
2487
|
+
logs: {
|
|
2488
|
+
describe: 'View recent application logs.',
|
|
2489
|
+
verboseDescribe: `View recent application logs for a specific log type.\n\nFilter by time range with ${uiCommandReference('--since')} (e.g. 1h, 30m, 2d, or an ISO timestamp). Use ${uiCommandReference('--tail')} to follow logs in real-time, ${uiCommandReference('--compact')} for one-line-per-log output, or ${uiCommandReference('--json')} for machine-readable output.\n\nRun ${uiCommandReference('hs app log-details <logId>')} to inspect a specific log entry.`,
|
|
2490
|
+
options: {
|
|
2491
|
+
appId: 'App ID',
|
|
2492
|
+
type: 'Log type',
|
|
2493
|
+
json: 'Output logs as JSON',
|
|
2494
|
+
limit: 'Maximum number of logs to return',
|
|
2495
|
+
since: 'Filter logs by time ago (1h, 30m, 2d, or ISO timestamp)',
|
|
2496
|
+
tail: 'Follow logs in real-time',
|
|
2497
|
+
errorsOnly: 'Only show error logs',
|
|
2498
|
+
compact: 'Display logs in compact format (one line per log)',
|
|
2499
|
+
},
|
|
2500
|
+
errors: {
|
|
2501
|
+
noLogs: 'No logs found. Try a wider time range (--since) or remove --errors-only to see all logs.',
|
|
2502
|
+
noApps: `No apps found. Create an app with ${uiCommandReference('hs project create')}.`,
|
|
2503
|
+
},
|
|
2504
|
+
prompts: {
|
|
2505
|
+
selectType: '[--type] Select the type of logs to view:',
|
|
2506
|
+
},
|
|
2507
|
+
examples: {
|
|
2508
|
+
basic: 'Fetch webhook logs for app 123456',
|
|
2509
|
+
since: 'Fetch logs from the last hour',
|
|
2510
|
+
tail: 'Follow logs in real-time',
|
|
2511
|
+
json: 'Output logs as JSON',
|
|
2512
|
+
compact: 'Display logs in compact format',
|
|
2513
|
+
},
|
|
2514
|
+
outputMessages: {
|
|
2515
|
+
viewInHubSpot: (url) => uiLink('View in HubSpot', url),
|
|
2516
|
+
tableHeaders: {
|
|
2517
|
+
appId: 'App ID',
|
|
2518
|
+
type: 'Type',
|
|
2519
|
+
logsFound: 'Logs Found',
|
|
2520
|
+
},
|
|
2521
|
+
logDetails: {
|
|
2522
|
+
id: 'ID',
|
|
2523
|
+
duration: 'Duration',
|
|
2524
|
+
portal: 'Portal',
|
|
2525
|
+
trace: 'Trace',
|
|
2526
|
+
error: 'Error',
|
|
2527
|
+
viewDetails: (logId, appId, systemType) => `To view more details, run: ${uiCommandReference(`hs app log-details ${logId} --app=${appId} --type=${systemType}`)}`,
|
|
2528
|
+
viewInUI: (url) => uiLink('View details in UI', url),
|
|
2529
|
+
},
|
|
2530
|
+
tailMessages: {
|
|
2531
|
+
following: (appId) => `Following logs for app ${appId}`,
|
|
2532
|
+
stop: `> Press ${chalk.bold('q')} to stop following`,
|
|
2533
|
+
},
|
|
2534
|
+
},
|
|
2535
|
+
},
|
|
2536
|
+
logDetails: {
|
|
2537
|
+
describe: 'View details for a specific log entry.',
|
|
2538
|
+
verboseDescribe: `View full details for a specific app log entry, including request/response bodies, context information, and error details.\n\nUse ${uiCommandReference('--json')} for machine-readable output.`,
|
|
2539
|
+
positionals: {
|
|
2540
|
+
logId: 'The log ID to fetch details for',
|
|
2541
|
+
},
|
|
2542
|
+
options: {
|
|
2543
|
+
appId: 'App ID',
|
|
2544
|
+
type: 'Log type',
|
|
2545
|
+
json: 'Output details as JSON',
|
|
2546
|
+
},
|
|
2547
|
+
errors: {
|
|
2548
|
+
noApps: `No apps found. Create an app with ${uiCommandReference('hs project create')}.`,
|
|
2549
|
+
},
|
|
2550
|
+
prompts: {
|
|
2551
|
+
selectType: '[--type] Select the log type:',
|
|
2552
|
+
},
|
|
2553
|
+
examples: {
|
|
2554
|
+
basic: 'Fetch details for log abc-123',
|
|
2555
|
+
json: 'Output log details as JSON',
|
|
2556
|
+
},
|
|
2557
|
+
outputMessages: {
|
|
2558
|
+
viewInHubSpot: (url) => uiLink('View in HubSpot', url),
|
|
2559
|
+
logDetailsHeader: 'Log Details',
|
|
2560
|
+
basicInfo: {
|
|
2561
|
+
id: 'Log ID',
|
|
2562
|
+
timestamp: 'Timestamp',
|
|
2563
|
+
status: 'Status',
|
|
2564
|
+
duration: 'Duration',
|
|
2565
|
+
systemType: 'Type',
|
|
2566
|
+
},
|
|
2567
|
+
contextInfo: {
|
|
2568
|
+
header: 'Context',
|
|
2569
|
+
portalId: 'Portal ID',
|
|
2570
|
+
traceId: 'Trace ID',
|
|
2571
|
+
function: 'Function',
|
|
2572
|
+
location: 'Location',
|
|
2573
|
+
card: 'Card',
|
|
2574
|
+
userId: 'User ID',
|
|
2575
|
+
},
|
|
2576
|
+
requestResponse: {
|
|
2577
|
+
header: 'Request/Response',
|
|
2578
|
+
requestBody: 'Request Body',
|
|
2579
|
+
responseBody: 'Response Body',
|
|
2580
|
+
},
|
|
2581
|
+
errorInfo: {
|
|
2582
|
+
header: 'Error Details',
|
|
2583
|
+
errorType: 'Type',
|
|
2584
|
+
errorMessage: 'Message',
|
|
2585
|
+
stackTrace: 'Stack Trace',
|
|
2586
|
+
},
|
|
2587
|
+
additionalInfo: {
|
|
2588
|
+
header: 'Additional Information',
|
|
2589
|
+
},
|
|
2590
|
+
},
|
|
2591
|
+
},
|
|
2125
2592
|
},
|
|
2126
2593
|
},
|
|
2127
2594
|
secret: {
|
|
@@ -2223,7 +2690,7 @@ export const commands = {
|
|
|
2223
2690
|
configPathPrompt: '[--config-path] Enter the path to the test account config: ',
|
|
2224
2691
|
createTestAccountFromConfigPrompt: 'How would you like to create your test account?',
|
|
2225
2692
|
createFromConfigOption: 'Create test account from config file',
|
|
2226
|
-
createFromScratchOption: '
|
|
2693
|
+
createFromScratchOption: 'Select hub tiers manually',
|
|
2227
2694
|
errors: {
|
|
2228
2695
|
configFileNotFound: (configPath) => `No test account config file exists at ${configPath}. Create a test account config file with the ${uiCommandReference('hs test-account create-config')} command.`,
|
|
2229
2696
|
configFileParseFailed: (configPath) => `Failed to parse test account config file at ${configPath}`,
|
|
@@ -2243,8 +2710,8 @@ export const commands = {
|
|
|
2243
2710
|
opsLevel: 'Operations Hub tier. Options: FREE, STARTER, PROFESSIONAL, ENTERPRISE',
|
|
2244
2711
|
serviceLevel: 'Service Hub tier. Options: FREE, STARTER, PROFESSIONAL, ENTERPRISE',
|
|
2245
2712
|
salesLevel: 'Sales Hub tier. Options: FREE, STARTER, PROFESSIONAL, ENTERPRISE',
|
|
2246
|
-
contentLevel: '
|
|
2247
|
-
commerceLevel: '
|
|
2713
|
+
contentLevel: 'Content Hub tier. Options: FREE, STARTER, PROFESSIONAL, ENTERPRISE',
|
|
2714
|
+
commerceLevel: 'Revenue Hub tier. Options: FREE, PROFESSIONAL, ENTERPRISE',
|
|
2248
2715
|
},
|
|
2249
2716
|
example: (configPath) => `Create a test account from the config file at ${configPath}`,
|
|
2250
2717
|
examples: {
|
|
@@ -2896,15 +3363,30 @@ export const commands = {
|
|
|
2896
3363
|
},
|
|
2897
3364
|
};
|
|
2898
3365
|
export const lib = {
|
|
3366
|
+
linkedDirectory: {
|
|
3367
|
+
warning: (action, settingsPath) => `This directory has linked accounts via ${settingsPath}. ${uiCommandReference(action)} modifies your global config, not the linked directory settings. Use ${uiCommandReference('hs account link')} to manage linked accounts.\n`,
|
|
3368
|
+
},
|
|
2899
3369
|
parsing: {
|
|
2900
3370
|
unableToParseStringToNumber: 'Unable to parse string to number',
|
|
2901
3371
|
},
|
|
2902
3372
|
configMiddleWare: {
|
|
2903
3373
|
invalidAccountIdEnvironmentVariable: 'Unable to parse `HUBSPOT_ACCOUNT_ID` environment variable into a number',
|
|
2904
3374
|
},
|
|
3375
|
+
accountTargetDiscovery: {
|
|
3376
|
+
errors: {
|
|
3377
|
+
explicitAccountNotFound: (account) => `Account ${chalk.bold(String(account))} was not found in your config. Run ${uiCommandReference('hs account list')} to see available accounts.`,
|
|
3378
|
+
},
|
|
3379
|
+
},
|
|
2905
3380
|
process: {
|
|
2906
3381
|
exitDebug: (signal) => `Attempting to gracefully exit. Triggered by ${signal}`,
|
|
2907
3382
|
},
|
|
3383
|
+
handlerLogFile: {
|
|
3384
|
+
saved: (filePath) => `Debug logs can be viewed at ${filePath}`,
|
|
3385
|
+
},
|
|
3386
|
+
jsonSchema: {
|
|
3387
|
+
noSchemaForCommand: 'No schema defined for this command',
|
|
3388
|
+
validationFailed: 'JSON output may be missing or malformed fields. The output schema may be out of date.',
|
|
3389
|
+
},
|
|
2908
3390
|
DevServerManager: {
|
|
2909
3391
|
portConflict: (port) => `The port ${port} is already in use.`,
|
|
2910
3392
|
notInitialized: 'The Dev Server Manager must be initialized before it is started.',
|
|
@@ -2987,6 +3469,13 @@ export const lib = {
|
|
|
2987
3469
|
appDataNotFound: 'An error occurred while fetching data for your app.',
|
|
2988
3470
|
oauthAppRedirectUrlError: (redirectUrl) => `${chalk.bold('No reponse from your OAuth service:')} ${redirectUrl}\nYour app needs a valid OAuth2 service to be installed for local dev. ${uiLink('Learn more', 'https://developers.hubspot.com/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth')}`,
|
|
2989
3471
|
},
|
|
3472
|
+
accountAuthWebsocket: {
|
|
3473
|
+
logs: {
|
|
3474
|
+
openingWebBrowser: (url) => `Opening ${uiLink('HubSpot', url)} in your web browser\n`,
|
|
3475
|
+
spinner: 'Waiting for HubSpot to send your personal access key... (press any key to enter it manually)',
|
|
3476
|
+
received: 'Personal access key received',
|
|
3477
|
+
},
|
|
3478
|
+
},
|
|
2990
3479
|
CLIWebsocketServer: {
|
|
2991
3480
|
errors: {
|
|
2992
3481
|
portManagerNotRunning: (prefix) => `${prefix ? `${prefix} ` : ''}PortManagerServing must be running before starting WebsocketServer.`,
|
|
@@ -2994,6 +3483,7 @@ export const lib = {
|
|
|
2994
3483
|
missingTypeField: (data) => `Unsupported message received. Missing type field: ${data}`,
|
|
2995
3484
|
invalidJSON: (data) => `Unsupported message received. Invalid JSON: ${data}`,
|
|
2996
3485
|
unknownMessageType: (type) => `Unsupported message received. Unknown message type: ${type}`,
|
|
3486
|
+
failedToBindEphemeralPort: (prefix) => `${prefix ? `${prefix} ` : ''}Failed to determine the assigned port for the WebsocketServer.`,
|
|
2997
3487
|
},
|
|
2998
3488
|
logs: {
|
|
2999
3489
|
startup: (port) => `WebsocketServer running on port ${port}`,
|
|
@@ -3017,7 +3507,21 @@ export const lib = {
|
|
|
3017
3507
|
checking: 'Checking if your deployed build is up to date...',
|
|
3018
3508
|
upToDate: 'Deployed build is up to date.',
|
|
3019
3509
|
notUpToDate: `Your project contains undeployed local changes.`,
|
|
3510
|
+
changedFiles: (changed) => {
|
|
3511
|
+
const sections = [];
|
|
3512
|
+
if (changed.added.length > 0) {
|
|
3513
|
+
sections.push(`${chalk.bold('Features Added:')}\n${changed.added.map(f => ` - ${f}`).join('\n')}`);
|
|
3514
|
+
}
|
|
3515
|
+
if (changed.updated.length > 0) {
|
|
3516
|
+
sections.push(`${chalk.bold('Features Modified:')}\n${changed.updated.map(f => ` - ${f}`).join('\n')}`);
|
|
3517
|
+
}
|
|
3518
|
+
if (changed.removed.length > 0) {
|
|
3519
|
+
sections.push(`${chalk.bold('Features Removed:')}\n${changed.removed.map(f => ` - ${f}`).join('\n')}`);
|
|
3520
|
+
}
|
|
3521
|
+
return sections.join('\n\n');
|
|
3522
|
+
},
|
|
3020
3523
|
notUpToDateExplanation: (profile) => `Run ${uiCommandReference(`hs project upload${profile ? ` --profile ${profile}` : ''}`)} to upload these changes to HubSpot, then re-run ${uiCommandReference(`hs project dev${profile ? ` --profile ${profile}` : ''}`)} to continue local development.`,
|
|
3524
|
+
unableToCompare: `Unable to check if local *-hsmeta.json files match the deployed build. Run ${uiCommandReference('hs project upload')} to upload any local changes before continuing.`,
|
|
3021
3525
|
},
|
|
3022
3526
|
createNewProjectForLocalDev: {
|
|
3023
3527
|
projectMustExistExplanation: (projectName, accountId) => `The project ${projectName} does not exist in the target account ${uiAccountDescription(accountId)}. This command requires the project to exist in the target account.`,
|
|
@@ -3040,19 +3544,6 @@ export const lib = {
|
|
|
3040
3544
|
},
|
|
3041
3545
|
},
|
|
3042
3546
|
account: {
|
|
3043
|
-
checkIfDefaultAccountIsSupported: {
|
|
3044
|
-
publicApp: `This project contains a public app. Local development of public apps is only supported on developer accounts and developer test accounts. Change your default account using ${uiCommandReference('hs account use')}, or link a new account with ${uiAuthCommandReference()}.`,
|
|
3045
|
-
privateApp: `This project contains a private app. Local development of private apps is not supported in developer accounts. Change your default account using ${uiCommandReference('hs account use')}, or link a new account with ${uiAuthCommandReference()}.`,
|
|
3046
|
-
},
|
|
3047
|
-
validateAccountOption: {
|
|
3048
|
-
invalidPublicAppAccount: `This project contains a public app. The "--account" flag must point to a developer test account to develop this project locally. Alternatively, change your default account to an app developer account using ${uiCommandReference('hs account use')} and run ${uiCommandReference('hs project dev')} to set up a new developer test account.`,
|
|
3049
|
-
invalidPrivateAppAccount: `This project contains a private app. The account specified with the "--account" flag points to a developer account, which do not support the local development of private apps. Update the "--account" flag to point to a standard, sandbox, or developer test account, or change your default account by running ${uiCommandReference('hs account use')}.`,
|
|
3050
|
-
nonSandboxWarning: `Testing in a sandbox is strongly recommended. To switch the target account, select an option below or run ${uiCommandReference('hs account use')} before running the command again.`,
|
|
3051
|
-
publicAppNonDeveloperTestAccountWarning: `Local development of public apps is only supported in ${chalk.bold('developer test accounts')}.`,
|
|
3052
|
-
},
|
|
3053
|
-
checkIfParentAccountIsAuthed: {
|
|
3054
|
-
notAuthedError: (parentAccountId, accountIdentifier) => `To develop this project locally, run ${uiAuthCommandReference({ accountId: parentAccountId })} to authenticate the App Developer Account ${parentAccountId} associated with ${accountIdentifier}.`,
|
|
3055
|
-
},
|
|
3056
3547
|
selectAccountTypePrompt: {
|
|
3057
3548
|
message: 'Choose the type of account to test on',
|
|
3058
3549
|
developerTestAccountOption: 'Test on a developer test account (recommended)',
|
|
@@ -3060,10 +3551,7 @@ export const lib = {
|
|
|
3060
3551
|
sandboxAccountOptionDisabled: 'Disabled - requires access to sandbox accounts',
|
|
3061
3552
|
productionAccountOption: (accountId) => `<${chalk.red('!')} Test on your project account: ${uiAccountDescription(accountId, false)} ${chalk.red('!')}>`,
|
|
3062
3553
|
},
|
|
3063
|
-
|
|
3064
|
-
configError: `An error occurred while reading the default account from your config. Run ${uiAuthCommandReference()} to re-auth this account`,
|
|
3065
|
-
declineDefaultAccountExplanation: `To develop on a different account, run ${uiCommandReference('hs account use')} to change your default account, then re-run ${uiCommandReference('hs project dev')}.`,
|
|
3066
|
-
},
|
|
3554
|
+
declineDefaultAccountExplanation: `To develop on a different account, run ${uiCommandReference('hs account use')} to change your default account, then re-run ${uiCommandReference('hs project dev')}.`,
|
|
3067
3555
|
},
|
|
3068
3556
|
},
|
|
3069
3557
|
middleware: {
|
|
@@ -3086,11 +3574,6 @@ export const lib = {
|
|
|
3086
3574
|
profileTargetAccount: (accountId) => `Targeting ${uiAccountDescription(accountId)}`,
|
|
3087
3575
|
profileVariables: 'Profile variables',
|
|
3088
3576
|
},
|
|
3089
|
-
exitIfUsingProfiles: {
|
|
3090
|
-
errors: {
|
|
3091
|
-
noProfileSpecified: `This project is configured to use profiles, but no profile was specified. Target a profile using the ${uiCommandReference('--profile')} flag.`,
|
|
3092
|
-
},
|
|
3093
|
-
},
|
|
3094
3577
|
loadProfile: {
|
|
3095
3578
|
errors: {
|
|
3096
3579
|
noProjectConfig: 'No project config found. Please run this command from a project directory.',
|
|
@@ -3158,6 +3641,11 @@ export const lib = {
|
|
|
3158
3641
|
feedbackHeader: "We'd love to hear your feedback!",
|
|
3159
3642
|
feedbackMessage: `How are you liking the new projects and developer tools? \n > Run ${uiCommandReference('hs feedback')} to let us know what you think!\n`,
|
|
3160
3643
|
},
|
|
3644
|
+
skippedHsMetaFiles: {
|
|
3645
|
+
warning: (files) => `The following *-hsmeta.json files will be skipped.\nThis CLI version doesn't support the features they require:\n${files.map(f => ` ${chalk.bold(f)}`).join('\n')}\nRun ${uiCommandReference('hs upgrade')} to update the CLI, which may add support for these features.`,
|
|
3646
|
+
uploadWarning: (files) => `The following *-hsmeta.json files will be skipped during upload.\nThis CLI version doesn't support the features they require:\n${files.map(f => ` ${chalk.bold(f)}`).join('\n')}\nRun ${uiCommandReference('hs upgrade')} to update the CLI, which may add support for these features.`,
|
|
3647
|
+
prompt: '[--force] Continue anyway?',
|
|
3648
|
+
},
|
|
3161
3649
|
components: {
|
|
3162
3650
|
unableToGetUidFromHsmeta: 'Unable to get UID from hsmeta',
|
|
3163
3651
|
buildSuccessMessage: {
|
|
@@ -3165,9 +3653,9 @@ export const lib = {
|
|
|
3165
3653
|
docsUrl: 'https://developers.hubspot.com/docs/apps/developer-platform/build-apps/overview',
|
|
3166
3654
|
headerCreated: (projectName, projectDest) => `${chalk.bold(projectName)} was successfully created in ${projectDest}`,
|
|
3167
3655
|
headerAdded: (featureText, uid, plural) => `${featureText} ${plural ? 'were' : 'was'} successfully added to ${uid}:`,
|
|
3168
|
-
docsDetails: (docsLink) =>
|
|
3169
|
-
uploadPrompt:
|
|
3170
|
-
devPrompt:
|
|
3656
|
+
docsDetails: (docsLink) => `${docsLink} for more details about building and testing these features.`,
|
|
3657
|
+
uploadPrompt: `Run ${uiCommandReference('hs project upload')} when you're ready to deploy.`,
|
|
3658
|
+
devPrompt: `Run ${uiCommandReference('hs project dev')} to start local development.`,
|
|
3171
3659
|
},
|
|
3172
3660
|
},
|
|
3173
3661
|
},
|
|
@@ -3203,8 +3691,33 @@ export const lib = {
|
|
|
3203
3691
|
fileFiltered: (filename) => `Ignore rule triggered for "${filename}"`,
|
|
3204
3692
|
legacyFileDetected: (filename, platformVersion) => `The ${chalk.bold(filename)} file is not supported on platform version ${chalk.bold(platformVersion)} and will be ignored.`,
|
|
3205
3693
|
projectDoesNotExist: (accountId) => `Upload cancelled. Run ${uiCommandReference('hs project upload')} again to create the project in ${uiAccountDescription(accountId)}.`,
|
|
3694
|
+
workspaceIncluded: (workspaceDir, archivePath) => `Including workspace: ${workspaceDir} → ${archivePath}`,
|
|
3695
|
+
fileDependencyIncluded: (packageName, localPath, archivePath) => `Including file: dependency ${packageName}: ${localPath} → ${archivePath}`,
|
|
3696
|
+
malformedPackageJson: (packageJsonPath, error) => `Skipping malformed package.json at ${packageJsonPath}: ${error}`,
|
|
3697
|
+
workspaceCollision: (archivePath, workspaceDir, existingWorkspace) => `Workspace collision: ${archivePath} from ${workspaceDir} and ${existingWorkspace}`,
|
|
3698
|
+
fileDependencyAlreadyIncluded: (packageName, archivePath) => `file: dependency ${packageName} already included as workspace: ${archivePath}`,
|
|
3699
|
+
updatingLockfile: (lockfilePath) => `Updating package-lock.json in archive: ${lockfilePath}`,
|
|
3700
|
+
updatingPackageJsonWorkspaces: (packageJsonPath) => `Updating package.json workspaces in archive: ${packageJsonPath}`,
|
|
3701
|
+
updatedWorkspaces: (workspaces) => ` Updated workspaces: ${workspaces}`,
|
|
3702
|
+
updatedFileDependency: (packageName, relativePath) => ` Updated dependencies.${packageName}: file:${relativePath}`,
|
|
3703
|
+
lintPackagesNotConfigured: (packageRoot) => `Project lint: lint packages not installed for ${chalk.bold(packageRoot)}. Run ${uiCommandReference('hs project lint')} to install them.`,
|
|
3704
|
+
lintConfigNotFound: (packageRoot) => `Project lint: ESLint configuration not found for ${chalk.bold(packageRoot)}. Run ${uiCommandReference('hs project lint')} to create an ESLint config.`,
|
|
3705
|
+
lintHubSpotRulesNotActive: (packageRoot) => `Project lint: HubSpot ESLint rules not active for ${chalk.bold(packageRoot)}. Configure ${chalk.bold('@hubspot/eslint-config-ui-extensions')} — see ${uiLink('setup instructions', 'https://www.npmjs.com/package/@hubspot/eslint-config-ui-extensions')}.`,
|
|
3706
|
+
npmAuditClean: (packageRoot) => `npm audit: No npm dependency issues found for ${chalk.bold(packageRoot)}`,
|
|
3707
|
+
npmAuditIssues: (packageRoot, details) => `npm audit: security issues found for ${chalk.bold(packageRoot)}: ${details}`,
|
|
3708
|
+
npmAuditNpmUnavailable: (packageRoot) => `npm audit: skipped for ${chalk.bold(packageRoot)} (npm not available in PATH)`,
|
|
3709
|
+
npmAuditNonZeroExit: (packageRoot, exitCode) => `npm audit: ${chalk.bold(packageRoot)} exited with code ${exitCode}`,
|
|
3206
3710
|
},
|
|
3207
3711
|
},
|
|
3712
|
+
projectPreview: {
|
|
3713
|
+
triggeringPreview: (buildId, targetPortalId) => `Previewing build #${buildId} on ${uiAccountDescription(targetPortalId)}`,
|
|
3714
|
+
pollingStatus: (releaseTag, targetPortalId) => `Previewing ${chalk.bold(releaseTag)} on ${uiAccountDescription(targetPortalId)}`,
|
|
3715
|
+
succeeded: (releaseTag, targetPortalId) => `Previewed ${chalk.bold(releaseTag)} on ${uiAccountDescription(targetPortalId)}`,
|
|
3716
|
+
triggerFailed: 'Failed to trigger preview',
|
|
3717
|
+
pollFailed: 'Failed to poll preview status',
|
|
3718
|
+
warning: 'The build succeeded but the preview failed. You can manually preview this build from the project UI.',
|
|
3719
|
+
missingProjectId: 'Unable to preview: could not resolve the project ID.',
|
|
3720
|
+
},
|
|
3208
3721
|
importData: {
|
|
3209
3722
|
errors: {
|
|
3210
3723
|
incorrectAccountType: (derivedAccountId) => `The account ${uiAccountDescription(derivedAccountId)} is not a standard account, developer test account, or app developer account.`,
|
|
@@ -3313,6 +3826,9 @@ export const lib = {
|
|
|
3313
3826
|
pakFailure: 'Failed to generate personal access key for developer test account',
|
|
3314
3827
|
},
|
|
3315
3828
|
},
|
|
3829
|
+
usageTracking: {
|
|
3830
|
+
transparencyMessage: `HubSpot CLI collects anonymous usage data to improve the product. Run ${uiCommandReference('hs config set --enable-usage-tracking=false', false)} to opt out.\n`,
|
|
3831
|
+
},
|
|
3316
3832
|
configOptions: {
|
|
3317
3833
|
enableOrDisableBooleanFieldPrompt: {
|
|
3318
3834
|
message: (fieldName) => `Choose to enable or disable ${fieldName}`,
|
|
@@ -3358,6 +3874,7 @@ export const lib = {
|
|
|
3358
3874
|
qa: 'Run command in QA mode',
|
|
3359
3875
|
useEnv: 'Use environment variable config',
|
|
3360
3876
|
jsonOutput: 'Format output as JSON',
|
|
3877
|
+
jsonSchema: 'Print the JSON output schema and exit',
|
|
3361
3878
|
debug: 'Set log level to debug',
|
|
3362
3879
|
},
|
|
3363
3880
|
},
|
|
@@ -3401,8 +3918,14 @@ export const lib = {
|
|
|
3401
3918
|
promptUtils: {
|
|
3402
3919
|
errors: {
|
|
3403
3920
|
noSelectableChoices: 'Exiting prompt because no selectable choices are available',
|
|
3921
|
+
userCancelled: 'User cancelled prompt',
|
|
3404
3922
|
},
|
|
3405
3923
|
},
|
|
3924
|
+
projectProfilePrompt: {
|
|
3925
|
+
message: '[--profile] This project is configured to use profiles. Select a profile to use:',
|
|
3926
|
+
exitMessage: `This project is configured to use profiles, but no profile was specified. Try again using ${uiCommandReference('--profile')}`,
|
|
3927
|
+
noValidProfilesMessage: 'There are no valid profiles in this project. Ensure the accounts they are targeting are authenticated and try again.',
|
|
3928
|
+
},
|
|
3406
3929
|
importDataFilePathPrompt: {
|
|
3407
3930
|
promptContext: `To view the JSON schema for data imports, visit ${uiLink('the docs', 'https://developers.hubspot.com/docs/guides/api/crm/imports')}`,
|
|
3408
3931
|
promptMessage: '[--file-path] Select the JSON file that will be used to import your data.',
|
|
@@ -3426,13 +3949,15 @@ export const lib = {
|
|
|
3426
3949
|
developerTestAccountLimit: (limit) => `Your account reached the limit of ${limit} developer test accounts.`,
|
|
3427
3950
|
confirmDefaultAccount: (accountName, accountType) => `Continue testing on ${chalk.bold(`${accountName} (${accountType})`)}? (Y/n)`,
|
|
3428
3951
|
confirmUseExistingDeveloperTestAccount: (accountName) => `Continue with ${accountName}? This account isn't currently connected to the HubSpot CLI. By continuing, you'll be prompted to generate a personal access key and connect it.`,
|
|
3952
|
+
confirmLinkExistingDeveloperTestAccount: (accountName) => `${accountName} is not linked to this directory. Would you like to link it?`,
|
|
3429
3953
|
noAccountId: 'No account ID found for the selected account. Please try again.',
|
|
3954
|
+
fetchDeveloperTestAccountsError: 'Unable to fetch developer test accounts. Please try again.',
|
|
3430
3955
|
},
|
|
3431
3956
|
projectLogsPrompt: {
|
|
3432
3957
|
functionName: (projectName) => `[--function] Select function in ${chalk.bold(projectName)} project`,
|
|
3433
3958
|
},
|
|
3434
3959
|
setAsDefaultAccountPrompt: {
|
|
3435
|
-
setAsDefaultAccountMessage:
|
|
3960
|
+
setAsDefaultAccountMessage: (accountName) => `Set ${accountName} as your default account? [--default]`,
|
|
3436
3961
|
setAsDefaultAccount: (accountName) => `Account "${accountName}" set as the default account`,
|
|
3437
3962
|
keepingCurrentDefault: (accountName) => `Account "${accountName}" will continue to be the default account`,
|
|
3438
3963
|
},
|
|
@@ -3497,6 +4022,7 @@ export const lib = {
|
|
|
3497
4022
|
invalidOauthClientSecretCopy: 'Please copy the actual OAuth2 client secret rather than the asterisks that mask it.',
|
|
3498
4023
|
invalidPersonalAccessKey: 'You did not enter a valid access key. Please try again.',
|
|
3499
4024
|
invalidPersonalAccessKeyCopy: 'Please copy the actual access key rather than the bullets that mask it.',
|
|
4025
|
+
authCancelled: 'Authentication cancelled.',
|
|
3500
4026
|
},
|
|
3501
4027
|
},
|
|
3502
4028
|
createTemplatePrompt: {
|
|
@@ -3830,6 +4356,11 @@ export const lib = {
|
|
|
3830
4356
|
installed: (npmVersion) => `npm v${npmVersion} is installed`,
|
|
3831
4357
|
unableToDetermine: 'Unable to determine if npm is installed',
|
|
3832
4358
|
},
|
|
4359
|
+
mcpChecks: {
|
|
4360
|
+
configured: (clients) => `HubSpot MCP server configured in ${clients.join(', ')}`,
|
|
4361
|
+
notConfigured: (clients) => `HubSpot MCP server not configured in ${clients.join(', ')}`,
|
|
4362
|
+
notConfiguredSecondary: `Run ${uiCommandReference('hs mcp setup')} to connect AI coding tools to HubSpot developer context`,
|
|
4363
|
+
},
|
|
3833
4364
|
hsChecks: {
|
|
3834
4365
|
notLatest: (hsVersion) => `Version ${hsVersion} outdated`,
|
|
3835
4366
|
notLatestSecondary: (command, hsVersion) => `Run ${uiCommandReference(command)} to upgrade to the latest version ${hsVersion}`,
|
|
@@ -3848,9 +4379,9 @@ export const lib = {
|
|
|
3848
4379
|
validJson: 'JSON files valid',
|
|
3849
4380
|
},
|
|
3850
4381
|
port: {
|
|
3851
|
-
inUse: (port) => `
|
|
3852
|
-
inUseSecondary: `Make sure it is available before running ${uiCommandReference('hs project dev')}`,
|
|
3853
|
-
available: (port) => `
|
|
4382
|
+
inUse: (port) => `Default port ${port} is in use`,
|
|
4383
|
+
inUseSecondary: `Make sure it is available before running ${uiCommandReference('hs project dev')}, or use ${uiCommandReference('--port')} to specify a different port`,
|
|
4384
|
+
available: (port) => `Default port ${port} available for local development`,
|
|
3854
4385
|
},
|
|
3855
4386
|
projectValidation: {
|
|
3856
4387
|
valid: 'Project configuration and structure is valid',
|
|
@@ -3939,11 +4470,12 @@ export const lib = {
|
|
|
3939
4470
|
fileInvalidJson: (path) => `The file "${path}" contains invalid JSON`,
|
|
3940
4471
|
},
|
|
3941
4472
|
migrate: {
|
|
3942
|
-
componentsToBeMigrated: (components) =>
|
|
4473
|
+
componentsToBeMigrated: (components) => `${chalk.bold('The following features will be migrated:')} ${components}`,
|
|
3943
4474
|
componentsThatWillNotBeMigrated: (components) => `[NOTE] These features are not yet supported for migration but will be available later: ${components}`,
|
|
4475
|
+
legacyCrmCardMigrationDocs: () => `For more information on migrating legacy-crm-card components, follow ${uiLink('these docs', 'https://developers.hubspot.com/docs/apps/developer-platform/build-apps/migrate-an-app/migrate-legacy-crm-cards-to-app-cards')}`,
|
|
3944
4476
|
sourceContentsMoved: (newLocation) => `The contents of your old source directory have been moved to ${newLocation}, move any required files to the new source directory.`,
|
|
3945
|
-
projectMigrationWarningTitle:
|
|
3946
|
-
projectMigrationWarning: uiBetaTag(`Running the ${uiCommandReference('hs project migrate')} command will permanently upgrade your project to platformVersion
|
|
4477
|
+
projectMigrationWarningTitle: (platformVersion) => `Important: Migrating to platformVersion ${platformVersion} is irreversible`,
|
|
4478
|
+
projectMigrationWarning: (platformVersion) => uiBetaTag(`Running the ${uiCommandReference('hs project migrate')} command will permanently upgrade your project to platformVersion ${platformVersion}. This action cannot be undone. To ensure you have access to your original files, they will be copied to a new directory (archive) for safekeeping.\n\nThis command will guide you through the process, prompting you to enter the required fields and will download the new project source code into your project source directory.`, false),
|
|
3947
4479
|
exitWithoutMigrating: 'Exiting without migrating',
|
|
3948
4480
|
success: {
|
|
3949
4481
|
downloadedProject: (projectName, projectDest) => `Saved ${projectName} to ${projectDest}`,
|
|
@@ -3955,7 +4487,7 @@ export const lib = {
|
|
|
3955
4487
|
doesNotExist: (account) => `Project does not exist in ${uiAccountDescription(account)}. Migrations are only supported for existing projects.`,
|
|
3956
4488
|
themesAlreadyMigrated: 'This project has already been migrated to the latest platform version.',
|
|
3957
4489
|
noProjectForThemesMigration: 'Theme migrations are only supported for projects. Please try again from a project directory.',
|
|
3958
|
-
themesAndAppsNotAllowed: '
|
|
4490
|
+
themesAndAppsNotAllowed: 'Projects containing both themes and apps cannot be migrated together. To migrate, split the project into separate theme-only and app-only projects, then run migrate on each individually.',
|
|
3959
4491
|
multipleApps: 'Multiple apps found in project, this is not allowed in 2025.2',
|
|
3960
4492
|
alreadyExists: (projectName) => `A project with name ${projectName} already exists. Please choose another name.`,
|
|
3961
4493
|
failedToMigrateThemes: 'Failed to migrate project themes. Please verify that your themes are properly formatted before trying again.',
|