@hubspot/cli 8.3.0 → 8.4.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 +2 -0
- package/commands/account/auth.js +12 -22
- package/commands/account/clean.js +5 -6
- package/commands/account/createOverride.js +7 -7
- package/commands/account/info.js +2 -1
- package/commands/account/list.js +3 -5
- package/commands/account/remove.js +2 -3
- package/commands/account/removeOverride.js +8 -10
- package/commands/account/rename.js +5 -6
- package/commands/account/use.js +8 -19
- package/commands/api.d.ts +10 -0
- package/commands/api.js +164 -0
- package/commands/app/migrate.js +8 -8
- package/commands/app/secret/add.js +6 -7
- package/commands/app/secret/delete.js +9 -10
- package/commands/app/secret/list.js +6 -7
- package/commands/app/secret/update.js +8 -9
- package/commands/auth.js +12 -12
- package/commands/cms/app/create.js +9 -5
- package/commands/cms/convertFields.js +8 -8
- package/commands/cms/delete.js +2 -3
- package/commands/cms/fetch.js +7 -7
- package/commands/cms/function/create.js +9 -5
- package/commands/cms/function/deploy.js +2 -3
- package/commands/cms/function/list.js +11 -7
- package/commands/cms/function/logs.js +17 -23
- package/commands/cms/function/server.js +2 -3
- package/commands/cms/getReactModule.js +7 -8
- package/commands/cms/lighthouseScore.js +25 -24
- package/commands/cms/lint.js +4 -5
- package/commands/cms/list.js +5 -6
- package/commands/cms/module/create.js +9 -5
- package/commands/cms/module/marketplace-validate.js +7 -8
- package/commands/cms/mv.js +2 -3
- package/commands/cms/template/create.js +10 -6
- package/commands/cms/theme/create.js +5 -5
- package/commands/cms/theme/generate-selectors.js +5 -4
- package/commands/cms/theme/marketplace-validate.js +8 -9
- package/commands/cms/theme/preview.js +16 -8
- package/commands/cms/upload.js +15 -12
- package/commands/cms/watch.js +5 -5
- package/commands/cms/webpack/create.js +5 -5
- package/commands/completion.js +3 -5
- package/commands/config/migrate.js +6 -7
- package/commands/config/set.js +5 -6
- package/commands/customObject/create.js +4 -5
- package/commands/customObject/createSchema.js +4 -5
- package/commands/customObject/deleteSchema.js +4 -5
- package/commands/customObject/fetchAllSchemas.js +2 -3
- package/commands/customObject/fetchSchema.js +2 -3
- package/commands/customObject/listSchemas.js +2 -3
- package/commands/customObject/updateSchema.js +4 -5
- package/commands/doctor.js +8 -8
- package/commands/feedback.js +6 -4
- package/commands/filemanager/fetch.js +5 -6
- package/commands/filemanager/upload.js +5 -5
- package/commands/getStarted.js +14 -16
- package/commands/hubdb/clear.js +5 -6
- package/commands/hubdb/create.js +4 -5
- package/commands/hubdb/delete.js +8 -9
- package/commands/hubdb/fetch.js +5 -6
- package/commands/hubdb/list.js +16 -14
- package/commands/init.js +14 -17
- package/commands/mcp/setup.js +5 -6
- package/commands/mcp/start.js +2 -3
- package/commands/open.js +4 -5
- package/commands/project/add.js +10 -5
- package/commands/project/create.js +10 -10
- package/commands/project/delete.d.ts +7 -0
- package/commands/project/delete.js +74 -0
- package/commands/project/deploy.js +36 -34
- package/commands/project/dev/deprecatedFlow.js +42 -15
- package/commands/project/dev/index.d.ts +3 -3
- package/commands/project/dev/index.js +24 -30
- package/commands/project/dev/unifiedFlow.js +37 -14
- package/commands/project/download.js +10 -11
- package/commands/project/info.d.ts +4 -0
- package/commands/project/info.js +67 -0
- package/commands/project/installDeps.js +9 -6
- package/commands/project/lint.js +11 -8
- package/commands/project/list.js +14 -14
- package/commands/project/listBuilds.js +8 -6
- package/commands/project/logs.js +5 -6
- package/commands/project/migrate.js +8 -8
- package/commands/project/open.js +5 -6
- package/commands/project/profile/add.js +12 -8
- package/commands/project/profile/delete.js +15 -11
- package/commands/project/updateDeps.js +9 -6
- package/commands/project/upload.js +31 -17
- package/commands/project/validate.js +11 -11
- package/commands/project/watch.js +20 -20
- package/commands/project.js +4 -0
- package/commands/sandbox/create.js +15 -15
- package/commands/sandbox/delete.js +13 -14
- package/commands/secret/addSecret.js +6 -7
- package/commands/secret/deleteSecret.js +5 -6
- package/commands/secret/listSecret.js +2 -3
- package/commands/secret/updateSecret.js +4 -5
- package/commands/testAccount/create.d.ts +1 -1
- package/commands/testAccount/create.js +20 -16
- package/commands/testAccount/createConfig.js +7 -8
- package/commands/testAccount/delete.js +27 -18
- package/commands/testAccount/importData.js +6 -7
- package/commands/upgrade.js +9 -10
- package/lang/en.d.ts +114 -5
- package/lang/en.js +111 -5
- package/lib/accountAuth.js +2 -2
- package/lib/buildAccount.js +3 -3
- package/lib/doctor/Diagnosis.js +5 -5
- package/lib/errorHandlers/index.js +4 -3
- package/lib/errorHandlers/suppressError.js +4 -0
- package/lib/errors/PromptExitError.d.ts +4 -2
- package/lib/errors/PromptExitError.js +3 -0
- package/lib/process.d.ts +1 -1
- package/lib/process.js +10 -3
- package/lib/projects/delete.d.ts +13 -0
- package/lib/projects/delete.js +193 -0
- package/lib/projects/localDev/AppDevModeInterface.js +11 -11
- package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +3 -1
- package/lib/projects/localDev/DevServerManager_DEPRECATED.js +2 -2
- package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
- package/lib/projects/localDev/DevSessionManager.js +31 -19
- package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +3 -0
- package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +16 -12
- package/lib/projects/localDev/LocalDevProcess.js +6 -5
- package/lib/projects/localDev/LocalDevState.d.ts +3 -2
- package/lib/projects/localDev/LocalDevState.js +3 -1
- package/lib/projects/localDev/helpers/account.d.ts +4 -3
- package/lib/projects/localDev/helpers/account.js +16 -19
- package/lib/projects/localDev/helpers/process.d.ts +1 -1
- package/lib/projects/localDev/helpers/process.js +4 -10
- package/lib/projects/localDev/helpers/project.d.ts +4 -3
- package/lib/projects/localDev/helpers/project.js +31 -15
- package/lib/projects/projectInfo.d.ts +5 -0
- package/lib/projects/projectInfo.js +82 -0
- package/lib/projects/projectProfiles.d.ts +1 -2
- package/lib/projects/projectProfiles.js +5 -17
- package/lib/prompts/createApiSamplePrompt.js +4 -0
- package/lib/prompts/projectProfilePrompt.d.ts +2 -0
- package/lib/prompts/projectProfilePrompt.js +46 -0
- package/lib/prompts/promptUtils.js +3 -2
- package/lib/prompts/selectHubDBTablePrompt.js +2 -2
- package/lib/prompts/selectPublicAppForMigrationPrompt.js +2 -2
- package/lib/theme/cmsDevServerProcess.d.ts +2 -0
- package/lib/theme/cmsDevServerProcess.js +7 -6
- package/lib/ui/SpinniesManager.d.ts +1 -0
- package/lib/ui/SpinniesManager.js +20 -6
- package/lib/ui/spinniesUtils.d.ts +0 -1
- package/lib/ui/spinniesUtils.js +6 -16
- package/lib/usageTracking.d.ts +3 -4
- package/lib/yargs/makeYargsBuilder.d.ts +13 -0
- package/lib/yargs/makeYargsBuilder.js +33 -0
- package/lib/yargs/makeYargsHandlerWithUsageTracking.d.ts +3 -0
- package/lib/yargs/makeYargsHandlerWithUsageTracking.js +95 -0
- package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
- package/lib/yargs/strictEnforceBoolean.js +13 -0
- package/lib/yargsUtils.d.ts +3 -16
- package/lib/yargsUtils.js +3 -48
- package/package.json +9 -4
- package/types/LocalDev.d.ts +5 -0
- package/types/Projects.d.ts +19 -0
- package/types/Yargs.d.ts +18 -1
- package/api/__tests__/migrate.test.d.ts +0 -1
- package/api/__tests__/migrate.test.js +0 -199
- package/commands/__tests__/account.test.d.ts +0 -1
- package/commands/__tests__/account.test.js +0 -69
- package/commands/__tests__/auth.test.d.ts +0 -1
- package/commands/__tests__/auth.test.js +0 -43
- package/commands/__tests__/cms.test.d.ts +0 -1
- package/commands/__tests__/cms.test.js +0 -87
- package/commands/__tests__/config.test.d.ts +0 -1
- package/commands/__tests__/config.test.js +0 -44
- package/commands/__tests__/customObject.test.d.ts +0 -1
- package/commands/__tests__/customObject.test.js +0 -68
- package/commands/__tests__/doctor.test.d.ts +0 -1
- package/commands/__tests__/doctor.test.js +0 -132
- package/commands/__tests__/feedback.test.d.ts +0 -1
- package/commands/__tests__/feedback.test.js +0 -24
- package/commands/__tests__/filemanager.test.d.ts +0 -1
- package/commands/__tests__/filemanager.test.js +0 -45
- package/commands/__tests__/getStarted.test.d.ts +0 -1
- package/commands/__tests__/getStarted.test.js +0 -173
- package/commands/__tests__/hubdb.test.d.ts +0 -1
- package/commands/__tests__/hubdb.test.js +0 -50
- package/commands/__tests__/init.test.d.ts +0 -1
- package/commands/__tests__/init.test.js +0 -42
- package/commands/__tests__/mcp.test.d.ts +0 -1
- package/commands/__tests__/mcp.test.js +0 -46
- package/commands/__tests__/open.test.d.ts +0 -1
- package/commands/__tests__/open.test.js +0 -58
- package/commands/__tests__/project.test.d.ts +0 -1
- package/commands/__tests__/project.test.js +0 -125
- package/commands/__tests__/sandbox.test.d.ts +0 -1
- package/commands/__tests__/sandbox.test.js +0 -44
- package/commands/__tests__/secret.test.d.ts +0 -1
- package/commands/__tests__/secret.test.js +0 -49
- package/commands/__tests__/testAccount.test.d.ts +0 -1
- package/commands/__tests__/testAccount.test.js +0 -57
- package/commands/__tests__/upgrade.test.d.ts +0 -1
- package/commands/__tests__/upgrade.test.js +0 -309
- package/commands/account/__tests__/auth.test.d.ts +0 -1
- package/commands/account/__tests__/auth.test.js +0 -206
- package/commands/account/__tests__/clean.test.d.ts +0 -1
- package/commands/account/__tests__/clean.test.js +0 -28
- package/commands/account/__tests__/createOverride.test.d.ts +0 -1
- package/commands/account/__tests__/createOverride.test.js +0 -32
- package/commands/account/__tests__/info.test.d.ts +0 -1
- package/commands/account/__tests__/info.test.js +0 -28
- package/commands/account/__tests__/list.test.d.ts +0 -1
- package/commands/account/__tests__/list.test.js +0 -153
- package/commands/account/__tests__/remove.test.d.ts +0 -1
- package/commands/account/__tests__/remove.test.js +0 -36
- package/commands/account/__tests__/removeOverride.d.ts +0 -1
- package/commands/account/__tests__/removeOverride.js +0 -25
- package/commands/account/__tests__/rename.test.d.ts +0 -1
- package/commands/account/__tests__/rename.test.js +0 -82
- package/commands/account/__tests__/use.test.d.ts +0 -1
- package/commands/account/__tests__/use.test.js +0 -170
- package/commands/app/__tests__/migrate.test.d.ts +0 -1
- package/commands/app/__tests__/migrate.test.js +0 -111
- package/commands/app/secret/__tests__/add.test.d.ts +0 -1
- package/commands/app/secret/__tests__/add.test.js +0 -140
- package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
- package/commands/app/secret/__tests__/delete.test.js +0 -28
- package/commands/app/secret/__tests__/list.test.d.ts +0 -1
- package/commands/app/secret/__tests__/list.test.js +0 -25
- package/commands/app/secret/__tests__/update.test.d.ts +0 -1
- package/commands/app/secret/__tests__/update.test.js +0 -28
- package/commands/cms/__tests__/delete.test.d.ts +0 -1
- package/commands/cms/__tests__/delete.test.js +0 -39
- package/commands/cms/__tests__/fetch.test.d.ts +0 -1
- package/commands/cms/__tests__/fetch.test.js +0 -156
- package/commands/cms/__tests__/function.test.d.ts +0 -1
- package/commands/cms/__tests__/function.test.js +0 -50
- package/commands/cms/__tests__/lint.test.d.ts +0 -1
- package/commands/cms/__tests__/lint.test.js +0 -33
- package/commands/cms/__tests__/list.test.d.ts +0 -1
- package/commands/cms/__tests__/list.test.js +0 -42
- package/commands/cms/__tests__/module.test.d.ts +0 -1
- package/commands/cms/__tests__/module.test.js +0 -45
- package/commands/cms/__tests__/mv.test.d.ts +0 -1
- package/commands/cms/__tests__/mv.test.js +0 -46
- package/commands/cms/__tests__/theme.test.d.ts +0 -1
- package/commands/cms/__tests__/theme.test.js +0 -54
- package/commands/cms/__tests__/upload.test.d.ts +0 -1
- package/commands/cms/__tests__/upload.test.js +0 -312
- package/commands/cms/__tests__/watch.test.d.ts +0 -1
- package/commands/cms/__tests__/watch.test.js +0 -204
- package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
- package/commands/cms/function/__tests__/logs.test.js +0 -70
- package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
- package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
- package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
- package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
- package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
- package/commands/cms/theme/__tests__/preview.test.js +0 -54
- package/commands/customObject/__tests__/create.test.d.ts +0 -1
- package/commands/customObject/__tests__/create.test.js +0 -40
- package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/createSchema.test.js +0 -28
- package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
- package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
- package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
- package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
- package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
- package/commands/customObject/__tests__/listSchemas.test.js +0 -29
- package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/updateSchema.test.js +0 -40
- package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
- package/commands/filemanager/__tests__/fetch.test.js +0 -32
- package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
- package/commands/filemanager/__tests__/upload.test.js +0 -191
- package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
- package/commands/hubdb/__tests__/clear.test.js +0 -28
- package/commands/hubdb/__tests__/create.test.d.ts +0 -1
- package/commands/hubdb/__tests__/create.test.js +0 -28
- package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
- package/commands/hubdb/__tests__/delete.test.js +0 -28
- package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
- package/commands/hubdb/__tests__/fetch.test.js +0 -28
- package/commands/hubdb/__tests__/list.test.d.ts +0 -1
- package/commands/hubdb/__tests__/list.test.js +0 -88
- package/commands/mcp/__tests__/setup.test.d.ts +0 -1
- package/commands/mcp/__tests__/setup.test.js +0 -26
- package/commands/mcp/__tests__/start.test.d.ts +0 -1
- package/commands/mcp/__tests__/start.test.js +0 -144
- package/commands/project/__tests__/add.test.d.ts +0 -1
- package/commands/project/__tests__/add.test.js +0 -107
- package/commands/project/__tests__/create.test.d.ts +0 -1
- package/commands/project/__tests__/create.test.js +0 -97
- package/commands/project/__tests__/deploy.test.d.ts +0 -1
- package/commands/project/__tests__/deploy.test.js +0 -307
- package/commands/project/__tests__/dev.test.d.ts +0 -1
- package/commands/project/__tests__/dev.test.js +0 -273
- package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
- package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
- package/commands/project/__tests__/download.test.d.ts +0 -1
- package/commands/project/__tests__/download.test.js +0 -39
- package/commands/project/__tests__/installDeps.test.d.ts +0 -1
- package/commands/project/__tests__/installDeps.test.js +0 -140
- package/commands/project/__tests__/lint.test.d.ts +0 -1
- package/commands/project/__tests__/lint.test.js +0 -704
- package/commands/project/__tests__/list.test.d.ts +0 -1
- package/commands/project/__tests__/list.test.js +0 -31
- package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
- package/commands/project/__tests__/listBuilds.test.js +0 -38
- package/commands/project/__tests__/logs.test.d.ts +0 -1
- package/commands/project/__tests__/logs.test.js +0 -202
- package/commands/project/__tests__/migrate.test.d.ts +0 -1
- package/commands/project/__tests__/migrate.test.js +0 -106
- package/commands/project/__tests__/open.test.d.ts +0 -1
- package/commands/project/__tests__/open.test.js +0 -39
- package/commands/project/__tests__/profile.test.d.ts +0 -1
- package/commands/project/__tests__/profile.test.js +0 -42
- package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
- package/commands/project/__tests__/updateDeps.test.js +0 -140
- package/commands/project/__tests__/upload.test.d.ts +0 -1
- package/commands/project/__tests__/upload.test.js +0 -234
- package/commands/project/__tests__/validate.test.d.ts +0 -1
- package/commands/project/__tests__/validate.test.js +0 -381
- package/commands/project/__tests__/watch.test.d.ts +0 -1
- package/commands/project/__tests__/watch.test.js +0 -35
- package/commands/sandbox/__tests__/create.test.d.ts +0 -1
- package/commands/sandbox/__tests__/create.test.js +0 -198
- package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
- package/commands/sandbox/__tests__/delete.test.js +0 -31
- package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/addSecret.test.js +0 -162
- package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/deleteSecret.test.js +0 -41
- package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/listSecret.test.js +0 -29
- package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/updateSecret.test.js +0 -29
- package/commands/testAccount/__tests__/create.test.d.ts +0 -1
- package/commands/testAccount/__tests__/create.test.js +0 -106
- package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
- package/commands/testAccount/__tests__/createConfig.test.js +0 -32
- package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
- package/commands/testAccount/__tests__/delete.test.js +0 -29
- package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
- package/commands/testAccount/__tests__/importData.test.js +0 -92
- package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
- package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
- package/lib/__tests__/accountAuth.test.d.ts +0 -1
- package/lib/__tests__/accountAuth.test.js +0 -258
- package/lib/__tests__/accountTypes.test.d.ts +0 -1
- package/lib/__tests__/accountTypes.test.js +0 -98
- package/lib/__tests__/buildAccount.test.d.ts +0 -1
- package/lib/__tests__/buildAccount.test.js +0 -211
- package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
- package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
- package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
- package/lib/__tests__/commandSuggestion.test.js +0 -121
- package/lib/__tests__/commonOpts.test.d.ts +0 -1
- package/lib/__tests__/commonOpts.test.js +0 -80
- package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
- package/lib/__tests__/dependencyManagement.test.js +0 -1067
- package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
- package/lib/__tests__/developerTestAccounts.test.js +0 -156
- package/lib/__tests__/hasFeature.test.d.ts +0 -1
- package/lib/__tests__/hasFeature.test.js +0 -167
- package/lib/__tests__/http.test.d.ts +0 -1
- package/lib/__tests__/http.test.js +0 -40
- package/lib/__tests__/importData.test.d.ts +0 -1
- package/lib/__tests__/importData.test.js +0 -98
- package/lib/__tests__/npmCli.test.d.ts +0 -1
- package/lib/__tests__/npmCli.test.js +0 -84
- package/lib/__tests__/oauth.test.d.ts +0 -1
- package/lib/__tests__/oauth.test.js +0 -109
- package/lib/__tests__/parsing.test.d.ts +0 -1
- package/lib/__tests__/parsing.test.js +0 -34
- package/lib/__tests__/polling.test.d.ts +0 -1
- package/lib/__tests__/polling.test.js +0 -76
- package/lib/__tests__/process.test.d.ts +0 -1
- package/lib/__tests__/process.test.js +0 -89
- package/lib/__tests__/sandboxes.test.d.ts +0 -1
- package/lib/__tests__/sandboxes.test.js +0 -128
- package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
- package/lib/__tests__/serverlessLogs.test.js +0 -163
- package/lib/__tests__/usageTracking.test.d.ts +0 -1
- package/lib/__tests__/usageTracking.test.js +0 -197
- package/lib/__tests__/validation.test.d.ts +0 -1
- package/lib/__tests__/validation.test.js +0 -143
- package/lib/__tests__/yargsUtils.test.d.ts +0 -1
- package/lib/__tests__/yargsUtils.test.js +0 -124
- package/lib/app/__tests__/migrate.test.d.ts +0 -1
- package/lib/app/__tests__/migrate.test.js +0 -638
- package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
- package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
- package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
- package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
- package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
- package/lib/doctor/__tests__/Doctor.test.js +0 -560
- package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
- package/lib/errorHandlers/__tests__/index.test.js +0 -278
- package/lib/mcp/__tests__/setup.test.d.ts +0 -1
- package/lib/mcp/__tests__/setup.test.js +0 -523
- package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
- package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
- package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
- package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
- package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
- package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
- package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
- package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
- package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
- package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
- package/lib/projects/__tests__/DevServerManager.test.js +0 -185
- package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
- package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
- package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
- package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
- package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
- package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
- package/lib/projects/__tests__/components.test.d.ts +0 -1
- package/lib/projects/__tests__/components.test.js +0 -440
- package/lib/projects/__tests__/deploy.test.d.ts +0 -1
- package/lib/projects/__tests__/deploy.test.js +0 -231
- package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
- package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
- package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
- package/lib/projects/__tests__/platformVersion.test.js +0 -63
- package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
- package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
- package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
- package/lib/projects/__tests__/projectProfiles.test.js +0 -441
- package/lib/projects/__tests__/projects.test.d.ts +0 -1
- package/lib/projects/__tests__/projects.test.js +0 -58
- package/lib/projects/__tests__/structure.test.d.ts +0 -1
- package/lib/projects/__tests__/structure.test.js +0 -210
- package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
- package/lib/projects/__tests__/uieLinting.test.js +0 -631
- package/lib/projects/__tests__/upload.test.d.ts +0 -1
- package/lib/projects/__tests__/upload.test.js +0 -183
- package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
- package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
- package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
- package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
- package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
- package/lib/projects/create/__tests__/legacy.test.js +0 -72
- package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
- package/lib/projects/create/__tests__/v2.test.js +0 -257
- package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
- package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
- package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
- package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
- package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
- package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
- package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
- package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
- package/lib/theme/__tests__/migrate.test.d.ts +0 -1
- package/lib/theme/__tests__/migrate.test.js +0 -247
- package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
- package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
- package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
- package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
- package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
- package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
- package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
- package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
- package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
- package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
- package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -131
- package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
- package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
- package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
- package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
- package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
- package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
- package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
- package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
- package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
- package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
- package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
- package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
- package/mcp-server/utils/__tests__/command.test.js +0 -275
- package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
- package/mcp-server/utils/__tests__/content.test.js +0 -164
- package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
- package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
|
@@ -16,7 +16,8 @@ class LocalDevState {
|
|
|
16
16
|
_devServerMessage;
|
|
17
17
|
_uploadWarnings;
|
|
18
18
|
_devServersStarted;
|
|
19
|
-
|
|
19
|
+
actions;
|
|
20
|
+
constructor({ targetProjectAccountId, targetTestingAccountId, projectConfig, projectDir, projectData, debug, initialProjectNodes, initialProjectProfileData, profile, env, actions, }) {
|
|
20
21
|
this._targetProjectAccountId = targetProjectAccountId;
|
|
21
22
|
this._targetTestingAccountId = targetTestingAccountId;
|
|
22
23
|
this._profile = profile;
|
|
@@ -32,6 +33,7 @@ class LocalDevState {
|
|
|
32
33
|
this._devServerMessage = LOCAL_DEV_SERVER_MESSAGE_TYPES.INITIAL;
|
|
33
34
|
this._uploadWarnings = new Set();
|
|
34
35
|
this._devServersStarted = false;
|
|
36
|
+
this.actions = actions;
|
|
35
37
|
this._listeners = {};
|
|
36
38
|
}
|
|
37
39
|
runListeners(key) {
|
|
@@ -2,13 +2,14 @@ import { HubSpotConfigAccount } from '@hubspot/local-dev-lib/types/Accounts';
|
|
|
2
2
|
import { Environment } from '@hubspot/local-dev-lib/types/Accounts';
|
|
3
3
|
import { DeveloperTestAccount } from '@hubspot/local-dev-lib/types/developerTestAccounts.js';
|
|
4
4
|
import { ProjectDevTargetAccountPromptResponse } from '../../../prompts/projectDevTargetAccountPrompt.js';
|
|
5
|
-
|
|
6
|
-
export declare function
|
|
5
|
+
import { ExitFunction } from '../../../../types/Yargs.js';
|
|
6
|
+
export declare function confirmDefaultAccountIsTarget(accountConfig: HubSpotConfigAccount, exit: ExitFunction): Promise<void>;
|
|
7
|
+
export declare function checkIfDefaultAccountIsSupported(accountConfig: HubSpotConfigAccount, hasPublicApps: boolean, exit: ExitFunction): Promise<void>;
|
|
7
8
|
export declare function checkIfParentAccountIsAuthed(accountConfig: HubSpotConfigAccount): void;
|
|
8
9
|
export declare function checkIfAccountFlagIsSupported(accountConfig: HubSpotConfigAccount, hasPublicApps: boolean): void;
|
|
9
10
|
export declare function suggestRecommendedNestedAccount(accounts: HubSpotConfigAccount[], accountConfig: HubSpotConfigAccount, hasPublicApps: boolean): Promise<ProjectDevTargetAccountPromptResponse>;
|
|
10
11
|
export declare function createSandboxForLocalDev(accountId: number, accountConfig: HubSpotConfigAccount, env: Environment): Promise<number>;
|
|
11
12
|
export declare function createDeveloperTestAccountForLocalDev(accountId: number, accountConfig: HubSpotConfigAccount, env: Environment, useV2?: boolean): Promise<number>;
|
|
12
|
-
export declare function useExistingDevTestAccount(env: Environment, account: DeveloperTestAccount): Promise<
|
|
13
|
+
export declare function useExistingDevTestAccount(env: Environment, account: DeveloperTestAccount): Promise<boolean>;
|
|
13
14
|
export declare function hasSandboxes(account: HubSpotConfigAccount): Promise<boolean>;
|
|
14
15
|
export declare function selectAccountTypePrompt(accountConfig: HubSpotConfigAccount): Promise<string | null>;
|
|
@@ -27,54 +27,51 @@ import { listPrompt } from '../../../prompts/promptUtils.js';
|
|
|
27
27
|
import { confirmUseExistingDeveloperTestAccountPrompt } from '../../../prompts/projectDevTargetAccountPrompt.js';
|
|
28
28
|
// If the user passed in the --account flag, confirm they want to use that account as
|
|
29
29
|
// their target account, otherwise exit
|
|
30
|
-
export async function confirmDefaultAccountIsTarget(accountConfig) {
|
|
30
|
+
export async function confirmDefaultAccountIsTarget(accountConfig, exit) {
|
|
31
31
|
if (!accountConfig.name || !accountConfig.accountType) {
|
|
32
32
|
uiLogger.error(lib.localDevHelpers.account.confirmDefaultAccountIsTarget.configError);
|
|
33
|
-
|
|
33
|
+
return exit(EXIT_CODES.ERROR);
|
|
34
34
|
}
|
|
35
35
|
uiLogger.log('');
|
|
36
36
|
const useDefaultAccount = await confirmDefaultAccountPrompt(accountConfig.name, HUBSPOT_ACCOUNT_TYPE_STRINGS[accountConfig.accountType]);
|
|
37
37
|
if (!useDefaultAccount) {
|
|
38
38
|
uiLogger.log(lib.localDevHelpers.account.confirmDefaultAccountIsTarget
|
|
39
39
|
.declineDefaultAccountExplanation);
|
|
40
|
-
|
|
40
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
// Confirm the default account is supported for the type of apps being developed
|
|
44
|
-
export async function checkIfDefaultAccountIsSupported(accountConfig, hasPublicApps) {
|
|
44
|
+
export async function checkIfDefaultAccountIsSupported(accountConfig, hasPublicApps, exit) {
|
|
45
45
|
const defaultAccountIsUnified = await isUnifiedAccount(accountConfig);
|
|
46
46
|
if (hasPublicApps &&
|
|
47
47
|
!(isAppDeveloperAccount(accountConfig) ||
|
|
48
48
|
isDeveloperTestAccount(accountConfig) ||
|
|
49
49
|
defaultAccountIsUnified)) {
|
|
50
50
|
uiLogger.error(lib.localDevHelpers.account.checkIfDefaultAccountIsSupported.publicApp);
|
|
51
|
-
|
|
51
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
52
52
|
}
|
|
53
53
|
else if (!hasPublicApps && isAppDeveloperAccount(accountConfig)) {
|
|
54
54
|
uiLogger.error(lib.localDevHelpers.account.checkIfDefaultAccountIsSupported.privateApp);
|
|
55
|
-
|
|
55
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
export function checkIfParentAccountIsAuthed(accountConfig) {
|
|
59
59
|
if (!accountConfig.parentAccountId ||
|
|
60
60
|
!getConfigAccountIfExists(accountConfig.parentAccountId)?.accountId) {
|
|
61
|
-
|
|
62
|
-
process.exit(EXIT_CODES.SUCCESS);
|
|
61
|
+
throw new Error(lib.localDevHelpers.account.checkIfParentAccountIsAuthed.notAuthedError(accountConfig.parentAccountId || '', uiAccountDescription(accountConfig.accountId)));
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
// Confirm the default account is a developer account if developing public apps
|
|
66
65
|
export function checkIfAccountFlagIsSupported(accountConfig, hasPublicApps) {
|
|
67
66
|
if (hasPublicApps) {
|
|
68
67
|
if (!isDeveloperTestAccount(accountConfig)) {
|
|
69
|
-
|
|
68
|
+
throw new Error(lib.localDevHelpers.account.validateAccountOption
|
|
70
69
|
.invalidPublicAppAccount);
|
|
71
|
-
process.exit(EXIT_CODES.SUCCESS);
|
|
72
70
|
}
|
|
73
71
|
checkIfParentAccountIsAuthed(accountConfig);
|
|
74
72
|
}
|
|
75
73
|
else if (isAppDeveloperAccount(accountConfig)) {
|
|
76
|
-
|
|
77
|
-
process.exit(EXIT_CODES.SUCCESS);
|
|
74
|
+
throw new Error(lib.localDevHelpers.account.validateAccountOption.invalidPrivateAppAccount);
|
|
78
75
|
}
|
|
79
76
|
}
|
|
80
77
|
// If the user isn't using the recommended account type, prompt them to use or create one
|
|
@@ -110,7 +107,7 @@ export async function createSandboxForLocalDev(accountId, accountConfig, env) {
|
|
|
110
107
|
else {
|
|
111
108
|
logError(err);
|
|
112
109
|
}
|
|
113
|
-
|
|
110
|
+
throw err;
|
|
114
111
|
}
|
|
115
112
|
try {
|
|
116
113
|
const { name } = await hubspotAccountNamePrompt({
|
|
@@ -123,7 +120,7 @@ export async function createSandboxForLocalDev(accountId, accountConfig, env) {
|
|
|
123
120
|
}
|
|
124
121
|
catch (err) {
|
|
125
122
|
logError(err);
|
|
126
|
-
|
|
123
|
+
throw err;
|
|
127
124
|
}
|
|
128
125
|
}
|
|
129
126
|
// Create a developer test account and return its accountId
|
|
@@ -149,7 +146,7 @@ export async function createDeveloperTestAccountForLocalDev(accountId, accountCo
|
|
|
149
146
|
else {
|
|
150
147
|
logError(err);
|
|
151
148
|
}
|
|
152
|
-
|
|
149
|
+
throw err;
|
|
153
150
|
}
|
|
154
151
|
try {
|
|
155
152
|
const { name } = await hubspotAccountNamePrompt({
|
|
@@ -157,12 +154,11 @@ export async function createDeveloperTestAccountForLocalDev(accountId, accountCo
|
|
|
157
154
|
accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
|
|
158
155
|
});
|
|
159
156
|
trackCommandMetadataUsage('developer-test-account-create', { step: 'project-dev' }, accountId);
|
|
160
|
-
|
|
161
|
-
return result;
|
|
157
|
+
return await buildDeveloperTestAccount(name, accountConfig, env, maxTestPortals, useV2);
|
|
162
158
|
}
|
|
163
159
|
catch (err) {
|
|
164
160
|
logError(err);
|
|
165
|
-
|
|
161
|
+
throw err;
|
|
166
162
|
}
|
|
167
163
|
}
|
|
168
164
|
// Prompt user to confirm usage of an existing developer test account that is not currently in the config
|
|
@@ -173,10 +169,11 @@ export async function useExistingDevTestAccount(env, account) {
|
|
|
173
169
|
uiLogger.log(lib.localDevHelpers.account.confirmDefaultAccountIsTarget
|
|
174
170
|
.declineDefaultAccountExplanation);
|
|
175
171
|
uiLogger.log('');
|
|
176
|
-
|
|
172
|
+
return false;
|
|
177
173
|
}
|
|
178
174
|
const devTestAcctConfigName = await saveAccountToConfig(account.id, account.accountName, env);
|
|
179
175
|
uiLogger.success(lib.developerTestAccount.create.success.configFileUpdated(devTestAcctConfigName, PERSONAL_ACCESS_KEY_AUTH_METHOD.name));
|
|
176
|
+
return true;
|
|
180
177
|
}
|
|
181
178
|
export async function hasSandboxes(account) {
|
|
182
179
|
const accountId = account.accountId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function
|
|
1
|
+
export declare function isLocalDevRunning(): Promise<boolean>;
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import { LOCAL_DEV_WEBSOCKET_SERVER_INSTANCE_ID } from '../../../constants.js';
|
|
2
|
-
import { EXIT_CODES } from '../../../enums/exitCodes.js';
|
|
3
2
|
import { getServerPortByInstanceId } from '@hubspot/local-dev-lib/portManager';
|
|
4
|
-
|
|
5
|
-
import { commands } from '../../../../lang/en.js';
|
|
6
|
-
export async function confirmLocalDevIsNotRunning() {
|
|
3
|
+
export async function isLocalDevRunning() {
|
|
7
4
|
try {
|
|
8
5
|
const existingPortInUse = await getServerPortByInstanceId(LOCAL_DEV_WEBSOCKET_SERVER_INSTANCE_ID);
|
|
9
|
-
|
|
10
|
-
uiLogger.error(commands.project.dev.errors.localDevAlreadyRunning);
|
|
11
|
-
process.exit(EXIT_CODES.ERROR);
|
|
12
|
-
}
|
|
6
|
+
return Boolean(existingPortInUse);
|
|
13
7
|
}
|
|
14
|
-
catch
|
|
15
|
-
return;
|
|
8
|
+
catch {
|
|
9
|
+
return false;
|
|
16
10
|
}
|
|
17
11
|
}
|
|
@@ -2,11 +2,12 @@ import { type IntermediateRepresentationNode, type IntermediateRepresentationNod
|
|
|
2
2
|
import { Build } from '@hubspot/local-dev-lib/types/Build';
|
|
3
3
|
import { Project } from '@hubspot/local-dev-lib/types/Project';
|
|
4
4
|
import { ProjectConfig } from '../../../../types/Projects.js';
|
|
5
|
-
|
|
6
|
-
export declare function
|
|
5
|
+
import { ExitFunction } from '../../../../types/Yargs.js';
|
|
6
|
+
export declare function createNewProjectForLocalDev(projectConfig: ProjectConfig, targetAccountId: number, shouldCreateWithoutConfirmation: boolean, hasPublicApps: boolean, exit: ExitFunction): Promise<Project>;
|
|
7
|
+
export declare function createInitialBuildForNewProject(projectConfig: ProjectConfig, projectDir: string, targetAccountId: number, exit: ExitFunction, sendIR?: boolean, profile?: string): Promise<Build>;
|
|
7
8
|
export declare function compareLocalProjectToDeployed(projectConfig: ProjectConfig, accountId: number, deployedBuildId: number | undefined, localProjectNodes: {
|
|
8
9
|
[key: string]: IntermediateRepresentationNodeLocalDev;
|
|
9
|
-
}, profile?: string): Promise<void>;
|
|
10
|
+
}, exit: ExitFunction, profile?: string): Promise<void>;
|
|
10
11
|
export declare function getDeployedProjectNodes(projectConfig: ProjectConfig, accountId: number, deployedBuildId: number, profile?: string): Promise<{
|
|
11
12
|
[key: string]: IntermediateRepresentationNode;
|
|
12
13
|
}>;
|
|
@@ -8,7 +8,7 @@ import { sanitizeFileName } from '@hubspot/local-dev-lib/path';
|
|
|
8
8
|
import { isDeepEqual } from '@hubspot/local-dev-lib/isDeepEqual';
|
|
9
9
|
import { translate, } from '@hubspot/project-parsing-lib/translate';
|
|
10
10
|
import { isSpecifiedError } from '@hubspot/local-dev-lib/errors/index';
|
|
11
|
-
import { PROJECT_ERROR_TYPES, PROJECT_BUILD_TEXT, PROJECT_DEPLOY_TEXT, } from '../../../constants.js';
|
|
11
|
+
import { PROJECT_ERROR_TYPES, PROJECT_BUILD_TEXT, PROJECT_DEPLOY_TEXT, PROJECT_CONFIG_FILE, } from '../../../constants.js';
|
|
12
12
|
import { lib } from '../../../../lang/en.js';
|
|
13
13
|
import { uiLogger } from '../../../ui/logger.js';
|
|
14
14
|
import { uiLine } from '../../../ui/index.js';
|
|
@@ -22,7 +22,7 @@ import { debugError, logError } from '../../../errorHandlers/index.js';
|
|
|
22
22
|
import { ApiErrorContext } from '../../../errorHandlers/index.js';
|
|
23
23
|
import { getProjectPackageJsonLocations, hasMissingPackages, installPackages, } from '../../../dependencyManagement.js';
|
|
24
24
|
// Prompt the user to create a new project if one doesn't exist on their target account
|
|
25
|
-
export async function createNewProjectForLocalDev(projectConfig, targetAccountId, shouldCreateWithoutConfirmation, hasPublicApps) {
|
|
25
|
+
export async function createNewProjectForLocalDev(projectConfig, targetAccountId, shouldCreateWithoutConfirmation, hasPublicApps, exit) {
|
|
26
26
|
// Create the project without prompting if this is a newly created sandbox
|
|
27
27
|
let shouldCreateProject = shouldCreateWithoutConfirmation;
|
|
28
28
|
if (!shouldCreateProject) {
|
|
@@ -54,7 +54,7 @@ export async function createNewProjectForLocalDev(projectConfig, targetAccountId
|
|
|
54
54
|
SpinniesManager.fail('createProject');
|
|
55
55
|
uiLogger.log(lib.localDevHelpers.project.createNewProjectForLocalDev
|
|
56
56
|
.failedToCreateProject);
|
|
57
|
-
|
|
57
|
+
return exit(EXIT_CODES.ERROR);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
else {
|
|
@@ -62,24 +62,24 @@ export async function createNewProjectForLocalDev(projectConfig, targetAccountId
|
|
|
62
62
|
uiLogger.log('');
|
|
63
63
|
uiLogger.log(lib.localDevHelpers.project.createNewProjectForLocalDev
|
|
64
64
|
.choseNotToCreateProject);
|
|
65
|
-
|
|
65
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
function projectUploadCallback(accountId, projectConfig, tempFile, buildId) {
|
|
68
|
+
function projectUploadCallback(accountId, projectConfig, tempFile, exit, buildId) {
|
|
69
69
|
if (!buildId) {
|
|
70
70
|
uiLogger.error(lib.localDevHelpers.project.createInitialBuildForNewProject.genericError);
|
|
71
|
-
|
|
71
|
+
return exit(EXIT_CODES.ERROR);
|
|
72
72
|
}
|
|
73
73
|
return pollProjectBuildAndDeploy(accountId, projectConfig, tempFile, buildId, true);
|
|
74
74
|
}
|
|
75
75
|
// Create an initial build if the project was newly created in the account
|
|
76
76
|
// Return the newly deployed build
|
|
77
|
-
export async function createInitialBuildForNewProject(projectConfig, projectDir, targetAccountId, sendIR, profile) {
|
|
77
|
+
export async function createInitialBuildForNewProject(projectConfig, projectDir, targetAccountId, exit, sendIR, profile) {
|
|
78
78
|
const { result: initialUploadResult, uploadError } = await handleProjectUpload({
|
|
79
79
|
accountId: targetAccountId,
|
|
80
80
|
projectConfig,
|
|
81
81
|
projectDir,
|
|
82
|
-
callbackFunc: projectUploadCallback,
|
|
82
|
+
callbackFunc: (accountId, config, tempFile, buildId) => projectUploadCallback(accountId, config, tempFile, exit, buildId),
|
|
83
83
|
uploadMessage: lib.localDevHelpers.project.createInitialBuildForNewProject
|
|
84
84
|
.initialUploadMessage,
|
|
85
85
|
forceCreate: true,
|
|
@@ -102,7 +102,7 @@ export async function createInitialBuildForNewProject(projectConfig, projectDir,
|
|
|
102
102
|
projectName: projectConfig.name,
|
|
103
103
|
}));
|
|
104
104
|
}
|
|
105
|
-
|
|
105
|
+
return exit(EXIT_CODES.ERROR);
|
|
106
106
|
}
|
|
107
107
|
if (!initialUploadResult?.succeeded) {
|
|
108
108
|
let subTasks = [];
|
|
@@ -120,15 +120,15 @@ export async function createInitialBuildForNewProject(projectConfig, projectDir,
|
|
|
120
120
|
uiLogger.error(failedSubTask.errorMessage);
|
|
121
121
|
});
|
|
122
122
|
uiLogger.log('');
|
|
123
|
-
|
|
123
|
+
return exit(EXIT_CODES.ERROR);
|
|
124
124
|
}
|
|
125
125
|
return initialUploadResult.buildResult;
|
|
126
126
|
}
|
|
127
|
-
export async function compareLocalProjectToDeployed(projectConfig, accountId, deployedBuildId, localProjectNodes, profile) {
|
|
127
|
+
export async function compareLocalProjectToDeployed(projectConfig, accountId, deployedBuildId, localProjectNodes, exit, profile) {
|
|
128
128
|
uiLogger.log('');
|
|
129
129
|
if (!deployedBuildId) {
|
|
130
130
|
uiLogger.error(lib.localDevHelpers.project.compareLocalProjectToDeployed.noDeployedBuild(projectConfig.name, uiAccountDescription(accountId)));
|
|
131
|
-
|
|
131
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
132
132
|
}
|
|
133
133
|
SpinniesManager.add('compareLocalProjectToDeployed', {
|
|
134
134
|
text: lib.localDevHelpers.project.compareLocalProjectToDeployed.checking,
|
|
@@ -146,7 +146,7 @@ export async function compareLocalProjectToDeployed(projectConfig, accountId, de
|
|
|
146
146
|
});
|
|
147
147
|
uiLogger.log('');
|
|
148
148
|
uiLogger.log(lib.localDevHelpers.project.compareLocalProjectToDeployed.notUpToDateExplanation(profile));
|
|
149
|
-
|
|
149
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
export async function getDeployedProjectNodes(projectConfig, accountId, deployedBuildId, profile) {
|
|
@@ -155,7 +155,23 @@ export async function getDeployedProjectNodes(projectConfig, accountId, deployed
|
|
|
155
155
|
tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'hubspot-project-compare-'));
|
|
156
156
|
const { data: zippedProject } = await downloadProject(accountId, projectConfig.name, deployedBuildId);
|
|
157
157
|
await extractZipArchive(zippedProject, sanitizeFileName(projectConfig.name), tempDir, { hideLogs: true });
|
|
158
|
-
|
|
158
|
+
// Read the deployed project's hsproject.json to get its srcDir
|
|
159
|
+
// Deployed projects always use "src" as the srcDir
|
|
160
|
+
const possibleProjectPaths = [
|
|
161
|
+
path.join(tempDir, PROJECT_CONFIG_FILE),
|
|
162
|
+
path.join(tempDir, sanitizeFileName(projectConfig.name), PROJECT_CONFIG_FILE),
|
|
163
|
+
];
|
|
164
|
+
let deployedSrcDir = 'src';
|
|
165
|
+
for (const projectJsonPath of possibleProjectPaths) {
|
|
166
|
+
if (await fs.pathExists(projectJsonPath)) {
|
|
167
|
+
const deployedProjectConfig = await fs.readJson(projectJsonPath);
|
|
168
|
+
if (deployedProjectConfig.srcDir) {
|
|
169
|
+
deployedSrcDir = deployedProjectConfig.srcDir;
|
|
170
|
+
}
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
const deployedProjectSourceDir = path.join(tempDir, deployedSrcDir);
|
|
159
175
|
const { intermediateNodesIndexedByUid } = await translate({
|
|
160
176
|
projectSourceDir: deployedProjectSourceDir,
|
|
161
177
|
platformVersion: projectConfig.platformVersion,
|
|
@@ -211,6 +227,6 @@ export async function checkAndInstallDependencies() {
|
|
|
211
227
|
text: lib.localDevHelpers.project.checkAndInstallDependencies
|
|
212
228
|
.dependenciesFailure,
|
|
213
229
|
});
|
|
214
|
-
|
|
230
|
+
throw e;
|
|
215
231
|
}
|
|
216
232
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Project } from '@hubspot/local-dev-lib/types/Project';
|
|
2
|
+
import { ProjectInfo } from '../../types/Projects.js';
|
|
3
|
+
export type { ProjectInfo };
|
|
4
|
+
export declare function getProjectInfo(project: Project, platformVersion: string, accountId: number): Promise<ProjectInfo>;
|
|
5
|
+
export declare function logProjectInfo(projectInfo: ProjectInfo): void;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { fetchAppMetadataBySourceId } from '@hubspot/local-dev-lib/api/appsDev';
|
|
3
|
+
import { APP_KEY, USER_FACING_TO_INTERNAL_TYPE, } from '@hubspot/project-parsing-lib/constants';
|
|
4
|
+
import { debugError } from '../errorHandlers/index.js';
|
|
5
|
+
import { getProjectDetailUrl } from './urls.js';
|
|
6
|
+
import { commands } from '../../lang/en.js';
|
|
7
|
+
import { uiLine, uiLink } from '../ui/index.js';
|
|
8
|
+
import { uiLogger } from '../ui/logger.js';
|
|
9
|
+
export async function getProjectInfo(project, platformVersion, accountId) {
|
|
10
|
+
const deployedBuild = project.deployedBuild;
|
|
11
|
+
const projectInfo = {
|
|
12
|
+
projectName: project.name,
|
|
13
|
+
platformVersion,
|
|
14
|
+
projectId: project.id,
|
|
15
|
+
deployedBuildId: deployedBuild.buildId,
|
|
16
|
+
autoDeployEnabled: deployedBuild.isAutoDeployEnabled,
|
|
17
|
+
components: [],
|
|
18
|
+
};
|
|
19
|
+
const projectUrl = getProjectDetailUrl(project.name, accountId);
|
|
20
|
+
if (projectUrl) {
|
|
21
|
+
projectInfo.projectUrl = projectUrl;
|
|
22
|
+
}
|
|
23
|
+
const appSubbuild = deployedBuild.subbuildStatuses.find(s => s.buildType === USER_FACING_TO_INTERNAL_TYPE[APP_KEY]);
|
|
24
|
+
if (appSubbuild) {
|
|
25
|
+
try {
|
|
26
|
+
const { data: appMetadata } = await fetchAppMetadataBySourceId(project.id, appSubbuild.buildName, accountId);
|
|
27
|
+
projectInfo.app = {
|
|
28
|
+
name: appMetadata.name,
|
|
29
|
+
id: appMetadata.id,
|
|
30
|
+
uid: appSubbuild.buildName,
|
|
31
|
+
authType: appMetadata.authType,
|
|
32
|
+
distributionType: appMetadata.distributionType,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
debugError(err);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
projectInfo.components = deployedBuild.subbuildStatuses
|
|
40
|
+
.filter(s => s.buildType !== USER_FACING_TO_INTERNAL_TYPE[APP_KEY])
|
|
41
|
+
.map(s => ({
|
|
42
|
+
uid: s.buildName,
|
|
43
|
+
type: s.buildType,
|
|
44
|
+
}));
|
|
45
|
+
return projectInfo;
|
|
46
|
+
}
|
|
47
|
+
export function logProjectInfo(projectInfo) {
|
|
48
|
+
uiLogger.log(chalk.bold(commands.project.info.project.title(projectInfo.projectName)));
|
|
49
|
+
uiLine();
|
|
50
|
+
uiLogger.log(commands.project.info.project.platformVersion(projectInfo.platformVersion));
|
|
51
|
+
uiLogger.log(commands.project.info.project.id(projectInfo.projectId));
|
|
52
|
+
uiLogger.log(commands.project.info.project.deployedBuild(projectInfo.deployedBuildId));
|
|
53
|
+
uiLogger.log(commands.project.info.project.autoDeploy(projectInfo.autoDeployEnabled));
|
|
54
|
+
if (projectInfo.projectUrl) {
|
|
55
|
+
uiLogger.log('');
|
|
56
|
+
uiLogger.log(uiLink(commands.project.info.viewProjectLink, projectInfo.projectUrl));
|
|
57
|
+
}
|
|
58
|
+
if (projectInfo.app) {
|
|
59
|
+
uiLogger.log('');
|
|
60
|
+
uiLogger.log(chalk.bold(commands.project.info.app.title));
|
|
61
|
+
uiLine();
|
|
62
|
+
uiLogger.log(commands.project.info.app.name(projectInfo.app.name));
|
|
63
|
+
uiLogger.log(commands.project.info.app.id(projectInfo.app.id));
|
|
64
|
+
uiLogger.log(commands.project.info.app.uid(projectInfo.app.uid));
|
|
65
|
+
if (projectInfo.app.authType) {
|
|
66
|
+
uiLogger.log(commands.project.info.app.authType(projectInfo.app.authType));
|
|
67
|
+
}
|
|
68
|
+
if (projectInfo.app.distributionType) {
|
|
69
|
+
uiLogger.log(commands.project.info.app.distributionType(projectInfo.app.distributionType));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (projectInfo.components.length > 0) {
|
|
73
|
+
uiLogger.log('');
|
|
74
|
+
uiLogger.log(chalk.bold(commands.project.info.componentsHeader));
|
|
75
|
+
uiLine();
|
|
76
|
+
const typeColWidth = Math.max(commands.project.info.labels.type.length, ...projectInfo.components.map(c => c.type.length));
|
|
77
|
+
uiLogger.log(`${commands.project.info.labels.type.padEnd(typeColWidth)} ${commands.project.info.labels.uid}`);
|
|
78
|
+
for (const component of projectInfo.components) {
|
|
79
|
+
uiLogger.log(`${component.type.padEnd(typeColWidth)} ${component.uid}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -3,8 +3,7 @@ import { ProjectConfig } from '../../types/Projects.js';
|
|
|
3
3
|
export declare function logProfileHeader(profileName: string): void;
|
|
4
4
|
export declare function logProfileFooter(profile: HsProfileFile, includeVariables?: boolean): void;
|
|
5
5
|
export declare function loadProfile(projectConfig: ProjectConfig | null, projectDir: string | null, profileName: string): HsProfileFile | never;
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function loadAndValidateProfile(projectConfig: ProjectConfig | null, projectDir: string | null, profileName: string | undefined, silent?: boolean): Promise<number | undefined>;
|
|
6
|
+
export declare function loadAndValidateProfile(projectConfig: ProjectConfig | null, projectDir: string | null, profileName: string, silent?: boolean): Promise<HsProfileFile | never>;
|
|
8
7
|
type ValidateProjectForProfileOptions = {
|
|
9
8
|
projectConfig: ProjectConfig;
|
|
10
9
|
projectDir: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
-
import { loadHsProfileFile, getHsProfileFilename,
|
|
2
|
+
import { loadHsProfileFile, getHsProfileFilename, validateProfileVariables, } from '@hubspot/project-parsing-lib/profiles';
|
|
3
3
|
import { commands, lib } from '../../lang/en.js';
|
|
4
|
-
import { indent,
|
|
4
|
+
import { indent, uiLine } from '../ui/index.js';
|
|
5
5
|
import { uiLogger } from '../ui/logger.js';
|
|
6
6
|
import { getConfigAccountById } from '@hubspot/local-dev-lib/config';
|
|
7
7
|
import SpinniesManager from '../ui/SpinniesManager.js';
|
|
@@ -9,7 +9,7 @@ import { handleTranslate } from './upload.js';
|
|
|
9
9
|
import { getErrorMessage } from '../errorHandlers/index.js';
|
|
10
10
|
export function logProfileHeader(profileName) {
|
|
11
11
|
uiLine();
|
|
12
|
-
|
|
12
|
+
uiLogger.log(lib.projectProfiles.logs.usingProfile(getHsProfileFilename(profileName)));
|
|
13
13
|
uiLogger.log('');
|
|
14
14
|
}
|
|
15
15
|
export function logProfileFooter(profile, includeVariables = false) {
|
|
@@ -51,19 +51,7 @@ export function loadProfile(projectConfig, projectDir, profileName) {
|
|
|
51
51
|
}
|
|
52
52
|
return profile;
|
|
53
53
|
}
|
|
54
|
-
export async function enforceProfileUsage(projectConfig, projectDir) {
|
|
55
|
-
if (projectConfig && projectDir) {
|
|
56
|
-
const existingProfiles = await getAllHsProfiles(path.join(projectDir, projectConfig.srcDir));
|
|
57
|
-
if (existingProfiles.length > 0) {
|
|
58
|
-
throw new Error(lib.projectProfiles.exitIfUsingProfiles.errors.noProfileSpecified);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
54
|
export async function loadAndValidateProfile(projectConfig, projectDir, profileName, silent = false) {
|
|
63
|
-
if (!profileName) {
|
|
64
|
-
await enforceProfileUsage(projectConfig, projectDir);
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
55
|
if (!silent) {
|
|
68
56
|
logProfileHeader(profileName);
|
|
69
57
|
}
|
|
@@ -77,7 +65,7 @@ export async function loadAndValidateProfile(projectConfig, projectDir, profileN
|
|
|
77
65
|
throw new Error(lib.projectProfiles.loadProfile.errors.profileNotValid(profileName, validationResult.errors));
|
|
78
66
|
}
|
|
79
67
|
}
|
|
80
|
-
return profile
|
|
68
|
+
return profile;
|
|
81
69
|
}
|
|
82
70
|
function formatProfileValidationError(error, leadingIndentationLevel = 0) {
|
|
83
71
|
// Trim leading whitespace and replace tabs with spaces to reducing indentations
|
|
@@ -97,7 +85,7 @@ export async function validateProjectForProfile({ projectConfig, projectDir, pro
|
|
|
97
85
|
});
|
|
98
86
|
}
|
|
99
87
|
try {
|
|
100
|
-
const accountId = await loadAndValidateProfile(projectConfig, projectDir, profileName, true);
|
|
88
|
+
const { accountId } = await loadAndValidateProfile(projectConfig, projectDir, profileName, true);
|
|
101
89
|
targetAccountId = accountId || derivedAccountId;
|
|
102
90
|
}
|
|
103
91
|
catch (error) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { promptUser } from './promptUtils.js';
|
|
2
2
|
import { lib } from '../../lang/en.js';
|
|
3
|
+
import { isPromptExitError } from '../errors/PromptExitError.js';
|
|
3
4
|
function getSampleTypesPrompt(choices) {
|
|
4
5
|
return {
|
|
5
6
|
type: 'rawlist',
|
|
@@ -53,6 +54,9 @@ export async function createApiSamplePrompt(samplesConfig) {
|
|
|
53
54
|
};
|
|
54
55
|
}
|
|
55
56
|
catch (e) {
|
|
57
|
+
if (isPromptExitError(e)) {
|
|
58
|
+
throw e;
|
|
59
|
+
}
|
|
56
60
|
return {};
|
|
57
61
|
}
|
|
58
62
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { getAllHsProfiles } from '@hubspot/project-parsing-lib/profiles';
|
|
3
|
+
import { listPrompt } from './promptUtils.js';
|
|
4
|
+
import { loadProfile } from '../projects/projectProfiles.js';
|
|
5
|
+
import { lib } from '../../lang/en.js';
|
|
6
|
+
function generateProfilePromptOption(projectDir, projectConfig, profileName) {
|
|
7
|
+
const choice = {
|
|
8
|
+
name: profileName,
|
|
9
|
+
value: profileName,
|
|
10
|
+
};
|
|
11
|
+
try {
|
|
12
|
+
const profile = loadProfile(projectConfig, projectDir, profileName);
|
|
13
|
+
choice.name = `${profileName} [${profile.accountId}]`;
|
|
14
|
+
}
|
|
15
|
+
catch (e) {
|
|
16
|
+
choice.name = `${profileName} [Invalid profile]`;
|
|
17
|
+
choice.disabled = true;
|
|
18
|
+
}
|
|
19
|
+
return choice;
|
|
20
|
+
}
|
|
21
|
+
export async function projectProfilePrompt(projectDir, projectConfig, profileName, exitIfMissing) {
|
|
22
|
+
if (profileName) {
|
|
23
|
+
return profileName;
|
|
24
|
+
}
|
|
25
|
+
const existingProfiles = await getAllHsProfiles(path.join(projectDir, projectConfig.srcDir));
|
|
26
|
+
if (existingProfiles.length !== 0) {
|
|
27
|
+
if (existingProfiles.length === 1) {
|
|
28
|
+
return existingProfiles[0];
|
|
29
|
+
}
|
|
30
|
+
// In automated workflows exit instead of prompting
|
|
31
|
+
if (exitIfMissing) {
|
|
32
|
+
throw new Error(lib.prompts.projectProfilePrompt.exitMessage);
|
|
33
|
+
}
|
|
34
|
+
const listOptions = existingProfiles.map(p => generateProfilePromptOption(projectDir, projectConfig, p));
|
|
35
|
+
const hasAnyValidProfiles = listOptions.some(option => typeof option === 'object' && 'name' in option && !option.disabled);
|
|
36
|
+
// Exit early if the user has no valid profiles for us to show in the prompt
|
|
37
|
+
if (!hasAnyValidProfiles) {
|
|
38
|
+
throw new Error(lib.prompts.projectProfilePrompt.noValidProfilesMessage);
|
|
39
|
+
}
|
|
40
|
+
const profileNameFromPrompt = await listPrompt(lib.prompts.projectProfilePrompt.message, {
|
|
41
|
+
choices: listOptions,
|
|
42
|
+
});
|
|
43
|
+
return profileNameFromPrompt;
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
@@ -3,6 +3,7 @@ import { EXIT_CODES } from '../enums/exitCodes.js';
|
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import { lib } from '../../lang/en.js';
|
|
5
5
|
import { uiLogger } from '../ui/logger.js';
|
|
6
|
+
import { PromptExitError } from '../errors/PromptExitError.js';
|
|
6
7
|
export const Separator = new _Separator();
|
|
7
8
|
export const PROMPT_THEME = { prefix: { idle: chalk.green('?') } };
|
|
8
9
|
export const CHECKBOX_PROMPT_THEME = {
|
|
@@ -19,14 +20,14 @@ function isNoSelectableChoicesError(error) {
|
|
|
19
20
|
}
|
|
20
21
|
function handlePromptError(config, error) {
|
|
21
22
|
if (isUserCancellationError(error)) {
|
|
22
|
-
|
|
23
|
+
throw new PromptExitError(lib.prompts.promptUtils.errors.userCancelled, EXIT_CODES.SUCCESS);
|
|
23
24
|
}
|
|
24
25
|
if (isNoSelectableChoicesError(error)) {
|
|
25
26
|
if (!Array.isArray(config)) {
|
|
26
27
|
uiLogger.log(config.message);
|
|
27
28
|
}
|
|
28
29
|
uiLogger.error(lib.prompts.promptUtils.errors.noSelectableChoices);
|
|
29
|
-
|
|
30
|
+
throw new PromptExitError(lib.prompts.promptUtils.errors.noSelectableChoices, EXIT_CODES.ERROR);
|
|
30
31
|
}
|
|
31
32
|
throw error;
|
|
32
33
|
}
|
|
@@ -5,7 +5,7 @@ import { debugError } from '../errorHandlers/index.js';
|
|
|
5
5
|
import { uiLogger } from '../ui/logger.js';
|
|
6
6
|
import { fetchTables } from '@hubspot/local-dev-lib/api/hubdb';
|
|
7
7
|
import { isValidPath, untildify } from '@hubspot/local-dev-lib/path';
|
|
8
|
-
import { PromptExitError } from '../errors/PromptExitError.js';
|
|
8
|
+
import { isPromptExitError, PromptExitError, } from '../errors/PromptExitError.js';
|
|
9
9
|
import { EXIT_CODES } from '../enums/exitCodes.js';
|
|
10
10
|
async function fetchHubDBOptions(accountId) {
|
|
11
11
|
try {
|
|
@@ -17,7 +17,7 @@ async function fetchHubDBOptions(accountId) {
|
|
|
17
17
|
return tables;
|
|
18
18
|
}
|
|
19
19
|
catch (error) {
|
|
20
|
-
if (error
|
|
20
|
+
if (isPromptExitError(error)) {
|
|
21
21
|
throw error;
|
|
22
22
|
}
|
|
23
23
|
debugError(error, { accountId });
|
|
@@ -4,7 +4,7 @@ import { uiLine } from '../ui/index.js';
|
|
|
4
4
|
import { logError } from '../errorHandlers/index.js';
|
|
5
5
|
import { uiLogger } from '../ui/logger.js';
|
|
6
6
|
import { fetchPublicAppsForPortal } from '@hubspot/local-dev-lib/api/appsDev';
|
|
7
|
-
import { PromptExitError } from '../errors/PromptExitError.js';
|
|
7
|
+
import { isPromptExitError, PromptExitError, } from '../errors/PromptExitError.js';
|
|
8
8
|
import { EXIT_CODES } from '../enums/exitCodes.js';
|
|
9
9
|
async function fetchPublicAppOptions(accountId, accountName, isMigratingApp = false) {
|
|
10
10
|
if (!accountId) {
|
|
@@ -32,7 +32,7 @@ async function fetchPublicAppOptions(accountId, accountName, isMigratingApp = fa
|
|
|
32
32
|
return filteredPublicApps;
|
|
33
33
|
}
|
|
34
34
|
catch (error) {
|
|
35
|
-
if (error
|
|
35
|
+
if (isPromptExitError(error)) {
|
|
36
36
|
throw error;
|
|
37
37
|
}
|
|
38
38
|
logError(error, accountId ? { accountId } : undefined);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ChildProcess } from 'child_process';
|
|
2
|
+
import { ExitFunction } from '../../types/Yargs.js';
|
|
2
3
|
interface DevServerOptions {
|
|
3
4
|
absoluteSrc: string;
|
|
4
5
|
accountName?: string;
|
|
@@ -7,6 +8,7 @@ interface DevServerOptions {
|
|
|
7
8
|
generateFieldsTypes?: boolean;
|
|
8
9
|
resetSession?: boolean;
|
|
9
10
|
dest: string;
|
|
11
|
+
exit: ExitFunction;
|
|
10
12
|
}
|
|
11
13
|
export declare function spawnDevServer(options: DevServerOptions): Promise<ChildProcess>;
|
|
12
14
|
export {};
|