@hubspot/cli 7.8.12-experimental.0 → 7.9.0-beta.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/bin/cli.js +31 -25
- package/commands/__tests__/auth.test.js +5 -0
- package/commands/__tests__/cms.test.js +44 -1
- package/commands/__tests__/customObject.test.js +22 -1
- package/commands/__tests__/doctor.test.js +16 -16
- package/commands/__tests__/project.test.js +2 -0
- package/commands/account/auth.js +1 -0
- package/commands/account/clean.js +18 -27
- package/commands/account/createOverride.js +13 -31
- package/commands/account/info.js +20 -31
- package/commands/account/list.js +16 -22
- package/commands/account/remove.js +12 -20
- package/commands/account/removeOverride.js +11 -21
- package/commands/account/rename.js +6 -9
- package/commands/account/use.js +12 -26
- package/commands/account.js +2 -2
- package/commands/app/__tests__/migrate.test.js +5 -5
- package/commands/app/migrate.js +13 -18
- package/commands/app.js +1 -6
- package/commands/auth.d.ts +1 -0
- package/commands/auth.js +17 -7
- package/commands/{__tests__/remove.test.js → cms/__tests__/delete.test.js} +8 -8
- package/commands/{__tests__ → cms/__tests__}/fetch.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/function.test.js +7 -3
- package/commands/{__tests__ → cms/__tests__}/lint.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/list.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/mv.test.js +3 -3
- package/commands/{__tests__ → cms/__tests__}/theme.test.js +9 -2
- package/commands/cms/app/create.d.ts +9 -0
- package/commands/cms/app/create.js +82 -0
- package/commands/cms/app.d.ts +3 -0
- package/commands/cms/app.js +17 -0
- package/commands/cms/convertFields.js +7 -9
- package/commands/cms/delete.d.ts +6 -0
- package/commands/cms/delete.js +43 -0
- package/commands/cms/fetch.d.ts +12 -0
- package/commands/cms/fetch.js +79 -0
- package/commands/{__tests__ → cms/function/__tests__}/logs.test.js +4 -5
- package/commands/cms/function/create.d.ts +12 -0
- package/commands/cms/function/create.js +84 -0
- package/commands/cms/function/deploy.d.ts +6 -0
- package/commands/cms/function/deploy.js +89 -0
- package/commands/cms/function/list.d.ts +6 -0
- package/commands/cms/function/list.js +60 -0
- package/commands/cms/function/logs.d.ts +10 -0
- package/commands/cms/function/logs.js +135 -0
- package/commands/cms/function/server.d.ts +10 -0
- package/commands/cms/function/server.js +69 -0
- package/commands/cms/function.d.ts +3 -0
- package/commands/cms/function.js +27 -0
- package/commands/cms/getReactModule.js +9 -14
- package/commands/cms/lighthouseScore.js +33 -36
- package/commands/cms/lint.d.ts +6 -0
- package/commands/cms/lint.js +83 -0
- package/commands/cms/list.d.ts +6 -0
- package/commands/cms/list.js +96 -0
- package/commands/cms/module/create.d.ts +11 -0
- package/commands/cms/module/create.js +84 -0
- package/commands/cms/module/marketplace-validate.d.ts +6 -0
- package/commands/cms/module/marketplace-validate.js +45 -0
- package/commands/cms/module.d.ts +3 -0
- package/commands/cms/module.js +17 -0
- package/commands/cms/mv.d.ts +7 -0
- package/commands/cms/mv.js +60 -0
- package/commands/cms/template/create.d.ts +9 -0
- package/commands/cms/template/create.js +72 -0
- package/commands/cms/template.d.ts +3 -0
- package/commands/cms/template.js +17 -0
- package/commands/{theme → cms/theme}/__tests__/marketplace-validate.test.js +2 -2
- package/commands/{theme → cms/theme}/__tests__/preview.test.js +2 -2
- package/commands/cms/theme/create.d.ts +6 -0
- package/commands/cms/theme/create.js +58 -0
- package/commands/cms/theme/generate-selectors.d.ts +6 -0
- package/commands/cms/theme/generate-selectors.js +171 -0
- package/commands/cms/theme/marketplace-validate.d.ts +6 -0
- package/commands/cms/theme/marketplace-validate.js +46 -0
- package/commands/cms/theme/preview.d.ts +12 -0
- package/commands/cms/theme/preview.js +224 -0
- package/commands/cms/theme.d.ts +3 -0
- package/commands/cms/theme.js +25 -0
- package/commands/cms/upload.d.ts +12 -0
- package/commands/cms/upload.js +212 -0
- package/commands/cms/watch.d.ts +14 -0
- package/commands/cms/watch.js +138 -0
- package/commands/cms/webpack/create.d.ts +6 -0
- package/commands/cms/webpack/create.js +58 -0
- package/commands/cms/webpack.d.ts +3 -0
- package/commands/cms/webpack.js +17 -0
- package/commands/cms.js +28 -2
- package/commands/completion.js +3 -3
- package/commands/config/set.d.ts +1 -1
- package/commands/config/set.js +64 -36
- package/commands/config.js +2 -2
- package/commands/create.js +6 -4
- package/commands/customObject/{schema/__tests__/create.test.js → __tests__/createSchema.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/delete.test.js → __tests__/deleteSchema.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/fetch-all.test.js → __tests__/fetch-all-schemas.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/fetch.test.js → __tests__/fetchSchema.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/list.test.js → __tests__/listSchemas.test.js} +5 -5
- package/commands/customObject/{schema/__tests__/update.test.js → __tests__/updateSchema.test.js} +5 -5
- package/commands/customObject/create.js +10 -12
- package/commands/customObject/createSchema.d.ts +6 -0
- package/commands/customObject/createSchema.js +56 -0
- package/commands/customObject/deleteSchema.d.ts +7 -0
- package/commands/customObject/deleteSchema.js +69 -0
- package/commands/customObject/fetchAllSchemas.d.ts +6 -0
- package/commands/customObject/fetchAllSchemas.js +57 -0
- package/commands/customObject/fetchSchema.d.ts +7 -0
- package/commands/customObject/fetchSchema.js +67 -0
- package/commands/customObject/listSchemas.d.ts +4 -0
- package/commands/customObject/listSchemas.js +35 -0
- package/commands/customObject/schema/create.d.ts +4 -6
- package/commands/customObject/schema/create.js +13 -38
- package/commands/customObject/schema/delete.d.ts +4 -7
- package/commands/customObject/schema/delete.js +15 -50
- package/commands/customObject/schema/fetch-all.d.ts +4 -6
- package/commands/customObject/schema/fetch-all.js +14 -40
- package/commands/customObject/schema/fetch.d.ts +4 -7
- package/commands/customObject/schema/fetch.js +14 -49
- package/commands/customObject/schema/list.d.ts +4 -4
- package/commands/customObject/schema/list.js +10 -19
- package/commands/customObject/schema/update.d.ts +4 -7
- package/commands/customObject/schema/update.js +15 -50
- package/commands/customObject/schema.js +5 -3
- package/commands/customObject/updateSchema.d.ts +7 -0
- package/commands/customObject/updateSchema.js +71 -0
- package/commands/customObject.js +22 -8
- package/commands/doctor.js +8 -11
- package/commands/feedback.js +7 -12
- package/commands/fetch.d.ts +4 -12
- package/commands/fetch.js +20 -47
- package/commands/filemanager/fetch.js +7 -7
- package/commands/filemanager/upload.js +15 -34
- package/commands/filemanager.js +2 -2
- package/commands/function/deploy.d.ts +4 -6
- package/commands/function/deploy.js +14 -89
- package/commands/function/list.d.ts +4 -6
- package/commands/function/list.js +14 -40
- package/commands/function/server.d.ts +4 -10
- package/commands/function/server.js +22 -31
- package/commands/function.d.ts +2 -4
- package/commands/function.js +25 -14
- package/commands/getStarted.js +2 -2
- package/commands/hubdb/clear.js +7 -15
- package/commands/hubdb/create.js +9 -15
- package/commands/hubdb/delete.js +8 -15
- package/commands/hubdb/fetch.js +6 -9
- package/commands/hubdb.d.ts +1 -1
- package/commands/hubdb.js +2 -2
- package/commands/init.js +2 -3
- package/commands/lint.d.ts +4 -6
- package/commands/lint.js +13 -65
- package/commands/list.d.ts +4 -6
- package/commands/list.js +14 -81
- package/commands/logs.d.ts +4 -10
- package/commands/logs.js +25 -94
- package/commands/module/marketplace-validate.d.ts +4 -6
- package/commands/module/marketplace-validate.js +15 -27
- package/commands/module.d.ts +2 -2
- package/commands/module.js +17 -15
- package/commands/mv.d.ts +4 -7
- package/commands/mv.js +14 -51
- package/commands/open.js +5 -5
- package/commands/project/__tests__/add.test.js +15 -13
- package/commands/project/__tests__/deploy.test.js +3 -4
- package/commands/project/__tests__/devUnifiedFlow.test.js +32 -0
- package/commands/project/__tests__/installDeps.test.js +8 -8
- package/commands/project/__tests__/list.test.js +31 -0
- package/commands/project/__tests__/logs.test.js +1 -1
- package/commands/project/__tests__/migrate.test.js +6 -5
- package/commands/project/__tests__/migrateApp.test.js +2 -5
- package/commands/project/__tests__/validate.test.js +98 -0
- package/commands/project/add.d.ts +2 -2
- package/commands/project/add.js +6 -5
- package/commands/project/cloneApp.js +14 -19
- package/commands/project/create.js +1 -2
- package/commands/project/deploy.js +3 -3
- package/commands/project/dev/deprecatedFlow.js +9 -18
- package/commands/project/dev/index.js +19 -17
- package/commands/project/dev/unifiedFlow.js +11 -4
- package/commands/project/download.js +15 -15
- package/commands/project/installDeps.d.ts +2 -2
- package/commands/project/installDeps.js +9 -8
- package/commands/project/list.d.ts +4 -0
- package/commands/project/list.js +62 -0
- package/commands/project/listBuilds.js +11 -20
- package/commands/project/logs.js +21 -24
- package/commands/project/migrate.js +5 -2
- package/commands/project/migrateApp.js +9 -15
- package/commands/project/open.js +6 -13
- package/commands/project/upload.d.ts +2 -2
- package/commands/project/upload.js +17 -26
- package/commands/project/validate.js +6 -6
- package/commands/project/watch.js +13 -22
- package/commands/project.js +4 -2
- package/commands/remove.d.ts +4 -6
- package/commands/remove.js +12 -24
- package/commands/sandbox/__tests__/create.test.js +5 -5
- package/commands/sandbox/create.js +22 -32
- package/commands/sandbox/delete.js +38 -63
- package/commands/sandbox.js +2 -2
- package/commands/secret/addSecret.js +7 -17
- package/commands/secret/deleteSecret.js +10 -20
- package/commands/secret/listSecret.js +8 -10
- package/commands/secret/updateSecret.js +9 -17
- package/commands/secret.js +2 -2
- package/commands/testAccount/__tests__/delete.test.js +2 -4
- package/commands/testAccount/create.js +2 -5
- package/commands/testAccount/delete.d.ts +4 -3
- package/commands/testAccount/delete.js +155 -14
- package/commands/theme/generate-selectors.d.ts +4 -6
- package/commands/theme/generate-selectors.js +14 -152
- package/commands/theme/marketplace-validate.d.ts +4 -6
- package/commands/theme/marketplace-validate.js +14 -25
- package/commands/theme/preview.d.ts +4 -12
- package/commands/theme/preview.js +18 -183
- package/commands/theme.d.ts +2 -2
- package/commands/theme.js +19 -13
- package/commands/upload.d.ts +4 -12
- package/commands/upload.js +19 -169
- package/commands/watch.d.ts +4 -14
- package/commands/watch.js +23 -88
- package/lang/en.d.ts +863 -542
- package/lang/en.js +912 -595
- package/lang/en.lyaml +4 -4
- package/lib/__tests__/buildAccount.test.js +4 -3
- package/lib/__tests__/commonOpts.test.js +1 -1
- package/lib/__tests__/dependencyManagement.test.js +1 -1
- package/lib/__tests__/developerTestAccounts.test.js +3 -3
- package/lib/__tests__/npm.test.js +1 -1
- package/lib/__tests__/oauth.test.js +4 -4
- package/lib/__tests__/process.test.js +10 -5
- package/lib/__tests__/sandboxSync.test.js +8 -8
- package/lib/__tests__/sandboxes.test.js +8 -8
- package/lib/__tests__/serverlessLogs.test.js +1 -1
- package/lib/__tests__/usageTracking.test.js +5 -5
- package/lib/__tests__/validation.test.js +2 -1
- package/lib/__tests__/yargsUtils.test.js +83 -9
- package/lib/app/__tests__/migrate.test.js +5 -5
- package/lib/app/__tests__/migrate_legacy.test.js +1 -1
- package/lib/app/migrate.js +1 -1
- package/lib/app/migrate_legacy.js +20 -24
- package/lib/buildAccount.d.ts +2 -2
- package/lib/buildAccount.js +32 -64
- package/lib/commonOpts.d.ts +1 -1
- package/lib/commonOpts.js +25 -22
- package/lib/configMigrate.js +88 -9
- package/lib/configOptions.js +7 -0
- package/lib/constants.d.ts +15 -1
- package/lib/constants.js +19 -1
- package/lib/dependencyManagement.js +9 -27
- package/lib/developerTestAccounts.js +9 -23
- package/lib/doctor/Diagnosis.js +11 -23
- package/lib/doctor/DiagnosticInfoBuilder.js +12 -11
- package/lib/doctor/Doctor.js +42 -90
- package/lib/doctor/__tests__/Doctor.test.js +4 -4
- package/lib/errorHandlers/index.js +12 -20
- package/lib/errorHandlers/suppressError.js +11 -18
- package/lib/generateSelectors.js +1 -1
- package/lib/lang.js +6 -5
- package/lib/links.js +4 -4
- package/lib/middleware/__test__/commandTargetingUtils.test.js +99 -0
- package/lib/middleware/__test__/configMiddleware.test.js +11 -11
- package/lib/middleware/__test__/yargsChecksMiddleware.test.js +6 -8
- package/lib/middleware/autoUpdateMiddleware.d.ts +2 -1
- package/lib/middleware/autoUpdateMiddleware.js +12 -2
- package/lib/middleware/commandTargetingUtils.d.ts +8 -0
- package/lib/middleware/commandTargetingUtils.js +74 -0
- package/lib/middleware/configMiddleware.d.ts +1 -1
- package/lib/middleware/configMiddleware.js +21 -81
- package/lib/middleware/gitMiddleware.js +5 -1
- package/lib/middleware/notificationsMiddleware.js +5 -11
- package/lib/middleware/yargsChecksMiddleware.js +6 -9
- package/lib/npm.js +2 -2
- package/lib/oauth.js +5 -5
- package/lib/process.js +5 -4
- package/lib/projectProfiles.d.ts +1 -1
- package/lib/projectProfiles.js +2 -10
- package/lib/projects/__tests__/AppDevModeInterface.test.js +101 -135
- package/lib/projects/__tests__/DevServerManager.test.js +183 -0
- package/lib/projects/__tests__/LocalDevProcess.test.js +6 -5
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +76 -45
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +1 -0
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +161 -0
- package/lib/projects/__tests__/deploy.test.js +9 -9
- package/lib/projects/__tests__/localDevProjectHelpers.test.js +2 -0
- package/lib/projects/__tests__/platformVersion.test.js +8 -8
- package/lib/projects/__tests__/projects.test.js +12 -12
- package/lib/projects/__tests__/structure.test.js +3 -3
- package/lib/projects/__tests__/upload.test.d.ts +1 -0
- package/lib/projects/__tests__/upload.test.js +82 -0
- package/lib/projects/add/__tests__/legacyAddComponent.test.js +6 -6
- package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +1 -0
- package/lib/projects/add/__tests__/{v3AddComponent.test.js → v2AddComponent.test.js} +39 -39
- package/lib/projects/add/{v3AddComponent.d.ts → v2AddComponent.d.ts} +1 -1
- package/lib/projects/add/{v3AddComponent.js → v2AddComponent.js} +5 -5
- package/lib/projects/create/__tests__/legacy.test.js +5 -5
- package/lib/projects/create/__tests__/v2.test.d.ts +1 -0
- package/lib/projects/create/__tests__/{v3.test.js → v2.test.js} +3 -3
- package/lib/projects/create/index.js +4 -4
- package/lib/projects/create/legacy.js +2 -2
- package/lib/projects/create/{v3.d.ts → v2.d.ts} +3 -3
- package/lib/projects/create/{v3.js → v2.js} +5 -5
- package/lib/projects/deploy.d.ts +1 -1
- package/lib/projects/deploy.js +2 -2
- package/lib/projects/localDev/AppDevModeInterface.d.ts +11 -3
- package/lib/projects/localDev/AppDevModeInterface.js +128 -115
- package/lib/projects/localDev/DevServerManager.d.ts +10 -29
- package/lib/projects/localDev/DevServerManager.js +20 -76
- package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +40 -0
- package/lib/projects/localDev/DevServerManager_DEPRECATED.js +120 -0
- package/lib/projects/localDev/LocalDevLogger.js +10 -11
- package/lib/projects/localDev/{LocalDevManager.js → LocalDevManager_DEPRECATED.js} +10 -11
- package/lib/projects/localDev/LocalDevProcess.js +3 -2
- package/lib/projects/localDev/LocalDevState.d.ts +3 -0
- package/lib/projects/localDev/LocalDevState.js +9 -0
- package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +4 -1
- package/lib/projects/localDev/LocalDevWebsocketServer.js +46 -16
- package/lib/projects/localDev/UIExtensionsDevModeInterface.d.ts +13 -0
- package/lib/projects/localDev/UIExtensionsDevModeInterface.js +37 -0
- package/lib/projects/localDev/helpers/account.d.ts +1 -1
- package/lib/projects/localDev/helpers/account.js +2 -2
- package/lib/projects/localDev/helpers/process.d.ts +1 -0
- package/lib/projects/localDev/helpers/process.js +15 -0
- package/lib/projects/localDev/helpers/project.d.ts +1 -0
- package/lib/projects/localDev/helpers/project.js +39 -3
- package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +3 -0
- package/lib/projects/localDev/localDevWebsocketServerUtils.js +9 -0
- package/lib/projects/platformVersion.d.ts +1 -1
- package/lib/projects/platformVersion.js +1 -1
- package/lib/projects/structure.d.ts +2 -2
- package/lib/projects/structure.js +6 -6
- package/lib/projects/upload.d.ts +2 -3
- package/lib/projects/upload.js +17 -9
- package/lib/projects/urls.d.ts +0 -1
- package/lib/projects/urls.js +0 -3
- package/lib/prompts/__tests__/downloadProjectPrompt.test.js +1 -0
- package/lib/prompts/__tests__/projectAddPrompt.test.js +10 -10
- package/lib/prompts/accountNamePrompt.js +14 -19
- package/lib/prompts/accountsPrompt.js +2 -2
- package/lib/prompts/cmsFieldPrompt.js +2 -2
- package/lib/prompts/createApiSamplePrompt.js +5 -5
- package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +10 -1
- package/lib/prompts/createFunctionPrompt.js +14 -14
- package/lib/prompts/createModulePrompt.js +9 -9
- package/lib/prompts/createTemplatePrompt.js +2 -2
- package/lib/prompts/downloadProjectPrompt.js +5 -8
- package/lib/prompts/installAppPrompt.d.ts +1 -6
- package/lib/prompts/installAppPrompt.js +1 -6
- package/lib/prompts/personalAccessKeyPrompt.js +3 -3
- package/lib/prompts/previewPrompt.js +6 -6
- package/lib/prompts/projectAddPrompt.d.ts +2 -2
- package/lib/prompts/projectAddPrompt.js +7 -1
- package/lib/prompts/projectDevTargetAccountPrompt.js +20 -32
- package/lib/prompts/projectNamePrompt.js +4 -8
- package/lib/prompts/projectsLogsPrompt.js +2 -4
- package/lib/prompts/promptUtils.js +27 -9
- package/lib/prompts/sandboxesPrompt.js +7 -7
- package/lib/prompts/secretPrompt.js +3 -3
- package/lib/prompts/selectAppPrompt.js +3 -3
- package/lib/prompts/selectHubDBTablePrompt.js +9 -13
- package/lib/prompts/selectPublicAppForMigrationPrompt.js +15 -19
- package/lib/prompts/setAsDefaultAccountPrompt.js +4 -8
- package/lib/prompts/uploadPrompt.js +5 -5
- package/lib/sandboxSync.js +24 -41
- package/lib/sandboxes.js +19 -47
- package/lib/schema.js +3 -3
- package/lib/serverlessLogs.js +11 -13
- package/lib/theme/__tests__/migrate.test.js +6 -6
- package/lib/theme/migrate.js +2 -2
- package/lib/ui/SpinniesManager.d.ts +2 -0
- package/lib/ui/SpinniesManager.js +7 -0
- package/lib/ui/boxen.js +1 -2
- package/lib/ui/git.js +13 -10
- package/lib/ui/index.d.ts +6 -0
- package/lib/ui/index.js +55 -38
- package/lib/ui/serverlessFunctionLogs.js +9 -7
- package/lib/ui/uiMessages.d.ts +73 -0
- package/lib/ui/uiMessages.js +76 -0
- package/lib/usageTracking.js +7 -7
- package/lib/validation.js +20 -23
- package/lib/yargsUtils.d.ts +1 -1
- package/lib/yargsUtils.js +12 -5
- package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -4
- package/mcp-server/tools/index.js +4 -0
- package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +23 -0
- package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +68 -0
- package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +11 -0
- package/mcp-server/tools/project/GetApplicationInfoTool.js +49 -0
- package/mcp-server/tools/project/GetConfigValuesTool.js +2 -2
- package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +2 -2
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +1 -1
- package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +169 -0
- package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +115 -0
- package/mcp-server/utils/toolUsageTracking.js +2 -2
- package/package.json +8 -7
- package/types/Cms.d.ts +6 -6
- package/types/Yargs.d.ts +1 -1
- package/commands/app/__tests__/install.test.js +0 -47
- package/commands/app/install.d.ts +0 -8
- package/commands/app/install.js +0 -122
- package/lib/middleware/__test__/utils.test.js +0 -51
- package/lib/middleware/utils.d.ts +0 -8
- package/lib/middleware/utils.js +0 -14
- package/lib/projects/localDev/DevServerManagerV2.d.ts +0 -22
- package/lib/projects/localDev/DevServerManagerV2.js +0 -81
- /package/commands/{customObject/schema → cms}/__tests__/delete.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/fetch.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/function.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/lint.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/list.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/mv.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/__tests__}/theme.test.d.ts +0 -0
- /package/commands/{__tests__ → cms/function/__tests__}/logs.test.d.ts +0 -0
- /package/commands/{theme → cms/theme}/__tests__/generate-selectors.test.d.ts +0 -0
- /package/commands/{theme → cms/theme}/__tests__/generate-selectors.test.js +0 -0
- /package/commands/{theme → cms/theme}/__tests__/marketplace-validate.test.d.ts +0 -0
- /package/commands/{theme → cms/theme}/__tests__/preview.test.d.ts +0 -0
- /package/commands/{__tests__/remove.test.d.ts → customObject/__tests__/createSchema.test.d.ts} +0 -0
- /package/commands/{app/__tests__/install.test.d.ts → customObject/__tests__/deleteSchema.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/create.test.d.ts → __tests__/fetch-all-schemas.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/fetch-all.test.d.ts → __tests__/fetchSchema.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/fetch.test.d.ts → __tests__/listSchemas.test.d.ts} +0 -0
- /package/commands/customObject/{schema/__tests__/list.test.d.ts → __tests__/updateSchema.test.d.ts} +0 -0
- /package/commands/{customObject/schema/__tests__/update.test.d.ts → project/__tests__/list.test.d.ts} +0 -0
- /package/{lib/middleware/__test__/utils.test.d.ts → commands/project/__tests__/validate.test.d.ts} +0 -0
- /package/{commands/create → lib/cmsAssets}/api-sample.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/api-sample.js +0 -0
- /package/{commands/create → lib/cmsAssets}/app.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/app.js +0 -0
- /package/{commands/create → lib/cmsAssets}/function.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/function.js +0 -0
- /package/{commands/create → lib/cmsAssets}/index.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/index.js +0 -0
- /package/{commands/create → lib/cmsAssets}/module.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/module.js +0 -0
- /package/{commands/create → lib/cmsAssets}/react-app.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/react-app.js +0 -0
- /package/{commands/create → lib/cmsAssets}/template.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/template.js +0 -0
- /package/{commands/create → lib/cmsAssets}/vue-app.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/vue-app.js +0 -0
- /package/{commands/create → lib/cmsAssets}/webpack-serverless.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/webpack-serverless.js +0 -0
- /package/{commands/create → lib/cmsAssets}/website-theme.d.ts +0 -0
- /package/{commands/create → lib/cmsAssets}/website-theme.js +0 -0
- /package/lib/{projects/add/__tests__/v3AddComponent.test.d.ts → middleware/__test__/commandTargetingUtils.test.d.ts} +0 -0
- /package/lib/projects/{create/__tests__/v3.test.d.ts → __tests__/DevServerManager.test.d.ts} +0 -0
- /package/lib/projects/localDev/{LocalDevManager.d.ts → LocalDevManager_DEPRECATED.d.ts} +0 -0
package/lang/en.js
CHANGED
|
@@ -3,10 +3,10 @@ import { mapToUserFriendlyName } from '@hubspot/project-parsing-lib';
|
|
|
3
3
|
import { PLATFORM_VERSIONS } from '@hubspot/local-dev-lib/constants/projects';
|
|
4
4
|
import { PERSONAL_ACCESS_KEY_AUTH_METHOD } from '@hubspot/local-dev-lib/constants/auth';
|
|
5
5
|
import { ARCHIVED_HUBSPOT_CONFIG_YAML_FILE_NAME, GLOBAL_CONFIG_PATH, DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME, } from '@hubspot/local-dev-lib/constants/config';
|
|
6
|
-
import { uiAccountDescription, uiBetaTag, uiCommandReference, uiLink, UI_COLORS, } from '../lib/ui/index.js';
|
|
7
|
-
import { getProjectDetailUrl, getProjectSettingsUrl, getLocalDevUiUrl,
|
|
6
|
+
import { uiAccountDescription, uiBetaTag, uiCommandReference, uiLink, UI_COLORS, uiAuthCommandReference, } from '../lib/ui/index.js';
|
|
7
|
+
import { getProjectDetailUrl, getProjectSettingsUrl, getLocalDevUiUrl, } from '../lib/projects/urls.js';
|
|
8
8
|
import { getProductUpdatesUrl } from '../lib/links.js';
|
|
9
|
-
import { APP_DISTRIBUTION_TYPES, APP_AUTH_TYPES, PROJECT_CONFIG_FILE, PROJECT_WITH_APP, } from '../lib/constants.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
|
import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
|
|
11
11
|
export const commands = {
|
|
12
12
|
generalErrors: {
|
|
@@ -86,7 +86,7 @@ export const commands = {
|
|
|
86
86
|
errors: {
|
|
87
87
|
invalidAccountIdProvided: `--account must be a number.`,
|
|
88
88
|
failedToUpdateConfig: 'Failed to update the configuration file. Please try again.',
|
|
89
|
-
migrationNotConfirmed: `Did not migrate your configuration file. Run ${
|
|
89
|
+
migrationNotConfirmed: `Did not migrate your configuration file. Run ${uiAuthCommandReference()} to update your existing config, or use ${uiCommandReference('hs config migrate')} to switch to the new global configuration.`,
|
|
90
90
|
mergeNotConfirmed: `Did not merge configuration files. When you are ready to merge the deprecated config file with the global config file, run ${uiCommandReference('hs config migrate')}.`,
|
|
91
91
|
},
|
|
92
92
|
success: {
|
|
@@ -96,9 +96,13 @@ export const commands = {
|
|
|
96
96
|
},
|
|
97
97
|
list: {
|
|
98
98
|
accounts: `${chalk.bold('Accounts')}:`,
|
|
99
|
-
|
|
99
|
+
defaultAccountTitle: `${chalk.bold('Default Account')}`,
|
|
100
|
+
defaultAccount: (account) => `Account: ${account}`,
|
|
100
101
|
describe: 'List names of accounts defined in config.',
|
|
101
|
-
configPath: (configPath) =>
|
|
102
|
+
configPath: (configPath) => `Source: ${configPath}`,
|
|
103
|
+
overrideFilePathTitle: `${chalk.bold('Default Account Override')}`,
|
|
104
|
+
overrideFilePath: (overrideFilePath) => `Source: ${overrideFilePath}`,
|
|
105
|
+
overrideAccount: (account) => `Account: ${account}`,
|
|
102
106
|
labels: {
|
|
103
107
|
accountId: 'Account ID',
|
|
104
108
|
authType: 'Auth Type',
|
|
@@ -124,6 +128,8 @@ export const commands = {
|
|
|
124
128
|
errors: {
|
|
125
129
|
accountNotFound: (specifiedAccount, configPath) => `The account "${specifiedAccount}" could not be found in ${configPath}`,
|
|
126
130
|
},
|
|
131
|
+
accountOverride: (accountOverride) => `This project currently has an account override set: "${accountOverride}". Account "${accountOverride}" will continue to act as the default account for this project.`,
|
|
132
|
+
accountOverrideCommands: `Use ${uiCommandReference('hs account create-override')} to change override accounts, or ${uiCommandReference('hs account remove-override')} to remove the override and use your default account.`,
|
|
127
133
|
examples: {
|
|
128
134
|
default: 'Select a HubSpot account to use as the default account',
|
|
129
135
|
idBased: 'Set the default account to the account in the config with accountId equal to "1234567"',
|
|
@@ -145,6 +151,7 @@ export const commands = {
|
|
|
145
151
|
replaceDefaultAccount: 'The removed account was the default account.',
|
|
146
152
|
},
|
|
147
153
|
prompts: {
|
|
154
|
+
deleteOverrideFile: (overrideFilePath, accountName) => `Delete the override file (${overrideFilePath}) associated with ${accountName}?`,
|
|
148
155
|
selectAccountToRemove: 'Select an account to remove from the config',
|
|
149
156
|
},
|
|
150
157
|
errors: {
|
|
@@ -164,12 +171,40 @@ export const commands = {
|
|
|
164
171
|
accountRemoved: (accountName) => `Account "${accountName}" removed from the config`,
|
|
165
172
|
},
|
|
166
173
|
},
|
|
174
|
+
removeOverride: {
|
|
175
|
+
describe: (overrideFile) => `Remove the default account override file (${overrideFile}) from the current working directory.`,
|
|
176
|
+
accountOverride: (overrideFilePath, accountOverride) => `There is an account override file at ${overrideFilePath} associated with account "${accountOverride}".`,
|
|
177
|
+
prompts: {
|
|
178
|
+
deleteOverrideFile: 'Delete account override file?',
|
|
179
|
+
},
|
|
180
|
+
success: 'Removed the default account override file.',
|
|
181
|
+
noOverrideFile: 'No default account override file found in the current working directory. No action required.',
|
|
182
|
+
errors: {
|
|
183
|
+
globalConfigNotFound: `This command is only compatible with our new global config. Run ${uiCommandReference('hs account auth')} to get started.`,
|
|
184
|
+
},
|
|
185
|
+
options: {
|
|
186
|
+
force: {
|
|
187
|
+
describe: 'Skip confirmation prompt when removing the override file',
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
},
|
|
167
191
|
info: {
|
|
168
192
|
accountId: (accountId) => `${chalk.bold('Account ID')}: ${accountId}`,
|
|
193
|
+
defaultAccountTitle: `${chalk.bold('Default Account')}`,
|
|
194
|
+
configPath: (configPath) => `Source: ${configPath}`,
|
|
195
|
+
defaultAccount: (accountName) => `Account: ${accountName}`,
|
|
196
|
+
overrideFilePathTitle: `${chalk.bold('Default Account Override')}`,
|
|
197
|
+
overrideFilePath: (overrideFilePath) => `Source: ${overrideFilePath}`,
|
|
198
|
+
overrideAccount: (accountName) => `Account: ${accountName}`,
|
|
169
199
|
describe: 'Print information about the default account, or about the account specified with the "account" option.',
|
|
170
200
|
errors: {
|
|
171
201
|
notUsingPersonalAccessKey: 'This command currently only supports fetching scopes for the personal access key auth type.',
|
|
172
202
|
},
|
|
203
|
+
options: {
|
|
204
|
+
account: {
|
|
205
|
+
describe: 'Account name or id to show info for',
|
|
206
|
+
},
|
|
207
|
+
},
|
|
173
208
|
examples: {
|
|
174
209
|
default: 'Print information for the default account',
|
|
175
210
|
idBased: 'Print information for the account with accountId equal to "1234567"',
|
|
@@ -193,6 +228,30 @@ export const commands = {
|
|
|
193
228
|
other: (count) => `Remove ${count} inactive accounts from the CLI config?`,
|
|
194
229
|
},
|
|
195
230
|
removeSuccess: (accountName) => `Removed ${accountName} from the CLI config.`,
|
|
231
|
+
replaceDefaultAccount: 'The default account was removed.',
|
|
232
|
+
defaultAccountOverride: (overrideFilePath) => `\n(This will also delete the default account override file at ${overrideFilePath})`,
|
|
233
|
+
},
|
|
234
|
+
createOverride: {
|
|
235
|
+
describe: (hsAccountFileName) => `Create a new default account override file (${hsAccountFileName}) in the current working directory.`,
|
|
236
|
+
success: (overrideFilePath) => `Default account override file created at ${overrideFilePath}`,
|
|
237
|
+
accountOverride: (overrideFilePath, accountOverride) => `An account override file already exists at ${overrideFilePath} associated with account "${accountOverride}".`,
|
|
238
|
+
prompts: {
|
|
239
|
+
replaceOverrideFile: 'Replace existing account override file?',
|
|
240
|
+
},
|
|
241
|
+
errors: {
|
|
242
|
+
globalConfigNotFound: `This command is only compatible with our new global config. Run ${uiCommandReference('hs account auth')} to get started.`,
|
|
243
|
+
accountNotFound: (configPath) => `The specified account could not be found in the config file ${configPath}`,
|
|
244
|
+
},
|
|
245
|
+
options: {
|
|
246
|
+
account: {
|
|
247
|
+
describe: 'Name or ID of the account to create an override file for.',
|
|
248
|
+
},
|
|
249
|
+
},
|
|
250
|
+
examples: {
|
|
251
|
+
default: (hsAccountFileName) => `Create a new default account override file (${hsAccountFileName}) in the current working directory`,
|
|
252
|
+
idBased: (hsAccountFileName) => `Create a new default account override file (${hsAccountFileName}) in the current working directory, using the account with accountId "1234567"`,
|
|
253
|
+
nameBased: (hsAccountFileName) => `Create a new default account override file (${hsAccountFileName}) in the current working directory, using the account with name "MyAccount"`,
|
|
254
|
+
},
|
|
196
255
|
},
|
|
197
256
|
},
|
|
198
257
|
},
|
|
@@ -262,12 +321,307 @@ export const commands = {
|
|
|
262
321
|
describe: 'Enable or disable automatic opening of the browser',
|
|
263
322
|
},
|
|
264
323
|
},
|
|
324
|
+
errors: {
|
|
325
|
+
invalidBoolean: (commandName, value) => `Invalid boolean value "${value}" for --${commandName}. Valid values are: true, false`,
|
|
326
|
+
invalidHTTPTimeout: `Invalid HTTP timeout value. Must be a number greater than 3000.`,
|
|
327
|
+
},
|
|
265
328
|
},
|
|
266
329
|
},
|
|
267
330
|
},
|
|
268
331
|
cms: {
|
|
269
|
-
describe: 'Commands for
|
|
332
|
+
describe: 'Commands for managing CMS assets.',
|
|
270
333
|
subcommands: {
|
|
334
|
+
template: {
|
|
335
|
+
describe: 'Commands for managing templates.',
|
|
336
|
+
subcommands: {
|
|
337
|
+
create: {
|
|
338
|
+
describe: 'Create a new CMS template.',
|
|
339
|
+
errors: {
|
|
340
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
341
|
+
},
|
|
342
|
+
positionals: {
|
|
343
|
+
name: 'Name of the new template.',
|
|
344
|
+
dest: 'Destination folder for the new template.',
|
|
345
|
+
},
|
|
346
|
+
options: {
|
|
347
|
+
templateType: 'Template type for template creation.',
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
},
|
|
351
|
+
},
|
|
352
|
+
webpack: {
|
|
353
|
+
describe: 'Commands for managing webpack.',
|
|
354
|
+
subcommands: {
|
|
355
|
+
create: {
|
|
356
|
+
describe: 'Create a new webpack bundle.',
|
|
357
|
+
errors: {
|
|
358
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
359
|
+
},
|
|
360
|
+
positionals: {
|
|
361
|
+
dest: 'Destination folder for the new webpack bundle.',
|
|
362
|
+
},
|
|
363
|
+
},
|
|
364
|
+
},
|
|
365
|
+
},
|
|
366
|
+
theme: {
|
|
367
|
+
describe: 'Commands for managing themes.',
|
|
368
|
+
subcommands: {
|
|
369
|
+
create: {
|
|
370
|
+
describe: 'Create a new theme.',
|
|
371
|
+
errors: {
|
|
372
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
373
|
+
},
|
|
374
|
+
positionals: {
|
|
375
|
+
dest: 'Destination folder for the new theme.',
|
|
376
|
+
},
|
|
377
|
+
},
|
|
378
|
+
generateSelectors: {
|
|
379
|
+
describe: 'Automatically generates an editor-preview.json file for the given theme. The selectors this command generates are not perfect, so please edit editor-preview.json after running.',
|
|
380
|
+
errors: {
|
|
381
|
+
invalidPath: (themePath) => `Could not find directory "${themePath}"`,
|
|
382
|
+
fieldsNotFound: "Unable to find theme's fields.json.",
|
|
383
|
+
noSelectorsFound: 'No selectors found.',
|
|
384
|
+
},
|
|
385
|
+
success: (themePath, selectorsPath) => `Selectors generated for ${themePath}, please double check the selectors generated at ${selectorsPath} before uploading the theme.`,
|
|
386
|
+
positionals: {
|
|
387
|
+
path: "The path of the theme you'd like to generate an editor-preview.json for.",
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
marketplaceValidate: {
|
|
391
|
+
describe: 'Validate a theme for the marketplace.',
|
|
392
|
+
errors: {
|
|
393
|
+
invalidPath: (path) => `The path "${path}" is not a path to a folder in the Design Manager`,
|
|
394
|
+
},
|
|
395
|
+
logs: {
|
|
396
|
+
validatingTheme: (path) => `Validating theme "${path}" \n`,
|
|
397
|
+
},
|
|
398
|
+
results: {
|
|
399
|
+
required: 'Required validation results:',
|
|
400
|
+
recommended: 'Recommended validation results:',
|
|
401
|
+
warnings: {
|
|
402
|
+
file: (file) => `File: ${file}`,
|
|
403
|
+
lineNumber: (line) => `Line number: ${line}`,
|
|
404
|
+
},
|
|
405
|
+
noErrors: 'No errors',
|
|
406
|
+
},
|
|
407
|
+
positionals: {
|
|
408
|
+
path: {
|
|
409
|
+
describe: 'Path to the theme within the Design Manager.',
|
|
410
|
+
},
|
|
411
|
+
},
|
|
412
|
+
},
|
|
413
|
+
preview: {
|
|
414
|
+
describe: 'Upload and watch a theme directory on your computer for changes and start a local development server to preview theme changes on a site.',
|
|
415
|
+
errors: {
|
|
416
|
+
invalidPath: (path) => `The path "${path}" is not a path to a directory`,
|
|
417
|
+
noThemeComponents: 'Your project has no theme components available to preview.',
|
|
418
|
+
uploadFailed: (src, dest) => `Uploading file "${src}" to "${dest}" failed`,
|
|
419
|
+
},
|
|
420
|
+
positionals: {
|
|
421
|
+
src: 'Path to the local directory your theme is in, relative to your current working directory',
|
|
422
|
+
dest: 'Path in HubSpot Design Tools. Can be a net new path. If you wish to preview a site page using your theme changes it must match the path of the theme used by the site.',
|
|
423
|
+
},
|
|
424
|
+
options: {
|
|
425
|
+
notify: 'Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file',
|
|
426
|
+
noSsl: 'Disable HTTPS',
|
|
427
|
+
port: 'The port on which to start the local server',
|
|
428
|
+
},
|
|
429
|
+
initialUploadProgressBar: {
|
|
430
|
+
start: 'Starting...',
|
|
431
|
+
uploading: 'Uploading...',
|
|
432
|
+
finish: 'Complete!',
|
|
433
|
+
},
|
|
434
|
+
logs: {
|
|
435
|
+
processExited: 'Stopping dev server...',
|
|
436
|
+
},
|
|
437
|
+
},
|
|
438
|
+
},
|
|
439
|
+
},
|
|
440
|
+
app: {
|
|
441
|
+
describe: 'Commands for managing CMS apps.',
|
|
442
|
+
subcommands: {
|
|
443
|
+
create: {
|
|
444
|
+
describe: 'Create a new CMS app.',
|
|
445
|
+
errors: {
|
|
446
|
+
unsupportedAssetType: (assetType, supportedAssetTypes) => `The asset type ${assetType} is not supported. Supported asset types are ${supportedAssetTypes}.`,
|
|
447
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
448
|
+
},
|
|
449
|
+
positionals: {
|
|
450
|
+
type: 'Type of the new app.',
|
|
451
|
+
name: 'Name of the new app.',
|
|
452
|
+
dest: 'Destination folder for the new app.',
|
|
453
|
+
},
|
|
454
|
+
},
|
|
455
|
+
},
|
|
456
|
+
},
|
|
457
|
+
list: {
|
|
458
|
+
describe: 'List remote contents of a directory in the HubSpot CMS.',
|
|
459
|
+
gettingPathContents: (path) => `Getting contents of ${path}.`,
|
|
460
|
+
noFilesFoundAtPath: (path) => `No files found in ${path}.`,
|
|
461
|
+
positionals: {
|
|
462
|
+
path: {
|
|
463
|
+
describe: 'Remote directory to list contents',
|
|
464
|
+
},
|
|
465
|
+
},
|
|
466
|
+
},
|
|
467
|
+
module: {
|
|
468
|
+
describe: 'Commands for working with modules, including marketplace validation with the marketplace-validate subcommand.',
|
|
469
|
+
subcommands: {
|
|
470
|
+
create: {
|
|
471
|
+
describe: 'Create a new CMS module.',
|
|
472
|
+
errors: {
|
|
473
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
474
|
+
},
|
|
475
|
+
positionals: {
|
|
476
|
+
name: 'Name of the new module.',
|
|
477
|
+
dest: 'Destination folder for the new module.',
|
|
478
|
+
},
|
|
479
|
+
options: {
|
|
480
|
+
moduleLabel: 'Label for the new module.',
|
|
481
|
+
reactType: 'Whether to create a React module.',
|
|
482
|
+
contentTypes: (contentTypes) => `Content types where the module can be used (${contentTypes.join(', ')}).`,
|
|
483
|
+
global: 'Whether to create a global module.',
|
|
484
|
+
availableForNewContent: 'Whether to create a module available for new content.',
|
|
485
|
+
},
|
|
486
|
+
},
|
|
487
|
+
marketplaceValidate: {
|
|
488
|
+
describe: 'Validate a module for the marketplace. Make sure to include the suffix .module in the path to the module within the Design Manager.',
|
|
489
|
+
errors: {
|
|
490
|
+
invalidPath: (path) => `The path "${path}" is not a path to a module within the Design Manager.`,
|
|
491
|
+
},
|
|
492
|
+
logs: {
|
|
493
|
+
validatingModule: (path) => `Validating module "${path}" \n`,
|
|
494
|
+
},
|
|
495
|
+
results: {
|
|
496
|
+
required: 'Required validation results:',
|
|
497
|
+
recommended: 'Recommended validation results:',
|
|
498
|
+
warnings: {
|
|
499
|
+
file: (file) => `File: ${file}`,
|
|
500
|
+
lineNumber: (line) => `Line number: ${line}`,
|
|
501
|
+
},
|
|
502
|
+
noErrors: 'No errors',
|
|
503
|
+
},
|
|
504
|
+
positionals: {
|
|
505
|
+
src: 'Path to the module within the Design Manager.',
|
|
506
|
+
},
|
|
507
|
+
},
|
|
508
|
+
},
|
|
509
|
+
},
|
|
510
|
+
upload: {
|
|
511
|
+
describe: 'Upload a folder or file from your computer to the HubSpot CMS.',
|
|
512
|
+
errors: {
|
|
513
|
+
destinationRequired: 'A destination path needs to be passed',
|
|
514
|
+
fileIgnored: (path) => `The file "${path}" is being ignored via an .hsignore rule`,
|
|
515
|
+
invalidPath: (path) => `The path "${path}" is not a path to a file or folder`,
|
|
516
|
+
uploadFailed: (src, dest) => `Uploading file "${src}" to "${dest}" failed`,
|
|
517
|
+
someFilesFailed: (dest) => `One or more files failed to upload to "${dest}" in the Design Manager`,
|
|
518
|
+
deleteFailed: (path, accountId) => `Deleting "${path}" from account ${uiAccountDescription(accountId)} failed`,
|
|
519
|
+
},
|
|
520
|
+
options: {
|
|
521
|
+
options: 'Options to pass to javascript fields files',
|
|
522
|
+
saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.",
|
|
523
|
+
convertFields: 'If true, converts any javascript fields files contained in module folder or project root.',
|
|
524
|
+
clean: 'Will delete the destination directory and its contents before uploading. This will also clear the global content associated with any global partial templates and modules.',
|
|
525
|
+
force: 'Skips confirmation prompts when doing a clean upload.',
|
|
526
|
+
},
|
|
527
|
+
previewUrl: (previewUrl) => `To preview this theme, visit: ${previewUrl}`,
|
|
528
|
+
positionals: {
|
|
529
|
+
src: 'Path to the local file, relative to your current working directory.',
|
|
530
|
+
dest: 'Path in HubSpot Design Tools, can be a net new path.',
|
|
531
|
+
},
|
|
532
|
+
success: {
|
|
533
|
+
fileUploaded: (src, dest, accountId) => `Uploaded file from "${src}" to "${dest}" in the Design Manager of account ${uiAccountDescription(accountId)}`,
|
|
534
|
+
uploadComplete: (dest) => `Uploading files to "${dest}" in the Design Manager is complete`,
|
|
535
|
+
},
|
|
536
|
+
uploading: (src, dest, accountId) => `Uploading files from "${src}" to "${dest}" in the Design Manager of account ${uiAccountDescription(accountId)}`,
|
|
537
|
+
notUploaded: (src) => `There was an error processing "${src}". The file has not been uploaded.`,
|
|
538
|
+
cleaning: (filePath, accountId) => `Removing "${filePath}" from account ${uiAccountDescription(accountId)} and uploading local...`,
|
|
539
|
+
confirmCleanUpload: (filePath, accountId) => `You are about to delete the directory "${filePath}" and its contents on HubSpot account ${uiAccountDescription(accountId)} before uploading. This will also clear the global content associated with any global partial templates and modules. Are you sure you want to do this?`,
|
|
540
|
+
},
|
|
541
|
+
delete: {
|
|
542
|
+
describe: 'Delete a file or folder from the HubSpot CMS.',
|
|
543
|
+
deleted: (path, accountId) => `Deleted "${path}" from account ${uiAccountDescription(accountId)}`,
|
|
544
|
+
errors: {
|
|
545
|
+
deleteFailed: (path, accountId) => `Deleting "${path}" from account ${uiAccountDescription(accountId)} failed`,
|
|
546
|
+
},
|
|
547
|
+
positionals: {
|
|
548
|
+
path: 'Remote hubspot path',
|
|
549
|
+
},
|
|
550
|
+
},
|
|
551
|
+
watch: {
|
|
552
|
+
describe: 'Watch a directory on your computer for changes and upload the changed files to the HubSpot CMS.',
|
|
553
|
+
errors: {
|
|
554
|
+
folderFailed: (src, dest, accountId) => `Initial uploading of folder "${src}" to "${dest}" in account ${uiAccountDescription(accountId)} had failures`,
|
|
555
|
+
fileFailed: (file, dest, accountId) => `Upload of file "${file}" to "${dest}" in account ${uiAccountDescription(accountId)} failed`,
|
|
556
|
+
destinationRequired: 'A destination directory needs to be passed',
|
|
557
|
+
invalidPath: (path) => `The "${path}" is not a path to a directory`,
|
|
558
|
+
},
|
|
559
|
+
options: {
|
|
560
|
+
disableInitial: 'Disable the initial upload when watching a directory (default)',
|
|
561
|
+
initialUpload: 'Upload directory before watching for updates',
|
|
562
|
+
notify: 'Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file',
|
|
563
|
+
remove: 'Will cause watch to delete files in your HubSpot account that are not found locally.',
|
|
564
|
+
convertFields: 'If true, converts any javascript fields files contained in module folder or project root.',
|
|
565
|
+
saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.",
|
|
566
|
+
options: 'Options to pass to javascript fields files',
|
|
567
|
+
},
|
|
568
|
+
positionals: {
|
|
569
|
+
src: 'Path to the local directory your files are in, relative to your current working directory',
|
|
570
|
+
dest: 'Path in HubSpot Design Tools. Can be a net new path',
|
|
571
|
+
},
|
|
572
|
+
warnings: {
|
|
573
|
+
disableInitial: `Passing the "${chalk.bold('--disable-initial')}" option is no longer necessary. Running "${uiCommandReference('hs watch')}" no longer uploads the watched directory by default.`,
|
|
574
|
+
initialUpload: `To upload the directory run "${uiCommandReference('hs upload')}" beforehand or add the "${chalk.bold('--initial-upload')}" option when running "${uiCommandReference('hs watch')}".`,
|
|
575
|
+
notUploaded: (path) => `The "${uiCommandReference('hs watch')}" command no longer uploads the watched directory when started. The directory "${path}" was not uploaded.`,
|
|
576
|
+
},
|
|
577
|
+
},
|
|
578
|
+
fetch: {
|
|
579
|
+
describe: 'Fetch a file, directory or module from HubSpot and write to a path on your computer.',
|
|
580
|
+
errors: {
|
|
581
|
+
sourceRequired: 'A source to fetch is required.',
|
|
582
|
+
},
|
|
583
|
+
options: {
|
|
584
|
+
staging: {
|
|
585
|
+
describe: 'Retrieve staged changes for project',
|
|
586
|
+
},
|
|
587
|
+
assetVersion: {
|
|
588
|
+
describe: 'Specify what version of a default asset to fetch',
|
|
589
|
+
},
|
|
590
|
+
},
|
|
591
|
+
positionals: {
|
|
592
|
+
dest: {
|
|
593
|
+
describe: 'Local directory you would like the files to be placed in, relative to your current working directory',
|
|
594
|
+
},
|
|
595
|
+
src: {
|
|
596
|
+
describe: 'Path in HubSpot Design Tools',
|
|
597
|
+
},
|
|
598
|
+
},
|
|
599
|
+
},
|
|
600
|
+
lint: {
|
|
601
|
+
issuesFound: (count) => `${count} issues found.`,
|
|
602
|
+
groupName: (path) => `Linting ${path}`,
|
|
603
|
+
positionals: {
|
|
604
|
+
path: {
|
|
605
|
+
describe: 'Local folder to lint',
|
|
606
|
+
},
|
|
607
|
+
},
|
|
608
|
+
},
|
|
609
|
+
mv: {
|
|
610
|
+
describe: 'Move a remote file or folder in HubSpot. This feature is currently in beta and the CLI contract is subject to change.',
|
|
611
|
+
errors: {
|
|
612
|
+
sourcePathExists: (srcPath, destPath) => `The folder "${srcPath}" already exists in "${destPath}".`,
|
|
613
|
+
moveFailed: (srcPath, destPath, accountId) => `Moving "${srcPath}" to "${destPath}" in account ${accountId} failed`,
|
|
614
|
+
},
|
|
615
|
+
move: (srcPath, destPath, accountId) => `Moved "${srcPath}" to "${destPath}" in account ${accountId}`,
|
|
616
|
+
positionals: {
|
|
617
|
+
srcPath: {
|
|
618
|
+
describe: 'Remote hubspot path',
|
|
619
|
+
},
|
|
620
|
+
destPath: {
|
|
621
|
+
describe: 'Remote hubspot path',
|
|
622
|
+
},
|
|
623
|
+
},
|
|
624
|
+
},
|
|
271
625
|
lighthouseScore: {
|
|
272
626
|
describe: 'Score a theme using Google lighthouse.',
|
|
273
627
|
examples: {
|
|
@@ -282,6 +636,9 @@ export const commands = {
|
|
|
282
636
|
pageTemplateScoreTitle: 'Page template scores',
|
|
283
637
|
lighthouseLinksTitle: 'Lighthouse links',
|
|
284
638
|
failedTemplatePathsTitle: 'The following templates could not be scored',
|
|
639
|
+
themeToCheckTitle: (themeToCheck, target) => `${themeToCheck} ${target} scores`,
|
|
640
|
+
themeTitle: (themeToCheck) => `Theme: ${themeToCheck}`,
|
|
641
|
+
poweredByLink: `Powered by ${uiLink('Google Lighthouse', 'https://developer.chrome.com/docs/lighthouse/overview/')}`,
|
|
285
642
|
},
|
|
286
643
|
errors: {
|
|
287
644
|
targetOptionRequired: '[--target] is required for detailed view',
|
|
@@ -321,6 +678,124 @@ export const commands = {
|
|
|
321
678
|
invalidName: 'Module not found with that name, please check the spelling of the module you are trying to download.',
|
|
322
679
|
},
|
|
323
680
|
},
|
|
681
|
+
function: {
|
|
682
|
+
describe: 'Commands for managing CMS serverless functions.',
|
|
683
|
+
subcommands: {
|
|
684
|
+
create: {
|
|
685
|
+
describe: 'Create a new CMS serverless function.',
|
|
686
|
+
errors: {
|
|
687
|
+
unusablePath: (path) => `The "${path}" is not a usable path to a directory.`,
|
|
688
|
+
},
|
|
689
|
+
positionals: {
|
|
690
|
+
name: 'Name of the function',
|
|
691
|
+
dest: 'Destination folder for the function',
|
|
692
|
+
},
|
|
693
|
+
options: {
|
|
694
|
+
functionsFolder: 'Folder to create functions in',
|
|
695
|
+
filename: 'Filename for the function',
|
|
696
|
+
endpointMethod: 'HTTP method for the function endpoint',
|
|
697
|
+
endpointPath: 'API endpoint path for the function',
|
|
698
|
+
},
|
|
699
|
+
},
|
|
700
|
+
logs: {
|
|
701
|
+
describe: 'View logs for a CMS serverless function.',
|
|
702
|
+
errors: {
|
|
703
|
+
noLogsFound: (functionPath, accountId) => `No logs were found for the function path "${functionPath}" in account "${accountId}".`,
|
|
704
|
+
},
|
|
705
|
+
examples: {
|
|
706
|
+
default: 'Get 5 most recent logs for function residing at /_hcms/api/my-endpoint',
|
|
707
|
+
follow: 'Poll for and output logs for function residing at /_hcms/api/my-endpoint immediately upon new execution',
|
|
708
|
+
limit: 'Get 10 most recent logs for function residing at /_hcms/api/my-endpoint',
|
|
709
|
+
},
|
|
710
|
+
endpointPrompt: 'Enter a serverless function endpoint:',
|
|
711
|
+
gettingLogs: (latest, functionPath) => `Getting ${latest ? 'latest ' : ''}logs for function with path: ${functionPath}.`,
|
|
712
|
+
options: {
|
|
713
|
+
compact: {
|
|
714
|
+
describe: 'output compact logs',
|
|
715
|
+
},
|
|
716
|
+
follow: {
|
|
717
|
+
describe: 'follow logs',
|
|
718
|
+
},
|
|
719
|
+
latest: {
|
|
720
|
+
describe: 'retrieve most recent log only',
|
|
721
|
+
},
|
|
722
|
+
limit: {
|
|
723
|
+
describe: 'limit the number of logs to output',
|
|
724
|
+
},
|
|
725
|
+
},
|
|
726
|
+
positionals: {
|
|
727
|
+
endpoint: {
|
|
728
|
+
describe: 'Serverless function endpoint',
|
|
729
|
+
},
|
|
730
|
+
},
|
|
731
|
+
tailLogs: (functionPath, accountId) => `Waiting for log entries for "${functionPath}" on account "${accountId}".\n`,
|
|
732
|
+
},
|
|
733
|
+
deploy: {
|
|
734
|
+
debug: {
|
|
735
|
+
startingBuildAndDeploy: (functionPath) => `Starting build and deploy for .functions folder with path: ${functionPath}`,
|
|
736
|
+
},
|
|
737
|
+
errors: {
|
|
738
|
+
buildError: (details) => `Build error: ${details}`,
|
|
739
|
+
noPackageJson: (functionPath) => `Unable to find package.json for function ${functionPath}.`,
|
|
740
|
+
notFunctionsFolder: (functionPath) => `Specified path ${functionPath} is not a .functions folder.`,
|
|
741
|
+
},
|
|
742
|
+
examples: {
|
|
743
|
+
default: 'Build and deploy a new bundle for all functions within the myFunctionFolder.functions folder',
|
|
744
|
+
},
|
|
745
|
+
loading: (functionPath, account) => `Building and deploying bundle for "${functionPath}" on ${account}`,
|
|
746
|
+
loadingFailed: (functionPath, account) => `Failed to build and deploy bundle for "${functionPath}" on ${account}`,
|
|
747
|
+
positionals: {
|
|
748
|
+
path: {
|
|
749
|
+
describe: 'Path to the ".functions" folder',
|
|
750
|
+
},
|
|
751
|
+
},
|
|
752
|
+
success: {
|
|
753
|
+
deployed: (functionPath, accountId, buildTimeSeconds) => `Built and deployed bundle from package.json for ${functionPath} on account ${accountId} in ${buildTimeSeconds}s.`,
|
|
754
|
+
},
|
|
755
|
+
},
|
|
756
|
+
list: {
|
|
757
|
+
debug: {
|
|
758
|
+
gettingFunctions: 'Getting currently deployed functions',
|
|
759
|
+
},
|
|
760
|
+
describe: 'List the currently deployed CMS serverless functions.',
|
|
761
|
+
info: {
|
|
762
|
+
noFunctions: 'No functions found',
|
|
763
|
+
},
|
|
764
|
+
options: {
|
|
765
|
+
json: {
|
|
766
|
+
describe: 'output raw json data',
|
|
767
|
+
},
|
|
768
|
+
},
|
|
769
|
+
},
|
|
770
|
+
server: {
|
|
771
|
+
debug: {
|
|
772
|
+
startingServer: (functionPath) => `Starting local test server for .functions folder with path: ${functionPath}`,
|
|
773
|
+
},
|
|
774
|
+
examples: {
|
|
775
|
+
default: 'Run a local function test server.',
|
|
776
|
+
},
|
|
777
|
+
options: {
|
|
778
|
+
contact: {
|
|
779
|
+
describe: 'Pass contact data to the test function',
|
|
780
|
+
},
|
|
781
|
+
logOutput: {
|
|
782
|
+
describe: 'Output the response body from the serverless function execution (It is suggested not to use this in production environments as it can reveal any secure data returned by the function in logs)',
|
|
783
|
+
},
|
|
784
|
+
port: {
|
|
785
|
+
describe: 'Port to run the test server on',
|
|
786
|
+
},
|
|
787
|
+
watch: {
|
|
788
|
+
describe: 'Watch the specified .functions folder for changes and restart the server',
|
|
789
|
+
},
|
|
790
|
+
},
|
|
791
|
+
positionals: {
|
|
792
|
+
path: {
|
|
793
|
+
describe: 'Path to local .functions folder',
|
|
794
|
+
},
|
|
795
|
+
},
|
|
796
|
+
},
|
|
797
|
+
},
|
|
798
|
+
},
|
|
324
799
|
},
|
|
325
800
|
},
|
|
326
801
|
create: {
|
|
@@ -400,10 +875,13 @@ export const commands = {
|
|
|
400
875
|
},
|
|
401
876
|
},
|
|
402
877
|
customObject: {
|
|
403
|
-
betaMessage:
|
|
878
|
+
betaMessage: `The Custom Object CLI is currently in beta and is subject to change.`,
|
|
404
879
|
describe: 'Commands for managing custom objects.',
|
|
405
|
-
seeMoreLink: 'View our docs to find out more.'
|
|
880
|
+
seeMoreLink: `${uiLink('View our docs to find out more', 'https://developers.hubspot.com/docs/api-reference/crm-custom-objects-v3/guide#custom-objects-api-guide')}`,
|
|
406
881
|
subcommands: {
|
|
882
|
+
schema: {
|
|
883
|
+
describe: 'Commands for managing custom object schemas.',
|
|
884
|
+
},
|
|
407
885
|
create: {
|
|
408
886
|
describe: 'Create custom object instances.',
|
|
409
887
|
errors: {
|
|
@@ -426,122 +904,117 @@ export const commands = {
|
|
|
426
904
|
inputName: "[--name] Enter the name of the schema for the custom object(s) you'd like to create:",
|
|
427
905
|
inputPath: '[--path] Enter the path to the JSON file containing the object definitions:',
|
|
428
906
|
},
|
|
429
|
-
|
|
430
|
-
describe: '
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
options: {
|
|
439
|
-
definition: {
|
|
440
|
-
describe: 'Local path to the JSON file containing the schema definition',
|
|
441
|
-
},
|
|
442
|
-
},
|
|
443
|
-
success: {
|
|
444
|
-
schemaCreated: (accountId) => `Your schema has been created in account "${accountId}"`,
|
|
445
|
-
schemaViewable: (url) => `Schema can be viewed at ${url}`,
|
|
446
|
-
},
|
|
907
|
+
createSchema: {
|
|
908
|
+
describe: 'Create a custom object schema.',
|
|
909
|
+
errors: {
|
|
910
|
+
invalidSchema: 'The schema definition is invalid. Please check the schema and try again.',
|
|
911
|
+
creationFailed: (definition) => `Schema creation from ${definition} failed`,
|
|
912
|
+
},
|
|
913
|
+
options: {
|
|
914
|
+
definition: {
|
|
915
|
+
describe: 'Local path to the JSON file containing the schema definition',
|
|
447
916
|
},
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
},
|
|
466
|
-
success: {
|
|
467
|
-
delete: (name) => `Successfully initiated deletion of ${name}`,
|
|
468
|
-
},
|
|
469
|
-
confirmDelete: (name) => `Are you sure you want to delete the schema "${name}"?`,
|
|
470
|
-
deleteCancelled: (name) => `Deletion of schema "${name}" cancelled.`,
|
|
471
|
-
selectSchema: 'Which schema would you like to delete?',
|
|
917
|
+
},
|
|
918
|
+
success: {
|
|
919
|
+
schemaCreated: (accountId) => `Your schema has been created in account "${accountId}"`,
|
|
920
|
+
schemaViewable: (url) => `Schema can be viewed at ${url}`,
|
|
921
|
+
},
|
|
922
|
+
},
|
|
923
|
+
deleteSchema: {
|
|
924
|
+
describe: 'Delete a custom object schema.',
|
|
925
|
+
errors: {
|
|
926
|
+
delete: (name) => `Unable to delete ${name}`,
|
|
927
|
+
},
|
|
928
|
+
examples: {
|
|
929
|
+
default: 'Delete "schemaName" schema',
|
|
930
|
+
},
|
|
931
|
+
positionals: {
|
|
932
|
+
name: {
|
|
933
|
+
describe: 'Name of the target schema',
|
|
472
934
|
},
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
935
|
+
},
|
|
936
|
+
options: {
|
|
937
|
+
force: {
|
|
938
|
+
describe: 'Force the deletion of the schema.',
|
|
939
|
+
},
|
|
940
|
+
},
|
|
941
|
+
success: {
|
|
942
|
+
delete: (name) => `Successfully initiated deletion of ${name}`,
|
|
943
|
+
},
|
|
944
|
+
confirmDelete: (name) => `Are you sure you want to delete the schema "${name}"?`,
|
|
945
|
+
deleteCancelled: (name) => `Deletion of schema "${name}" cancelled.`,
|
|
946
|
+
selectSchema: 'Which schema would you like to delete?',
|
|
947
|
+
},
|
|
948
|
+
fetchAllSchemas: {
|
|
949
|
+
describe: 'Fetch all custom object schemas for an account.',
|
|
950
|
+
errors: {
|
|
951
|
+
fetch: 'Unable to fetch schemas',
|
|
952
|
+
},
|
|
953
|
+
examples: {
|
|
954
|
+
default: 'Fetch all schemas for an account and put them in the current working directory',
|
|
955
|
+
specifyPath: 'Fetch all schemas for an account and put them in a directory named my/folder',
|
|
956
|
+
},
|
|
957
|
+
positionals: {
|
|
958
|
+
dest: {
|
|
959
|
+
describe: 'Local folder where schemas will be written',
|
|
960
|
+
},
|
|
961
|
+
},
|
|
962
|
+
success: {
|
|
963
|
+
fetch: (path) => `Saved schemas to ${path}`,
|
|
964
|
+
},
|
|
965
|
+
inputDest: 'Where would you like to save the schemas?',
|
|
966
|
+
},
|
|
967
|
+
fetchSchema: {
|
|
968
|
+
describe: 'Fetch a custom object schema.',
|
|
969
|
+
errors: {
|
|
970
|
+
fetch: (name) => `Unable to fetch ${name}`,
|
|
971
|
+
},
|
|
972
|
+
examples: {
|
|
973
|
+
default: 'Fetch "schemaId" schema and put it in the current working directory',
|
|
974
|
+
specifyPath: 'Fetch "schemaId" schema and put it in a directory named my/folder',
|
|
975
|
+
},
|
|
976
|
+
positionals: {
|
|
977
|
+
dest: {
|
|
978
|
+
describe: 'Local folder where schema will be written',
|
|
491
979
|
},
|
|
492
|
-
|
|
493
|
-
describe: '
|
|
494
|
-
errors: {
|
|
495
|
-
fetch: (name) => `Unable to fetch ${name}`,
|
|
496
|
-
},
|
|
497
|
-
examples: {
|
|
498
|
-
default: 'Fetch "schemaId" schema and put it in the current working directory',
|
|
499
|
-
specifyPath: 'Fetch "schemaId" schema and put it in a directory named my/folder',
|
|
500
|
-
},
|
|
501
|
-
positionals: {
|
|
502
|
-
dest: {
|
|
503
|
-
describe: 'Local folder where schema will be written',
|
|
504
|
-
},
|
|
505
|
-
name: {
|
|
506
|
-
describe: 'Name of the target schema',
|
|
507
|
-
},
|
|
508
|
-
},
|
|
509
|
-
selectSchema: 'Which schema would you like to fetch?',
|
|
510
|
-
inputDest: 'What would you like to name the destination file?',
|
|
511
|
-
success: {
|
|
512
|
-
save: (name, path) => `The schema "${name}" has been saved to "${path}"`,
|
|
513
|
-
savedToPath: (path) => `Saved schema to ${path}`,
|
|
514
|
-
},
|
|
980
|
+
name: {
|
|
981
|
+
describe: 'Name of the target schema',
|
|
515
982
|
},
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
983
|
+
},
|
|
984
|
+
selectSchema: 'Which schema would you like to fetch?',
|
|
985
|
+
inputDest: 'What would you like to name the destination file?',
|
|
986
|
+
success: {
|
|
987
|
+
save: (name, path) => `The schema "${name}" has been saved to "${path}"`,
|
|
988
|
+
savedToPath: (path) => `Saved schema to ${path}`,
|
|
989
|
+
},
|
|
990
|
+
},
|
|
991
|
+
listSchemas: {
|
|
992
|
+
describe: 'List custom object schemas.',
|
|
993
|
+
errors: {
|
|
994
|
+
list: 'Unable to list schemas',
|
|
995
|
+
},
|
|
996
|
+
},
|
|
997
|
+
updateSchema: {
|
|
998
|
+
describe: 'Update an existing custom object schema.',
|
|
999
|
+
errors: {
|
|
1000
|
+
invalidSchema: 'The schema definition is invalid. Please check the schema and try again.',
|
|
1001
|
+
update: (definition) => `Schema update from ${definition} failed`,
|
|
1002
|
+
},
|
|
1003
|
+
options: {
|
|
1004
|
+
path: {
|
|
1005
|
+
describe: 'Local path to the JSON file containing the schema definition',
|
|
521
1006
|
},
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
update: (definition) => `Schema update from ${definition} failed`,
|
|
527
|
-
},
|
|
528
|
-
options: {
|
|
529
|
-
path: {
|
|
530
|
-
describe: 'Local path to the JSON file containing the schema definition',
|
|
531
|
-
},
|
|
532
|
-
},
|
|
533
|
-
positionals: {
|
|
534
|
-
name: {
|
|
535
|
-
describe: 'Name of the target schema',
|
|
536
|
-
},
|
|
537
|
-
},
|
|
538
|
-
success: {
|
|
539
|
-
update: (accountId) => `Your schema has been updated in account "${accountId}"`,
|
|
540
|
-
viewAtUrl: (url) => `Schema can be viewed at ${url}`,
|
|
541
|
-
},
|
|
542
|
-
selectSchema: 'Which schema would you like to update?',
|
|
1007
|
+
},
|
|
1008
|
+
positionals: {
|
|
1009
|
+
name: {
|
|
1010
|
+
describe: 'Name of the target schema',
|
|
543
1011
|
},
|
|
544
1012
|
},
|
|
1013
|
+
success: {
|
|
1014
|
+
update: (accountId) => `Your schema has been updated in account "${accountId}"`,
|
|
1015
|
+
viewAtUrl: (url) => `Schema can be viewed at ${url}`,
|
|
1016
|
+
},
|
|
1017
|
+
selectSchema: 'Which schema would you like to update?',
|
|
545
1018
|
},
|
|
546
1019
|
},
|
|
547
1020
|
},
|
|
@@ -556,28 +1029,6 @@ export const commands = {
|
|
|
556
1029
|
},
|
|
557
1030
|
outputWritten: (filename) => `Output written to ${chalk.bold(filename)}`,
|
|
558
1031
|
},
|
|
559
|
-
fetch: {
|
|
560
|
-
describe: 'Fetch a file, directory or module from HubSpot and write to a path on your computer.',
|
|
561
|
-
errors: {
|
|
562
|
-
sourceRequired: 'A source to fetch is required.',
|
|
563
|
-
},
|
|
564
|
-
options: {
|
|
565
|
-
staging: {
|
|
566
|
-
describe: 'Retrieve staged changes for project',
|
|
567
|
-
},
|
|
568
|
-
assetVersion: {
|
|
569
|
-
describe: 'Specify what version of a default asset to fetch',
|
|
570
|
-
},
|
|
571
|
-
},
|
|
572
|
-
positionals: {
|
|
573
|
-
dest: {
|
|
574
|
-
describe: 'Local directory you would like the files to be placed in, relative to your current working directory',
|
|
575
|
-
},
|
|
576
|
-
src: {
|
|
577
|
-
describe: 'Path in HubSpot Design Tools',
|
|
578
|
-
},
|
|
579
|
-
},
|
|
580
|
-
},
|
|
581
1032
|
filemanager: {
|
|
582
1033
|
describe: 'Commands for managing files in the File Manager.',
|
|
583
1034
|
subcommands: {
|
|
@@ -627,75 +1078,6 @@ export const commands = {
|
|
|
627
1078
|
},
|
|
628
1079
|
},
|
|
629
1080
|
},
|
|
630
|
-
function: {
|
|
631
|
-
describe: 'Commands for managing CMS serverless functions.',
|
|
632
|
-
subcommands: {
|
|
633
|
-
deploy: {
|
|
634
|
-
debug: {
|
|
635
|
-
startingBuildAndDeploy: (functionPath) => `Starting build and deploy for .functions folder with path: ${functionPath}`,
|
|
636
|
-
},
|
|
637
|
-
errors: {
|
|
638
|
-
buildError: (details) => `Build error: ${details}`,
|
|
639
|
-
noPackageJson: (functionPath) => `Unable to find package.json for function ${functionPath}.`,
|
|
640
|
-
notFunctionsFolder: (functionPath) => `Specified path ${functionPath} is not a .functions folder.`,
|
|
641
|
-
},
|
|
642
|
-
examples: {
|
|
643
|
-
default: 'Build and deploy a new bundle for all functions within the myFunctionFolder.functions folder',
|
|
644
|
-
},
|
|
645
|
-
loading: (functionPath, account) => `Building and deploying bundle for "${functionPath}" on ${account}`,
|
|
646
|
-
loadingFailed: (functionPath, account) => `Failed to build and deploy bundle for "${functionPath}" on ${account}`,
|
|
647
|
-
positionals: {
|
|
648
|
-
path: {
|
|
649
|
-
describe: 'Path to the ".functions" folder',
|
|
650
|
-
},
|
|
651
|
-
},
|
|
652
|
-
success: {
|
|
653
|
-
deployed: (functionPath, accountId, buildTimeSeconds) => `Built and deployed bundle from package.json for ${functionPath} on account ${accountId} in ${buildTimeSeconds}s.`,
|
|
654
|
-
},
|
|
655
|
-
},
|
|
656
|
-
list: {
|
|
657
|
-
debug: {
|
|
658
|
-
gettingFunctions: 'Getting currently deployed functions',
|
|
659
|
-
},
|
|
660
|
-
describe: 'List the currently deployed CMS serverless functions.',
|
|
661
|
-
info: {
|
|
662
|
-
noFunctions: 'No functions found',
|
|
663
|
-
},
|
|
664
|
-
options: {
|
|
665
|
-
json: {
|
|
666
|
-
describe: 'output raw json data',
|
|
667
|
-
},
|
|
668
|
-
},
|
|
669
|
-
},
|
|
670
|
-
server: {
|
|
671
|
-
debug: {
|
|
672
|
-
startingServer: (functionPath) => `Starting local test server for .functions folder with path: ${functionPath}`,
|
|
673
|
-
},
|
|
674
|
-
examples: {
|
|
675
|
-
default: 'Run a local function test server.',
|
|
676
|
-
},
|
|
677
|
-
options: {
|
|
678
|
-
contact: {
|
|
679
|
-
describe: 'Pass contact data to the test function',
|
|
680
|
-
},
|
|
681
|
-
logOutput: {
|
|
682
|
-
describe: 'Output the response body from the serverless function execution (It is suggested not to use this in production environments as it can reveal any secure data returned by the function in logs)',
|
|
683
|
-
},
|
|
684
|
-
port: {
|
|
685
|
-
describe: 'Port to run the test server on',
|
|
686
|
-
},
|
|
687
|
-
watch: {
|
|
688
|
-
describe: 'Watch the specified .functions folder for changes and restart the server',
|
|
689
|
-
},
|
|
690
|
-
},
|
|
691
|
-
positionals: {
|
|
692
|
-
path: {
|
|
693
|
-
describe: 'Path to local .functions folder',
|
|
694
|
-
},
|
|
695
|
-
},
|
|
696
|
-
},
|
|
697
|
-
},
|
|
698
|
-
},
|
|
699
1081
|
hubdb: {
|
|
700
1082
|
describe: 'Commands for managing HubDB tables.',
|
|
701
1083
|
subcommands: {
|
|
@@ -802,7 +1184,7 @@ export const commands = {
|
|
|
802
1184
|
configFileUpdated: (authType, account) => `Connected account "${account}" using "${authType}" and set it as the default account`,
|
|
803
1185
|
},
|
|
804
1186
|
logs: {
|
|
805
|
-
updateConfig:
|
|
1187
|
+
updateConfig: `To update an existing config file, use the ${uiAuthCommandReference()} command.`,
|
|
806
1188
|
},
|
|
807
1189
|
errors: {
|
|
808
1190
|
invalidAccountIdProvided: `--account must be a number.`,
|
|
@@ -811,58 +1193,6 @@ export const commands = {
|
|
|
811
1193
|
globalConfigFileExists: `You are using our new global configuration for account management, which is not compatible with this command. Please use ${uiCommandReference('hs account auth')} instead.`,
|
|
812
1194
|
},
|
|
813
1195
|
},
|
|
814
|
-
lint: {
|
|
815
|
-
issuesFound: (count) => `${count} issues found.`,
|
|
816
|
-
groupName: (path) => `Linting ${path}`,
|
|
817
|
-
positionals: {
|
|
818
|
-
path: {
|
|
819
|
-
describe: 'Local folder to lint',
|
|
820
|
-
},
|
|
821
|
-
},
|
|
822
|
-
},
|
|
823
|
-
list: {
|
|
824
|
-
describe: 'List remote contents of a directory.',
|
|
825
|
-
gettingPathContents: (path) => `Getting contents of ${path}.`,
|
|
826
|
-
noFilesFoundAtPath: (path) => `No files found in ${path}.`,
|
|
827
|
-
positionals: {
|
|
828
|
-
path: {
|
|
829
|
-
describe: 'Remote directory to list contents',
|
|
830
|
-
},
|
|
831
|
-
},
|
|
832
|
-
},
|
|
833
|
-
logs: {
|
|
834
|
-
describe: 'View logs for a CMS serverless function.',
|
|
835
|
-
errors: {
|
|
836
|
-
noLogsFound: (functionPath, accountId) => `No logs were found for the function path "${functionPath}" in account "${accountId}".`,
|
|
837
|
-
},
|
|
838
|
-
examples: {
|
|
839
|
-
default: 'Get 5 most recent logs for function residing at /_hcms/api/my-endpoint',
|
|
840
|
-
follow: 'Poll for and output logs for function residing at /_hcms/api/my-endpoint immediately upon new execution',
|
|
841
|
-
limit: 'Get 10 most recent logs for function residing at /_hcms/api/my-endpoint',
|
|
842
|
-
},
|
|
843
|
-
endpointPrompt: 'Enter a serverless function endpoint:',
|
|
844
|
-
gettingLogs: (latest, functionPath) => `Getting ${latest ? 'latest ' : ''}logs for function with path: ${functionPath}.`,
|
|
845
|
-
options: {
|
|
846
|
-
compact: {
|
|
847
|
-
describe: 'output compact logs',
|
|
848
|
-
},
|
|
849
|
-
follow: {
|
|
850
|
-
describe: 'follow logs',
|
|
851
|
-
},
|
|
852
|
-
latest: {
|
|
853
|
-
describe: 'retrieve most recent log only',
|
|
854
|
-
},
|
|
855
|
-
limit: {
|
|
856
|
-
describe: 'limit the number of logs to output',
|
|
857
|
-
},
|
|
858
|
-
},
|
|
859
|
-
positionals: {
|
|
860
|
-
endpoint: {
|
|
861
|
-
describe: 'Serverless function endpoint',
|
|
862
|
-
},
|
|
863
|
-
},
|
|
864
|
-
tailLogs: (functionPath, accountId) => `Waiting for log entries for "${functionPath}" on account "${accountId}".\n`,
|
|
865
|
-
},
|
|
866
1196
|
mcp: {
|
|
867
1197
|
describe: 'Commands for managing HubSpot MCP servers.',
|
|
868
1198
|
setup: {
|
|
@@ -922,14 +1252,6 @@ export const commands = {
|
|
|
922
1252
|
shuttingDown: 'Shutting down MCP server...',
|
|
923
1253
|
},
|
|
924
1254
|
},
|
|
925
|
-
mv: {
|
|
926
|
-
describe: 'Move a remote file or folder in HubSpot. This feature is currently in beta and the CLI contract is subject to change.',
|
|
927
|
-
errors: {
|
|
928
|
-
sourcePathExists: (srcPath, destPath) => `The folder "${srcPath}" already exists in "${destPath}".`,
|
|
929
|
-
moveFailed: (srcPath, destPath, accountId) => `Moving "${srcPath}" to "${destPath}" in account ${accountId} failed`,
|
|
930
|
-
},
|
|
931
|
-
move: (srcPath, destPath, accountId) => `Moved "${srcPath}" to "${destPath}" in account ${accountId}`,
|
|
932
|
-
},
|
|
933
1255
|
open: {
|
|
934
1256
|
describe: 'Open a HubSpot page in your browser.',
|
|
935
1257
|
options: {
|
|
@@ -945,6 +1267,7 @@ export const commands = {
|
|
|
945
1267
|
selectLink: 'Select a link to open',
|
|
946
1268
|
},
|
|
947
1269
|
project: {
|
|
1270
|
+
describe: `Commands for managing projects. For more information visit our documentation https://developers.hubspot.com/docs/getting-started/quickstart`,
|
|
948
1271
|
profile: {
|
|
949
1272
|
describe: 'Commands for managing project profiles',
|
|
950
1273
|
verboseDescribe: `Commands for managing project profiles\n\nProfiles are stored at the root of your project's source directory and they make configuration dynamic. Use them to couple specialized configurations of your project to specific HubSpot accounts.\n\nRun ${uiCommandReference('hs project profile add')} to get started!`,
|
|
@@ -1016,8 +1339,8 @@ export const commands = {
|
|
|
1016
1339
|
header: 'HubSpot projects local development',
|
|
1017
1340
|
placeholderAccountSelection: 'Using default account as target account (for now)',
|
|
1018
1341
|
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.',
|
|
1019
|
-
|
|
1020
|
-
learnMoreMessageLegacy: uiLink('Learn more about the projects local dev server', 'https://developers.hubspot.com/docs/
|
|
1342
|
+
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')}`,
|
|
1343
|
+
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'),
|
|
1021
1344
|
profileProjectAccountExplanation: (accountId, profileName) => `Using account ${uiAccountDescription(accountId)} from profile ${chalk.bold(profileName)} for project upload`,
|
|
1022
1345
|
defaultProjectAccountExplanation: (accountId) => `Using default account ${uiAccountDescription(accountId)} for project upload`,
|
|
1023
1346
|
projectAccountFlagExplanation: (accountId) => `Using account ${uiAccountDescription(accountId)} provided by the --project-account flag for project upload`,
|
|
@@ -1027,21 +1350,23 @@ export const commands = {
|
|
|
1027
1350
|
},
|
|
1028
1351
|
errors: {
|
|
1029
1352
|
noProjectConfig: 'No project detected. Please run this command again from a project directory.',
|
|
1030
|
-
noAccount: (accountId) => `An error occurred while reading account ${uiAccountDescription(accountId)} from your config. Run ${
|
|
1031
|
-
noAccountsInConfig:
|
|
1353
|
+
noAccount: (accountId) => `An error occurred while reading account ${uiAccountDescription(accountId)} from your config. Run ${uiAuthCommandReference()} to re-auth this account.`,
|
|
1354
|
+
noAccountsInConfig: `No accounts found in your config. Run ${uiAuthCommandReference()} to configure a HubSpot account with the CLI.`,
|
|
1032
1355
|
invalidProjectComponents: 'Projects cannot contain both private and public apps. Move your apps to separate projects before attempting local development.',
|
|
1033
1356
|
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.`,
|
|
1034
1357
|
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')}.`,
|
|
1035
1358
|
unsupportedAccountFlagLegacy: 'The --project-account and --testing-account flags are not supported for projects with platform versions earlier than 2025.2.',
|
|
1036
|
-
|
|
1359
|
+
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',
|
|
1360
|
+
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')}.`,
|
|
1037
1361
|
},
|
|
1038
1362
|
examples: {
|
|
1039
1363
|
default: 'Start local dev for the current project',
|
|
1040
1364
|
},
|
|
1041
1365
|
options: {
|
|
1042
1366
|
profile: 'The profile to target during local dev',
|
|
1043
|
-
projectAccount: 'The id of the account to upload your project to.
|
|
1044
|
-
testingAccount: 'The id of the account to install apps and test on.
|
|
1367
|
+
projectAccount: 'The id of the account to upload your project to. Must be used with --testing-account. Supported on platform versions 2025.2 and newer.',
|
|
1368
|
+
testingAccount: 'The id of the account to install apps and test on. Must be used with --project-account. Supported on platform versions 2025.2 and newer.',
|
|
1369
|
+
account: 'The id of the account to upload your project to. Unsupported on platform versions 2025.2 and newer.',
|
|
1045
1370
|
},
|
|
1046
1371
|
},
|
|
1047
1372
|
create: {
|
|
@@ -1111,28 +1436,33 @@ export const commands = {
|
|
|
1111
1436
|
describe: 'Project name (cannot be changed)',
|
|
1112
1437
|
},
|
|
1113
1438
|
},
|
|
1114
|
-
header: {
|
|
1115
|
-
|
|
1116
|
-
link: 'Learn more about migrating apps to the projects framework',
|
|
1117
|
-
},
|
|
1118
|
-
deprecationWarning: (oldCommand, newCommand) => `The ${oldCommand} command is deprecated and will be removed. Use ${newCommand} going forward.`,
|
|
1439
|
+
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')}`,
|
|
1440
|
+
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.`,
|
|
1119
1441
|
migrationStatus: {
|
|
1120
|
-
inProgress: () => `Converting app configuration to ${chalk.bold(
|
|
1442
|
+
inProgress: () => `Converting app configuration to ${chalk.bold(LEGACY_PUBLIC_APP_FILE)} component definition ...`,
|
|
1121
1443
|
success: () => `${chalk.bold('Your app was converted and build #1 is deployed')}`,
|
|
1122
|
-
done: () =>
|
|
1123
|
-
failure: () =>
|
|
1444
|
+
done: () => `Converting app configuration to ${LEGACY_PUBLIC_APP_FILE} component definition ... DONE`,
|
|
1445
|
+
failure: () => `Converting app configuration to ${LEGACY_PUBLIC_APP_FILE} component definition ... FAILED`,
|
|
1124
1446
|
},
|
|
1125
1447
|
warning: {
|
|
1126
|
-
title:
|
|
1127
|
-
projectConversion:
|
|
1128
|
-
appConfig:
|
|
1129
|
-
buildAndDeploy: 'This will create a new project with a single app component and immediately build and deploy it to your developer account (build #1)
|
|
1130
|
-
existingApps:
|
|
1448
|
+
title: `${chalk.bold('You are about to migrate an app to the projects framework')}\n`,
|
|
1449
|
+
projectConversion: `${chalk.bold('The selected app will be converted to a project component.')}\n`,
|
|
1450
|
+
appConfig: `All supported app configuration will be moved to the ${chalk.bold(LEGACY_PUBLIC_APP_FILE)} component definition file. Future updates to those features must be made through the project build and deploy pipeline, not the developer account UI.\n`,
|
|
1451
|
+
buildAndDeploy: 'This will create a new project with a single app component and immediately build and deploy it to your developer account (build #1).\n',
|
|
1452
|
+
existingApps: `${chalk.bold('This will not affect existing app users or installs.')}`,
|
|
1131
1453
|
copyApp: 'We strongly recommend making a copy of your app to test this process in a development app before replacing production.',
|
|
1132
1454
|
},
|
|
1133
1455
|
migrationInterrupted: '\nThe command is terminated, but app migration is still in progress. Please check your account to ensure that the project and associated app have been created successfully.',
|
|
1134
1456
|
createAppPrompt: "Proceed with migrating this app to a project component (this process can't be aborted)?",
|
|
1135
1457
|
projectDetailsLink: 'View project details in your developer account',
|
|
1458
|
+
errors: {
|
|
1459
|
+
noAppsForProject: (projectName) => `No apps associated with project ${projectName}`,
|
|
1460
|
+
noAccountConfig: 'No account configuration found. Please check your account settings.',
|
|
1461
|
+
projectAlreadyExists: (projectName) => `A project with name ${projectName} already exists. Please choose another name.`,
|
|
1462
|
+
invalidApp: (appId) => `Could not migrate appId ${appId}. This app cannot be migrated at this time. Please choose another public app.`,
|
|
1463
|
+
migrationFailed: 'Migration Failed',
|
|
1464
|
+
notAllowedWithinProject: `This command cannot be run from within a project directory. Run the command again from outside a project directory. If you are trying to migrate a project, run ${uiCommandReference('hs project migrate')}`,
|
|
1465
|
+
},
|
|
1136
1466
|
},
|
|
1137
1467
|
migrate: {
|
|
1138
1468
|
preamble: (platformVersion) => `This command will migrate an existing project to platformVersion ${platformVersion}. It will walk you through the fields required to complete the migration and download the new project source code into the project source directory. It will also copy all of your existing files to a new directory (archive) in case you need access to your old files later.`,
|
|
@@ -1159,15 +1489,16 @@ export const commands = {
|
|
|
1159
1489
|
},
|
|
1160
1490
|
},
|
|
1161
1491
|
cloneStatus: {
|
|
1162
|
-
inProgress:
|
|
1163
|
-
done:
|
|
1492
|
+
inProgress: `Cloning app configuration to ${chalk.bold(LEGACY_PUBLIC_APP_FILE)} component definition ...`,
|
|
1493
|
+
done: `Cloning app configuration to ${LEGACY_PUBLIC_APP_FILE} component definition ... DONE`,
|
|
1164
1494
|
success: (dest) => `Your cloned project was created in ${dest}`,
|
|
1165
|
-
failure:
|
|
1495
|
+
failure: `Cloning app configuration to ${LEGACY_PUBLIC_APP_FILE} component definition ... FAILED`,
|
|
1166
1496
|
},
|
|
1167
1497
|
errors: {
|
|
1168
1498
|
invalidAccountTypeTitle: () => `${chalk.bold('Developer account not targeted')}`,
|
|
1169
1499
|
invalidAccountTypeDescription: (useCommand, authCommand) => `Only public apps created in a developer account can be converted to a project component. Select a connected developer account with ${useCommand} or ${authCommand} and try again.`,
|
|
1170
1500
|
couldNotWriteConfigPath: (configPath) => `Failed to write project config at ${configPath}`,
|
|
1501
|
+
noAccountConfig: (accountId) => `No account config found for ${uiAccountDescription(accountId)}`,
|
|
1171
1502
|
},
|
|
1172
1503
|
},
|
|
1173
1504
|
add: {
|
|
@@ -1274,7 +1605,7 @@ export const commands = {
|
|
|
1274
1605
|
},
|
|
1275
1606
|
logs: {
|
|
1276
1607
|
showingLogs: 'Showing logs for:',
|
|
1277
|
-
hubspotLogsDirectLink: 'View function logs in HubSpot',
|
|
1608
|
+
hubspotLogsDirectLink: (url) => `${uiLink('View function logs in HubSpot', url)}`,
|
|
1278
1609
|
noLogsFound: (name) => `No logs were found for "${name}"`,
|
|
1279
1610
|
},
|
|
1280
1611
|
table: {
|
|
@@ -1315,11 +1646,11 @@ export const commands = {
|
|
|
1315
1646
|
logs: {
|
|
1316
1647
|
buildSucceeded: (buildId) => `Build #${buildId} succeeded\n`,
|
|
1317
1648
|
readyToGoLive: '🚀 Ready to take your project live?',
|
|
1318
|
-
runCommand: (command) => `Run \`${command}\``,
|
|
1319
|
-
autoDeployDisabled: (deployCommand) => `Automatic deploys are disabled for this project. Run ${deployCommand} to deploy this build.`,
|
|
1649
|
+
runCommand: (command) => `Run \`${uiCommandReference(command)}\``,
|
|
1650
|
+
autoDeployDisabled: (deployCommand) => `Automatic deploys are disabled for this project. Run ${uiCommandReference(deployCommand)} to deploy this build.`,
|
|
1320
1651
|
},
|
|
1321
1652
|
errors: {
|
|
1322
|
-
projectLockedError:
|
|
1653
|
+
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.`,
|
|
1323
1654
|
},
|
|
1324
1655
|
options: {
|
|
1325
1656
|
forceCreate: {
|
|
@@ -1328,6 +1659,9 @@ export const commands = {
|
|
|
1328
1659
|
message: {
|
|
1329
1660
|
describe: 'Add a message when you upload your project and create a build',
|
|
1330
1661
|
},
|
|
1662
|
+
profile: {
|
|
1663
|
+
describe: 'Profile to target for this upload',
|
|
1664
|
+
},
|
|
1331
1665
|
},
|
|
1332
1666
|
},
|
|
1333
1667
|
watch: {
|
|
@@ -1365,6 +1699,7 @@ export const commands = {
|
|
|
1365
1699
|
uploadFailed: (remotePath, filePath) => `Failed to upload file "${filePath}" to "${remotePath}"`,
|
|
1366
1700
|
deleteFileFailed: (remotePath) => `Failed to delete file "${remotePath}"`,
|
|
1367
1701
|
deleteFolderFailed: (remotePath) => `Failed to delete folder "${remotePath}"`,
|
|
1702
|
+
v2ApiError: (platformVersion) => `${uiCommandReference('hs project watch')} is not supported for platform version '${platformVersion}' use ${uiCommandReference('hs project dev')} instead to develop locally. ${uiLink('How to develop locally', 'https://developers.hubspot.com/docs/guides/crm/ui-extensions/local-development')}`,
|
|
1368
1703
|
},
|
|
1369
1704
|
},
|
|
1370
1705
|
download: {
|
|
@@ -1379,6 +1714,7 @@ export const commands = {
|
|
|
1379
1714
|
errors: {
|
|
1380
1715
|
downloadFailed: 'Something went wrong downloading the project',
|
|
1381
1716
|
projectNotFound: (projectName, accountId) => `Your project ${chalk.bold(projectName)} could not be found in ${accountId}`,
|
|
1717
|
+
noBuildIdToDownload: 'No build ID available for download',
|
|
1382
1718
|
},
|
|
1383
1719
|
warnings: {
|
|
1384
1720
|
cannotDownloadWithinProject: 'Cancelling project download. Please run the command again outside the context of an existing project.',
|
|
@@ -1426,8 +1762,8 @@ export const commands = {
|
|
|
1426
1762
|
addingDependenciesToLocation: (dependencies, directory) => `Installing ${dependencies} in ${directory}`,
|
|
1427
1763
|
installingDependenciesFailed: (directory) => `Installing dependencies for ${directory} failed`,
|
|
1428
1764
|
noProjectConfig: 'No project detected. Run this command from a project directory.',
|
|
1429
|
-
noPackageJsonInProject: (projectName
|
|
1430
|
-
packageManagerNotInstalled: (packageManager
|
|
1765
|
+
noPackageJsonInProject: (projectName) => `No dependencies to install. The project ${projectName} folder might be missing component or subcomponent files. ${uiLink('Learn how to create a project from scratch', 'https://developers.hubspot.com/docs/apps/developer-platform/build-apps/create-an-app#customize-a-new-project-using-the-cli')}`,
|
|
1766
|
+
packageManagerNotInstalled: (packageManager) => `This command depends on ${packageManager}, install ${uiLink(packageManager, 'https://docs.npmjs.com/downloading-and-installing-node-js-and-npm')}`,
|
|
1431
1767
|
},
|
|
1432
1768
|
validate: {
|
|
1433
1769
|
describe: 'Validate the project before uploading',
|
|
@@ -1444,21 +1780,46 @@ export const commands = {
|
|
|
1444
1780
|
},
|
|
1445
1781
|
},
|
|
1446
1782
|
},
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1783
|
+
list: {
|
|
1784
|
+
describe: 'List uploaded projects that exist in the current target account',
|
|
1785
|
+
projects: `${chalk.bold('Projects')}:`,
|
|
1786
|
+
labels: {
|
|
1787
|
+
name: 'Name',
|
|
1788
|
+
platformVersion: 'Platform Version',
|
|
1789
|
+
},
|
|
1790
|
+
errors: {
|
|
1791
|
+
noProjectsFound: (accountId) => `No projects found for account ${uiAccountDescription(accountId)}`,
|
|
1792
|
+
},
|
|
1456
1793
|
},
|
|
1457
1794
|
},
|
|
1458
1795
|
sandbox: {
|
|
1459
1796
|
describe: 'Commands for managing sandboxes.',
|
|
1460
1797
|
subcommands: {
|
|
1461
1798
|
create: {
|
|
1799
|
+
describe: 'Create a sandbox account.',
|
|
1800
|
+
failure: {
|
|
1801
|
+
noAccountConfig: (accountId) => `No account config found for ${uiAccountDescription(accountId)}. Run ${uiAuthCommandReference()} to add it.`,
|
|
1802
|
+
invalidAccountType: (accountType, accountName) => `Sandboxes must be created from a production account. Your current default account ${chalk.bold(accountName)} is a ${chalk.bold(accountType)}. \n- Run ${uiCommandReference('hs account use')} to switch to your default account to your production account. \n- Run ${uiAuthCommandReference()} to connect a production account to the HubSpot CLI.\n`,
|
|
1803
|
+
noSandboxAccountConfig: (accountId) => `No account config found for ${uiAccountDescription(accountId)}. Run ${uiAuthCommandReference()} to add the sandbox account.`,
|
|
1804
|
+
optionMissing: {
|
|
1805
|
+
type: 'Type is required when using --force. Use --type=developer or --type=standard.',
|
|
1806
|
+
name: 'Name is required when using --force. Use --name=YourSandboxName.',
|
|
1807
|
+
},
|
|
1808
|
+
},
|
|
1809
|
+
options: {
|
|
1810
|
+
force: {
|
|
1811
|
+
describe: 'Skips all prompts and uses provided options.',
|
|
1812
|
+
},
|
|
1813
|
+
name: {
|
|
1814
|
+
describe: 'Name of the sandbox account to create',
|
|
1815
|
+
},
|
|
1816
|
+
type: {
|
|
1817
|
+
describe: 'Type of sandbox to create (developer or standard)',
|
|
1818
|
+
},
|
|
1819
|
+
},
|
|
1820
|
+
examples: {
|
|
1821
|
+
default: 'Creates a standard sandbox named MySandboxAccount.',
|
|
1822
|
+
},
|
|
1462
1823
|
developer: {
|
|
1463
1824
|
loading: {
|
|
1464
1825
|
add: (accountName) => `Creating developer sandbox ${chalk.bold(accountName)}`,
|
|
@@ -1470,11 +1831,11 @@ export const commands = {
|
|
|
1470
1831
|
},
|
|
1471
1832
|
failure: {
|
|
1472
1833
|
invalidUser: (accountName, parentAccountName) => `Couldn't create ${chalk.bold(accountName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to create the sandbox. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
1473
|
-
limit: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} developer sandboxes. \n- To connect a developer sandbox to your HubSpot CLI, run ${
|
|
1474
|
-
alreadyInConfig: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} developer sandboxes. \n- To use an existing developer sandbox, run ${chalk.bold('hs
|
|
1834
|
+
limit: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} developer sandboxes. \n- To connect a developer sandbox to your HubSpot CLI, run ${uiAuthCommandReference()} and follow the prompts.`,
|
|
1835
|
+
alreadyInConfig: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} developer sandboxes. \n- To use an existing developer sandbox, run ${chalk.bold('hs account use')}.`,
|
|
1475
1836
|
scopes: {
|
|
1476
1837
|
message: "The personal access key you provided doesn't include developer sandbox permissions.",
|
|
1477
|
-
instructions: (accountName, url) => `To update CLI permissions for "${accountName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes developer sandbox permissions. \n- Update the CLI config for this account by running ${
|
|
1838
|
+
instructions: (accountName, url) => `To update CLI permissions for "${accountName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes developer sandbox permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
1478
1839
|
},
|
|
1479
1840
|
},
|
|
1480
1841
|
},
|
|
@@ -1489,11 +1850,11 @@ export const commands = {
|
|
|
1489
1850
|
},
|
|
1490
1851
|
failure: {
|
|
1491
1852
|
invalidUser: (accountName, parentAccountName) => `Couldn't create ${chalk.bold(accountName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to create the sandbox. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
1492
|
-
limit: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} standard sandboxes. \n- To connect a standard sandbox to your HubSpot CLI, run ${
|
|
1493
|
-
alreadyInConfig: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} standard sandboxes. \n- To use an existing standard sandbox, run ${chalk.bold('hs
|
|
1853
|
+
limit: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} standard sandboxes. \n- To connect a standard sandbox to your HubSpot CLI, run ${uiAuthCommandReference()} and follow the prompts.`,
|
|
1854
|
+
alreadyInConfig: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} standard sandboxes. \n- To use an existing standard sandbox, run ${chalk.bold('hs account use')}.`,
|
|
1494
1855
|
scopes: {
|
|
1495
1856
|
message: "The personal access key you provided doesn't include standard sandbox permissions.",
|
|
1496
|
-
instructions: (accountName, url) => `To update CLI permissions for "${accountName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes standard sandbox permissions. \n- Update the CLI config for this account by running ${
|
|
1857
|
+
instructions: (accountName, url) => `To update CLI permissions for "${accountName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes standard sandbox permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
1497
1858
|
},
|
|
1498
1859
|
},
|
|
1499
1860
|
},
|
|
@@ -1501,28 +1862,28 @@ export const commands = {
|
|
|
1501
1862
|
delete: {
|
|
1502
1863
|
describe: 'Delete a sandbox account.',
|
|
1503
1864
|
debug: {
|
|
1504
|
-
deleting: (account) => `Deleting sandbox account "${account}"`,
|
|
1865
|
+
deleting: (account) => `Deleting sandbox account "${uiAccountDescription(account)}"`,
|
|
1505
1866
|
error: 'Error deleting sandbox account:',
|
|
1506
1867
|
},
|
|
1507
1868
|
examples: {
|
|
1508
1869
|
default: 'Deletes the sandbox account named MySandboxAccount.',
|
|
1509
1870
|
},
|
|
1510
|
-
confirm: (account) => `Delete sandbox ${
|
|
1511
|
-
defaultAccountWarning: (account) => `The sandbox ${
|
|
1871
|
+
confirm: (account) => `Delete sandbox ${uiAccountDescription(account)}? All data for this sandbox will be permanently deleted.`,
|
|
1872
|
+
defaultAccountWarning: (account) => `The sandbox ${uiAccountDescription(account)} is currently set as the default account.`,
|
|
1512
1873
|
success: {
|
|
1513
1874
|
delete: (account, sandboxHubId) => `Sandbox "${account}" with portalId "${sandboxHubId}" was deleted successfully.`,
|
|
1514
1875
|
deleteDefault: (account, sandboxHubId) => `Sandbox "${account}" with portalId "${sandboxHubId}" was deleted successfully and removed as the default account.`,
|
|
1515
1876
|
configFileUpdated: (account, configFilename) => `Removed account ${account} from ${configFilename}.`,
|
|
1516
1877
|
},
|
|
1517
1878
|
failure: {
|
|
1518
|
-
invalidUser: (
|
|
1879
|
+
invalidUser: (account, parentAccount) => `Couldn't delete ${uiAccountDescription(account)} because your account has been removed from ${uiAccountDescription(parentAccount)} or your permission set doesn't allow you to delete the sandbox. To update your permissions, contact a super admin in ${uiAccountDescription(parentAccount)}.`,
|
|
1519
1880
|
noAccount: 'No account specified. Specify an account by using the --account flag.',
|
|
1520
|
-
noSandboxAccounts:
|
|
1881
|
+
noSandboxAccounts: `There are no sandboxes connected to the CLI. To add a sandbox, run ${uiAuthCommandReference()}.`,
|
|
1521
1882
|
noSandboxAccountId: "This sandbox can't be deleted from the CLI because we could not find the associated sandbox account.",
|
|
1522
|
-
noParentAccount:
|
|
1523
|
-
objectNotFound: (account) => `Sandbox ${
|
|
1524
|
-
noParentPortalAvailable: (command, url) => `This sandbox can't be deleted from the CLI because you haven't given the CLI access to its parent account. To do this, run ${command}. You can also delete the sandbox from the HubSpot management tool: ${chalk.bold(url)}.`,
|
|
1525
|
-
invalidKey: (account
|
|
1883
|
+
noParentAccount: `This sandbox can't be deleted from the CLI because you haven't given the CLI access to its parent account. To do this, run ${uiAuthCommandReference()} and add the parent account.`,
|
|
1884
|
+
objectNotFound: (account) => `Sandbox ${uiAccountDescription(account)} may have been deleted through the UI. The account has been removed from the config.`,
|
|
1885
|
+
noParentPortalAvailable: (command, url) => `This sandbox can't be deleted from the CLI because you haven't given the CLI access to its parent account. To do this, run ${uiCommandReference(command)}. You can also delete the sandbox from the HubSpot management tool: ${chalk.bold(url)}.`,
|
|
1886
|
+
invalidKey: (account) => `Your personal access key for account ${uiAccountDescription(account)} is inactive. To re-authenticate, please run ${uiAuthCommandReference()}.`,
|
|
1526
1887
|
},
|
|
1527
1888
|
options: {
|
|
1528
1889
|
force: {
|
|
@@ -1547,7 +1908,13 @@ export const commands = {
|
|
|
1547
1908
|
invalidUser: (accountName, parentAccountName) => `Couldn't sync ${chalk.bold(accountName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to sync the sandbox. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
1548
1909
|
scopes: {
|
|
1549
1910
|
message: "The personal access key you provided doesn't include sandbox sync permissions.",
|
|
1550
|
-
instructions: (accountName, url) => `To update CLI permissions for "${accountName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes sandbox sync permissions. \n- Update the CLI config for this account by running ${
|
|
1911
|
+
instructions: (accountName, url) => `To update CLI permissions for "${accountName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes sandbox sync permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
1912
|
+
},
|
|
1913
|
+
},
|
|
1914
|
+
confirm: {
|
|
1915
|
+
syncContactRecords: {
|
|
1916
|
+
standard: 'Copy up to 5000 most recently updated contacts? This includes up to 100 of each of the following: associated deals, tickets, and companies.',
|
|
1917
|
+
developer: 'Include up to 100 most recently updated contacts? This includes up to 100 of each of the following: associated deals, tickets, and companies. This can be done once per sandbox.',
|
|
1551
1918
|
},
|
|
1552
1919
|
},
|
|
1553
1920
|
},
|
|
@@ -1555,28 +1922,6 @@ export const commands = {
|
|
|
1555
1922
|
app: {
|
|
1556
1923
|
describe: 'Commands for managing apps.',
|
|
1557
1924
|
subcommands: {
|
|
1558
|
-
install: {
|
|
1559
|
-
describe: 'Install an OAuth app into a test account.',
|
|
1560
|
-
options: {
|
|
1561
|
-
appUid: 'The uid of the app to install',
|
|
1562
|
-
projectName: 'The name of the project that contains the app',
|
|
1563
|
-
},
|
|
1564
|
-
positionals: {
|
|
1565
|
-
testAccountId: 'The id of the test account to install the app into',
|
|
1566
|
-
},
|
|
1567
|
-
errors: {
|
|
1568
|
-
mustSpecifyProjectName: `You must specify a project name. Use the ${uiCommandReference('--project-name')} flag to specify the project name or run this command from within a project directory.`,
|
|
1569
|
-
noAppUidFound: `No app uid found. Please specify the app uid with the ${uiCommandReference('--app-uid')} flag or run this command from within a project that contains an app.`,
|
|
1570
|
-
appMustBeOauth: 'This command only supports installing oauth apps. Please specify an app with oauth auth type.',
|
|
1571
|
-
},
|
|
1572
|
-
polling: {
|
|
1573
|
-
start: 'Installing app...',
|
|
1574
|
-
success: 'App installed successfully',
|
|
1575
|
-
failure: 'App installation failed',
|
|
1576
|
-
error: 'Error installing app',
|
|
1577
|
-
},
|
|
1578
|
-
example: 'Install the app with uid my-app-uid from the project named "my-project" into the target account with id 1234567890',
|
|
1579
|
-
},
|
|
1580
1925
|
secret: {
|
|
1581
1926
|
describe: 'Commands for managing secrets.',
|
|
1582
1927
|
subcommands: {
|
|
@@ -1649,7 +1994,7 @@ export const commands = {
|
|
|
1649
1994
|
describe: 'Create a new secret.',
|
|
1650
1995
|
errors: {
|
|
1651
1996
|
add: (secretName) => `The secret "${secretName}" was not added`,
|
|
1652
|
-
alreadyExists: (secretName
|
|
1997
|
+
alreadyExists: (secretName) => `The secret "${secretName}" already exists, it's value can be modified with ${uiCommandReference('hs secret update')}`,
|
|
1653
1998
|
},
|
|
1654
1999
|
positionals: {
|
|
1655
2000
|
name: {
|
|
@@ -1657,7 +2002,7 @@ export const commands = {
|
|
|
1657
2002
|
},
|
|
1658
2003
|
},
|
|
1659
2004
|
success: {
|
|
1660
|
-
add: (secretName,
|
|
2005
|
+
add: (secretName, accountId) => `The secret "${secretName}" was added to the HubSpot account: ${uiAccountDescription(accountId)}`,
|
|
1661
2006
|
},
|
|
1662
2007
|
},
|
|
1663
2008
|
delete: {
|
|
@@ -1675,7 +2020,7 @@ export const commands = {
|
|
|
1675
2020
|
},
|
|
1676
2021
|
},
|
|
1677
2022
|
success: {
|
|
1678
|
-
delete: (secretName,
|
|
2023
|
+
delete: (secretName, accountId) => `The secret "${secretName}" was deleted from the HubSpot account: ${uiAccountDescription(accountId)}`,
|
|
1679
2024
|
},
|
|
1680
2025
|
},
|
|
1681
2026
|
list: {
|
|
@@ -1698,161 +2043,12 @@ export const commands = {
|
|
|
1698
2043
|
},
|
|
1699
2044
|
},
|
|
1700
2045
|
success: {
|
|
1701
|
-
update: (secretName,
|
|
2046
|
+
update: (secretName, accountId) => `The secret "${secretName}" was updated in the HubSpot account: ${accountId}`,
|
|
1702
2047
|
updateExplanation: 'Existing serverless functions will start using this new value within 10 seconds.',
|
|
1703
2048
|
},
|
|
1704
2049
|
},
|
|
1705
2050
|
},
|
|
1706
2051
|
},
|
|
1707
|
-
theme: {
|
|
1708
|
-
describe: 'Commands for managing themes.',
|
|
1709
|
-
subcommands: {
|
|
1710
|
-
generateSelectors: {
|
|
1711
|
-
describe: 'Automatically generates an editor-preview.json file for the given theme. The selectors this command generates are not perfect, so please edit editor-preview.json after running.',
|
|
1712
|
-
errors: {
|
|
1713
|
-
invalidPath: (themePath) => `Could not find directory "${themePath}"`,
|
|
1714
|
-
fieldsNotFound: "Unable to find theme's fields.json.",
|
|
1715
|
-
noSelectorsFound: 'No selectors found.',
|
|
1716
|
-
},
|
|
1717
|
-
success: (themePath, selectorsPath) => `Selectors generated for ${themePath}, please double check the selectors generated at ${selectorsPath} before uploading the theme.`,
|
|
1718
|
-
positionals: {
|
|
1719
|
-
path: "The path of the theme you'd like to generate an editor-preview.json for.",
|
|
1720
|
-
},
|
|
1721
|
-
},
|
|
1722
|
-
marketplaceValidate: {
|
|
1723
|
-
describe: 'Validate a theme for the marketplace.',
|
|
1724
|
-
errors: {
|
|
1725
|
-
invalidPath: (path) => `The path "${path}" is not a path to a folder in the Design Manager`,
|
|
1726
|
-
},
|
|
1727
|
-
logs: {
|
|
1728
|
-
validatingTheme: (path) => `Validating theme "${path}" \n`,
|
|
1729
|
-
},
|
|
1730
|
-
results: {
|
|
1731
|
-
required: 'Required validation results:',
|
|
1732
|
-
recommended: 'Recommended validation results:',
|
|
1733
|
-
warnings: {
|
|
1734
|
-
file: (file) => `File: ${file}`,
|
|
1735
|
-
lineNumber: (line) => `Line number: ${line}`,
|
|
1736
|
-
},
|
|
1737
|
-
noErrors: 'No errors',
|
|
1738
|
-
},
|
|
1739
|
-
positionals: {
|
|
1740
|
-
path: {
|
|
1741
|
-
describe: 'Path to the theme within the Design Manager.',
|
|
1742
|
-
},
|
|
1743
|
-
},
|
|
1744
|
-
},
|
|
1745
|
-
preview: {
|
|
1746
|
-
describe: 'Upload and watch a theme directory on your computer for changes and start a local development server to preview theme changes on a site.',
|
|
1747
|
-
errors: {
|
|
1748
|
-
invalidPath: (path) => `The path "${path}" is not a path to a directory`,
|
|
1749
|
-
noThemeComponents: 'Your project has no theme components available to preview.',
|
|
1750
|
-
uploadFailed: (src, dest) => `Uploading file "${src}" to "${dest}" failed`,
|
|
1751
|
-
},
|
|
1752
|
-
positionals: {
|
|
1753
|
-
src: 'Path to the local directory your theme is in, relative to your current working directory',
|
|
1754
|
-
dest: 'Path in HubSpot Design Tools. Can be a net new path. If you wish to preview a site page using your theme changes it must match the path of the theme used by the site.',
|
|
1755
|
-
},
|
|
1756
|
-
options: {
|
|
1757
|
-
notify: 'Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file',
|
|
1758
|
-
noSsl: 'Disable HTTPS',
|
|
1759
|
-
port: 'The port on which to start the local server',
|
|
1760
|
-
},
|
|
1761
|
-
initialUploadProgressBar: {
|
|
1762
|
-
start: 'Starting...',
|
|
1763
|
-
uploading: 'Uploading...',
|
|
1764
|
-
finish: 'Complete!',
|
|
1765
|
-
},
|
|
1766
|
-
logs: {
|
|
1767
|
-
processExited: 'Stopping dev server...',
|
|
1768
|
-
},
|
|
1769
|
-
},
|
|
1770
|
-
},
|
|
1771
|
-
},
|
|
1772
|
-
module: {
|
|
1773
|
-
describe: 'Commands for working with modules, including marketplace validation with the marketplace-validate subcommand.',
|
|
1774
|
-
subcommands: {
|
|
1775
|
-
marketplaceValidate: {
|
|
1776
|
-
describe: 'Validate a module for the marketplace. Make sure to include the suffix .module in the path to the module within the Design Manager.',
|
|
1777
|
-
errors: {
|
|
1778
|
-
invalidPath: (path) => `The path "${path}" is not a path to a module within the Design Manager.`,
|
|
1779
|
-
},
|
|
1780
|
-
logs: {
|
|
1781
|
-
validatingModule: (path) => `Validating module "${path}" \n`,
|
|
1782
|
-
},
|
|
1783
|
-
results: {
|
|
1784
|
-
required: 'Required validation results:',
|
|
1785
|
-
recommended: 'Recommended validation results:',
|
|
1786
|
-
warnings: {
|
|
1787
|
-
file: (file) => `File: ${file}`,
|
|
1788
|
-
lineNumber: (line) => `Line number: ${line}`,
|
|
1789
|
-
},
|
|
1790
|
-
noErrors: 'No errors',
|
|
1791
|
-
},
|
|
1792
|
-
positionals: {
|
|
1793
|
-
src: 'Path to the module within the Design Manager.',
|
|
1794
|
-
},
|
|
1795
|
-
},
|
|
1796
|
-
},
|
|
1797
|
-
},
|
|
1798
|
-
upload: {
|
|
1799
|
-
describe: 'Upload a folder or file from your computer to the HubSpot CMS.',
|
|
1800
|
-
errors: {
|
|
1801
|
-
destinationRequired: 'A destination path needs to be passed',
|
|
1802
|
-
fileIgnored: (path) => `The file "${path}" is being ignored via an .hsignore rule`,
|
|
1803
|
-
invalidPath: (path) => `The path "${path}" is not a path to a file or folder`,
|
|
1804
|
-
uploadFailed: (src, dest) => `Uploading file "${src}" to "${dest}" failed`,
|
|
1805
|
-
someFilesFailed: (dest) => `One or more files failed to upload to "${dest}" in the Design Manager`,
|
|
1806
|
-
deleteFailed: (path, accountId) => `Deleting "${path}" from account ${uiAccountDescription(accountId)} failed`,
|
|
1807
|
-
},
|
|
1808
|
-
options: {
|
|
1809
|
-
options: 'Options to pass to javascript fields files',
|
|
1810
|
-
saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.",
|
|
1811
|
-
convertFields: 'If true, converts any javascript fields files contained in module folder or project root.',
|
|
1812
|
-
clean: 'Will delete the destination directory and its contents before uploading. This will also clear the global content associated with any global partial templates and modules.',
|
|
1813
|
-
force: 'Skips confirmation prompts when doing a clean upload.',
|
|
1814
|
-
},
|
|
1815
|
-
previewUrl: (previewUrl) => `To preview this theme, visit: ${previewUrl}`,
|
|
1816
|
-
positionals: {
|
|
1817
|
-
src: 'Path to the local file, relative to your current working directory.',
|
|
1818
|
-
dest: 'Path in HubSpot Design Tools, can be a net new path.',
|
|
1819
|
-
},
|
|
1820
|
-
success: {
|
|
1821
|
-
fileUploaded: (src, dest, accountId) => `Uploaded file from "${src}" to "${dest}" in the Design Manager of account ${uiAccountDescription(accountId)}`,
|
|
1822
|
-
uploadComplete: (dest) => `Uploading files to "${dest}" in the Design Manager is complete`,
|
|
1823
|
-
},
|
|
1824
|
-
uploading: (src, dest, accountId) => `Uploading files from "${src}" to "${dest}" in the Design Manager of account ${uiAccountDescription(accountId)}`,
|
|
1825
|
-
notUploaded: (src) => `There was an error processing "${src}". The file has not been uploaded.`,
|
|
1826
|
-
cleaning: (filePath, accountId) => `Removing "${filePath}" from account ${uiAccountDescription(accountId)} and uploading local...`,
|
|
1827
|
-
confirmCleanUpload: (filePath, accountId) => `You are about to delete the directory "${filePath}" and its contents on HubSpot account ${uiAccountDescription(accountId)} before uploading. This will also clear the global content associated with any global partial templates and modules. Are you sure you want to do this?`,
|
|
1828
|
-
},
|
|
1829
|
-
watch: {
|
|
1830
|
-
describe: 'Watch a directory on your computer for changes and upload the changed files to the HubSpot CMS.',
|
|
1831
|
-
errors: {
|
|
1832
|
-
folderFailed: (src, dest, accountId) => `Initial uploading of folder "${src}" to "${dest}" in account ${uiAccountDescription(accountId)} had failures`,
|
|
1833
|
-
fileFailed: (file, dest, accountId) => `Upload of file "${file}" to "${dest}" in account ${uiAccountDescription(accountId)} failed`,
|
|
1834
|
-
destinationRequired: 'A destination directory needs to be passed',
|
|
1835
|
-
invalidPath: (path) => `The "${path}" is not a path to a directory`,
|
|
1836
|
-
},
|
|
1837
|
-
options: {
|
|
1838
|
-
disableInitial: 'Disable the initial upload when watching a directory (default)',
|
|
1839
|
-
initialUpload: 'Upload directory before watching for updates',
|
|
1840
|
-
notify: 'Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file',
|
|
1841
|
-
remove: 'Will cause watch to delete files in your HubSpot account that are not found locally.',
|
|
1842
|
-
convertFields: 'If true, converts any javascript fields files contained in module folder or project root.',
|
|
1843
|
-
saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.",
|
|
1844
|
-
options: 'Options to pass to javascript fields files',
|
|
1845
|
-
},
|
|
1846
|
-
positionals: {
|
|
1847
|
-
src: 'Path to the local directory your files are in, relative to your current working directory',
|
|
1848
|
-
dest: 'Path in HubSpot Design Tools. Can be a net new path',
|
|
1849
|
-
},
|
|
1850
|
-
warnings: {
|
|
1851
|
-
disableInitial: `Passing the "${chalk.bold('--disable-initial')}" option is no longer necessary. Running "${uiCommandReference('hs watch')}" no longer uploads the watched directory by default.`,
|
|
1852
|
-
initialUpload: `To upload the directory run "${uiCommandReference('hs upload')}" beforehand or add the "${chalk.bold('--initial-upload')}" option when running "${uiCommandReference('hs watch')}".`,
|
|
1853
|
-
notUploaded: (path) => `The "${uiCommandReference('hs watch')}" command no longer uploads the watched directory when started. The directory "${path}" was not uploaded.`,
|
|
1854
|
-
},
|
|
1855
|
-
},
|
|
1856
2052
|
convertFields: {
|
|
1857
2053
|
describe: 'Converts a specific JavaScript fields file of a module or theme to JSON.',
|
|
1858
2054
|
positionals: {
|
|
@@ -1927,18 +2123,42 @@ export const commands = {
|
|
|
1927
2123
|
example: (name) => `Create a test account config file with the name "${name}"`,
|
|
1928
2124
|
},
|
|
1929
2125
|
delete: {
|
|
1930
|
-
describe: 'Delete a test account config
|
|
2126
|
+
describe: 'Delete a test account from your HubSpot account and CLI config',
|
|
1931
2127
|
pathPrompt: '[--path] What is the path to the test account config?',
|
|
2128
|
+
info: {
|
|
2129
|
+
deletionCanceled: 'Deletion canceled by user',
|
|
2130
|
+
accountNotFoundWithId: (id) => `No account was found with ID ${id}`,
|
|
2131
|
+
replaceDefaultAccount: (testAccountId, parentAccountName) => `The removed test account ${chalk.bold(testAccountId)} was the default account. Replaced default account to parent account: ${chalk.bold(parentAccountName)}`,
|
|
2132
|
+
},
|
|
2133
|
+
prompts: {
|
|
2134
|
+
selectTestAccounts: 'Select test account(s) to delete',
|
|
2135
|
+
confirmDeletion: 'All data for the account will be permanently deleted. Any connected apps will have their access tokens revoked. Do you wish to proceed?',
|
|
2136
|
+
},
|
|
1932
2137
|
errors: {
|
|
1933
|
-
failedToDelete:
|
|
2138
|
+
failedToDelete: (testAccountToDelete) => `Failed to delete test account with ID ${testAccountToDelete}`,
|
|
2139
|
+
failedToSelectAccount: 'Failed to select a test account to delete',
|
|
2140
|
+
noAccountsToDelete: (accountId) => `There are no test accounts associated with ${uiAccountDescription(accountId)} to delete. Try running ${uiCommandReference('hs account use')} to change your default account`,
|
|
2141
|
+
failedToDeleteFromConfig: (testAccountToDelete) => `Failed to delete test account with ID ${testAccountToDelete} from the CLI config`,
|
|
2142
|
+
failedToFetchTestAccounts: 'Failed to fetch developer test accounts',
|
|
2143
|
+
testAccountNotFound: (nameOrId) => `Test account${nameOrId ? ` ${chalk.bold(nameOrId)}` : ''} not found in config. \nTry running ${uiCommandReference('hs account auth')} to add the account to config or visit ${uiLink('developer test accounts', 'https://app.hubspot.com/l/developer-test-accounts/')} to delete the test account.`,
|
|
2144
|
+
parentAccountNotFound: (testAccountId) => `Parent account of test account ${chalk.bold(testAccountId)} not found in config. \nTry running ${uiCommandReference('hs account auth')} to add the parent account to config or visit ${uiLink('developer test accounts', 'https://app.hubspot.com/l/developer-test-accounts/')} to delete the test account.`,
|
|
1934
2145
|
},
|
|
1935
2146
|
success: {
|
|
1936
|
-
|
|
2147
|
+
testAccountDeletedFromHubSpot: (testAccountToDelete) => `Successfully deleted test account with ID ${testAccountToDelete}`,
|
|
2148
|
+
testAccountDeletedFromConfig: (accountId) => `Successfully deleted test account with ID ${accountId} from the CLI config`,
|
|
2149
|
+
},
|
|
2150
|
+
options: {
|
|
2151
|
+
name: 'The name of the test account (in your CLI config) to delete',
|
|
2152
|
+
id: 'The id of the test account',
|
|
2153
|
+
force: 'Skips all confirmation prompts when deleting a test account.',
|
|
1937
2154
|
},
|
|
1938
|
-
|
|
1939
|
-
|
|
2155
|
+
examples: {
|
|
2156
|
+
withPositionalID: (testAccountToDelete) => `Delete a test account with id "${testAccountToDelete}" using positional argument`,
|
|
2157
|
+
withPositionalName: (testAccountToDelete) => `Delete a test account with name "${testAccountToDelete}" using positional argument`,
|
|
2158
|
+
withID: (testAccountToDelete) => `Delete a test account with the id "${testAccountToDelete}"`,
|
|
2159
|
+
withName: (testAccountToDelete) => `Delete a test account with the name "${testAccountToDelete}"`,
|
|
2160
|
+
withoutId: 'Delete a test account via a prompt',
|
|
1940
2161
|
},
|
|
1941
|
-
example: (testAccountId) => `Delete a test account with the id "${testAccountId}"`,
|
|
1942
2162
|
},
|
|
1943
2163
|
},
|
|
1944
2164
|
secrets: {
|
|
@@ -1955,7 +2175,7 @@ export const commands = {
|
|
|
1955
2175
|
invalidUser: (secretName, parentAccountName) => `Couldn't add ${chalk.bold(secretName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add secrets. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
1956
2176
|
scopes: {
|
|
1957
2177
|
message: "The personal access key you provided doesn't include secrets permissions.",
|
|
1958
|
-
instructions: (secretName, url) => `To update CLI permissions for "${secretName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes secrets permissions. \n- Update the CLI config for this account by running ${
|
|
2178
|
+
instructions: (secretName, url) => `To update CLI permissions for "${secretName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes secrets permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
1959
2179
|
},
|
|
1960
2180
|
},
|
|
1961
2181
|
},
|
|
@@ -1972,7 +2192,7 @@ export const commands = {
|
|
|
1972
2192
|
invalidUser: (secretName, parentAccountName) => `Couldn't delete ${chalk.bold(secretName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete secrets. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
1973
2193
|
scopes: {
|
|
1974
2194
|
message: "The personal access key you provided doesn't include secrets permissions.",
|
|
1975
|
-
instructions: (secretName, url) => `To update CLI permissions for "${secretName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes secrets permissions. \n- Update the CLI config for this account by running ${
|
|
2195
|
+
instructions: (secretName, url) => `To update CLI permissions for "${secretName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes secrets permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
1976
2196
|
},
|
|
1977
2197
|
},
|
|
1978
2198
|
},
|
|
@@ -1989,7 +2209,7 @@ export const commands = {
|
|
|
1989
2209
|
invalidUser: (parentAccountName) => `Couldn't list secrets because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list secrets. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
1990
2210
|
scopes: {
|
|
1991
2211
|
message: "The personal access key you provided doesn't include secrets permissions.",
|
|
1992
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes secrets permissions. \n- Update the CLI config for this account by running ${
|
|
2212
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes secrets permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
1993
2213
|
},
|
|
1994
2214
|
},
|
|
1995
2215
|
},
|
|
@@ -2008,7 +2228,7 @@ export const commands = {
|
|
|
2008
2228
|
invalidUser: (functionName, parentAccountName) => `Couldn't add ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add serverless functions. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2009
2229
|
scopes: {
|
|
2010
2230
|
message: "The personal access key you provided doesn't include serverless function permissions.",
|
|
2011
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function permissions. \n- Update the CLI config for this account by running ${
|
|
2231
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2012
2232
|
},
|
|
2013
2233
|
},
|
|
2014
2234
|
},
|
|
@@ -2025,7 +2245,7 @@ export const commands = {
|
|
|
2025
2245
|
invalidUser: (functionName, parentAccountName) => `Couldn't delete ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete serverless functions. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2026
2246
|
scopes: {
|
|
2027
2247
|
message: "The personal access key you provided doesn't include serverless function permissions.",
|
|
2028
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function permissions. \n- Update the CLI config for this account by running ${
|
|
2248
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2029
2249
|
},
|
|
2030
2250
|
},
|
|
2031
2251
|
},
|
|
@@ -2042,7 +2262,7 @@ export const commands = {
|
|
|
2042
2262
|
invalidUser: (parentAccountName) => `Couldn't list serverless functions because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list serverless functions. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2043
2263
|
scopes: {
|
|
2044
2264
|
message: "The personal access key you provided doesn't include serverless function permissions.",
|
|
2045
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function permissions. \n- Update the CLI config for this account by running ${
|
|
2265
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2046
2266
|
},
|
|
2047
2267
|
},
|
|
2048
2268
|
},
|
|
@@ -2061,7 +2281,7 @@ export const commands = {
|
|
|
2061
2281
|
invalidUser: (functionName, parentAccountName) => `Couldn't add ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add serverless function logs. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2062
2282
|
scopes: {
|
|
2063
2283
|
message: "The personal access key you provided doesn't include serverless function log permissions.",
|
|
2064
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function log permissions. \n- Update the CLI config for this account by running ${
|
|
2284
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function log permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2065
2285
|
},
|
|
2066
2286
|
},
|
|
2067
2287
|
},
|
|
@@ -2078,7 +2298,7 @@ export const commands = {
|
|
|
2078
2298
|
invalidUser: (functionName, parentAccountName) => `Couldn't delete ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete serverless function logs. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2079
2299
|
scopes: {
|
|
2080
2300
|
message: "The personal access key you provided doesn't include serverless function log permissions.",
|
|
2081
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function log permissions. \n- Update the CLI config for this account by running ${
|
|
2301
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function log permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2082
2302
|
},
|
|
2083
2303
|
},
|
|
2084
2304
|
},
|
|
@@ -2095,7 +2315,7 @@ export const commands = {
|
|
|
2095
2315
|
invalidUser: (parentAccountName) => `Couldn't list serverless function logs because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list serverless function logs. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2096
2316
|
scopes: {
|
|
2097
2317
|
message: "The personal access key you provided doesn't include serverless function log permissions.",
|
|
2098
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function log permissions. \n- Update the CLI config for this account by running ${
|
|
2318
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function log permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2099
2319
|
},
|
|
2100
2320
|
},
|
|
2101
2321
|
},
|
|
@@ -2114,7 +2334,7 @@ export const commands = {
|
|
|
2114
2334
|
invalidUser: (functionName, parentAccountName) => `Couldn't add ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add serverless function metrics. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2115
2335
|
scopes: {
|
|
2116
2336
|
message: "The personal access key you provided doesn't include serverless function metric permissions.",
|
|
2117
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function metric permissions. \n- Update the CLI config for this account by running ${
|
|
2337
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function metric permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2118
2338
|
},
|
|
2119
2339
|
},
|
|
2120
2340
|
},
|
|
@@ -2131,7 +2351,7 @@ export const commands = {
|
|
|
2131
2351
|
invalidUser: (functionName, parentAccountName) => `Couldn't delete ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete serverless function metrics. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2132
2352
|
scopes: {
|
|
2133
2353
|
message: "The personal access key you provided doesn't include serverless function metric permissions.",
|
|
2134
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function metric permissions. \n- Update the CLI config for this account by running ${
|
|
2354
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function metric permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2135
2355
|
},
|
|
2136
2356
|
},
|
|
2137
2357
|
},
|
|
@@ -2148,7 +2368,7 @@ export const commands = {
|
|
|
2148
2368
|
invalidUser: (parentAccountName) => `Couldn't list serverless function metrics because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list serverless function metrics. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2149
2369
|
scopes: {
|
|
2150
2370
|
message: "The personal access key you provided doesn't include serverless function metric permissions.",
|
|
2151
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function metric permissions. \n- Update the CLI config for this account by running ${
|
|
2371
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function metric permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2152
2372
|
},
|
|
2153
2373
|
},
|
|
2154
2374
|
},
|
|
@@ -2167,7 +2387,7 @@ export const commands = {
|
|
|
2167
2387
|
invalidUser: (functionName, parentAccountName) => `Couldn't add ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add serverless function settings. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2168
2388
|
scopes: {
|
|
2169
2389
|
message: "The personal access key you provided doesn't include serverless function setting permissions.",
|
|
2170
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function setting permissions. \n- Update the CLI config for this account by running ${
|
|
2390
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function setting permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2171
2391
|
},
|
|
2172
2392
|
},
|
|
2173
2393
|
},
|
|
@@ -2184,7 +2404,7 @@ export const commands = {
|
|
|
2184
2404
|
invalidUser: (functionName, parentAccountName) => `Couldn't delete ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete serverless function settings. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2185
2405
|
scopes: {
|
|
2186
2406
|
message: "The personal access key you provided doesn't include serverless function setting permissions.",
|
|
2187
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function setting permissions. \n- Update the CLI config for this account by running ${
|
|
2407
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function setting permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2188
2408
|
},
|
|
2189
2409
|
},
|
|
2190
2410
|
},
|
|
@@ -2201,7 +2421,7 @@ export const commands = {
|
|
|
2201
2421
|
invalidUser: (parentAccountName) => `Couldn't list serverless function settings because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list serverless function settings. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2202
2422
|
scopes: {
|
|
2203
2423
|
message: "The personal access key you provided doesn't include serverless function setting permissions.",
|
|
2204
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function setting permissions. \n- Update the CLI config for this account by running ${
|
|
2424
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function setting permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2205
2425
|
},
|
|
2206
2426
|
},
|
|
2207
2427
|
},
|
|
@@ -2220,7 +2440,7 @@ export const commands = {
|
|
|
2220
2440
|
invalidUser: (functionName, parentAccountName) => `Couldn't add ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add serverless function versions. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2221
2441
|
scopes: {
|
|
2222
2442
|
message: "The personal access key you provided doesn't include serverless function version permissions.",
|
|
2223
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function version permissions. \n- Update the CLI config for this account by running ${
|
|
2443
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function version permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2224
2444
|
},
|
|
2225
2445
|
},
|
|
2226
2446
|
},
|
|
@@ -2237,7 +2457,7 @@ export const commands = {
|
|
|
2237
2457
|
invalidUser: (functionName, parentAccountName) => `Couldn't delete ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete serverless function versions. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2238
2458
|
scopes: {
|
|
2239
2459
|
message: "The personal access key you provided doesn't include serverless function version permissions.",
|
|
2240
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function version permissions. \n- Update the CLI config for this account by running ${
|
|
2460
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function version permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2241
2461
|
},
|
|
2242
2462
|
},
|
|
2243
2463
|
},
|
|
@@ -2254,7 +2474,7 @@ export const commands = {
|
|
|
2254
2474
|
invalidUser: (parentAccountName) => `Couldn't list serverless function versions because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list serverless function versions. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2255
2475
|
scopes: {
|
|
2256
2476
|
message: "The personal access key you provided doesn't include serverless function version permissions.",
|
|
2257
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function version permissions. \n- Update the CLI config for this account by running ${
|
|
2477
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function version permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2258
2478
|
},
|
|
2259
2479
|
},
|
|
2260
2480
|
},
|
|
@@ -2273,7 +2493,7 @@ export const commands = {
|
|
|
2273
2493
|
invalidUser: (functionName, parentAccountName) => `Couldn't add ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add serverless function webhooks. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2274
2494
|
scopes: {
|
|
2275
2495
|
message: "The personal access key you provided doesn't include serverless function webhook permissions.",
|
|
2276
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook permissions. \n- Update the CLI config for this account by running ${
|
|
2496
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2277
2497
|
},
|
|
2278
2498
|
},
|
|
2279
2499
|
},
|
|
@@ -2290,7 +2510,7 @@ export const commands = {
|
|
|
2290
2510
|
invalidUser: (functionName, parentAccountName) => `Couldn't delete ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete serverless function webhooks. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2291
2511
|
scopes: {
|
|
2292
2512
|
message: "The personal access key you provided doesn't include serverless function webhook permissions.",
|
|
2293
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook permissions. \n- Update the CLI config for this account by running ${
|
|
2513
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2294
2514
|
},
|
|
2295
2515
|
},
|
|
2296
2516
|
},
|
|
@@ -2307,7 +2527,7 @@ export const commands = {
|
|
|
2307
2527
|
invalidUser: (parentAccountName) => `Couldn't list serverless function webhooks because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list serverless function webhooks. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2308
2528
|
scopes: {
|
|
2309
2529
|
message: "The personal access key you provided doesn't include serverless function webhook permissions.",
|
|
2310
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook permissions. \n- Update the CLI config for this account by running ${
|
|
2530
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2311
2531
|
},
|
|
2312
2532
|
},
|
|
2313
2533
|
},
|
|
@@ -2326,7 +2546,7 @@ export const commands = {
|
|
|
2326
2546
|
invalidUser: (functionName, parentAccountName) => `Couldn't add ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add serverless function webhook subscriptions. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2327
2547
|
scopes: {
|
|
2328
2548
|
message: "The personal access key you provided doesn't include serverless function webhook subscription permissions.",
|
|
2329
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription permissions. \n- Update the CLI config for this account by running ${
|
|
2549
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2330
2550
|
},
|
|
2331
2551
|
},
|
|
2332
2552
|
},
|
|
@@ -2343,7 +2563,7 @@ export const commands = {
|
|
|
2343
2563
|
invalidUser: (functionName, parentAccountName) => `Couldn't delete ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete serverless function webhook subscriptions. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2344
2564
|
scopes: {
|
|
2345
2565
|
message: "The personal access key you provided doesn't include serverless function webhook subscription permissions.",
|
|
2346
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription permissions. \n- Update the CLI config for this account by running ${
|
|
2566
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2347
2567
|
},
|
|
2348
2568
|
},
|
|
2349
2569
|
},
|
|
@@ -2360,7 +2580,7 @@ export const commands = {
|
|
|
2360
2580
|
invalidUser: (parentAccountName) => `Couldn't list serverless function webhook subscriptions because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list serverless function webhook subscriptions. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2361
2581
|
scopes: {
|
|
2362
2582
|
message: "The personal access key you provided doesn't include serverless function webhook subscription permissions.",
|
|
2363
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription permissions. \n- Update the CLI config for this account by running ${
|
|
2583
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2364
2584
|
},
|
|
2365
2585
|
},
|
|
2366
2586
|
},
|
|
@@ -2379,7 +2599,7 @@ export const commands = {
|
|
|
2379
2599
|
invalidUser: (functionName, parentAccountName) => `Couldn't add ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add serverless function webhook subscription events. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2380
2600
|
scopes: {
|
|
2381
2601
|
message: "The personal access key you provided doesn't include serverless function webhook subscription event permissions.",
|
|
2382
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event permissions. \n- Update the CLI config for this account by running ${
|
|
2602
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2383
2603
|
},
|
|
2384
2604
|
},
|
|
2385
2605
|
},
|
|
@@ -2396,7 +2616,7 @@ export const commands = {
|
|
|
2396
2616
|
invalidUser: (functionName, parentAccountName) => `Couldn't delete ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete serverless function webhook subscription events. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2397
2617
|
scopes: {
|
|
2398
2618
|
message: "The personal access key you provided doesn't include serverless function webhook subscription event permissions.",
|
|
2399
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event permissions. \n- Update the CLI config for this account by running ${
|
|
2619
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2400
2620
|
},
|
|
2401
2621
|
},
|
|
2402
2622
|
},
|
|
@@ -2413,7 +2633,7 @@ export const commands = {
|
|
|
2413
2633
|
invalidUser: (parentAccountName) => `Couldn't list serverless function webhook subscription events because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list serverless function webhook subscription events. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2414
2634
|
scopes: {
|
|
2415
2635
|
message: "The personal access key you provided doesn't include serverless function webhook subscription event permissions.",
|
|
2416
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event permissions. \n- Update the CLI config for this account by running ${
|
|
2636
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2417
2637
|
},
|
|
2418
2638
|
},
|
|
2419
2639
|
},
|
|
@@ -2432,7 +2652,7 @@ export const commands = {
|
|
|
2432
2652
|
invalidUser: (functionName, parentAccountName) => `Couldn't add ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add serverless function webhook subscription event types. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2433
2653
|
scopes: {
|
|
2434
2654
|
message: "The personal access key you provided doesn't include serverless function webhook subscription event type permissions.",
|
|
2435
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type permissions. \n- Update the CLI config for this account by running ${
|
|
2655
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2436
2656
|
},
|
|
2437
2657
|
},
|
|
2438
2658
|
},
|
|
@@ -2449,7 +2669,7 @@ export const commands = {
|
|
|
2449
2669
|
invalidUser: (functionName, parentAccountName) => `Couldn't delete ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete serverless function webhook subscription event types. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2450
2670
|
scopes: {
|
|
2451
2671
|
message: "The personal access key you provided doesn't include serverless function webhook subscription event type permissions.",
|
|
2452
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type permissions. \n- Update the CLI config for this account by running ${
|
|
2672
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2453
2673
|
},
|
|
2454
2674
|
},
|
|
2455
2675
|
},
|
|
@@ -2466,7 +2686,7 @@ export const commands = {
|
|
|
2466
2686
|
invalidUser: (parentAccountName) => `Couldn't list serverless function webhook subscription event types because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list serverless function webhook subscription event types. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2467
2687
|
scopes: {
|
|
2468
2688
|
message: "The personal access key you provided doesn't include serverless function webhook subscription event type permissions.",
|
|
2469
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type permissions. \n- Update the CLI config for this account by running ${
|
|
2689
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2470
2690
|
},
|
|
2471
2691
|
},
|
|
2472
2692
|
},
|
|
@@ -2485,7 +2705,7 @@ export const commands = {
|
|
|
2485
2705
|
invalidUser: (functionName, parentAccountName) => `Couldn't add ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to add serverless function webhook subscription event type options. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2486
2706
|
scopes: {
|
|
2487
2707
|
message: "The personal access key you provided doesn't include serverless function webhook subscription event type option permissions.",
|
|
2488
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type option permissions. \n- Update the CLI config for this account by running ${
|
|
2708
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type option permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2489
2709
|
},
|
|
2490
2710
|
},
|
|
2491
2711
|
},
|
|
@@ -2502,7 +2722,7 @@ export const commands = {
|
|
|
2502
2722
|
invalidUser: (functionName, parentAccountName) => `Couldn't delete ${chalk.bold(functionName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to delete serverless function webhook subscription event type options. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2503
2723
|
scopes: {
|
|
2504
2724
|
message: "The personal access key you provided doesn't include serverless function webhook subscription event type option permissions.",
|
|
2505
|
-
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type option permissions. \n- Update the CLI config for this account by running ${
|
|
2725
|
+
instructions: (functionName, url) => `To update CLI permissions for "${functionName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type option permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2506
2726
|
},
|
|
2507
2727
|
},
|
|
2508
2728
|
},
|
|
@@ -2519,7 +2739,7 @@ export const commands = {
|
|
|
2519
2739
|
invalidUser: (parentAccountName) => `Couldn't list serverless function webhook subscription event type options because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to list serverless function webhook subscription event type options. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
2520
2740
|
scopes: {
|
|
2521
2741
|
message: "The personal access key you provided doesn't include serverless function webhook subscription event type option permissions.",
|
|
2522
|
-
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type option permissions. \n- Update the CLI config for this account by running ${
|
|
2742
|
+
instructions: (url) => `To update CLI permissions: \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes serverless function webhook subscription event type option permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
2523
2743
|
},
|
|
2524
2744
|
},
|
|
2525
2745
|
},
|
|
@@ -2585,10 +2805,14 @@ export const lib = {
|
|
|
2585
2805
|
},
|
|
2586
2806
|
},
|
|
2587
2807
|
AppDevModeInterface: {
|
|
2808
|
+
autoInstallStaticAuthApp: {
|
|
2809
|
+
installing: (appName, targetTestAccountId) => `Installing ${chalk.bold(appName)} on account ${uiAccountDescription(targetTestAccountId)}...`,
|
|
2810
|
+
success: (appName, targetTestAccountId) => `Successfully installed ${chalk.bold(appName)} on account ${uiAccountDescription(targetTestAccountId)}\n`,
|
|
2811
|
+
error: (appName, targetTestAccountId) => `Error installing ${chalk.bold(appName)} on account ${uiAccountDescription(targetTestAccountId)}. You may still be able to install your app in your browser.`,
|
|
2812
|
+
},
|
|
2588
2813
|
defaultMarketplaceAppWarning: (installCount) => `Your marketplace app is currently installed in ${chalk.bold(`${installCount} ${installCount === 1 ? 'account' : 'accounts'}`)}. Any uploaded changes will impact your app's users. We strongly recommend creating a copy of this app to test your changes before proceeding.`,
|
|
2589
2814
|
autoInstallDeclined: 'You must install your app on your target test account to proceed with local development.',
|
|
2590
2815
|
autoInstallSuccess: (appName, targetTestAccountId) => `Successfully installed app ${appName} on account ${uiAccountDescription(targetTestAccountId)}\n`,
|
|
2591
|
-
autoInstallError: (appName, targetTestAccountId) => `Error installing app ${appName} on account ${uiAccountDescription(targetTestAccountId)}. You may still be able to install your app in your browser.`,
|
|
2592
2816
|
fetchAppData: {
|
|
2593
2817
|
checking: (appName) => `Checking installations for your app ${chalk.bold(appName)}...`,
|
|
2594
2818
|
success: (appName, accountId) => `Your app ${chalk.bold(appName)} is installed on account ${uiAccountDescription(accountId, false)}`,
|
|
@@ -2598,6 +2822,13 @@ export const lib = {
|
|
|
2598
2822
|
},
|
|
2599
2823
|
distributionChanged: `Your app's distribution type has been changed from ${APP_DISTRIBUTION_TYPES.PRIVATE} to ${APP_DISTRIBUTION_TYPES.MARKETPLACE}. Once uploaded, this change cannot be reversed. Before uploading your project, confirm that you want to ${chalk.bold('permanantly')} change your app's distribution type. This will uninstall your app from all accounts.`,
|
|
2600
2824
|
authTypeChanged: `Your app's auth type has been changed from ${APP_AUTH_TYPES.STATIC} to ${APP_AUTH_TYPES.OAUTH}. Once uploaded, this change cannot be reversed. Before uploading your project, confirm that you want to ${chalk.bold('permanantly')} change your app's auth type. This will uninstall your app from all accounts.`,
|
|
2825
|
+
installationFailed: 'An error occured while installing your app. Your app must be installed in your target test account to proceed with local development.',
|
|
2826
|
+
waitUntilAppIsInstalled: {
|
|
2827
|
+
link: (installUrl) => `${uiLink('Install your app', installUrl)} to proceed with local development\n`,
|
|
2828
|
+
waiting: 'Waiting for your app to be installed...',
|
|
2829
|
+
success: (appName, accountId) => `Your app ${chalk.bold(appName)} has been installed successfully on account ${uiAccountDescription(accountId)}\n`,
|
|
2830
|
+
},
|
|
2831
|
+
appDataNotFound: 'An error occurred while fetching data for your app.',
|
|
2601
2832
|
},
|
|
2602
2833
|
LocalDevWebsocketServer: {
|
|
2603
2834
|
errors: {
|
|
@@ -2630,7 +2861,7 @@ export const lib = {
|
|
|
2630
2861
|
checking: 'Checking if your deployed build is up to date...',
|
|
2631
2862
|
upToDate: 'Deployed build is up to date.',
|
|
2632
2863
|
notUpToDate: `Your project contains undeployed local changes.`,
|
|
2633
|
-
notUpToDateExplanation: (profile) => `Run ${uiCommandReference(`hs project upload
|
|
2864
|
+
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.`,
|
|
2634
2865
|
},
|
|
2635
2866
|
createNewProjectForLocalDev: {
|
|
2636
2867
|
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.`,
|
|
@@ -2646,37 +2877,42 @@ export const lib = {
|
|
|
2646
2877
|
projectLockedError: 'Your project is locked. This may mean that another user is running the `hs project watch` command for this project. If this is you, unlock the project in Projects UI.',
|
|
2647
2878
|
genericError: `An error occurred while creating the initial build for this project. Run ${uiCommandReference('hs project upload')} to try again.`,
|
|
2648
2879
|
},
|
|
2880
|
+
checkAndInstallDependencies: {
|
|
2881
|
+
checkingDependencies: 'Checking for missing or updated dependencies...',
|
|
2882
|
+
dependenciesUpToDate: 'All dependencies are up to date',
|
|
2883
|
+
dependenciesFailure: 'Failed to check or install dependencies',
|
|
2884
|
+
},
|
|
2649
2885
|
},
|
|
2650
2886
|
account: {
|
|
2651
2887
|
checkIfDefaultAccountIsSupported: {
|
|
2652
|
-
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
|
|
2653
|
-
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
|
|
2888
|
+
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()}.`,
|
|
2889
|
+
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()}.`,
|
|
2654
2890
|
},
|
|
2655
2891
|
validateAccountOption: {
|
|
2656
|
-
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
|
|
2657
|
-
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
|
|
2658
|
-
nonSandboxWarning: `Testing in a sandbox is strongly recommended. To switch the target account, select an option below or run ${uiCommandReference('hs
|
|
2892
|
+
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.`,
|
|
2893
|
+
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')}.`,
|
|
2894
|
+
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.`,
|
|
2659
2895
|
publicAppNonDeveloperTestAccountWarning: `Local development of public apps is only supported in ${chalk.bold('developer test accounts')}.`,
|
|
2660
2896
|
},
|
|
2661
2897
|
checkIfParentAccountIsAuthed: {
|
|
2662
|
-
notAuthedError: (parentAccountId, accountIdentifier) => `To develop this project locally, run ${
|
|
2898
|
+
notAuthedError: (parentAccountId, accountIdentifier) => `To develop this project locally, run ${uiAuthCommandReference({ accountId: parentAccountId })} to authenticate the App Developer Account ${parentAccountId} associated with ${accountIdentifier}.`,
|
|
2663
2899
|
},
|
|
2664
2900
|
selectAccountTypePrompt: {
|
|
2665
|
-
message: '
|
|
2901
|
+
message: 'Choose the type of account to test on',
|
|
2666
2902
|
developerTestAccountOption: 'Test on a developer test account (recommended)',
|
|
2667
2903
|
sandboxAccountOption: 'Test on a sandbox account',
|
|
2668
2904
|
sandboxAccountOptionDisabled: 'Disabled - requires access to sandbox accounts',
|
|
2669
2905
|
productionAccountOption: (accountId) => `<${chalk.red('!')} Test on your project account: ${uiAccountDescription(accountId, false)} ${chalk.red('!')}>`,
|
|
2670
2906
|
},
|
|
2671
2907
|
confirmDefaultAccountIsTarget: {
|
|
2672
|
-
configError: `An error occurred while reading the default account from your config. Run ${
|
|
2673
|
-
declineDefaultAccountExplanation: `To develop on a different account, run ${uiCommandReference('hs
|
|
2908
|
+
configError: `An error occurred while reading the default account from your config. Run ${uiAuthCommandReference()} to re-auth this account`,
|
|
2909
|
+
declineDefaultAccountExplanation: `To develop on a different account, run ${uiCommandReference('hs account use')} to change your default account, then re-run ${uiCommandReference('hs project dev')}.`,
|
|
2674
2910
|
},
|
|
2675
2911
|
},
|
|
2676
2912
|
},
|
|
2677
2913
|
middleware: {
|
|
2678
2914
|
updateNotification: {
|
|
2679
|
-
notifyTitle: chalk.bold('
|
|
2915
|
+
notifyTitle: chalk.bold('CLI update available'),
|
|
2680
2916
|
cmsUpdateNotification: (packageName) => `${chalk.bold('The CMS CLI is now the HubSpot CLI')}\n\nTo upgrade, uninstall ${chalk.bold(packageName)}\nand then run ${uiCommandReference('{updateCommand}')}`,
|
|
2681
2917
|
cliUpdateNotification: `HubSpot CLI version ${chalk.cyan(chalk.bold('{currentVersion}'))} is outdated.\nRun ${uiCommandReference('{updateCommand}')} to upgrade to version ${chalk.cyan(chalk.bold('{latestVersion}'))}`,
|
|
2682
2918
|
},
|
|
@@ -2787,6 +3023,7 @@ export const lib = {
|
|
|
2787
3023
|
compressed: (byteCount) => `Project files compressed: ${byteCount} bytes`,
|
|
2788
3024
|
compressing: (path) => `Compressing build files to "${path}"`,
|
|
2789
3025
|
fileFiltered: (filename) => `Ignore rule triggered for "${filename}"`,
|
|
3026
|
+
legacyFileDetected: (filename, platformVersion) => `The ${chalk.bold(filename)} file is not supported on platform version ${chalk.bold(platformVersion)} and will be ignored.`,
|
|
2790
3027
|
},
|
|
2791
3028
|
},
|
|
2792
3029
|
boxen: {
|
|
@@ -2803,13 +3040,15 @@ export const lib = {
|
|
|
2803
3040
|
viewImportLink: (baseUrl, accountId, importId) => `Data import currently processing. You can view the status of your import ${uiLink('here', `${baseUrl}/import/${accountId}/post/${importId}`)}`,
|
|
2804
3041
|
},
|
|
2805
3042
|
ui: {
|
|
2806
|
-
betaTag:
|
|
3043
|
+
betaTag: '[BETA]',
|
|
3044
|
+
betaTagWithStyle: chalk.bold('[BETA]'),
|
|
2807
3045
|
betaWarning: {
|
|
2808
3046
|
header: chalk.yellow('***************************** WARNING ****************************'),
|
|
2809
3047
|
footer: chalk.yellow('******************************************************************'),
|
|
2810
3048
|
},
|
|
2811
3049
|
infoTag: chalk.bold('[INFO]'),
|
|
2812
|
-
deprecatedTag:
|
|
3050
|
+
deprecatedTag: '[DEPRECATED]',
|
|
3051
|
+
deprecatedTagWithStyle: chalk.bold('[DEPRECATED]'),
|
|
2813
3052
|
errorTag: chalk.bold('[ERROR]'),
|
|
2814
3053
|
deprecatedMessage: (command, url) => `The ${command} command is deprecated and will be disabled soon. ${url}`,
|
|
2815
3054
|
deprecatedDescription: (message, command, url) => `${message}. The ${command} command is deprecated and will be disabled soon. ${url}`,
|
|
@@ -2828,7 +3067,7 @@ export const lib = {
|
|
|
2828
3067
|
message: (command) => `${command} - See a list of configured HubSpot accounts`,
|
|
2829
3068
|
},
|
|
2830
3069
|
accountsUseCommand: {
|
|
2831
|
-
command: 'hs
|
|
3070
|
+
command: 'hs account use',
|
|
2832
3071
|
message: (command) => `${command} - Set the Hubspot account that the CLI will target by default`,
|
|
2833
3072
|
},
|
|
2834
3073
|
authCommand: {
|
|
@@ -2867,6 +3106,9 @@ export const lib = {
|
|
|
2867
3106
|
command: 'hs project install-deps',
|
|
2868
3107
|
message: (command) => `${command} - Install all project dependencies`,
|
|
2869
3108
|
},
|
|
3109
|
+
projectCommandTip: {
|
|
3110
|
+
message: 'Tip: All project commands must be run from within a project directory',
|
|
3111
|
+
},
|
|
2870
3112
|
sampleProjects: {
|
|
2871
3113
|
linkText: "HubSpot's sample projects",
|
|
2872
3114
|
url: 'https://developers.hubspot.com/docs/platform/sample-projects?utm_source=cli&utm_content=project_create_whats_next',
|
|
@@ -2890,7 +3132,7 @@ export const lib = {
|
|
|
2890
3132
|
},
|
|
2891
3133
|
},
|
|
2892
3134
|
buildAccount: {
|
|
2893
|
-
|
|
3135
|
+
createDeveloperTestAccountV2: {
|
|
2894
3136
|
syncFailure: 'Failed to sync developer test account',
|
|
2895
3137
|
pakFailure: 'Failed to generate personal access key for developer test account',
|
|
2896
3138
|
},
|
|
@@ -2905,25 +3147,26 @@ export const lib = {
|
|
|
2905
3147
|
},
|
|
2906
3148
|
setAllowUsageTracking: {
|
|
2907
3149
|
fieldName: 'usage tracking',
|
|
2908
|
-
success: (isEnabled) => `
|
|
3150
|
+
success: (isEnabled) => `Successfully updated ${chalk.bold('allow usage tracking')} to ${chalk.bold(isEnabled)}`,
|
|
2909
3151
|
},
|
|
2910
3152
|
setAllowAutoUpdates: {
|
|
2911
3153
|
fieldName: 'auto updates',
|
|
2912
|
-
success: (isEnabled) => `
|
|
3154
|
+
success: (isEnabled) => `Successfully updated ${chalk.bold('allow auto updates')} to ${chalk.bold(isEnabled)}`,
|
|
2913
3155
|
},
|
|
2914
3156
|
setDefaultCmsPublishMode: {
|
|
2915
3157
|
promptMessage: 'Select CMS publish mode to be used as the default',
|
|
2916
3158
|
error: (validModes) => `The provided CMS publish mode is invalid. Valid values are ${validModes}.`,
|
|
2917
|
-
success: (mode) => `
|
|
3159
|
+
success: (mode) => `Successfully updated ${chalk.bold('default CMS publish mode')} to ${chalk.bold(mode)}`,
|
|
2918
3160
|
},
|
|
2919
3161
|
setHttpTimeout: {
|
|
2920
3162
|
promptMessage: 'Enter http timeout duration',
|
|
2921
|
-
success: (timeout) => `HTTP timeout
|
|
3163
|
+
success: (timeout) => `Successfully updated ${chalk.bold('HTTP timeout')} to ${chalk.bold(timeout)}`,
|
|
3164
|
+
error: (timeout) => `Invalid HTTP timeout value "${timeout}". Must be a number greater than 3000.`,
|
|
2922
3165
|
},
|
|
2923
3166
|
setAutoOpenBrowser: {
|
|
2924
3167
|
fieldName: 'auto open browser',
|
|
2925
|
-
enabled: '
|
|
2926
|
-
disabled: '
|
|
3168
|
+
enabled: `Successfully updated ${chalk.bold('auto open browser')} to ${chalk.bold('enabled')}`,
|
|
3169
|
+
disabled: `Successfully updated ${chalk.bold('auto open browser')} to ${chalk.bold('disabled')}`,
|
|
2927
3170
|
},
|
|
2928
3171
|
},
|
|
2929
3172
|
commonOpts: {
|
|
@@ -2953,6 +3196,21 @@ export const lib = {
|
|
|
2953
3196
|
mergeConflictMessage: (count, propertyList) => `Conflict${count > 1 ? 's' : ''} detected for ${chalk.bold(propertyList)}.`,
|
|
2954
3197
|
mergeConfigConflictPrompt: (property, newValue, oldValue) => `Change ${property} from ${newValue} to ${oldValue}?`,
|
|
2955
3198
|
},
|
|
3199
|
+
handleAccountNameConflicts: {
|
|
3200
|
+
warnings: {
|
|
3201
|
+
accountNameConflictMessage: (count) => `${count} account name conflict${count > 1 ? 's' : ''} detected.`,
|
|
3202
|
+
forceFlagDetected: (count, renameDetails) => `Force flag detected. Automatically renaming ${count} account${count > 1 ? 's' : ''} with duplicate name${count > 1 ? 's' : ''}:\n${renameDetails}`,
|
|
3203
|
+
},
|
|
3204
|
+
prompts: {
|
|
3205
|
+
renameOrOmitAccountPrompt: (accountName, accountId) => `Local account name="${accountName}" (ID: ${accountId}) conflicts with an existing global account.\nRename the local account to include it in the merge? If not, it will be skipped.`,
|
|
3206
|
+
newAccountNamePrompt: (accountName, portalId) => `Enter a new name for the local account [ID: ${portalId}] (currently named "${accountName}"):`,
|
|
3207
|
+
},
|
|
3208
|
+
errors: {
|
|
3209
|
+
nameRequired: 'The name may not be blank. Please add a name for the config.',
|
|
3210
|
+
sameName: 'The new account name must be different from the current name.',
|
|
3211
|
+
nameAlreadyInConfig: (name) => `The name "${name}" is already used by another account.`,
|
|
3212
|
+
},
|
|
3213
|
+
},
|
|
2956
3214
|
handleMerge: {
|
|
2957
3215
|
description: (archivedConfigName) => `We will automatically merge the contents of your deprecated config file into your global configuration file. This will merge the configured accounts and settings into the global config. Then it will archive the deprecated config as ${archivedConfigName} for you to manually cleanup at your convenience.`,
|
|
2958
3216
|
confirmPrompt: 'Merge the deprecated config into your global config?',
|
|
@@ -2961,6 +3219,11 @@ export const lib = {
|
|
|
2961
3219
|
},
|
|
2962
3220
|
},
|
|
2963
3221
|
prompts: {
|
|
3222
|
+
promptUtils: {
|
|
3223
|
+
errors: {
|
|
3224
|
+
noSelectableChoices: 'Exiting prompt because no selectable choices are available',
|
|
3225
|
+
},
|
|
3226
|
+
},
|
|
2964
3227
|
importDataFilePathPrompt: {
|
|
2965
3228
|
promptContext: `To view the JSON schema for data imports, visit ${uiLink('the docs', 'https://developers.hubspot.com/docs/guides/api/crm/imports')}`,
|
|
2966
3229
|
promptMessage: '[--file-path] Select the JSON file that will be used to import your data.',
|
|
@@ -2977,10 +3240,10 @@ export const lib = {
|
|
|
2977
3240
|
projectDevTargetAccountPrompt: {
|
|
2978
3241
|
createNewSandboxOption: '<Test on a new development sandbox>',
|
|
2979
3242
|
createNewDeveloperTestAccountOption: '<Test on a new developer test account>',
|
|
2980
|
-
chooseDefaultAccountOption:
|
|
2981
|
-
promptMessage: (accountType, accountIdentifier) => `
|
|
3243
|
+
chooseDefaultAccountOption: `<${chalk.bold('❗')} Test on this production account ${chalk.bold('❗')}>`,
|
|
3244
|
+
promptMessage: (accountType, accountIdentifier) => `Choose a ${accountType} under ${accountIdentifier} to test with:`,
|
|
2982
3245
|
sandboxLimit: (limit) => `Your account reached the limit of ${limit} development sandboxes`,
|
|
2983
|
-
sandboxLimitWithSuggestion: (limit
|
|
3246
|
+
sandboxLimitWithSuggestion: (limit) => `Your account reached the limit of ${limit} development sandboxes. Run ${uiAuthCommandReference()} to add an existing one to the config.`,
|
|
2984
3247
|
developerTestAccountLimit: (limit) => `Your account reached the limit of ${limit} developer test accounts.`,
|
|
2985
3248
|
confirmDefaultAccount: (accountName, accountType) => `Continue testing on ${chalk.bold(`${accountName} (${accountType})`)}? (Y/n)`,
|
|
2986
3249
|
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.`,
|
|
@@ -3120,8 +3383,8 @@ export const lib = {
|
|
|
3120
3383
|
selectAppIdClone: (accountName) => `[--appId] Choose an app under ${accountName} to clone:`,
|
|
3121
3384
|
errors: {
|
|
3122
3385
|
noAccountId: 'An account ID is required to select an app.',
|
|
3123
|
-
noAppsMigration:
|
|
3124
|
-
noAppsClone:
|
|
3386
|
+
noAppsMigration: `${chalk.bold('No apps to migrate')}`,
|
|
3387
|
+
noAppsClone: `${chalk.bold('No apps to clone')}`,
|
|
3125
3388
|
noAppsMigrationMessage: (accountName) => `The selected developer account ${chalk.bold(accountName)} doesn't have any apps that can be migrated to the projects framework.`,
|
|
3126
3389
|
noAppsCloneMessage: (accountName) => `The selected developer account ${chalk.bold(accountName)} doesn't have any apps that can be cloned to the projects framework.`,
|
|
3127
3390
|
errorFetchingApps: 'There was an error fetching public apps.',
|
|
@@ -3142,6 +3405,7 @@ export const lib = {
|
|
|
3142
3405
|
errors: {
|
|
3143
3406
|
nameRequired: 'A component name is required',
|
|
3144
3407
|
componentRequired: 'Must select a feature to add',
|
|
3408
|
+
noSelectableChoices: 'There are no available features that can be added to this project',
|
|
3145
3409
|
invalidType: (type) => `[--type] Could not find type "${type}". Please choose an available type:`,
|
|
3146
3410
|
cannotAddFeature: (feature, reasons) => `Cannot Add feature '${feature}' to project for the following reasons: ${reasons}`,
|
|
3147
3411
|
},
|
|
@@ -3177,7 +3441,7 @@ export const lib = {
|
|
|
3177
3441
|
enterName: '[--project] Enter project name:',
|
|
3178
3442
|
errors: {
|
|
3179
3443
|
invalidName: 'You entered an invalid name. Please try again.',
|
|
3180
|
-
projectDoesNotExist: (projectName,
|
|
3444
|
+
projectDoesNotExist: (projectName, accountId) => `Project ${chalk.bold(projectName)} could not be found in "${uiAccountDescription(accountId)}"`,
|
|
3181
3445
|
},
|
|
3182
3446
|
},
|
|
3183
3447
|
previewPrompt: {
|
|
@@ -3192,7 +3456,6 @@ export const lib = {
|
|
|
3192
3456
|
installAppPrompt: {
|
|
3193
3457
|
explanation: 'Local development requires this app to be installed in the target test account.',
|
|
3194
3458
|
reinstallExplanation: "This app's required scopes have been updated since it was last installed on the target test account. To avoid issues with local development, we recommend reinstalling the app with the updated scopes.",
|
|
3195
|
-
staticAuthExplanation: (projectAccountId, testingAccountId, projectName, appUid) => `To install this static auth app, your testing account ${uiAccountDescription(testingAccountId)} must be on ${uiLink("this app's allowlist", getAppAllowlistUrl(projectAccountId, projectName, appUid))}.`,
|
|
3196
3459
|
prompt: 'Open HubSpot to install this app?',
|
|
3197
3460
|
autoPrompt: 'Install this app in your target test account?',
|
|
3198
3461
|
reinstallPrompt: 'Open HubSpot to reinstall this app?',
|
|
@@ -3237,11 +3500,11 @@ export const lib = {
|
|
|
3237
3500
|
},
|
|
3238
3501
|
failure: {
|
|
3239
3502
|
invalidUser: (accountName, parentAccountName) => `Couldn't create ${chalk.bold(accountName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to create the sandbox. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
3240
|
-
limit: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} developer test accounts. \n- To connect a developer test account to your HubSpot CLI, run ${
|
|
3241
|
-
alreadyInConfig: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} developer test accounts. \n- To use an existing developer test account, run ${
|
|
3503
|
+
limit: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} developer test accounts. \n- To connect a developer test account to your HubSpot CLI, run ${uiAuthCommandReference()} and follow the prompts.`,
|
|
3504
|
+
alreadyInConfig: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} developer test accounts. \n- To use an existing developer test account, run ${uiCommandReference('hs account use')}.`,
|
|
3242
3505
|
scopes: {
|
|
3243
3506
|
message: "The personal access key you provided doesn't include developer test account permissions.",
|
|
3244
|
-
instructions: (accountName, url) => `To update CLI permissions for "${accountName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes developer test account permissions. \n- Update the CLI config for this account by running ${
|
|
3507
|
+
instructions: (accountName, url) => `To update CLI permissions for "${accountName}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes developer test account permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
3245
3508
|
},
|
|
3246
3509
|
},
|
|
3247
3510
|
},
|
|
@@ -3258,14 +3521,13 @@ export const lib = {
|
|
|
3258
3521
|
configFileUpdated: (accountName, authType) => `Account "${accountName}" updated using "${authType}"`,
|
|
3259
3522
|
},
|
|
3260
3523
|
failure: {
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3524
|
+
limit: (accountId, limit, link) => `${uiAccountDescription(accountId)} reached the limit of ${limit} developer sandboxes. \n- View sandbox details at ${uiLink('View sandbox details at', link)} \n- To connect a developer sandbox to your HubSpot CLI, run ${uiAuthCommandReference()} and follow the prompts.`,
|
|
3525
|
+
alreadyInConfig: (accountId, limit) => `${uiAccountDescription(accountId)} reached the limit of ${limit} developer sandboxes. \n- To use an existing developer sandbox, run ${uiCommandReference('hs account use')}. \n- To delete an existing sandbox, run ${uiCommandReference('hs sandbox delete')}.`,
|
|
3526
|
+
generic: 'An error occurred while creating a developer sandbox',
|
|
3264
3527
|
scopes: {
|
|
3265
3528
|
message: "The personal access key you provided doesn't include developer sandbox permissions.",
|
|
3266
|
-
instructions: (
|
|
3529
|
+
instructions: (account, url) => `To update CLI permissions for "${chalk.bold(account)}": \n- ${uiLink('Go to', url)}, deactivate the existing personal access key, and create a new one that includes developer sandbox permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
3267
3530
|
},
|
|
3268
|
-
generic: 'An error occurred while creating a developer sandbox',
|
|
3269
3531
|
},
|
|
3270
3532
|
},
|
|
3271
3533
|
standard: {
|
|
@@ -3278,30 +3540,54 @@ export const lib = {
|
|
|
3278
3540
|
configFileUpdated: (accountName, authType) => `Account "${accountName}" updated using "${authType}"`,
|
|
3279
3541
|
},
|
|
3280
3542
|
failure: {
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
alreadyInConfig: (accountName, limit) => `${chalk.bold(accountName)} reached the limit of ${limit} standard sandboxes. \n- To use an existing standard sandbox, run ${chalk.bold('hs accounts use')}.`,
|
|
3543
|
+
limit: (accountId, limit, link) => `${uiAccountDescription(accountId)} reached the limit of ${limit} standard sandboxes.\n- View sandbox details at ${uiLink('View sandbox details at', link)} \n- To connect a standard sandbox to your HubSpot CLI, run ${uiAuthCommandReference()} and follow the prompts.`,
|
|
3544
|
+
alreadyInConfig: (accountId, limit) => `${uiAccountDescription(accountId)} reached the limit of ${limit} standard sandboxes. \n- To use an existing standard sandbox, run ${uiCommandReference('hs account use')}. \n- To delete an existing sandbox, run ${uiCommandReference('hs sandbox delete')}.`,
|
|
3284
3545
|
scopes: {
|
|
3285
3546
|
message: "The personal access key you provided doesn't include standard sandbox permissions.",
|
|
3286
|
-
instructions: (
|
|
3547
|
+
instructions: (account, url) => `To update CLI permissions for "${chalk.bold(account)}": \n- ${uiLink('Go to', url)}, deactivate the existing personal access key, and create a new one that includes standard sandbox permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
3287
3548
|
},
|
|
3288
3549
|
},
|
|
3289
3550
|
},
|
|
3551
|
+
failure: {
|
|
3552
|
+
usageLimitsFetch: 'Unable to fetch sandbox usage limits. Please try again.',
|
|
3553
|
+
scopes: {
|
|
3554
|
+
message: "The personal access key you provided doesn't include sandbox permissions.",
|
|
3555
|
+
instructions: (account, url) => `To update CLI permissions for "${chalk.bold(account)}": \n- Go to ${url}, deactivate the existing personal access key, and create a new one that includes Sandbox permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
3556
|
+
},
|
|
3557
|
+
invalidUser: (accountName, parentAccountId) => `Couldn't create ${chalk.bold(accountName)} because your account has been removed from ${uiAccountDescription(parentAccountId)} or your permission set doesn't allow you to create the sandbox. To update your permissions, contact a super admin in ${uiAccountDescription(parentAccountId)}.`,
|
|
3558
|
+
'403Gating': (accountName, parentAccountId) => `We couldn't create ${chalk.bold(accountName)} because ${uiAccountDescription(parentAccountId)} is a developer account and does not have access to development sandboxes. To gain access to developer sandboxes, you can ${uiLink('convert your account', 'https://developers.hubspot.com/docs/getting-started/convert-your-account-into-a-developer-crm-account')}.`,
|
|
3559
|
+
},
|
|
3290
3560
|
},
|
|
3291
3561
|
sync: {
|
|
3562
|
+
info: {
|
|
3563
|
+
syncMessage: (url) => `Asset sync from production to the sandbox is in progress and is running in the background. It may take some time. ${uiLink('View sync status details here', url)}`,
|
|
3564
|
+
syncMessageDevSb: (url) => `Sync of object definitions from production to the sandbox is in progress and is running in the background. It may take some time. ${url}`,
|
|
3565
|
+
},
|
|
3566
|
+
confirm: {
|
|
3567
|
+
syncContactRecords: {
|
|
3568
|
+
standard: 'Do you want to sync contact records from your production account?',
|
|
3569
|
+
},
|
|
3570
|
+
},
|
|
3292
3571
|
loading: {
|
|
3293
3572
|
add: (accountName) => `Syncing sandbox ${chalk.bold(accountName)}`,
|
|
3294
|
-
fail: (
|
|
3295
|
-
succeed: (
|
|
3573
|
+
fail: (accountId) => `Failed to sync sandbox ${uiAccountDescription(accountId)}.`,
|
|
3574
|
+
succeed: (accountId) => `Successfully synced sandbox ${uiAccountDescription(accountId)}.`,
|
|
3575
|
+
startSync: 'Initiating sync...',
|
|
3576
|
+
succeedDevSb: (accountId) => `Initiated sync of object definitions from production to ${uiAccountDescription(accountId)}`,
|
|
3577
|
+
successDevSbInfo: (accountId, url) => `Initiated sync of object definitions from production to ${uiAccountDescription(accountId)}. It may take some time. ${url}`,
|
|
3296
3578
|
},
|
|
3297
3579
|
success: {
|
|
3298
3580
|
configFileUpdated: (accountName, authType) => `Account "${accountName}" updated using "${authType}"`,
|
|
3299
3581
|
},
|
|
3300
3582
|
failure: {
|
|
3583
|
+
syncTypeFetch: 'Unable to fetch available sandbox sync types. Please try again.',
|
|
3301
3584
|
invalidUser: (accountName, parentAccountName) => `Couldn't sync ${chalk.bold(accountName)} because your account has been removed from ${chalk.bold(parentAccountName)} or your permission set doesn't allow you to sync the sandbox. To update your permissions, contact a super admin in ${chalk.bold(parentAccountName)}.`,
|
|
3585
|
+
syncInProgress: (url) => `Couldn't run the sync because there's another sync in progress. Wait for the current sync to finish and then try again. To check the sync status, visit the sync activity log: ${url}.`,
|
|
3586
|
+
notSuperAdmin: (accountId) => `Couldn't run the sync because you are not a super admin in ${uiAccountDescription(accountId)}. Ask the account owner for super admin access to the sandbox.`,
|
|
3587
|
+
objectNotFound: (accountId) => `Couldn't sync the sandbox because ${uiAccountDescription(accountId)} may have been deleted through the UI. Run ${uiCommandReference('hs sandbox delete')} to remove this account from the config.`,
|
|
3302
3588
|
scopes: {
|
|
3303
3589
|
message: "The personal access key you provided doesn't include sandbox sync permissions.",
|
|
3304
|
-
instructions: (accountName, url) => `To update CLI permissions for "${accountName}": \n- Go to
|
|
3590
|
+
instructions: (accountName, url) => `To update CLI permissions for "${accountName}": \n- ${uiLink('Go to', url)}, deactivate the existing personal access key, and create a new one that includes sandbox sync permissions. \n- Update the CLI config for this account by running ${uiAuthCommandReference()} and entering the new key.\n`,
|
|
3305
3591
|
},
|
|
3306
3592
|
},
|
|
3307
3593
|
},
|
|
@@ -3312,6 +3598,8 @@ export const lib = {
|
|
|
3312
3598
|
errorContext: (context) => `Context: ${context}`,
|
|
3313
3599
|
errorCause: (cause) => `Cause: ${cause}`,
|
|
3314
3600
|
unknownErrorOccurred: 'An unknown error has occurred.',
|
|
3601
|
+
configTimeoutErrorOccurred: (timeout, configSetCommand) => `This error occurred because a request exceeded the default HTTP timeout of ${timeout}ms. To increase the default HTTP timeout, run ${uiCommandReference(configSetCommand)}.`,
|
|
3602
|
+
genericTimeoutErrorOccurred: 'This error occurred because an HTTP request timed out. Re-running the command may resolve this issue.',
|
|
3315
3603
|
},
|
|
3316
3604
|
suppressErrors: {
|
|
3317
3605
|
platformVersionErrors: {
|
|
@@ -3323,7 +3611,7 @@ export const lib = {
|
|
|
3323
3611
|
docsLink: 'Projects platform versioning (BETA)',
|
|
3324
3612
|
betaLink: (docsLink) => `For more info, see ${docsLink}.`,
|
|
3325
3613
|
},
|
|
3326
|
-
missingScopeError: (request, accountName
|
|
3614
|
+
missingScopeError: (request, accountName) => `Couldn't execute the ${request} because the access key for ${accountName} is missing required scopes. To update scopes, run ${uiAuthCommandReference()}. Then deactivate the existing key and generate a new one that includes the missing scopes.`,
|
|
3327
3615
|
},
|
|
3328
3616
|
},
|
|
3329
3617
|
serverless: {
|
|
@@ -3331,7 +3619,7 @@ export const lib = {
|
|
|
3331
3619
|
fetchScopeDataError: (scopeGroup) => `Error verifying access of scopeGroup ${scopeGroup}:`,
|
|
3332
3620
|
portalMissingScope: 'Your account does not have access to this action. Talk to an account admin to request it.',
|
|
3333
3621
|
userMissingScope: "You don't have access to this action. Ask an account admin to change your permissions in Users & Teams settings.",
|
|
3334
|
-
genericMissingScope:
|
|
3622
|
+
genericMissingScope: `Your access key does not allow this action. Please generate a new access key by running ${uiAuthCommandReference()}.`,
|
|
3335
3623
|
},
|
|
3336
3624
|
},
|
|
3337
3625
|
doctor: {
|
|
@@ -3340,13 +3628,13 @@ export const lib = {
|
|
|
3340
3628
|
accountChecks: {
|
|
3341
3629
|
active: 'Default account active',
|
|
3342
3630
|
inactive: "Default account isn't active",
|
|
3343
|
-
inactiveSecondary: (command) => `Run ${command} to remove inactive accounts from your CLI config`,
|
|
3631
|
+
inactiveSecondary: (command) => `Run ${uiCommandReference(command)} to remove inactive accounts from your CLI config`,
|
|
3344
3632
|
unableToDetermine: 'Unable to determine if the portal is active',
|
|
3345
3633
|
pak: {
|
|
3346
3634
|
incomplete: 'Personal access key is valid, but there are more scopes available to your user that are not included in your key.',
|
|
3347
|
-
incompleteSecondary: (
|
|
3635
|
+
incompleteSecondary: (link) => `To add the available scopes, run ${uiAuthCommandReference()} and re-authenticate your account with a new key that has those scopes. Visit HubSpot to view selected and available scopes for your personal access key. ${link}`,
|
|
3348
3636
|
invalid: 'Personal access key is invalid',
|
|
3349
|
-
invalidSecondary:
|
|
3637
|
+
invalidSecondary: `To get a new key, run ${uiAuthCommandReference()}, deactivate your access key, and generate a new one. Then use that new key to authenticate your account.`,
|
|
3350
3638
|
valid: (link) => `Personal Access Key is valid. ${link}`,
|
|
3351
3639
|
viewScopes: 'View selected scopes',
|
|
3352
3640
|
},
|
|
@@ -3363,25 +3651,24 @@ export const lib = {
|
|
|
3363
3651
|
},
|
|
3364
3652
|
hsChecks: {
|
|
3365
3653
|
notLatest: (hsVersion) => `Version ${hsVersion} outdated`,
|
|
3366
|
-
notLatestSecondary: (command, hsVersion) => `Run ${command} to upgrade to the latest version ${hsVersion}`,
|
|
3654
|
+
notLatestSecondary: (command, hsVersion) => `Run ${uiCommandReference(command)} to upgrade to the latest version ${hsVersion}`,
|
|
3367
3655
|
latest: (hsVersion) => `HubSpot CLI v${hsVersion} up to date`,
|
|
3368
3656
|
unableToDetermine: 'Unable to determine if HubSpot CLI is up to date.',
|
|
3369
|
-
unableToDetermineSecondary: (command, link) => `Run ${command} to check your installed version; then visit the ${link} to validate whether you have the latest version`,
|
|
3370
|
-
unableToDetermineSecondaryLink: 'npm HubSpot CLI version history',
|
|
3657
|
+
unableToDetermineSecondary: (command, link) => `Run ${uiCommandReference(command)} to check your installed version; then visit the ${uiLink('npm HubSpot CLI version history', link)} to validate whether you have the latest version`,
|
|
3371
3658
|
},
|
|
3372
3659
|
projectDependenciesChecks: {
|
|
3373
3660
|
missingDependencies: (dir) => `missing dependencies in ${chalk.bold(dir)}`,
|
|
3374
|
-
missingDependenciesSecondary: (command) => `Run ${command} to install all project dependencies locally`,
|
|
3661
|
+
missingDependenciesSecondary: (command) => `Run ${uiCommandReference(command)} to install all project dependencies locally`,
|
|
3375
3662
|
unableToDetermine: (dir) => `Unable to determine if dependencies are installed ${dir}`,
|
|
3376
3663
|
success: 'App dependencies are installed and up to date',
|
|
3377
3664
|
},
|
|
3378
3665
|
files: {
|
|
3379
|
-
invalidJson: (filename) => `
|
|
3666
|
+
invalidJson: (filename) => `Invalid JSON in ${chalk.bold(filename)}`,
|
|
3380
3667
|
validJson: 'JSON files valid',
|
|
3381
3668
|
},
|
|
3382
3669
|
port: {
|
|
3383
3670
|
inUse: (port) => `Port ${port} is in use`,
|
|
3384
|
-
inUseSecondary: (command) => `Make sure it is available before running ${command}`,
|
|
3671
|
+
inUseSecondary: (command) => `Make sure it is available before running ${uiCommandReference(command)}`,
|
|
3385
3672
|
available: (port) => `Port ${port} available for local development`,
|
|
3386
3673
|
},
|
|
3387
3674
|
diagnosis: {
|
|
@@ -3393,22 +3680,52 @@ export const lib = {
|
|
|
3393
3680
|
configFileSubHeader: (filename) => `Config File: ${chalk.bold(filename)}`,
|
|
3394
3681
|
defaultAccountSubHeader: (accountDetails) => `Default Account: ${accountDetails}`,
|
|
3395
3682
|
noConfigFile: 'CLI configuration not found',
|
|
3396
|
-
noConfigFileSecondary: (command) => `Run ${command} and follow the prompts to create your CLI configuration file and connect it to your HubSpot account`,
|
|
3683
|
+
noConfigFileSecondary: (command) => `Run ${uiCommandReference(command)} and follow the prompts to create your CLI configuration file and connect it to your HubSpot account`,
|
|
3684
|
+
settings: {
|
|
3685
|
+
httpUseLocalhost: `The setting ${chalk.bold('httpUseLocalhost')} is enabled`,
|
|
3686
|
+
httpUseLocalhostSecondary: 'This setting causes all CLI requests to route to localhost',
|
|
3687
|
+
},
|
|
3397
3688
|
},
|
|
3398
3689
|
projectConfig: {
|
|
3399
3690
|
header: 'Project configuration',
|
|
3400
3691
|
projectDirSubHeader: (projectDir) => `Project dir: ${chalk.bold(projectDir)}`,
|
|
3401
3692
|
projectNameSubHeader: (projectName) => `Project name: ${chalk.bold(projectName)}`,
|
|
3402
3693
|
},
|
|
3694
|
+
defaultAccountOverrideFile: {
|
|
3695
|
+
header: 'Default account override file path:',
|
|
3696
|
+
},
|
|
3403
3697
|
counts: {
|
|
3404
3698
|
errors: (count) => `${chalk.bold('Errors:')} ${count}`,
|
|
3405
3699
|
warnings: (count) => `${chalk.bold('Warning:')} ${count}`,
|
|
3406
3700
|
},
|
|
3407
3701
|
},
|
|
3702
|
+
defaultAccountOverrideFileChecks: {
|
|
3703
|
+
overrideActive: (defaultAccountOverrideFile) => `Default account override file is active: ${defaultAccountOverrideFile}`,
|
|
3704
|
+
overrideAccountId: (overrideAccountId) => `Active account ID: ${overrideAccountId}`,
|
|
3705
|
+
},
|
|
3408
3706
|
},
|
|
3409
3707
|
oauth: {
|
|
3410
3708
|
missingClientId: 'Error building oauth URL: missing client ID.',
|
|
3411
3709
|
},
|
|
3710
|
+
validation: {
|
|
3711
|
+
accountNotFoundInConfig: (userProvidedAccount) => `The account "${userProvidedAccount}" could not be found in the config`,
|
|
3712
|
+
accountRequired: 'An account needs to be supplied either via "--account" or through setting a "defaultPortal"',
|
|
3713
|
+
userProvidedAccount: 'Cannot specify an account when environment variables are supplied. Please unset the environment variables or do not use the "--account" flag.',
|
|
3714
|
+
accountNotConfigured: (accountId) => `The account ${uiAccountDescription(accountId)} has not been configured`,
|
|
3715
|
+
invalidAuthType: (authType, accountId, configPath, validValues) => `Invalid "authType" value "${authType}" for account "${uiAccountDescription(accountId)}" in config file: ${configPath}. Valid values are ${validValues}.`,
|
|
3716
|
+
oauth2ConfigMissing: (accountId) => `The OAuth2 auth configuration for account ${uiAccountDescription(accountId)} is missing`,
|
|
3717
|
+
oauth2ConfigIncorrect: (accountId) => `The OAuth2 configuration for account ${uiAccountDescription(accountId)} is incorrect \n Run ${uiCommandReference('hs auth --auth-type=oauth2')} to reauthenticate`,
|
|
3718
|
+
oauth2AccessTokenNotFound: (accountId) => `The OAuth2 access token could not be found for accountId ${uiAccountDescription(accountId)}`,
|
|
3719
|
+
personalAccessKeyMissing: (accountId) => `The account "${uiAccountDescription(accountId)}" is configured to use a access key for authentication and is missing a "personalAccessKey" in the configuration file`,
|
|
3720
|
+
personalAccessKeyTokenRetrievalFailed: (accountId) => `An OAuth2 access token for account "${uiAccountDescription(accountId)} could not be retrieved using the "personalAccessKey" provided`,
|
|
3721
|
+
authConfigurationMissing: (accountId) => `The accountId ${uiAccountDescription(accountId)} is missing authentication configuration`,
|
|
3722
|
+
availableCMSModes: (modes) => `Available CMS publish modes are: ${modes}`,
|
|
3723
|
+
invalidCmsPublishMode: (cmsPublishMode, modesMessage) => `The CMS publish mode "${cmsPublishMode}" is invalid. ${modesMessage}`,
|
|
3724
|
+
missingCmsPublishMode: (modesMessage) => `The CMS publish mode option is missing. ${modesMessage}`,
|
|
3725
|
+
pathNotFile: (path) => `The path "${path}" is not a path to a file`,
|
|
3726
|
+
fileNotJson: (path) => `The file "${path}" must be a valid JSON file`,
|
|
3727
|
+
fileInvalidJson: (path) => `The file "${path}" contains invalid JSON`,
|
|
3728
|
+
},
|
|
3412
3729
|
migrate: {
|
|
3413
3730
|
componentsToBeMigrated: (components) => `The following features will be migrated: ${components}`,
|
|
3414
3731
|
componentsThatWillNotBeMigrated: (components) => `[NOTE] These features are not yet supported for migration but will be available later: ${components}`,
|
|
@@ -3442,7 +3759,7 @@ export const lib = {
|
|
|
3442
3759
|
},
|
|
3443
3760
|
noAppsEligible: (accountId, reasons) => `No apps in account ${accountId} are currently migratable${reasons.length ? `\n - ${reasons.join('\n - ')}` : ''}`,
|
|
3444
3761
|
invalidAccountTypeTitle: `${chalk.bold('Developer account not targeted')}`,
|
|
3445
|
-
invalidAccountTypeDescription: (useCommand
|
|
3762
|
+
invalidAccountTypeDescription: (useCommand) => `Only public apps created in a developer account can be converted to a project component. Select a connected developer account with ${useCommand} or ${uiAuthCommandReference()} and try again.`,
|
|
3446
3763
|
appWithAppIdNotFound: (appId) => `Could not find an app with the id ${appId} `,
|
|
3447
3764
|
noAppsForProject: (projectName) => `No apps associated with project ${projectName}`,
|
|
3448
3765
|
migrationFailed: 'Migration Failed',
|