@hubspot/cli 7.7.20-experimental.0 → 7.7.21-experimental.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/__tests__/migrate.test.js +27 -29
- package/api/migrate.js +14 -22
- package/bin/cli.js +92 -97
- package/bin/hs +2 -2
- package/bin/hscms +2 -2
- package/bin/silenceErrors.js +1 -2
- package/commands/__tests__/account.test.js +29 -34
- package/commands/__tests__/auth.test.js +11 -16
- package/commands/__tests__/cms.test.js +15 -20
- package/commands/__tests__/config.test.js +14 -19
- package/commands/__tests__/create.test.js +10 -15
- package/commands/__tests__/customObject.test.js +14 -19
- package/commands/__tests__/doctor.test.js +43 -48
- package/commands/__tests__/feedback.test.js +7 -45
- package/commands/__tests__/fetch.test.js +29 -28
- package/commands/__tests__/filemanager.test.js +14 -19
- package/commands/__tests__/function.test.js +16 -21
- package/commands/__tests__/getStarted.test.js +48 -53
- package/commands/__tests__/hubdb.test.js +17 -22
- package/commands/__tests__/init.test.js +12 -17
- package/commands/__tests__/lint.test.js +13 -18
- package/commands/__tests__/list.test.js +18 -23
- package/commands/__tests__/logs.test.js +28 -27
- package/commands/__tests__/mcp.test.js +14 -19
- package/commands/__tests__/mv.test.js +14 -52
- package/commands/__tests__/open.test.js +13 -51
- package/commands/__tests__/project.test.js +44 -49
- package/commands/__tests__/remove.test.js +13 -51
- package/commands/__tests__/sandbox.test.js +14 -19
- package/commands/__tests__/secret.test.js +16 -21
- package/commands/__tests__/testAccount.test.js +16 -21
- package/commands/__tests__/theme.test.js +15 -20
- package/commands/account/__tests__/auth.test.js +11 -16
- package/commands/account/__tests__/clean.test.js +12 -17
- package/commands/account/__tests__/createOverride.test.js +10 -15
- package/commands/account/__tests__/info.test.js +11 -16
- package/commands/account/__tests__/list.test.js +11 -16
- package/commands/account/__tests__/remove.test.js +13 -18
- package/commands/account/__tests__/removeOverride.js +8 -13
- package/commands/account/__tests__/rename.test.js +15 -20
- package/commands/account/__tests__/use.test.js +10 -15
- package/commands/account/auth.d.ts +1 -1
- package/commands/account/auth.js +65 -67
- package/commands/account/clean.d.ts +1 -1
- package/commands/account/clean.js +55 -60
- package/commands/account/createOverride.d.ts +1 -1
- package/commands/account/createOverride.js +52 -57
- package/commands/account/info.d.ts +1 -1
- package/commands/account/info.js +33 -35
- package/commands/account/list.d.ts +1 -1
- package/commands/account/list.js +43 -45
- package/commands/account/remove.d.ts +1 -1
- package/commands/account/remove.js +37 -42
- package/commands/account/removeOverride.d.ts +1 -1
- package/commands/account/removeOverride.js +38 -43
- package/commands/account/rename.d.ts +1 -1
- package/commands/account/rename.js +18 -20
- package/commands/account/use.d.ts +1 -1
- package/commands/account/use.js +29 -31
- package/commands/account.d.ts +1 -1
- package/commands/account.js +23 -28
- package/commands/app/__tests__/migrate.test.js +29 -34
- package/commands/app/migrate.d.ts +2 -2
- package/commands/app/migrate.js +40 -43
- package/commands/app/secret/__tests__/add.test.js +6 -11
- package/commands/app/secret/__tests__/delete.test.js +6 -11
- package/commands/app/secret/__tests__/list.test.js +6 -11
- package/commands/app/secret/__tests__/update.test.js +6 -11
- package/commands/app/secret/add.d.ts +1 -1
- package/commands/app/secret/add.js +28 -30
- package/commands/app/secret/delete.d.ts +1 -1
- package/commands/app/secret/delete.js +34 -36
- package/commands/app/secret/list.d.ts +1 -1
- package/commands/app/secret/list.js +25 -27
- package/commands/app/secret/update.d.ts +1 -1
- package/commands/app/secret/update.js +32 -34
- package/commands/app/secret.d.ts +1 -1
- package/commands/app/secret.js +12 -17
- package/commands/app.d.ts +1 -1
- package/commands/app.js +6 -11
- package/commands/auth.d.ts +1 -1
- package/commands/auth.js +70 -72
- package/commands/cms/convertFields.d.ts +1 -1
- package/commands/cms/convertFields.js +34 -39
- package/commands/cms/getReactModule.d.ts +1 -1
- package/commands/cms/getReactModule.js +32 -37
- package/commands/cms/lighthouseScore.d.ts +1 -1
- package/commands/cms/lighthouseScore.js +67 -72
- package/commands/cms.d.ts +1 -1
- package/commands/cms.js +11 -16
- package/commands/completion.d.ts +1 -1
- package/commands/completion.js +10 -15
- package/commands/config/migrate.d.ts +1 -1
- package/commands/config/migrate.js +27 -32
- package/commands/config/set.d.ts +1 -1
- package/commands/config/set.js +23 -25
- package/commands/config.d.ts +1 -1
- package/commands/config.js +8 -13
- package/commands/create/api-sample.d.ts +1 -1
- package/commands/create/api-sample.js +28 -33
- package/commands/create/app.d.ts +1 -1
- package/commands/create/app.js +3 -5
- package/commands/create/function.d.ts +1 -1
- package/commands/create/function.js +9 -11
- package/commands/create/index.d.ts +1 -1
- package/commands/create/index.js +19 -24
- package/commands/create/module.d.ts +1 -1
- package/commands/create/module.js +12 -14
- package/commands/create/react-app.d.ts +1 -1
- package/commands/create/react-app.js +3 -5
- package/commands/create/template.d.ts +1 -1
- package/commands/create/template.js +12 -14
- package/commands/create/vue-app.d.ts +1 -1
- package/commands/create/vue-app.js +3 -5
- package/commands/create/webpack-serverless.d.ts +1 -1
- package/commands/create/webpack-serverless.js +3 -5
- package/commands/create/website-theme.d.ts +1 -1
- package/commands/create/website-theme.js +5 -7
- package/commands/create.d.ts +2 -2
- package/commands/create.js +30 -35
- package/commands/customObject/__tests__/create.test.js +13 -18
- package/commands/customObject/__tests__/schema.test.js +18 -23
- package/commands/customObject/create.d.ts +1 -1
- package/commands/customObject/create.js +28 -30
- package/commands/customObject/schema/__tests__/create.test.js +13 -18
- package/commands/customObject/schema/__tests__/delete.test.js +13 -18
- package/commands/customObject/schema/__tests__/fetch-all.test.js +13 -18
- package/commands/customObject/schema/__tests__/fetch.test.js +13 -18
- package/commands/customObject/schema/__tests__/list.test.js +13 -18
- package/commands/customObject/schema/__tests__/update.test.js +13 -18
- package/commands/customObject/schema/create.d.ts +1 -1
- package/commands/customObject/schema/create.js +28 -30
- package/commands/customObject/schema/delete.d.ts +1 -1
- package/commands/customObject/schema/delete.js +24 -26
- package/commands/customObject/schema/fetch-all.d.ts +1 -1
- package/commands/customObject/schema/fetch-all.js +22 -24
- package/commands/customObject/schema/fetch.d.ts +1 -1
- package/commands/customObject/schema/fetch.js +24 -26
- package/commands/customObject/schema/list.d.ts +1 -1
- package/commands/customObject/schema/list.js +13 -15
- package/commands/customObject/schema/update.d.ts +1 -1
- package/commands/customObject/schema/update.js +32 -34
- package/commands/customObject/schema.d.ts +1 -1
- package/commands/customObject/schema.js +17 -22
- package/commands/customObject.d.ts +1 -1
- package/commands/customObject.js +13 -18
- package/commands/doctor.d.ts +1 -1
- package/commands/doctor.js +28 -33
- package/commands/feedback.d.ts +1 -1
- package/commands/feedback.js +19 -24
- package/commands/fetch.d.ts +1 -1
- package/commands/fetch.js +28 -30
- package/commands/filemanager/__tests__/fetch.test.js +17 -22
- package/commands/filemanager/__tests__/upload.test.js +15 -20
- package/commands/filemanager/fetch.d.ts +1 -1
- package/commands/filemanager/fetch.js +23 -25
- package/commands/filemanager/upload.d.ts +1 -1
- package/commands/filemanager/upload.js +39 -44
- package/commands/filemanager.d.ts +1 -1
- package/commands/filemanager.js +8 -13
- package/commands/function/deploy.d.ts +1 -1
- package/commands/function/deploy.js +35 -40
- package/commands/function/list.d.ts +1 -1
- package/commands/function/list.js +24 -29
- package/commands/function/server.d.ts +1 -1
- package/commands/function/server.js +15 -17
- package/commands/function.d.ts +1 -1
- package/commands/function.js +12 -18
- package/commands/getStarted.d.ts +1 -1
- package/commands/getStarted.js +124 -130
- package/commands/hubdb/__tests__/clear.test.js +13 -18
- package/commands/hubdb/__tests__/create.test.js +13 -18
- package/commands/hubdb/__tests__/delete.test.js +13 -18
- package/commands/hubdb/__tests__/fetch.test.js +13 -18
- package/commands/hubdb/__tests__/list.test.js +23 -28
- package/commands/hubdb/clear.d.ts +1 -1
- package/commands/hubdb/clear.js +20 -22
- package/commands/hubdb/create.d.ts +1 -1
- package/commands/hubdb/create.js +30 -35
- package/commands/hubdb/delete.d.ts +1 -1
- package/commands/hubdb/delete.js +24 -26
- package/commands/hubdb/fetch.d.ts +1 -1
- package/commands/hubdb/fetch.js +17 -19
- package/commands/hubdb/list.d.ts +1 -1
- package/commands/hubdb/list.js +33 -35
- package/commands/hubdb.d.ts +1 -1
- package/commands/hubdb.js +18 -24
- package/commands/init.d.ts +1 -1
- package/commands/init.js +83 -88
- package/commands/lint.d.ts +1 -1
- package/commands/lint.js +24 -26
- package/commands/list.d.ts +1 -1
- package/commands/list.js +32 -37
- package/commands/logs.d.ts +1 -1
- package/commands/logs.js +35 -37
- package/commands/mcp/__tests__/setup.test.js +7 -12
- package/commands/mcp/__tests__/start.test.js +7 -12
- package/commands/mcp/setup.d.ts +1 -1
- package/commands/mcp/setup.js +17 -19
- package/commands/mcp/start.d.ts +1 -1
- package/commands/mcp/start.js +29 -34
- package/commands/mcp.d.ts +1 -1
- package/commands/mcp.js +7 -12
- package/commands/module/marketplace-validate.d.ts +1 -1
- package/commands/module/marketplace-validate.js +21 -26
- package/commands/module.d.ts +1 -1
- package/commands/module.js +7 -13
- package/commands/mv.d.ts +1 -1
- package/commands/mv.js +20 -22
- package/commands/open.d.ts +1 -1
- package/commands/open.js +19 -21
- package/commands/project/__tests__/add.test.js +10 -15
- package/commands/project/__tests__/create.test.js +14 -19
- package/commands/project/__tests__/deploy.test.js +93 -131
- package/commands/project/__tests__/devUnifiedFlow.test.js +135 -140
- package/commands/project/__tests__/download.test.js +14 -19
- package/commands/project/__tests__/installDeps.test.js +32 -70
- package/commands/project/__tests__/listBuilds.test.js +14 -19
- package/commands/project/__tests__/logs.test.js +56 -94
- package/commands/project/__tests__/migrate.test.js +25 -30
- package/commands/project/__tests__/migrateApp.test.js +17 -22
- package/commands/project/__tests__/open.test.js +16 -21
- package/commands/project/__tests__/profile.test.js +14 -19
- package/commands/project/__tests__/upload.test.js +18 -23
- package/commands/project/__tests__/watch.test.js +14 -19
- package/commands/project/add.d.ts +1 -1
- package/commands/project/add.js +34 -36
- package/commands/project/cloneApp.d.ts +1 -1
- package/commands/project/cloneApp.js +67 -72
- package/commands/project/create.d.ts +2 -2
- package/commands/project/create.js +62 -67
- package/commands/project/deploy.d.ts +1 -1
- package/commands/project/deploy.js +72 -77
- package/commands/project/dev/deprecatedFlow.d.ts +2 -2
- package/commands/project/dev/deprecatedFlow.js +52 -58
- package/commands/project/dev/index.d.ts +1 -1
- package/commands/project/dev/index.js +44 -47
- package/commands/project/dev/unifiedFlow.d.ts +3 -3
- package/commands/project/dev/unifiedFlow.js +62 -68
- package/commands/project/download.d.ts +1 -1
- package/commands/project/download.js +35 -40
- package/commands/project/installDeps.d.ts +1 -1
- package/commands/project/installDeps.js +29 -34
- package/commands/project/listBuilds.d.ts +1 -1
- package/commands/project/listBuilds.js +40 -45
- package/commands/project/logs.d.ts +1 -1
- package/commands/project/logs.js +52 -54
- package/commands/project/migrate.d.ts +1 -1
- package/commands/project/migrate.js +24 -26
- package/commands/project/migrateApp.d.ts +2 -2
- package/commands/project/migrateApp.js +18 -20
- package/commands/project/open.d.ts +1 -1
- package/commands/project/open.js +25 -30
- package/commands/project/profile/add.d.ts +1 -1
- package/commands/project/profile/add.js +68 -73
- package/commands/project/profile/delete.d.ts +1 -1
- package/commands/project/profile/delete.js +51 -56
- package/commands/project/profile.d.ts +1 -1
- package/commands/project/profile.js +9 -14
- package/commands/project/upload.d.ts +1 -1
- package/commands/project/upload.js +50 -55
- package/commands/project/validate.d.ts +1 -1
- package/commands/project/validate.js +35 -40
- package/commands/project/watch.d.ts +1 -1
- package/commands/project/watch.js +59 -61
- package/commands/project.d.ts +1 -1
- package/commands/project.js +38 -43
- package/commands/remove.d.ts +1 -1
- package/commands/remove.js +15 -17
- package/commands/sandbox/__tests__/create.test.js +15 -20
- package/commands/sandbox/__tests__/delete.test.js +15 -20
- package/commands/sandbox/create.d.ts +1 -1
- package/commands/sandbox/create.js +67 -69
- package/commands/sandbox/delete.d.ts +1 -1
- package/commands/sandbox/delete.js +94 -96
- package/commands/sandbox.d.ts +1 -1
- package/commands/sandbox.js +9 -14
- package/commands/secret/__tests__/addSecret.test.js +13 -18
- package/commands/secret/__tests__/deleteSecret.test.js +13 -18
- package/commands/secret/__tests__/listSecret.test.js +13 -18
- package/commands/secret/__tests__/updateSecret.test.js +13 -18
- package/commands/secret/addSecret.d.ts +1 -1
- package/commands/secret/addSecret.js +26 -28
- package/commands/secret/deleteSecret.d.ts +1 -1
- package/commands/secret/deleteSecret.js +27 -29
- package/commands/secret/listSecret.d.ts +1 -1
- package/commands/secret/listSecret.js +19 -21
- package/commands/secret/updateSecret.d.ts +1 -1
- package/commands/secret/updateSecret.js +25 -27
- package/commands/secret.d.ts +1 -1
- package/commands/secret.js +13 -18
- package/commands/testAccount/__tests__/create.test.js +17 -22
- package/commands/testAccount/__tests__/createConfig.test.js +6 -11
- package/commands/testAccount/__tests__/delete.test.js +15 -20
- package/commands/testAccount/create.d.ts +1 -1
- package/commands/testAccount/create.js +50 -55
- package/commands/testAccount/createConfig.d.ts +2 -2
- package/commands/testAccount/createConfig.js +36 -41
- package/commands/testAccount/delete.d.ts +1 -1
- package/commands/testAccount/delete.js +17 -19
- package/commands/testAccount.d.ts +1 -1
- package/commands/testAccount.js +10 -15
- package/commands/theme/__tests__/generate-selectors.test.js +7 -12
- package/commands/theme/__tests__/marketplace-validate.test.js +14 -19
- package/commands/theme/__tests__/preview.test.js +12 -17
- package/commands/theme/generate-selectors.d.ts +1 -1
- package/commands/theme/generate-selectors.js +23 -28
- package/commands/theme/marketplace-validate.d.ts +1 -1
- package/commands/theme/marketplace-validate.js +19 -24
- package/commands/theme/preview.d.ts +1 -1
- package/commands/theme/preview.js +60 -65
- package/commands/theme.d.ts +1 -1
- package/commands/theme.js +11 -16
- package/commands/upload.d.ts +1 -1
- package/commands/upload.js +77 -82
- package/commands/watch.d.ts +1 -1
- package/commands/watch.js +45 -51
- package/lang/en.d.ts +0 -1
- package/lang/en.js +369 -376
- package/lib/__tests__/accountTypes.test.js +20 -22
- package/lib/__tests__/buildAccount.test.js +26 -61
- package/lib/__tests__/commonOpts.test.js +20 -22
- package/lib/__tests__/dependencyManagement.test.js +46 -51
- package/lib/__tests__/developerTestAccounts.test.js +27 -62
- package/lib/__tests__/hasFeature.test.js +6 -8
- package/lib/__tests__/npm.test.js +15 -20
- package/lib/__tests__/oauth.test.js +23 -28
- package/lib/__tests__/parsing.test.js +18 -20
- package/lib/__tests__/polling.test.js +24 -26
- package/lib/__tests__/process.test.js +14 -19
- package/lib/__tests__/projectProfiles.test.js +34 -39
- package/lib/__tests__/sandboxSync.test.js +30 -35
- package/lib/__tests__/sandboxes.test.js +29 -31
- package/lib/__tests__/serverlessLogs.test.js +8 -13
- package/lib/__tests__/usageTracking.test.js +33 -34
- package/lib/__tests__/validation.test.js +18 -20
- package/lib/__tests__/yargsUtils.test.js +6 -41
- package/lib/accountTypes.js +24 -34
- package/lib/app/__tests__/migrate.test.js +94 -99
- package/lib/app/__tests__/migrate_legacy.test.js +29 -31
- package/lib/app/migrate.d.ts +3 -3
- package/lib/app/migrate.js +127 -145
- package/lib/app/migrate_legacy.d.ts +1 -1
- package/lib/app/migrate_legacy.js +72 -78
- package/lib/app/urls.js +5 -9
- package/lib/buildAccount.d.ts +1 -1
- package/lib/buildAccount.js +59 -67
- package/lib/commonOpts.d.ts +1 -1
- package/lib/commonOpts.js +42 -59
- package/lib/configMigrate.js +34 -38
- package/lib/configOptions.js +34 -40
- package/lib/constants.js +31 -34
- package/lib/customObject.js +2 -6
- package/lib/dependencyManagement.js +37 -45
- package/lib/developerTestAccounts.d.ts +1 -1
- package/lib/developerTestAccounts.js +34 -39
- package/lib/doctor/Diagnosis.d.ts +1 -1
- package/lib/doctor/Diagnosis.js +25 -29
- package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
- package/lib/doctor/DiagnosticInfoBuilder.js +30 -37
- package/lib/doctor/Doctor.d.ts +1 -1
- package/lib/doctor/Doctor.js +94 -101
- package/lib/doctor/__tests__/Diagnosis.test.js +9 -14
- package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +29 -34
- package/lib/doctor/__tests__/Doctor.test.js +24 -26
- package/lib/enums/exitCodes.js +1 -4
- package/lib/errorHandlers/index.js +32 -41
- package/lib/errorHandlers/suppressError.d.ts +1 -1
- package/lib/errorHandlers/suppressError.js +28 -31
- package/lib/filesystem.js +8 -15
- package/lib/generateSelectors.js +18 -29
- package/lib/hasFeature.d.ts +1 -1
- package/lib/hasFeature.js +3 -6
- package/lib/interpolation.js +11 -18
- package/lib/lang.d.ts +1 -1
- package/lib/lang.js +22 -27
- package/lib/links.js +16 -24
- package/lib/marketplaceValidate.js +29 -39
- package/lib/mcp/setup.js +69 -97
- package/lib/middleware/__test__/configMiddleware.test.js +20 -55
- package/lib/middleware/__test__/gitMiddleware.test.js +7 -42
- package/lib/middleware/__test__/notificationsMiddleware.test.js +2 -4
- package/lib/middleware/__test__/requestMiddleware.test.js +6 -11
- package/lib/middleware/__test__/utils.test.js +9 -11
- package/lib/middleware/__test__/yargsChecksMiddleware.test.js +9 -44
- package/lib/middleware/autoUpdateMiddleware.js +33 -40
- package/lib/middleware/configMiddleware.js +36 -42
- package/lib/middleware/fireAlarmMiddleware.js +12 -18
- package/lib/middleware/gitMiddleware.js +5 -8
- package/lib/middleware/notificationsMiddleware.js +16 -23
- package/lib/middleware/requestMiddleware.js +4 -10
- package/lib/middleware/utils.js +1 -4
- package/lib/middleware/yargsChecksMiddleware.js +10 -13
- package/lib/npm.js +14 -23
- package/lib/oauth.js +29 -35
- package/lib/parsing.js +3 -6
- package/lib/polling.js +11 -15
- package/lib/process.js +11 -19
- package/lib/projectProfiles.d.ts +2 -2
- package/lib/projectProfiles.js +32 -42
- package/lib/projects/ProjectLogsManager.js +18 -21
- package/lib/projects/__tests__/AppDevModeInterface.test.js +140 -145
- package/lib/projects/__tests__/LocalDevProcess.test.js +68 -73
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +32 -37
- package/lib/projects/__tests__/ProjectLogsManager.test.js +56 -58
- package/lib/projects/__tests__/buildAndDeploy.test.js +7 -9
- package/lib/projects/__tests__/components.test.js +9 -14
- package/lib/projects/__tests__/projects.test.js +35 -40
- package/lib/projects/__tests__/structure.test.js +43 -81
- package/lib/projects/add/__tests__/legacyAddComponent.test.js +26 -28
- package/lib/projects/add/__tests__/v3AddComponent.test.js +25 -30
- package/lib/projects/add/legacyAddComponent.d.ts +1 -1
- package/lib/projects/add/legacyAddComponent.js +23 -29
- package/lib/projects/add/v3AddComponent.d.ts +1 -1
- package/lib/projects/add/v3AddComponent.js +35 -41
- package/lib/projects/buildAndDeploy.d.ts +1 -1
- package/lib/projects/buildAndDeploy.js +88 -97
- package/lib/projects/components.js +19 -25
- package/lib/projects/config.d.ts +1 -1
- package/lib/projects/config.js +32 -41
- package/lib/projects/create/__tests__/legacy.test.js +22 -57
- package/lib/projects/create/__tests__/v3.test.js +5 -7
- package/lib/projects/create/index.d.ts +3 -3
- package/lib/projects/create/index.js +19 -22
- package/lib/projects/create/legacy.d.ts +1 -1
- package/lib/projects/create/legacy.js +25 -31
- package/lib/projects/create/v3.d.ts +3 -3
- package/lib/projects/create/v3.js +49 -59
- package/lib/projects/ensureProjectExists.js +31 -37
- package/lib/projects/localDev/AppDevModeInterface.d.ts +3 -3
- package/lib/projects/localDev/AppDevModeInterface.js +58 -60
- package/lib/projects/localDev/DevServerManager.d.ts +1 -1
- package/lib/projects/localDev/DevServerManager.js +24 -26
- package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
- package/lib/projects/localDev/DevServerManagerV2.js +17 -22
- package/lib/projects/localDev/LocalDevLogger.d.ts +1 -1
- package/lib/projects/localDev/LocalDevLogger.js +59 -64
- package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
- package/lib/projects/localDev/LocalDevManager.js +106 -111
- package/lib/projects/localDev/LocalDevProcess.d.ts +4 -4
- package/lib/projects/localDev/LocalDevProcess.js +25 -30
- package/lib/projects/localDev/LocalDevState.d.ts +3 -3
- package/lib/projects/localDev/LocalDevState.js +3 -5
- package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
- package/lib/projects/localDev/LocalDevWatcher.js +6 -11
- package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +1 -1
- package/lib/projects/localDev/LocalDevWebsocketServer.js +25 -27
- package/lib/projects/localDev/helpers.d.ts +3 -3
- package/lib/projects/localDev/helpers.js +156 -174
- package/lib/projects/structure.d.ts +3 -3
- package/lib/projects/structure.js +32 -78
- package/lib/projects/ui.js +10 -13
- package/lib/projects/upload.d.ts +1 -1
- package/lib/projects/upload.js +55 -64
- package/lib/projects/urls.js +14 -24
- package/lib/projects/watch.d.ts +1 -1
- package/lib/projects/watch.js +48 -54
- package/lib/prompts/__tests__/downloadProjectPrompt.test.js +9 -11
- package/lib/prompts/__tests__/projectsLogsPrompt.test.js +11 -16
- package/lib/prompts/accountNamePrompt.d.ts +1 -1
- package/lib/prompts/accountNamePrompt.js +26 -31
- package/lib/prompts/accountsPrompt.js +12 -15
- package/lib/prompts/cmsFieldPrompt.js +13 -19
- package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
- package/lib/prompts/createApiSamplePrompt.js +9 -12
- package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +1 -1
- package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +16 -19
- package/lib/prompts/createFunctionPrompt.js +17 -20
- package/lib/prompts/createModulePrompt.js +12 -15
- package/lib/prompts/createTemplatePrompt.js +5 -8
- package/lib/prompts/downloadProjectPrompt.js +17 -20
- package/lib/prompts/installAppPrompt.js +19 -26
- package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
- package/lib/prompts/personalAccessKeyPrompt.js +40 -47
- package/lib/prompts/previewPrompt.js +15 -22
- package/lib/prompts/projectAddPrompt.d.ts +1 -1
- package/lib/prompts/projectAddPrompt.js +14 -18
- package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
- package/lib/prompts/projectDevTargetAccountPrompt.js +48 -54
- package/lib/prompts/projectNameAndDestPrompt.d.ts +1 -1
- package/lib/prompts/projectNameAndDestPrompt.js +22 -29
- package/lib/prompts/projectNamePrompt.js +11 -14
- package/lib/prompts/projectsLogsPrompt.js +5 -8
- package/lib/prompts/promptUtils.d.ts +1 -1
- package/lib/prompts/promptUtils.js +15 -22
- package/lib/prompts/sandboxesPrompt.d.ts +1 -1
- package/lib/prompts/sandboxesPrompt.js +26 -30
- package/lib/prompts/secretPrompt.js +10 -15
- package/lib/prompts/selectAppPrompt.js +11 -14
- package/lib/prompts/selectHubDBTablePrompt.js +24 -30
- package/lib/prompts/selectProjectTemplatePrompt.d.ts +1 -1
- package/lib/prompts/selectProjectTemplatePrompt.js +10 -13
- package/lib/prompts/selectPublicAppForMigrationPrompt.js +22 -25
- package/lib/prompts/setAsDefaultAccountPrompt.js +13 -16
- package/lib/prompts/uploadPrompt.js +11 -17
- package/lib/sandboxSync.d.ts +1 -1
- package/lib/sandboxSync.js +58 -65
- package/lib/sandboxes.d.ts +1 -1
- package/lib/sandboxes.js +68 -76
- package/lib/schema.js +12 -23
- package/lib/serverlessLogs.js +45 -52
- package/lib/testUtils.js +4 -8
- package/lib/ui/SpinniesManager.d.ts +1 -1
- package/lib/ui/SpinniesManager.js +29 -34
- package/lib/ui/boxen.js +11 -14
- package/lib/ui/git.js +14 -20
- package/lib/ui/index.js +55 -73
- package/lib/ui/logger.js +10 -13
- package/lib/ui/serverlessFunctionLogs.js +14 -20
- package/lib/ui/spinniesUtils.js +24 -39
- package/lib/ui/supportHyperlinks.js +3 -6
- package/lib/ui/supportsColor.js +11 -17
- package/lib/ui/table.js +6 -13
- package/lib/upload.js +15 -21
- package/lib/usageTracking.js +44 -50
- package/lib/utils/hasFlag.js +2 -8
- package/lib/validation.js +48 -87
- package/lib/yargsUtils.d.ts +1 -1
- package/lib/yargsUtils.js +13 -16
- package/mcp-server/server.js +6 -8
- package/mcp-server/tools/index.js +13 -16
- package/mcp-server/tools/project/AddFeatureToProject.d.ts +1 -1
- package/mcp-server/tools/project/AddFeatureToProject.js +33 -37
- package/mcp-server/tools/project/CreateProjectTool.d.ts +1 -1
- package/mcp-server/tools/project/CreateProjectTool.js +44 -48
- package/mcp-server/tools/project/DeployProject.d.ts +1 -1
- package/mcp-server/tools/project/DeployProject.js +16 -20
- package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
- package/mcp-server/tools/project/GuidedWalkthroughTool.js +19 -23
- package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
- package/mcp-server/tools/project/UploadProjectTools.js +10 -17
- package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
- package/mcp-server/tools/project/ValidateProjectTool.js +11 -15
- package/mcp-server/tools/project/__tests__/AddFeatureToProject.test.js +12 -14
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +13 -15
- package/mcp-server/tools/project/__tests__/DeployProject.test.js +6 -8
- package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +4 -6
- package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +4 -6
- package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +4 -6
- package/mcp-server/tools/project/constants.js +3 -9
- package/mcp-server/types.js +1 -5
- package/mcp-server/utils/__tests__/command.test.js +9 -11
- package/mcp-server/utils/__tests__/project.test.js +12 -17
- package/mcp-server/utils/command.d.ts +1 -1
- package/mcp-server/utils/command.js +4 -11
- package/mcp-server/utils/content.d.ts +1 -1
- package/mcp-server/utils/content.js +2 -6
- package/mcp-server/utils/project.js +8 -14
- package/package.json +15 -11
- package/types/LocalDev.d.ts +4 -4
- package/types/LocalDev.js +1 -2
- package/types/ProjectComponents.d.ts +2 -2
- package/types/ProjectComponents.js +1 -2
- package/types/Projects.d.ts +1 -1
- package/types/Projects.js +2 -5
- package/types/Prompts.js +1 -2
- package/types/Yargs.js +1 -2
- package/types/{Cms.d.ts → cms.d.ts} +1 -1
- package/types/cms.js +1 -0
- package/types/sandboxes.js +1 -0
- package/types/Cms.js +0 -2
- package/types/Sandboxes.js +0 -2
- /package/types/{Sandboxes.d.ts → sandboxes.d.ts} +0 -0
|
@@ -1,36 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const developerTestAccounts_1 = require("@hubspot/local-dev-lib/api/developerTestAccounts");
|
|
13
|
-
const promptUtils_1 = require("./promptUtils");
|
|
14
|
-
const lang_1 = require("../lang");
|
|
15
|
-
const ui_1 = require("../ui");
|
|
16
|
-
const accountTypes_1 = require("../accountTypes");
|
|
17
|
-
const exitCodes_1 = require("../enums/exitCodes");
|
|
1
|
+
import { getAccountId } from '@hubspot/local-dev-lib/config';
|
|
2
|
+
import { getSandboxUsageLimits } from '@hubspot/local-dev-lib/api/sandboxHubs';
|
|
3
|
+
import { HUBSPOT_ACCOUNT_TYPES, HUBSPOT_ACCOUNT_TYPE_STRINGS, } from '@hubspot/local-dev-lib/constants/config';
|
|
4
|
+
import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
|
|
5
|
+
import { logger } from '@hubspot/local-dev-lib/logger';
|
|
6
|
+
import { fetchDeveloperTestAccounts } from '@hubspot/local-dev-lib/api/developerTestAccounts';
|
|
7
|
+
import { promptUser } from './promptUtils.js';
|
|
8
|
+
import { i18n } from '../lang.js';
|
|
9
|
+
import { uiAccountDescription, uiCommandReference } from '../ui/index.js';
|
|
10
|
+
import { isSandbox } from '../accountTypes.js';
|
|
11
|
+
import { EXIT_CODES } from '../enums/exitCodes.js';
|
|
18
12
|
function mapNestedAccount(accountConfig) {
|
|
19
13
|
const parentAccountId = accountConfig.parentAccountId ?? null;
|
|
20
14
|
return {
|
|
21
|
-
name:
|
|
15
|
+
name: uiAccountDescription(getAccountIdentifier(accountConfig), false),
|
|
22
16
|
value: {
|
|
23
|
-
targetAccountId:
|
|
17
|
+
targetAccountId: getAccountId(accountConfig.name),
|
|
24
18
|
createNestedAccount: false,
|
|
25
19
|
parentAccountId,
|
|
26
20
|
},
|
|
27
21
|
};
|
|
28
22
|
}
|
|
29
23
|
function getNonConfigDeveloperTestAccountName(account) {
|
|
30
|
-
return `${account.accountName} [${
|
|
24
|
+
return `${account.accountName} [${HUBSPOT_ACCOUNT_TYPE_STRINGS[HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST]}] (${account.id})`;
|
|
31
25
|
}
|
|
32
|
-
async function selectSandboxTargetAccountPrompt(accounts, defaultAccountConfig) {
|
|
33
|
-
const defaultAccountId =
|
|
26
|
+
export async function selectSandboxTargetAccountPrompt(accounts, defaultAccountConfig) {
|
|
27
|
+
const defaultAccountId = getAccountId(defaultAccountConfig.name);
|
|
34
28
|
let choices = [];
|
|
35
29
|
let sandboxUsage = {
|
|
36
30
|
STANDARD: { used: 0, available: 0, limit: 0 },
|
|
@@ -38,30 +32,30 @@ async function selectSandboxTargetAccountPrompt(accounts, defaultAccountConfig)
|
|
|
38
32
|
};
|
|
39
33
|
try {
|
|
40
34
|
if (defaultAccountId) {
|
|
41
|
-
const { data } = await
|
|
35
|
+
const { data } = await getSandboxUsageLimits(defaultAccountId);
|
|
42
36
|
sandboxUsage = data.usage;
|
|
43
37
|
}
|
|
44
38
|
else {
|
|
45
|
-
|
|
46
|
-
process.exit(
|
|
39
|
+
logger.error(i18n(`lib.prompts.projectDevTargetAccountPrompt.noAccountId`));
|
|
40
|
+
process.exit(EXIT_CODES.ERROR);
|
|
47
41
|
}
|
|
48
42
|
}
|
|
49
43
|
catch (err) {
|
|
50
|
-
|
|
44
|
+
logger.debug('Unable to fetch sandbox usage limits: ', err);
|
|
51
45
|
}
|
|
52
46
|
const sandboxAccounts = accounts
|
|
53
47
|
.reverse()
|
|
54
|
-
.filter(config =>
|
|
48
|
+
.filter(config => isSandbox(config) && config.parentAccountId === defaultAccountId);
|
|
55
49
|
let disabledMessage = false;
|
|
56
50
|
if (sandboxUsage['DEVELOPER'] && sandboxUsage['DEVELOPER'].available === 0) {
|
|
57
51
|
if (sandboxAccounts.length < sandboxUsage['DEVELOPER'].limit) {
|
|
58
|
-
disabledMessage =
|
|
59
|
-
authCommand:
|
|
52
|
+
disabledMessage = i18n(`lib.prompts.projectDevTargetAccountPrompt.sandboxLimitWithSuggestion`, {
|
|
53
|
+
authCommand: uiCommandReference('hs auth'),
|
|
60
54
|
limit: sandboxUsage['DEVELOPER'].limit,
|
|
61
55
|
});
|
|
62
56
|
}
|
|
63
57
|
else {
|
|
64
|
-
disabledMessage =
|
|
58
|
+
disabledMessage = i18n(`lib.prompts.projectDevTargetAccountPrompt.sandboxLimit`, {
|
|
65
59
|
limit: sandboxUsage['DEVELOPER'].limit,
|
|
66
60
|
});
|
|
67
61
|
}
|
|
@@ -69,13 +63,13 @@ async function selectSandboxTargetAccountPrompt(accounts, defaultAccountConfig)
|
|
|
69
63
|
// Order choices by Developer Sandbox -> Standard Sandbox
|
|
70
64
|
choices = [
|
|
71
65
|
...sandboxAccounts
|
|
72
|
-
.filter(a => a.accountType ===
|
|
66
|
+
.filter(a => a.accountType === HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX)
|
|
73
67
|
.map(mapNestedAccount),
|
|
74
68
|
...sandboxAccounts
|
|
75
|
-
.filter(a => a.accountType ===
|
|
69
|
+
.filter(a => a.accountType === HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX)
|
|
76
70
|
.map(mapNestedAccount),
|
|
77
71
|
{
|
|
78
|
-
name:
|
|
72
|
+
name: i18n(`lib.prompts.projectDevTargetAccountPrompt.createNewSandboxOption`),
|
|
79
73
|
value: {
|
|
80
74
|
targetAccountId: null,
|
|
81
75
|
createNestedAccount: true,
|
|
@@ -83,7 +77,7 @@ async function selectSandboxTargetAccountPrompt(accounts, defaultAccountConfig)
|
|
|
83
77
|
disabled: disabledMessage,
|
|
84
78
|
},
|
|
85
79
|
{
|
|
86
|
-
name:
|
|
80
|
+
name: i18n(`lib.prompts.projectDevTargetAccountPrompt.chooseDefaultAccountOption`),
|
|
87
81
|
value: {
|
|
88
82
|
targetAccountId: defaultAccountId,
|
|
89
83
|
createNestedAccount: false,
|
|
@@ -92,34 +86,34 @@ async function selectSandboxTargetAccountPrompt(accounts, defaultAccountConfig)
|
|
|
92
86
|
];
|
|
93
87
|
return selectTargetAccountPrompt(defaultAccountId, 'sandbox account', choices);
|
|
94
88
|
}
|
|
95
|
-
async function selectDeveloperTestTargetAccountPrompt(accounts, defaultAccountConfig) {
|
|
96
|
-
const defaultAccountId =
|
|
89
|
+
export async function selectDeveloperTestTargetAccountPrompt(accounts, defaultAccountConfig) {
|
|
90
|
+
const defaultAccountId = getAccountId(defaultAccountConfig.name);
|
|
97
91
|
let devTestAccountsResponse;
|
|
98
92
|
try {
|
|
99
93
|
if (defaultAccountId) {
|
|
100
|
-
const { data } = await
|
|
94
|
+
const { data } = await fetchDeveloperTestAccounts(defaultAccountId);
|
|
101
95
|
devTestAccountsResponse = data;
|
|
102
96
|
}
|
|
103
97
|
else {
|
|
104
|
-
|
|
105
|
-
process.exit(
|
|
98
|
+
logger.error(i18n(`lib.prompts.projectDevTargetAccountPrompt.noAccountId`));
|
|
99
|
+
process.exit(EXIT_CODES.ERROR);
|
|
106
100
|
}
|
|
107
101
|
}
|
|
108
102
|
catch (err) {
|
|
109
|
-
|
|
103
|
+
logger.debug('Unable to fetch developer test account usage limits: ', err);
|
|
110
104
|
}
|
|
111
105
|
let disabledMessage = false;
|
|
112
106
|
if (devTestAccountsResponse &&
|
|
113
107
|
devTestAccountsResponse.results.length >=
|
|
114
108
|
devTestAccountsResponse.maxTestPortals) {
|
|
115
|
-
disabledMessage =
|
|
116
|
-
authCommand:
|
|
109
|
+
disabledMessage = i18n(`lib.prompts.projectDevTargetAccountPrompt.developerTestAccountLimit`, {
|
|
110
|
+
authCommand: uiCommandReference('hs auth'),
|
|
117
111
|
limit: devTestAccountsResponse.maxTestPortals,
|
|
118
112
|
});
|
|
119
113
|
}
|
|
120
114
|
const devTestAccounts = [];
|
|
121
115
|
if (devTestAccountsResponse && devTestAccountsResponse.results) {
|
|
122
|
-
const accountIds = accounts.map(account =>
|
|
116
|
+
const accountIds = accounts.map(account => getAccountIdentifier(account));
|
|
123
117
|
devTestAccountsResponse.results.forEach(acct => {
|
|
124
118
|
const inConfig = accountIds.includes(acct.id);
|
|
125
119
|
devTestAccounts.push({
|
|
@@ -136,7 +130,7 @@ async function selectDeveloperTestTargetAccountPrompt(accounts, defaultAccountCo
|
|
|
136
130
|
const choices = [
|
|
137
131
|
...devTestAccounts,
|
|
138
132
|
{
|
|
139
|
-
name:
|
|
133
|
+
name: i18n(`lib.prompts.projectDevTargetAccountPrompt.createNewDeveloperTestAccountOption`),
|
|
140
134
|
value: {
|
|
141
135
|
targetAccountId: null,
|
|
142
136
|
createNestedAccount: true,
|
|
@@ -144,16 +138,16 @@ async function selectDeveloperTestTargetAccountPrompt(accounts, defaultAccountCo
|
|
|
144
138
|
disabled: disabledMessage,
|
|
145
139
|
},
|
|
146
140
|
];
|
|
147
|
-
return selectTargetAccountPrompt(defaultAccountId,
|
|
141
|
+
return selectTargetAccountPrompt(defaultAccountId, HUBSPOT_ACCOUNT_TYPE_STRINGS[HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST], choices);
|
|
148
142
|
}
|
|
149
143
|
async function selectTargetAccountPrompt(defaultAccountId, accountType, choices) {
|
|
150
144
|
const accountId = defaultAccountId;
|
|
151
|
-
const { targetAccountInfo } = await
|
|
145
|
+
const { targetAccountInfo } = await promptUser([
|
|
152
146
|
{
|
|
153
147
|
name: 'targetAccountInfo',
|
|
154
148
|
type: 'list',
|
|
155
|
-
message:
|
|
156
|
-
accountIdentifier:
|
|
149
|
+
message: i18n(`lib.prompts.projectDevTargetAccountPrompt.promptMessage`, {
|
|
150
|
+
accountIdentifier: uiAccountDescription(accountId),
|
|
157
151
|
accountType,
|
|
158
152
|
}),
|
|
159
153
|
choices,
|
|
@@ -161,12 +155,12 @@ async function selectTargetAccountPrompt(defaultAccountId, accountType, choices)
|
|
|
161
155
|
]);
|
|
162
156
|
return targetAccountInfo;
|
|
163
157
|
}
|
|
164
|
-
async function confirmDefaultAccountPrompt(accountName, accountType) {
|
|
165
|
-
const { useDefaultAccount } = await
|
|
158
|
+
export async function confirmDefaultAccountPrompt(accountName, accountType) {
|
|
159
|
+
const { useDefaultAccount } = await promptUser([
|
|
166
160
|
{
|
|
167
161
|
name: 'useDefaultAccount',
|
|
168
162
|
type: 'confirm',
|
|
169
|
-
message:
|
|
163
|
+
message: i18n(`lib.prompts.projectDevTargetAccountPrompt.confirmDefaultAccount`, {
|
|
170
164
|
accountName,
|
|
171
165
|
accountType,
|
|
172
166
|
}),
|
|
@@ -174,12 +168,12 @@ async function confirmDefaultAccountPrompt(accountName, accountType) {
|
|
|
174
168
|
]);
|
|
175
169
|
return useDefaultAccount;
|
|
176
170
|
}
|
|
177
|
-
async function confirmUseExistingDeveloperTestAccountPrompt(account) {
|
|
178
|
-
const { confirmUseExistingDeveloperTestAccount } = await
|
|
171
|
+
export async function confirmUseExistingDeveloperTestAccountPrompt(account) {
|
|
172
|
+
const { confirmUseExistingDeveloperTestAccount } = await promptUser([
|
|
179
173
|
{
|
|
180
174
|
name: 'confirmUseExistingDeveloperTestAccount',
|
|
181
175
|
type: 'confirm',
|
|
182
|
-
message:
|
|
176
|
+
message: i18n(`lib.prompts.projectDevTargetAccountPrompt.confirmUseExistingDeveloperTestAccount`, {
|
|
183
177
|
accountName: getNonConfigDeveloperTestAccountName(account),
|
|
184
178
|
}),
|
|
185
179
|
},
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { PromptOptionsArg, ProjectNameAndDestPromptResponse } from './selectProjectTemplatePrompt';
|
|
1
|
+
import { PromptOptionsArg, ProjectNameAndDestPromptResponse } from './selectProjectTemplatePrompt.js';
|
|
2
2
|
export declare function projectNameAndDestPrompt(promptOptions: PromptOptionsArg): Promise<ProjectNameAndDestPromptResponse>;
|
|
3
3
|
export declare function validateProjectDirectory(input?: string): string | boolean;
|
|
@@ -1,40 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const path_2 = require("@hubspot/local-dev-lib/path");
|
|
11
|
-
const en_1 = require("../../lang/en");
|
|
12
|
-
const promptUtils_1 = require("./promptUtils");
|
|
13
|
-
const constants_1 = require("../constants");
|
|
14
|
-
async function projectNameAndDestPrompt(promptOptions) {
|
|
15
|
-
const result = await (0, promptUtils_1.promptUser)([
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { sanitizeFileName, getCwd, untildify, isValidPath, } from '@hubspot/local-dev-lib/path';
|
|
4
|
+
import { lib } from '../../lang/en.js';
|
|
5
|
+
import { promptUser } from './promptUtils.js';
|
|
6
|
+
import { PROJECT_CONFIG_FILE } from '../constants.js';
|
|
7
|
+
export async function projectNameAndDestPrompt(promptOptions) {
|
|
8
|
+
const result = await promptUser([
|
|
16
9
|
{
|
|
17
10
|
name: 'name',
|
|
18
|
-
message:
|
|
11
|
+
message: lib.prompts.projectNameAndDestPrompt.enterName,
|
|
19
12
|
when: !promptOptions.name,
|
|
20
13
|
validate: (input) => {
|
|
21
14
|
if (!input) {
|
|
22
|
-
return
|
|
15
|
+
return lib.prompts.projectNameAndDestPrompt.errors.nameRequired;
|
|
23
16
|
}
|
|
24
17
|
return true;
|
|
25
18
|
},
|
|
26
19
|
},
|
|
27
20
|
{
|
|
28
21
|
name: 'dest',
|
|
29
|
-
message:
|
|
22
|
+
message: lib.prompts.projectNameAndDestPrompt.enterDest,
|
|
30
23
|
when: !promptOptions.dest,
|
|
31
|
-
default: answers => {
|
|
32
|
-
const projectName =
|
|
33
|
-
return
|
|
24
|
+
default: (answers) => {
|
|
25
|
+
const projectName = sanitizeFileName(promptOptions.name || answers.name);
|
|
26
|
+
return path.resolve(getCwd(), projectName);
|
|
34
27
|
},
|
|
35
28
|
validate: validateProjectDirectory,
|
|
36
|
-
filter: input => {
|
|
37
|
-
return
|
|
29
|
+
filter: (input) => {
|
|
30
|
+
return untildify(input);
|
|
38
31
|
},
|
|
39
32
|
},
|
|
40
33
|
]);
|
|
@@ -46,15 +39,15 @@ async function projectNameAndDestPrompt(promptOptions) {
|
|
|
46
39
|
}
|
|
47
40
|
return result;
|
|
48
41
|
}
|
|
49
|
-
function validateProjectDirectory(input) {
|
|
42
|
+
export function validateProjectDirectory(input) {
|
|
50
43
|
if (!input) {
|
|
51
|
-
return
|
|
44
|
+
return lib.prompts.projectNameAndDestPrompt.errors.destRequired;
|
|
52
45
|
}
|
|
53
|
-
if (
|
|
54
|
-
return
|
|
46
|
+
if (fs.existsSync(path.resolve(getCwd(), path.join(input, PROJECT_CONFIG_FILE)))) {
|
|
47
|
+
return lib.prompts.projectNameAndDestPrompt.errors.invalidDest;
|
|
55
48
|
}
|
|
56
|
-
if (!
|
|
57
|
-
return
|
|
49
|
+
if (!isValidPath(input)) {
|
|
50
|
+
return lib.prompts.projectNameAndDestPrompt.errors.invalidCharacters;
|
|
58
51
|
}
|
|
59
52
|
return true;
|
|
60
53
|
}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const ui_1 = require("../ui");
|
|
8
|
-
async function projectNamePrompt(accountId, options = {}) {
|
|
9
|
-
const result = await (0, promptUtils_1.promptUser)({
|
|
1
|
+
import { promptUser } from './promptUtils.js';
|
|
2
|
+
import { i18n } from '../lang.js';
|
|
3
|
+
import { ensureProjectExists } from '../projects/ensureProjectExists.js';
|
|
4
|
+
import { uiAccountDescription } from '../ui/index.js';
|
|
5
|
+
export async function projectNamePrompt(accountId, options = {}) {
|
|
6
|
+
const result = await promptUser({
|
|
10
7
|
name: 'projectName',
|
|
11
|
-
message:
|
|
8
|
+
message: i18n(`lib.prompts.projectNamePrompt.enterName`),
|
|
12
9
|
when: !options.project,
|
|
13
10
|
validate: async (val) => {
|
|
14
11
|
if (typeof val !== 'string' || !val) {
|
|
15
|
-
return
|
|
12
|
+
return i18n(`lib.prompts.projectNamePrompt.errors.invalidName`);
|
|
16
13
|
}
|
|
17
|
-
const { projectExists } = await
|
|
14
|
+
const { projectExists } = await ensureProjectExists(accountId, val, {
|
|
18
15
|
allowCreate: false,
|
|
19
16
|
noLogs: true,
|
|
20
17
|
});
|
|
21
18
|
if (!projectExists) {
|
|
22
|
-
return
|
|
19
|
+
return i18n(`lib.prompts.projectNamePrompt.errors.projectDoesNotExist`, {
|
|
23
20
|
projectName: val,
|
|
24
|
-
accountIdentifier:
|
|
21
|
+
accountIdentifier: uiAccountDescription(accountId),
|
|
25
22
|
});
|
|
26
23
|
}
|
|
27
24
|
return true;
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const lang_1 = require("../lang");
|
|
5
|
-
const promptUtils_1 = require("./promptUtils");
|
|
6
|
-
async function projectLogsPrompt({ functionChoices, promptOptions, projectName = '', }) {
|
|
1
|
+
import { i18n } from '../lang.js';
|
|
2
|
+
import { promptUser } from './promptUtils.js';
|
|
3
|
+
export async function projectLogsPrompt({ functionChoices, promptOptions, projectName = '', }) {
|
|
7
4
|
if (!functionChoices) {
|
|
8
5
|
return {};
|
|
9
6
|
}
|
|
10
7
|
if (functionChoices.length === 1) {
|
|
11
8
|
return { functionName: functionChoices[0] };
|
|
12
9
|
}
|
|
13
|
-
return
|
|
10
|
+
return promptUser([
|
|
14
11
|
{
|
|
15
12
|
name: 'functionName',
|
|
16
13
|
type: 'list',
|
|
17
|
-
message:
|
|
14
|
+
message: i18n(`lib.prompts.projectLogsPrompt.functionName`, {
|
|
18
15
|
projectName,
|
|
19
16
|
}),
|
|
20
17
|
when: () => (!promptOptions || !promptOptions.function) &&
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Separator as _Separator } from '@inquirer/prompts';
|
|
2
|
-
import { PromptConfig, GenericPromptResponse, PromptWhen, PromptChoices } from '../../types/Prompts';
|
|
2
|
+
import { PromptConfig, GenericPromptResponse, PromptWhen, PromptChoices } from '../../types/Prompts.js';
|
|
3
3
|
export declare const Separator: _Separator;
|
|
4
4
|
export declare function promptUser<T extends GenericPromptResponse>(config: PromptConfig<T> | PromptConfig<T>[]): Promise<T>;
|
|
5
5
|
export declare function confirmPrompt(message: string, options?: {
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.Separator = void 0;
|
|
4
|
-
exports.promptUser = promptUser;
|
|
5
|
-
exports.confirmPrompt = confirmPrompt;
|
|
6
|
-
exports.listPrompt = listPrompt;
|
|
7
|
-
exports.inputPrompt = inputPrompt;
|
|
8
|
-
const prompts_1 = require("@inquirer/prompts");
|
|
9
|
-
exports.Separator = new prompts_1.Separator();
|
|
1
|
+
import { confirm, Separator as _Separator, select, input, checkbox, password, number, } from '@inquirer/prompts';
|
|
2
|
+
export const Separator = new _Separator();
|
|
10
3
|
function mapPromptChoicesToChoices(choices) {
|
|
11
4
|
return (choices?.map(choice => {
|
|
12
5
|
if (typeof choice === 'string') {
|
|
13
6
|
return { value: choice, name: choice };
|
|
14
7
|
}
|
|
15
|
-
else if (choice instanceof
|
|
8
|
+
else if (choice instanceof _Separator) {
|
|
16
9
|
return choice;
|
|
17
10
|
}
|
|
18
11
|
return {
|
|
@@ -54,7 +47,7 @@ function handleArrayConfig(config) {
|
|
|
54
47
|
return result;
|
|
55
48
|
})();
|
|
56
49
|
}
|
|
57
|
-
function promptUser(config) {
|
|
50
|
+
export function promptUser(config) {
|
|
58
51
|
if (Array.isArray(config)) {
|
|
59
52
|
return handleArrayConfig(config);
|
|
60
53
|
}
|
|
@@ -90,11 +83,11 @@ function promptUser(config) {
|
|
|
90
83
|
function handleRawListPrompt(config) {
|
|
91
84
|
const choices = mapPromptChoicesToChoices(config.choices);
|
|
92
85
|
choices.map((choice, index) => {
|
|
93
|
-
if (!(choice instanceof
|
|
86
|
+
if (!(choice instanceof _Separator)) {
|
|
94
87
|
choice.name = `${index + 1}) ${choice.name}`;
|
|
95
88
|
}
|
|
96
89
|
});
|
|
97
|
-
return
|
|
90
|
+
return select({
|
|
98
91
|
message: config.message,
|
|
99
92
|
choices: choices,
|
|
100
93
|
pageSize: config.pageSize,
|
|
@@ -102,14 +95,14 @@ function handleRawListPrompt(config) {
|
|
|
102
95
|
}).then(resp => ({ [config.name]: resp }));
|
|
103
96
|
}
|
|
104
97
|
function handleNumberPrompt(config) {
|
|
105
|
-
return
|
|
98
|
+
return number({
|
|
106
99
|
message: config.message,
|
|
107
100
|
default: config.default,
|
|
108
101
|
validate: config.validate,
|
|
109
102
|
}).then(resp => ({ [config.name]: resp }));
|
|
110
103
|
}
|
|
111
104
|
function handlePasswordPrompt(config) {
|
|
112
|
-
return
|
|
105
|
+
return password({
|
|
113
106
|
message: config.message,
|
|
114
107
|
mask: '*',
|
|
115
108
|
validate: config.validate,
|
|
@@ -117,7 +110,7 @@ function handlePasswordPrompt(config) {
|
|
|
117
110
|
}
|
|
118
111
|
function handleCheckboxPrompt(config) {
|
|
119
112
|
const choices = mapPromptChoicesToChoices(config.choices);
|
|
120
|
-
return
|
|
113
|
+
return checkbox({
|
|
121
114
|
message: config.message,
|
|
122
115
|
choices: choices,
|
|
123
116
|
pageSize: config.pageSize,
|
|
@@ -130,7 +123,7 @@ function handleConfirmPrompt(config) {
|
|
|
130
123
|
}).then(resp => ({ [config.name]: resp }));
|
|
131
124
|
}
|
|
132
125
|
function handleInputPrompt(config) {
|
|
133
|
-
return
|
|
126
|
+
return input({
|
|
134
127
|
message: config.message,
|
|
135
128
|
default: config.default,
|
|
136
129
|
validate: config.validate,
|
|
@@ -139,22 +132,22 @@ function handleInputPrompt(config) {
|
|
|
139
132
|
}
|
|
140
133
|
function handleSelectPrompt(config) {
|
|
141
134
|
const choices = mapPromptChoicesToChoices(config.choices);
|
|
142
|
-
return
|
|
135
|
+
return select({
|
|
143
136
|
message: config.message,
|
|
144
137
|
choices: choices,
|
|
145
138
|
default: config.default,
|
|
146
139
|
pageSize: config.pageSize,
|
|
147
140
|
}).then(resp => ({ [config.name]: resp }));
|
|
148
141
|
}
|
|
149
|
-
async function confirmPrompt(message, options = {}) {
|
|
142
|
+
export async function confirmPrompt(message, options = {}) {
|
|
150
143
|
const { defaultAnswer = true } = options;
|
|
151
|
-
const choice = await
|
|
144
|
+
const choice = await confirm({
|
|
152
145
|
message,
|
|
153
146
|
default: defaultAnswer,
|
|
154
147
|
});
|
|
155
148
|
return choice;
|
|
156
149
|
}
|
|
157
|
-
async function listPrompt(message, { choices, when, defaultAnswer, validate, }) {
|
|
150
|
+
export async function listPrompt(message, { choices, when, defaultAnswer, validate, }) {
|
|
158
151
|
const { choice } = await promptUser({
|
|
159
152
|
name: 'choice',
|
|
160
153
|
type: 'list',
|
|
@@ -166,7 +159,7 @@ async function listPrompt(message, { choices, when, defaultAnswer, validate, })
|
|
|
166
159
|
});
|
|
167
160
|
return choice;
|
|
168
161
|
}
|
|
169
|
-
async function inputPrompt(message, { when, validate, defaultAnswer, } = {}) {
|
|
162
|
+
export async function inputPrompt(message, { when, validate, defaultAnswer, } = {}) {
|
|
170
163
|
const { input } = await promptUser({
|
|
171
164
|
name: 'input',
|
|
172
165
|
type: 'input',
|
|
@@ -1,68 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const config_1 = require("@hubspot/local-dev-lib/constants/config");
|
|
9
|
-
const getAccountIdentifier_1 = require("@hubspot/local-dev-lib/config/getAccountIdentifier");
|
|
10
|
-
const accountTypes_1 = require("../accountTypes");
|
|
11
|
-
const config_2 = require("@hubspot/local-dev-lib/config");
|
|
1
|
+
import { promptUser } from './promptUtils.js';
|
|
2
|
+
import { i18n } from '../lang.js';
|
|
3
|
+
import { uiAccountDescription } from '../ui/index.js';
|
|
4
|
+
import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
|
|
5
|
+
import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
|
|
6
|
+
import { isSandbox } from '../accountTypes.js';
|
|
7
|
+
import { getConfigDefaultAccount, getConfigAccounts, } from '@hubspot/local-dev-lib/config';
|
|
12
8
|
function mapSandboxAccountChoices(portals) {
|
|
13
9
|
return (portals
|
|
14
|
-
?.filter(p =>
|
|
10
|
+
?.filter(p => isSandbox(p))
|
|
15
11
|
.map(p => ({
|
|
16
|
-
name:
|
|
17
|
-
value: p.name ||
|
|
12
|
+
name: uiAccountDescription(getAccountIdentifier(p), false),
|
|
13
|
+
value: p.name || getAccountIdentifier(p),
|
|
18
14
|
})) || []);
|
|
19
15
|
}
|
|
20
16
|
function mapNonSandboxAccountChoices(portals) {
|
|
21
17
|
return (portals
|
|
22
|
-
?.filter(p => !
|
|
18
|
+
?.filter(p => !isSandbox(p))
|
|
23
19
|
.map(p => ({
|
|
24
|
-
name: `${p.name} (${
|
|
25
|
-
value: p.name ||
|
|
20
|
+
name: `${p.name} (${getAccountIdentifier(p)})`,
|
|
21
|
+
value: p.name || getAccountIdentifier(p),
|
|
26
22
|
})) || []);
|
|
27
23
|
}
|
|
28
|
-
async function sandboxTypePrompt() {
|
|
29
|
-
return
|
|
24
|
+
export async function sandboxTypePrompt() {
|
|
25
|
+
return promptUser([
|
|
30
26
|
{
|
|
31
27
|
name: 'type',
|
|
32
|
-
message:
|
|
28
|
+
message: i18n(`lib.prompts.sandboxesPrompt.type.message`),
|
|
33
29
|
type: 'list',
|
|
34
30
|
choices: [
|
|
35
31
|
{
|
|
36
|
-
name:
|
|
37
|
-
value:
|
|
32
|
+
name: i18n(`lib.prompts.sandboxesPrompt.type.developer`),
|
|
33
|
+
value: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
|
|
38
34
|
},
|
|
39
35
|
{
|
|
40
|
-
name:
|
|
41
|
-
value:
|
|
36
|
+
name: i18n(`lib.prompts.sandboxesPrompt.type.standard`),
|
|
37
|
+
value: HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
|
|
42
38
|
},
|
|
43
39
|
],
|
|
44
|
-
default:
|
|
40
|
+
default: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
|
|
45
41
|
},
|
|
46
42
|
]);
|
|
47
43
|
}
|
|
48
|
-
function deleteSandboxPrompt(promptParentAccount = false) {
|
|
49
|
-
const accountsList =
|
|
44
|
+
export function deleteSandboxPrompt(promptParentAccount = false) {
|
|
45
|
+
const accountsList = getConfigAccounts();
|
|
50
46
|
const choices = promptParentAccount
|
|
51
47
|
? mapNonSandboxAccountChoices(accountsList)
|
|
52
48
|
: mapSandboxAccountChoices(accountsList);
|
|
53
49
|
if (!choices.length) {
|
|
54
50
|
return Promise.resolve(undefined);
|
|
55
51
|
}
|
|
56
|
-
return
|
|
52
|
+
return promptUser([
|
|
57
53
|
{
|
|
58
54
|
name: 'account',
|
|
59
|
-
message:
|
|
55
|
+
message: i18n(promptParentAccount
|
|
60
56
|
? `lib.prompts.sandboxesPrompt.selectParentAccountName`
|
|
61
57
|
: `lib.prompts.sandboxesPrompt.selectAccountName`),
|
|
62
58
|
type: 'list',
|
|
63
59
|
pageSize: 20,
|
|
64
60
|
choices,
|
|
65
|
-
default:
|
|
61
|
+
default: getConfigDefaultAccount(),
|
|
66
62
|
},
|
|
67
63
|
]);
|
|
68
64
|
}
|
|
@@ -1,31 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
exports.secretListPrompt = secretListPrompt;
|
|
6
|
-
const promptUtils_1 = require("./promptUtils");
|
|
7
|
-
const lang_1 = require("../lang");
|
|
8
|
-
function secretValuePrompt() {
|
|
9
|
-
return (0, promptUtils_1.promptUser)([
|
|
1
|
+
import { promptUser } from './promptUtils.js';
|
|
2
|
+
import { i18n } from '../lang.js';
|
|
3
|
+
export function secretValuePrompt() {
|
|
4
|
+
return promptUser([
|
|
10
5
|
{
|
|
11
6
|
name: 'secretValue',
|
|
12
7
|
type: 'password',
|
|
13
8
|
mask: '*',
|
|
14
|
-
message:
|
|
9
|
+
message: i18n(`lib.prompts.secretPrompt.enterValue`),
|
|
15
10
|
},
|
|
16
11
|
]);
|
|
17
12
|
}
|
|
18
|
-
function secretNamePrompt() {
|
|
19
|
-
return
|
|
13
|
+
export function secretNamePrompt() {
|
|
14
|
+
return promptUser([
|
|
20
15
|
{
|
|
21
16
|
name: 'secretName',
|
|
22
17
|
type: 'input',
|
|
23
|
-
message:
|
|
18
|
+
message: i18n(`lib.prompts.secretPrompt.enterName`),
|
|
24
19
|
},
|
|
25
20
|
]);
|
|
26
21
|
}
|
|
27
|
-
function secretListPrompt(secrets, message) {
|
|
28
|
-
return
|
|
22
|
+
export function secretListPrompt(secrets, message) {
|
|
23
|
+
return promptUser([
|
|
29
24
|
{
|
|
30
25
|
name: 'secretToModify',
|
|
31
26
|
type: 'list',
|