@hubspot/cli 8.0.11-experimental.0 → 8.0.11-experimental.1
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.js +17 -17
- 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 +2 -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 +94 -7
- package/lang/en.js +94 -10
- package/lib/accountAuth.js +2 -2
- package/lib/buildAccount.js +3 -3
- package/lib/constants.d.ts +0 -1
- package/lib/constants.js +0 -1
- 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/hasFeature.js +1 -2
- package/lib/middleware/autoUpdateMiddleware.js +6 -3
- package/lib/process.d.ts +1 -1
- package/lib/process.js +10 -3
- package/lib/projects/create/v2.js +1 -2
- 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 +3 -20
- package/lib/projects/projectInfo.js +32 -54
- package/lib/projects/projectProfiles.d.ts +1 -2
- package/lib/projects/projectProfiles.js +5 -17
- package/lib/projects/upload.js +19 -0
- package/lib/projects/workspaces.d.ts +42 -0
- package/lib/projects/workspaces.js +350 -0
- 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/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +1 -1
- package/package.json +10 -5
- 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__/info.test.d.ts +0 -1
- package/commands/project/__tests__/info.test.js +0 -145
- 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__/projectInfo.test.d.ts +0 -1
- package/lib/projects/__tests__/projectInfo.test.js +0 -114
- 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
|
@@ -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
|
}
|
|
@@ -1,22 +1,5 @@
|
|
|
1
1
|
import { Project } from '@hubspot/local-dev-lib/types/Project';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
platformVersion: string;
|
|
5
|
-
projectId: number;
|
|
6
|
-
deployedBuildId: number;
|
|
7
|
-
autoDeployEnabled: boolean;
|
|
8
|
-
projectUrl?: string;
|
|
9
|
-
app?: {
|
|
10
|
-
name: string;
|
|
11
|
-
id: number;
|
|
12
|
-
uid: string;
|
|
13
|
-
authType?: string;
|
|
14
|
-
distributionType?: string;
|
|
15
|
-
};
|
|
16
|
-
components: {
|
|
17
|
-
uid: string;
|
|
18
|
-
type: string;
|
|
19
|
-
}[];
|
|
20
|
-
};
|
|
2
|
+
import { ProjectInfo } from '../../types/Projects.js';
|
|
3
|
+
export type { ProjectInfo };
|
|
21
4
|
export declare function getProjectInfo(project: Project, platformVersion: string, accountId: number): Promise<ProjectInfo>;
|
|
22
|
-
export declare function
|
|
5
|
+
export declare function logProjectInfo(projectInfo: ProjectInfo): void;
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import chalk from 'chalk';
|
|
2
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';
|
|
3
4
|
import { debugError } from '../errorHandlers/index.js';
|
|
4
5
|
import { getProjectDetailUrl } from './urls.js';
|
|
5
6
|
import { commands } from '../../lang/en.js';
|
|
6
|
-
import { uiLink } from '../ui/index.js';
|
|
7
|
-
import {
|
|
8
|
-
import { getBoxWithTitle } from '../../ui/components/BoxWithTitle.js';
|
|
9
|
-
import { getTable } from '../../ui/components/Table.js';
|
|
10
|
-
import { mapTableDataToObjects } from '../../ui/lib/table.js';
|
|
11
|
-
import { INK_COLORS } from '../../ui/styles.js';
|
|
12
|
-
const APPLICATION_BUILD_TYPE = 'APPLICATION';
|
|
7
|
+
import { uiLine, uiLink } from '../ui/index.js';
|
|
8
|
+
import { uiLogger } from '../ui/logger.js';
|
|
13
9
|
export async function getProjectInfo(project, platformVersion, accountId) {
|
|
14
10
|
const deployedBuild = project.deployedBuild;
|
|
15
11
|
const projectInfo = {
|
|
@@ -24,7 +20,7 @@ export async function getProjectInfo(project, platformVersion, accountId) {
|
|
|
24
20
|
if (projectUrl) {
|
|
25
21
|
projectInfo.projectUrl = projectUrl;
|
|
26
22
|
}
|
|
27
|
-
const appSubbuild = deployedBuild.subbuildStatuses.find(s => s.buildType ===
|
|
23
|
+
const appSubbuild = deployedBuild.subbuildStatuses.find(s => s.buildType === USER_FACING_TO_INTERNAL_TYPE[APP_KEY]);
|
|
28
24
|
if (appSubbuild) {
|
|
29
25
|
try {
|
|
30
26
|
const { data: appMetadata } = await fetchAppMetadataBySourceId(project.id, appSubbuild.buildName, accountId);
|
|
@@ -41,64 +37,46 @@ export async function getProjectInfo(project, platformVersion, accountId) {
|
|
|
41
37
|
}
|
|
42
38
|
}
|
|
43
39
|
projectInfo.components = deployedBuild.subbuildStatuses
|
|
44
|
-
.filter(s => s.buildType !==
|
|
40
|
+
.filter(s => s.buildType !== USER_FACING_TO_INTERNAL_TYPE[APP_KEY])
|
|
45
41
|
.map(s => ({
|
|
46
|
-
uid: s.
|
|
47
|
-
s.buildName,
|
|
42
|
+
uid: s.buildName,
|
|
48
43
|
type: s.buildType,
|
|
49
44
|
}));
|
|
50
45
|
return projectInfo;
|
|
51
46
|
}
|
|
52
|
-
export
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
];
|
|
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));
|
|
60
54
|
if (projectInfo.projectUrl) {
|
|
61
|
-
|
|
55
|
+
uiLogger.log('');
|
|
56
|
+
uiLogger.log(uiLink(commands.project.info.viewProjectLink, projectInfo.projectUrl));
|
|
62
57
|
}
|
|
63
|
-
const childBoxes = [];
|
|
64
58
|
if (projectInfo.app) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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));
|
|
70
65
|
if (projectInfo.app.authType) {
|
|
71
|
-
|
|
66
|
+
uiLogger.log(commands.project.info.app.authType(projectInfo.app.authType));
|
|
72
67
|
}
|
|
73
68
|
if (projectInfo.app.distributionType) {
|
|
74
|
-
|
|
69
|
+
uiLogger.log(commands.project.info.app.distributionType(projectInfo.app.distributionType));
|
|
75
70
|
}
|
|
76
|
-
childBoxes.push(getBoxWithTitle({
|
|
77
|
-
title: commands.project.info.app.title,
|
|
78
|
-
message: appInfoLines.join('\n'),
|
|
79
|
-
titleBackgroundColor: INK_COLORS.WHITE,
|
|
80
|
-
borderColor: INK_COLORS.WHITE,
|
|
81
|
-
}));
|
|
82
71
|
}
|
|
83
72
|
if (projectInfo.components.length > 0) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
titleBackgroundColor: INK_COLORS.WHITE,
|
|
93
|
-
borderColor: INK_COLORS.WHITE,
|
|
94
|
-
children: getTable({ data: tableObjects, borderless: true }),
|
|
95
|
-
}));
|
|
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
|
+
}
|
|
96
81
|
}
|
|
97
|
-
await renderInline(getBoxWithTitle({
|
|
98
|
-
title: commands.project.info.project.title,
|
|
99
|
-
message: projectInfoLines.join('\n'),
|
|
100
|
-
titleBackgroundColor: INK_COLORS.INFO_BLUE,
|
|
101
|
-
borderColor: INK_COLORS.INFO_BLUE,
|
|
102
|
-
children: React.createElement(React.Fragment, null, ...childBoxes),
|
|
103
|
-
}));
|
|
104
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) {
|
package/lib/projects/upload.js
CHANGED
|
@@ -6,6 +6,7 @@ import { uploadProject } from '@hubspot/local-dev-lib/api/projects';
|
|
|
6
6
|
import { shouldIgnoreFile } from '@hubspot/local-dev-lib/ignoreRules';
|
|
7
7
|
import { isTranslationError, translate, } from '@hubspot/project-parsing-lib/translate';
|
|
8
8
|
import { projectContainsHsMetaFiles } from '@hubspot/project-parsing-lib/projects';
|
|
9
|
+
import { findAndParsePackageJsonFiles, collectWorkspaceDirectories, collectFileDependencies, } from '@hubspot/project-parsing-lib/workspaces';
|
|
9
10
|
import SpinniesManager from '../ui/SpinniesManager.js';
|
|
10
11
|
import { uiAccountDescription } from '../ui/index.js';
|
|
11
12
|
import util from 'node:util';
|
|
@@ -16,6 +17,7 @@ import { isV2Project } from './platformVersion.js';
|
|
|
16
17
|
import ProjectValidationError from '../errors/ProjectValidationError.js';
|
|
17
18
|
import { walk } from '@hubspot/local-dev-lib/fs';
|
|
18
19
|
import { LEGACY_CONFIG_FILES } from '../constants.js';
|
|
20
|
+
import { archiveWorkspacesAndDependencies, getPackageJsonPathsToUpdate, getLockfilePathsToUpdate, } from './workspaces.js';
|
|
19
21
|
async function uploadProjectFiles(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation) {
|
|
20
22
|
const accountIdentifier = uiAccountDescription(accountId) || `${accountId}`;
|
|
21
23
|
SpinniesManager.add('upload', {
|
|
@@ -48,6 +50,15 @@ export async function handleProjectUpload({ accountId, projectConfig, projectDir
|
|
|
48
50
|
await validateNoHSMetaMismatch(srcDir, projectConfig);
|
|
49
51
|
const tempFile = tmp.fileSync({ postfix: '.zip' });
|
|
50
52
|
uiLogger.debug(lib.projectUpload.handleProjectUpload.compressing(tempFile.name));
|
|
53
|
+
// Collect workspace directories and file: dependencies for v2+ projects only.
|
|
54
|
+
// Versions <= 2025.1 do not support the new npm workspaces bundling behavior.
|
|
55
|
+
let workspaceMappings = [];
|
|
56
|
+
let fileDependencyMappings = [];
|
|
57
|
+
if (isV2Project(projectConfig.platformVersion)) {
|
|
58
|
+
const parsedPackageJsons = await findAndParsePackageJsonFiles(srcDir);
|
|
59
|
+
workspaceMappings = await collectWorkspaceDirectories(parsedPackageJsons);
|
|
60
|
+
fileDependencyMappings = await collectFileDependencies(parsedPackageJsons);
|
|
61
|
+
}
|
|
51
62
|
const output = fs.createWriteStream(tempFile.name);
|
|
52
63
|
const archive = archiver('zip');
|
|
53
64
|
const result = new Promise((resolve, reject) => output.on('close', async function () {
|
|
@@ -91,8 +102,14 @@ export async function handleProjectUpload({ accountId, projectConfig, projectDir
|
|
|
91
102
|
}
|
|
92
103
|
}));
|
|
93
104
|
archive.pipe(output);
|
|
105
|
+
const modifiedPackageJsonPaths = getPackageJsonPathsToUpdate(srcDir, workspaceMappings, fileDependencyMappings);
|
|
106
|
+
const lockfilePathsToUpdate = getLockfilePathsToUpdate(srcDir, workspaceMappings, fileDependencyMappings);
|
|
94
107
|
let loggedIgnoredNodeModule = false;
|
|
95
108
|
archive.directory(srcDir, false, file => {
|
|
109
|
+
if (modifiedPackageJsonPaths.has(file.name) ||
|
|
110
|
+
lockfilePathsToUpdate.has(file.name)) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
96
113
|
const ignored = shouldIgnoreFile(file.name, true);
|
|
97
114
|
if (ignored) {
|
|
98
115
|
const isNodeModule = file.name.includes('node_modules');
|
|
@@ -105,6 +122,8 @@ export async function handleProjectUpload({ accountId, projectConfig, projectDir
|
|
|
105
122
|
}
|
|
106
123
|
return ignored ? false : file;
|
|
107
124
|
});
|
|
125
|
+
// Archive workspaces and file: dependencies
|
|
126
|
+
await archiveWorkspacesAndDependencies(archive, srcDir, projectDir, workspaceMappings, fileDependencyMappings);
|
|
108
127
|
archive.finalize();
|
|
109
128
|
return result;
|
|
110
129
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import archiver from 'archiver';
|
|
2
|
+
import { WorkspaceMapping, FileDependencyMapping } from '@hubspot/project-parsing-lib/workspaces';
|
|
3
|
+
/**
|
|
4
|
+
* Result of archiving workspaces and file dependencies
|
|
5
|
+
*/
|
|
6
|
+
export type WorkspaceArchiveResult = {
|
|
7
|
+
packageWorkspaces: Map<string, string[]>;
|
|
8
|
+
packageFileDeps: Map<string, Map<string, string>>;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Generates a short hash of the input string for use in workspace paths.
|
|
12
|
+
* Uses SHA256 truncated to 8 hex characters (4 billion possibilities).
|
|
13
|
+
*/
|
|
14
|
+
export declare function shortHash(input: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Determines the archive path for an external workspace or file: dependency.
|
|
17
|
+
* Produces `_workspaces/<basename>-<hash>` with no subdirectory.
|
|
18
|
+
* The hash prevents collisions between different directories with the same basename.
|
|
19
|
+
*/
|
|
20
|
+
export declare function computeExternalArchivePath(absolutePath: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Updates package.json files in the archive to reflect new workspace and file: dependency paths.
|
|
23
|
+
*
|
|
24
|
+
* Workspace entries in packageWorkspaces are already in final form:
|
|
25
|
+
* - Internal workspaces: relative paths (e.g. "../packages/utils")
|
|
26
|
+
* - External workspaces: relative paths (e.g. "../_workspaces/logger-abc")
|
|
27
|
+
*
|
|
28
|
+
* Only external file: dependencies appear in packageFileDeps; internal ones
|
|
29
|
+
* keep their original file: references and are left untouched.
|
|
30
|
+
*/
|
|
31
|
+
export declare function updatePackageJsonInArchive(archive: archiver.Archiver, srcDir: string, packageWorkspaces: Map<string, string[]>, packageFileDeps: Map<string, Map<string, string>>): Promise<void>;
|
|
32
|
+
export declare function rewriteLockfileForExternalDeps(lockfileContent: Record<string, unknown>, pathMappings: Array<{
|
|
33
|
+
oldPath: string;
|
|
34
|
+
newPath: string;
|
|
35
|
+
}>): Record<string, unknown>;
|
|
36
|
+
export declare function getPackageJsonPathsToUpdate(srcDir: string, workspaceMappings: WorkspaceMapping[], fileDependencyMappings: FileDependencyMapping[]): Set<string>;
|
|
37
|
+
export declare function getLockfilePathsToUpdate(srcDir: string, workspaceMappings: WorkspaceMapping[], fileDependencyMappings: FileDependencyMapping[]): Set<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Main orchestration function that handles archiving of workspaces and file dependencies.
|
|
40
|
+
* This is the clean integration point for upload.ts.
|
|
41
|
+
*/
|
|
42
|
+
export declare function archiveWorkspacesAndDependencies(archive: archiver.Archiver, srcDir: string, projectDir: string, workspaceMappings: WorkspaceMapping[], fileDependencyMappings: FileDependencyMapping[]): Promise<WorkspaceArchiveResult>;
|