@hubspot/cli 7.6.0-beta.4 → 7.6.0-beta.6
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.d.ts +7 -0
- package/api/migrate.js +22 -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 +45 -60
- 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 +78 -69
- 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 +2 -1
- package/commands/config/set.js +40 -32
- 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 +125 -146
- 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 +32 -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 +99 -141
- package/commands/project/__tests__/devUnifiedFlow.test.js +151 -155
- 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 +63 -68
- package/commands/project/deploy.d.ts +2 -2
- package/commands/project/deploy.js +83 -90
- 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 +69 -76
- 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 +68 -61
- 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 +36 -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 +222 -20
- package/commands/sandbox/__tests__/delete.test.js +15 -20
- package/commands/sandbox/create.d.ts +2 -2
- package/commands/sandbox/create.js +92 -79
- 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 +63 -84
- package/commands/testAccount/createConfig.d.ts +1 -1
- 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 +52 -25
- package/lang/en.js +421 -397
- package/lang/en.lyaml +4 -28
- package/lib/__tests__/accountTypes.test.js +20 -22
- package/lib/__tests__/buildAccount.test.js +115 -64
- 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 +17 -41
- package/lib/accountTypes.js +24 -34
- package/lib/app/__tests__/migrate.test.js +117 -109
- package/lib/app/__tests__/migrate_legacy.test.js +29 -31
- package/lib/app/migrate.d.ts +18 -4
- package/lib/app/migrate.js +152 -148
- 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 +12 -3
- package/lib/buildAccount.js +165 -69
- package/lib/commonOpts.d.ts +1 -1
- package/lib/commonOpts.js +67 -59
- package/lib/configMigrate.js +34 -38
- package/lib/configOptions.d.ts +5 -0
- package/lib/configOptions.js +44 -40
- package/lib/constants.d.ts +8 -0
- package/lib/constants.js +39 -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 +33 -52
- package/lib/errorHandlers/suppressError.d.ts +1 -1
- package/lib/errorHandlers/suppressError.js +28 -31
- package/lib/errors/ProjectValidationError.d.ts +4 -0
- package/lib/errors/ProjectValidationError.js +9 -0
- 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.d.ts +4 -0
- package/lib/mcp/setup.js +106 -82
- 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 +100 -140
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +201 -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__/localDevHelpers.test.js +117 -0
- 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 +24 -30
- package/lib/projects/add/v3AddComponent.d.ts +1 -1
- package/lib/projects/add/v3AddComponent.js +37 -42
- 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 -5
- package/lib/projects/create/v3.js +47 -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 +22 -26
- package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
- package/lib/projects/localDev/DevServerManagerV2.js +15 -22
- package/lib/projects/localDev/LocalDevLogger.d.ts +1 -2
- package/lib/projects/localDev/LocalDevLogger.js +66 -66
- package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
- package/lib/projects/localDev/LocalDevManager.js +106 -111
- package/lib/projects/localDev/LocalDevProcess.d.ts +6 -5
- package/lib/projects/localDev/LocalDevProcess.js +37 -50
- package/lib/projects/localDev/LocalDevState.d.ts +5 -7
- package/lib/projects/localDev/LocalDevState.js +9 -11
- package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
- package/lib/projects/localDev/LocalDevWatcher.js +6 -11
- package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +3 -3
- package/lib/projects/localDev/LocalDevWebsocketServer.js +63 -55
- package/lib/projects/localDev/helpers.d.ts +11 -4
- package/lib/projects/localDev/helpers.js +211 -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 +57 -73
- package/lib/projects/urls.d.ts +1 -1
- package/lib/projects/urls.js +15 -25
- 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 +2 -2
- package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +27 -31
- 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 +80 -77
- 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 +5 -1
- package/lib/sandboxes.js +72 -76
- package/lib/schema.js +13 -20
- 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.d.ts +6 -0
- package/lib/ui/index.js +56 -76
- 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 +35 -44
- package/lib/utils/__tests__/isDeepEqual.test.js +269 -0
- package/lib/utils/hasFlag.js +2 -8
- package/lib/utils/isDeepEqual.d.ts +1 -0
- package/lib/utils/isDeepEqual.js +31 -0
- package/lib/validation.js +48 -87
- package/lib/yargsUtils.d.ts +2 -1
- package/lib/yargsUtils.js +19 -16
- package/mcp-server/server.js +6 -8
- package/mcp-server/tools/index.js +15 -16
- package/mcp-server/tools/project/{AddFeatureToProject.d.ts → AddFeatureToProjectTool.d.ts} +5 -5
- package/mcp-server/tools/project/AddFeatureToProjectTool.js +76 -0
- package/mcp-server/tools/project/CreateProjectTool.d.ts +4 -4
- package/mcp-server/tools/project/CreateProjectTool.js +40 -54
- package/mcp-server/tools/project/{DeployProject.d.ts → DeployProjectTool.d.ts} +2 -2
- package/mcp-server/tools/project/DeployProjectTool.js +49 -0
- package/mcp-server/tools/project/GetConfigValuesTool.d.ts +20 -0
- package/mcp-server/tools/project/GetConfigValuesTool.js +51 -0
- package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
- package/mcp-server/tools/project/GuidedWalkthroughTool.js +21 -25
- package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
- package/mcp-server/tools/project/UploadProjectTools.js +12 -19
- package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
- package/mcp-server/tools/project/ValidateProjectTool.js +13 -17
- package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/{AddFeatureToProject.test.js → AddFeatureToProjectTool.test.js} +15 -17
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +12 -15
- package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/{DeployProject.test.js → DeployProjectTool.test.js} +6 -8
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +198 -0
- 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.d.ts +1 -0
- package/mcp-server/tools/project/constants.js +14 -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/mcp-server/utils/toolUsageTracking.js +11 -14
- package/package.json +22 -15
- package/types/Cms.d.ts +1 -1
- package/types/Cms.js +1 -2
- package/types/LocalDev.d.ts +4 -6
- 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/Sandboxes.js +1 -2
- package/types/Yargs.js +1 -2
- package/ui/index.d.ts +1 -0
- package/ui/index.js +6 -0
- package/mcp-server/tools/project/AddFeatureToProject.js +0 -88
- package/mcp-server/tools/project/DeployProject.js +0 -53
- /package/{mcp-server/tools/project/__tests__/AddFeatureToProject.test.d.ts → lib/projects/__tests__/localDevHelpers.test.d.ts} +0 -0
- /package/{mcp-server/tools/project/__tests__/DeployProject.test.d.ts → lib/utils/__tests__/isDeepEqual.test.d.ts} +0 -0
package/lang/en.lyaml
CHANGED
|
@@ -681,32 +681,6 @@ en:
|
|
|
681
681
|
examples:
|
|
682
682
|
default: "Create a component within your project"
|
|
683
683
|
withFlags: "Use --name and --type flags to bypass the prompt."
|
|
684
|
-
deploy:
|
|
685
|
-
describe: "Deploy a project build."
|
|
686
|
-
deployBuildIdPrompt: "[--build] Deploy which build?"
|
|
687
|
-
debug:
|
|
688
|
-
deploying: "Deploying project at path: {{ path }}"
|
|
689
|
-
errors:
|
|
690
|
-
deploy: "Deploy error: an unknown error occurred."
|
|
691
|
-
noBuilds: "Deploy error: no builds for this project were found."
|
|
692
|
-
noBuildId: "You must specify a build to deploy"
|
|
693
|
-
projectNotFound: "The project {{ projectName }} does not exist in account {{ accountIdentifier }}. Run {{ command }} to upload your project files to HubSpot."
|
|
694
|
-
buildIdDoesNotExist: "Build {{ buildId }} does not exist for project {{ projectName }}. {{ linkToProject }}"
|
|
695
|
-
buildAlreadyDeployed: "Build {{ buildId }} is already deployed. {{ linkToProject}}"
|
|
696
|
-
viewProjectsBuilds: 'View project builds in HubSpot'
|
|
697
|
-
deployContainsRemovals: "- This deploy would remove the {{#bold}}{{ componentName }}{{/bold}} component. To proceed, run the deploy command with the {{ forceFlag }} flag"
|
|
698
|
-
examples:
|
|
699
|
-
default: "Deploy the latest build of the current project"
|
|
700
|
-
withOptions: "Deploy build 5 of the project my-project"
|
|
701
|
-
options:
|
|
702
|
-
build:
|
|
703
|
-
describe: "Project build ID to be deployed"
|
|
704
|
-
project:
|
|
705
|
-
describe: "Project name"
|
|
706
|
-
profile:
|
|
707
|
-
describe: "The profile to target with this deploy"
|
|
708
|
-
force:
|
|
709
|
-
describe: "Skip warnings and force deploy. Use this carefully as it will bypass warnings for destructive actions."
|
|
710
684
|
listBuilds:
|
|
711
685
|
describe: "List the project's builds."
|
|
712
686
|
continueOrExitPrompt: "Press <enter> to load more, or ctrl+c to exit"
|
|
@@ -1064,12 +1038,14 @@ en:
|
|
|
1064
1038
|
compressing: "Compressing build files to \"{{ path }}\""
|
|
1065
1039
|
fileFiltered: "Ignore rule triggered for \"{{ filename }}\""
|
|
1066
1040
|
ui:
|
|
1067
|
-
betaTag: "
|
|
1041
|
+
betaTag: "[BETA]"
|
|
1042
|
+
betaTagWithStyle: "{{#bold}}[BETA]{{/bold}}"
|
|
1068
1043
|
betaWarning:
|
|
1069
1044
|
header: "{{#yellow}}***************************** WARNING ****************************{{/yellow}}"
|
|
1070
1045
|
footer: "{{#yellow}}******************************************************************{{/yellow}}"
|
|
1071
1046
|
infoTag: "{{#bold}}[INFO]{{/bold}}"
|
|
1072
|
-
deprecatedTag: "
|
|
1047
|
+
deprecatedTag: "[DEPRECATED]"
|
|
1048
|
+
deprecatedTagWithStyle: "{{#bold}}[DEPRECATED]{{/bold}}"
|
|
1073
1049
|
errorTag: "{{#bold}}[ERROR]{{/bold}}"
|
|
1074
1050
|
deprecatedMessage: "The {{ command }} command is deprecated and will be disabled soon. {{ url }}"
|
|
1075
1051
|
deprecatedDescription: "{{ message }}. The {{ command }} command is deprecated and will be disabled soon. {{ url }}"
|
|
@@ -1,99 +1,97 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const config_1 = require("@hubspot/local-dev-lib/constants/config");
|
|
4
|
-
const accountTypes_1 = require("../accountTypes");
|
|
1
|
+
import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
|
|
2
|
+
import { isStandardAccount, isSandbox, isStandardSandbox, isDevelopmentSandbox, isDeveloperTestAccount, isAppDeveloperAccount, } from '../accountTypes.js';
|
|
5
3
|
const STANDARD_ACCOUNT = {
|
|
6
4
|
name: 'standard-account',
|
|
7
5
|
accountId: 123,
|
|
8
|
-
accountType:
|
|
6
|
+
accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
|
|
9
7
|
env: 'prod',
|
|
10
8
|
};
|
|
11
9
|
const DEVELOPMENT_SANDBOX_ACCOUNT = {
|
|
12
10
|
name: 'development-sandbox-account',
|
|
13
11
|
accountId: 456,
|
|
14
|
-
accountType:
|
|
12
|
+
accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
|
|
15
13
|
env: 'prod',
|
|
16
14
|
};
|
|
17
15
|
const STANDARD_SANDBOX_ACCOUNT = {
|
|
18
16
|
name: 'sandbox-account',
|
|
19
17
|
accountId: 456,
|
|
20
|
-
accountType:
|
|
18
|
+
accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
|
|
21
19
|
env: 'prod',
|
|
22
20
|
};
|
|
23
21
|
const DEVELOPER_TEST_ACCOUNT = {
|
|
24
22
|
name: 'developer-test-account',
|
|
25
23
|
accountId: 789,
|
|
26
|
-
accountType:
|
|
24
|
+
accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
|
|
27
25
|
env: 'prod',
|
|
28
26
|
};
|
|
29
27
|
const APP_DEVELOPER_ACCOUNT = {
|
|
30
28
|
name: 'app-developer-account',
|
|
31
29
|
accountId: 1011,
|
|
32
|
-
accountType:
|
|
30
|
+
accountType: HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
|
|
33
31
|
env: 'prod',
|
|
34
32
|
};
|
|
35
33
|
describe('lib/accountTypes', () => {
|
|
36
34
|
describe('isStandardAccount()', () => {
|
|
37
35
|
it('should return true if the account is a standard account', () => {
|
|
38
|
-
const result =
|
|
36
|
+
const result = isStandardAccount(STANDARD_ACCOUNT);
|
|
39
37
|
expect(result).toBe(true);
|
|
40
38
|
});
|
|
41
39
|
it('should return false if the account is not a standard account', () => {
|
|
42
|
-
const result =
|
|
40
|
+
const result = isStandardAccount(DEVELOPER_TEST_ACCOUNT);
|
|
43
41
|
expect(result).toBe(false);
|
|
44
42
|
});
|
|
45
43
|
});
|
|
46
44
|
describe('isSandbox()', () => {
|
|
47
45
|
it('should return true if the account is a standard sandbox account', () => {
|
|
48
|
-
const result =
|
|
46
|
+
const result = isSandbox(STANDARD_SANDBOX_ACCOUNT);
|
|
49
47
|
expect(result).toBe(true);
|
|
50
48
|
});
|
|
51
49
|
it('should return true if the account is a development sandbox account', () => {
|
|
52
|
-
const result =
|
|
50
|
+
const result = isSandbox(DEVELOPMENT_SANDBOX_ACCOUNT);
|
|
53
51
|
expect(result).toBe(true);
|
|
54
52
|
});
|
|
55
53
|
it('should return false if the account is not a sandbox account', () => {
|
|
56
|
-
const result =
|
|
54
|
+
const result = isSandbox(STANDARD_ACCOUNT);
|
|
57
55
|
expect(result).toBe(false);
|
|
58
56
|
});
|
|
59
57
|
});
|
|
60
58
|
describe('isStandardSandbox()', () => {
|
|
61
59
|
it('should return true if the account is a standard sandbox account', () => {
|
|
62
|
-
const result =
|
|
60
|
+
const result = isStandardSandbox(STANDARD_SANDBOX_ACCOUNT);
|
|
63
61
|
expect(result).toBe(true);
|
|
64
62
|
});
|
|
65
63
|
it('should return false if the account is not a standard sandbox account', () => {
|
|
66
|
-
const result =
|
|
64
|
+
const result = isStandardSandbox(DEVELOPMENT_SANDBOX_ACCOUNT);
|
|
67
65
|
expect(result).toBe(false);
|
|
68
66
|
});
|
|
69
67
|
});
|
|
70
68
|
describe('isDevelopmentSandbox()', () => {
|
|
71
69
|
it('should return true if the account is a development sandbox account', () => {
|
|
72
|
-
const result =
|
|
70
|
+
const result = isDevelopmentSandbox(DEVELOPMENT_SANDBOX_ACCOUNT);
|
|
73
71
|
expect(result).toBe(true);
|
|
74
72
|
});
|
|
75
73
|
it('should return false if the account is not a development sandbox account', () => {
|
|
76
|
-
const result =
|
|
74
|
+
const result = isDevelopmentSandbox(STANDARD_ACCOUNT);
|
|
77
75
|
expect(result).toBe(false);
|
|
78
76
|
});
|
|
79
77
|
});
|
|
80
78
|
describe('isDeveloperTestAccount()', () => {
|
|
81
79
|
it('should return true if the account is a developer test account', () => {
|
|
82
|
-
const result =
|
|
80
|
+
const result = isDeveloperTestAccount(DEVELOPER_TEST_ACCOUNT);
|
|
83
81
|
expect(result).toBe(true);
|
|
84
82
|
});
|
|
85
83
|
it('should return false if the account is not a developer test account', () => {
|
|
86
|
-
const result =
|
|
84
|
+
const result = isDeveloperTestAccount(STANDARD_ACCOUNT);
|
|
87
85
|
expect(result).toBe(false);
|
|
88
86
|
});
|
|
89
87
|
});
|
|
90
88
|
describe('isAppDeveloperAccount()', () => {
|
|
91
89
|
it('should return true if the account is an app developer account', () => {
|
|
92
|
-
const result =
|
|
90
|
+
const result = isAppDeveloperAccount(APP_DEVELOPER_ACCOUNT);
|
|
93
91
|
expect(result).toBe(true);
|
|
94
92
|
});
|
|
95
93
|
it('should return false if the account is not an app developer account', () => {
|
|
96
|
-
const result =
|
|
94
|
+
const result = isAppDeveloperAccount(STANDARD_ACCOUNT);
|
|
97
95
|
expect(result).toBe(false);
|
|
98
96
|
});
|
|
99
97
|
});
|
|
@@ -1,46 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
const personalAccessKey_1 = require("@hubspot/local-dev-lib/personalAccessKey");
|
|
37
|
-
const config_1 = require("@hubspot/local-dev-lib/config");
|
|
38
|
-
const developerTestAccounts_1 = require("@hubspot/local-dev-lib/api/developerTestAccounts");
|
|
39
|
-
const sandboxHubs_1 = require("@hubspot/local-dev-lib/api/sandboxHubs");
|
|
40
|
-
const config_2 = require("@hubspot/local-dev-lib/constants/config");
|
|
41
|
-
const personalAccessKeyPrompt_1 = require("../prompts/personalAccessKeyPrompt");
|
|
42
|
-
const accountNamePrompt_1 = require("../prompts/accountNamePrompt");
|
|
43
|
-
const buildAccount = __importStar(require("../buildAccount"));
|
|
1
|
+
import { getAccessToken, updateConfigWithAccessToken, } from '@hubspot/local-dev-lib/personalAccessKey';
|
|
2
|
+
import { accountNameExistsInConfig, updateAccountConfig, writeConfig, getAccountId, } from '@hubspot/local-dev-lib/config';
|
|
3
|
+
import { createDeveloperTestAccount, fetchDeveloperTestAccountGateSyncStatus, generateDeveloperTestAccountPersonalAccessKey, } from '@hubspot/local-dev-lib/api/developerTestAccounts';
|
|
4
|
+
import { createSandbox, createV2Sandbox, getSandboxPersonalAccessKey, } from '@hubspot/local-dev-lib/api/sandboxHubs';
|
|
5
|
+
import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
|
|
6
|
+
import { personalAccessKeyPrompt } from '../prompts/personalAccessKeyPrompt.js';
|
|
7
|
+
import { cliAccountNamePrompt } from '../prompts/accountNamePrompt.js';
|
|
8
|
+
import * as buildAccount from '../buildAccount.js';
|
|
44
9
|
vi.mock('@hubspot/local-dev-lib/personalAccessKey');
|
|
45
10
|
vi.mock('@hubspot/local-dev-lib/config');
|
|
46
11
|
vi.mock('@hubspot/local-dev-lib/api/developerTestAccounts');
|
|
@@ -56,22 +21,26 @@ vi.mock('../ui/SpinniesManager', () => ({
|
|
|
56
21
|
fail: vi.fn(),
|
|
57
22
|
},
|
|
58
23
|
}));
|
|
59
|
-
const mockedPersonalAccessKeyPrompt =
|
|
60
|
-
const mockedGetAccessToken =
|
|
61
|
-
const mockedUpdateConfigWithAccessToken =
|
|
62
|
-
const mockedAccountNameExistsInConfig =
|
|
63
|
-
const mockedUpdateAccountConfig =
|
|
64
|
-
const mockedWriteConfig =
|
|
65
|
-
const mockedCliAccountNamePrompt =
|
|
66
|
-
const mockedGetAccountId =
|
|
67
|
-
const mockedCreateDeveloperTestAccount =
|
|
68
|
-
const
|
|
24
|
+
const mockedPersonalAccessKeyPrompt = personalAccessKeyPrompt;
|
|
25
|
+
const mockedGetAccessToken = getAccessToken;
|
|
26
|
+
const mockedUpdateConfigWithAccessToken = updateConfigWithAccessToken;
|
|
27
|
+
const mockedAccountNameExistsInConfig = accountNameExistsInConfig;
|
|
28
|
+
const mockedUpdateAccountConfig = updateAccountConfig;
|
|
29
|
+
const mockedWriteConfig = writeConfig;
|
|
30
|
+
const mockedCliAccountNamePrompt = cliAccountNamePrompt;
|
|
31
|
+
const mockedGetAccountId = getAccountId;
|
|
32
|
+
const mockedCreateDeveloperTestAccount = createDeveloperTestAccount;
|
|
33
|
+
const mockedFetchDeveloperTestAccountGateSyncStatus = fetchDeveloperTestAccountGateSyncStatus;
|
|
34
|
+
const mockedGenerateDeveloperTestAccountPersonalAccessKey = generateDeveloperTestAccountPersonalAccessKey;
|
|
35
|
+
const mockedCreateSandbox = createSandbox;
|
|
36
|
+
const mockedCreateV2Sandbox = createV2Sandbox;
|
|
37
|
+
const mockedGetPersonalAccessKey = getSandboxPersonalAccessKey;
|
|
69
38
|
describe('lib/buildAccount', () => {
|
|
70
39
|
describe('saveAccountToConfig()', () => {
|
|
71
40
|
const mockAccountConfig = {
|
|
72
41
|
name: 'Test Account',
|
|
73
42
|
accountId: 123456,
|
|
74
|
-
accountType:
|
|
43
|
+
accountType: HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
|
|
75
44
|
env: 'prod',
|
|
76
45
|
};
|
|
77
46
|
const accessToken = {
|
|
@@ -82,7 +51,7 @@ describe('lib/buildAccount', () => {
|
|
|
82
51
|
enabledFeatures: { 'test-feature': 1 },
|
|
83
52
|
encodedOAuthRefreshToken: 'test-refresh-token',
|
|
84
53
|
hubName: 'test-hub',
|
|
85
|
-
accountType:
|
|
54
|
+
accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
|
|
86
55
|
};
|
|
87
56
|
beforeEach(() => {
|
|
88
57
|
mockedPersonalAccessKeyPrompt.mockResolvedValue({
|
|
@@ -132,11 +101,37 @@ describe('lib/buildAccount', () => {
|
|
|
132
101
|
expect(result).toBe('test-account-with-new-name');
|
|
133
102
|
});
|
|
134
103
|
});
|
|
104
|
+
describe('createDeveloperTestAccountV3()', () => {
|
|
105
|
+
const parentAccountId = 123456;
|
|
106
|
+
const mockDeveoperTestAccountConfig = {
|
|
107
|
+
accountName: 'Developer Test Account',
|
|
108
|
+
description: 'Test Account created by the HubSpot CLI',
|
|
109
|
+
};
|
|
110
|
+
beforeEach(() => {
|
|
111
|
+
mockedCreateDeveloperTestAccount.mockResolvedValue({
|
|
112
|
+
data: { id: 123456 },
|
|
113
|
+
});
|
|
114
|
+
mockedFetchDeveloperTestAccountGateSyncStatus.mockResolvedValue({
|
|
115
|
+
data: { status: 'SUCCESS' },
|
|
116
|
+
});
|
|
117
|
+
mockedGenerateDeveloperTestAccountPersonalAccessKey.mockResolvedValue({
|
|
118
|
+
data: { personalAccessKey: 'test-key' },
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
it('should create a developer test account successfully', async () => {
|
|
122
|
+
const result = await buildAccount.createDeveloperTestAccountV3(parentAccountId, mockDeveoperTestAccountConfig);
|
|
123
|
+
expect(result).toEqual({
|
|
124
|
+
accountName: mockDeveoperTestAccountConfig.accountName,
|
|
125
|
+
accountId: 123456,
|
|
126
|
+
personalAccessKey: 'test-key',
|
|
127
|
+
});
|
|
128
|
+
}, 10000);
|
|
129
|
+
});
|
|
135
130
|
describe('buildDeveloperTestAccount()', () => {
|
|
136
131
|
const mockParentAccountConfig = {
|
|
137
|
-
name: 'Developer
|
|
132
|
+
name: 'Developer Account',
|
|
138
133
|
accountId: 123456,
|
|
139
|
-
accountType:
|
|
134
|
+
accountType: HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
|
|
140
135
|
env: 'prod',
|
|
141
136
|
};
|
|
142
137
|
const mockDeveloperTestAccount = {
|
|
@@ -173,16 +168,17 @@ describe('lib/buildAccount', () => {
|
|
|
173
168
|
});
|
|
174
169
|
describe('buildSandbox()', () => {
|
|
175
170
|
const mockParentAccountConfig = {
|
|
176
|
-
name: '
|
|
171
|
+
name: 'Prod account',
|
|
177
172
|
accountId: 123456,
|
|
178
|
-
accountType:
|
|
173
|
+
accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
|
|
179
174
|
env: 'prod',
|
|
180
175
|
};
|
|
181
176
|
const mockSandbox = {
|
|
182
177
|
sandboxHubId: 56789,
|
|
183
178
|
parentHubId: 123456,
|
|
184
179
|
createdAt: '2025-01-01',
|
|
185
|
-
type: '
|
|
180
|
+
type: 'STANDARD',
|
|
181
|
+
version: 'V1',
|
|
186
182
|
archived: false,
|
|
187
183
|
name: 'Test Sandbox',
|
|
188
184
|
domain: 'test-sandbox.hubspot.com',
|
|
@@ -204,7 +200,7 @@ describe('lib/buildAccount', () => {
|
|
|
204
200
|
vi.clearAllMocks();
|
|
205
201
|
});
|
|
206
202
|
it('should create a standard sandbox successfully', async () => {
|
|
207
|
-
const result = await buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig,
|
|
203
|
+
const result = await buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, mockParentAccountConfig.env, false);
|
|
208
204
|
expect(result).toEqual({
|
|
209
205
|
name: mockSandbox.name,
|
|
210
206
|
personalAccessKey: 'test-key',
|
|
@@ -212,7 +208,7 @@ describe('lib/buildAccount', () => {
|
|
|
212
208
|
});
|
|
213
209
|
});
|
|
214
210
|
it('should create a development sandbox successfully', async () => {
|
|
215
|
-
const result = await buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig,
|
|
211
|
+
const result = await buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, mockParentAccountConfig.env);
|
|
216
212
|
expect(result).toEqual({
|
|
217
213
|
name: mockSandbox.name,
|
|
218
214
|
personalAccessKey: 'test-key',
|
|
@@ -221,11 +217,66 @@ describe('lib/buildAccount', () => {
|
|
|
221
217
|
});
|
|
222
218
|
it('should throw error if account ID is not found', async () => {
|
|
223
219
|
mockedGetAccountId.mockReturnValue(null);
|
|
224
|
-
await expect(buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig,
|
|
220
|
+
await expect(buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, mockParentAccountConfig.env)).rejects.toThrow();
|
|
225
221
|
});
|
|
226
222
|
it('should handle API errors when creating sandbox', async () => {
|
|
227
223
|
mockedCreateSandbox.mockRejectedValue(new Error('test-error'));
|
|
228
|
-
await expect(buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig,
|
|
224
|
+
await expect(buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, mockParentAccountConfig.env, false)).rejects.toThrow();
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
describe('buildV2Sandbox()', () => {
|
|
228
|
+
const mockParentAccountConfig = {
|
|
229
|
+
name: 'Prod account',
|
|
230
|
+
accountId: 123456,
|
|
231
|
+
accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
|
|
232
|
+
env: 'prod',
|
|
233
|
+
};
|
|
234
|
+
const mockSandbox = {
|
|
235
|
+
sandboxHubId: 56789,
|
|
236
|
+
parentHubId: 123456,
|
|
237
|
+
createdAt: '2025-01-01',
|
|
238
|
+
type: 'STANDARD',
|
|
239
|
+
archived: false,
|
|
240
|
+
version: 'V2',
|
|
241
|
+
name: 'Test v2 Sandbox',
|
|
242
|
+
domain: 'test-v2-sandbox.hubspot.com',
|
|
243
|
+
createdByUser: {
|
|
244
|
+
id: 123456,
|
|
245
|
+
email: 'test@test.com',
|
|
246
|
+
firstName: 'Test',
|
|
247
|
+
lastName: 'User',
|
|
248
|
+
},
|
|
249
|
+
};
|
|
250
|
+
beforeEach(() => {
|
|
251
|
+
vi.spyOn(buildAccount, 'saveAccountToConfig').mockResolvedValue(mockParentAccountConfig.name);
|
|
252
|
+
mockedGetAccountId.mockReturnValue(mockParentAccountConfig.accountId);
|
|
253
|
+
mockedCreateV2Sandbox.mockResolvedValue({
|
|
254
|
+
data: mockSandbox,
|
|
255
|
+
});
|
|
256
|
+
mockedGetPersonalAccessKey.mockResolvedValue({
|
|
257
|
+
data: { personalAccessKey: { encodedOAuthRefreshToken: 'test-key' } },
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
afterEach(() => {
|
|
261
|
+
vi.clearAllMocks();
|
|
262
|
+
});
|
|
263
|
+
it('should create a v2 standard sandbox successfully and fetch a personal access key', async () => {
|
|
264
|
+
const result = await buildAccount.buildV2Sandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, false, mockParentAccountConfig.env, false);
|
|
265
|
+
expect(result).toEqual({ sandbox: mockSandbox });
|
|
266
|
+
expect(mockedGetPersonalAccessKey).toHaveBeenCalledWith(mockParentAccountConfig.accountId, mockSandbox.sandboxHubId);
|
|
267
|
+
});
|
|
268
|
+
it('should create a development sandbox successfully and fetch a personal access key', async () => {
|
|
269
|
+
const result = await buildAccount.buildV2Sandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, false, mockParentAccountConfig.env, false);
|
|
270
|
+
expect(result).toEqual({ sandbox: mockSandbox });
|
|
271
|
+
expect(mockedGetPersonalAccessKey).toHaveBeenCalledWith(mockParentAccountConfig.accountId, mockSandbox.sandboxHubId);
|
|
272
|
+
});
|
|
273
|
+
it('should throw error if account ID is not found', async () => {
|
|
274
|
+
mockedGetAccountId.mockReturnValue(null);
|
|
275
|
+
await expect(buildAccount.buildV2Sandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, false, mockParentAccountConfig.env, false)).rejects.toThrow();
|
|
276
|
+
});
|
|
277
|
+
it('should handle API errors when creating sandbox', async () => {
|
|
278
|
+
mockedCreateV2Sandbox.mockRejectedValue(new Error('test-error'));
|
|
279
|
+
await expect(buildAccount.buildV2Sandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, false, mockParentAccountConfig.env, false)).rejects.toThrow();
|
|
229
280
|
});
|
|
230
281
|
});
|
|
231
282
|
});
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const mockedGetAndLoadConfigIfNeeded = config_1.getAndLoadConfigIfNeeded;
|
|
8
|
-
const mockedLoadConfigFromEnvironment = config_1.loadConfigFromEnvironment;
|
|
1
|
+
import { CMS_PUBLISH_MODE, DEFAULT_CMS_PUBLISH_MODE, } from '@hubspot/local-dev-lib/constants/files';
|
|
2
|
+
import { getAndLoadConfigIfNeeded, getAccountConfig, loadConfigFromEnvironment, } from '@hubspot/local-dev-lib/config';
|
|
3
|
+
import { getCmsPublishMode } from '../commonOpts.js';
|
|
4
|
+
const mockedGetAccountConfig = getAccountConfig;
|
|
5
|
+
const mockedGetAndLoadConfigIfNeeded = getAndLoadConfigIfNeeded;
|
|
6
|
+
const mockedLoadConfigFromEnvironment = loadConfigFromEnvironment;
|
|
9
7
|
function buildArguments(args) {
|
|
10
8
|
return {
|
|
11
9
|
_: [],
|
|
@@ -24,7 +22,7 @@ describe('lib/commonOpts', () => {
|
|
|
24
22
|
const devAccountConfig = {
|
|
25
23
|
accountId: accounts.DEV,
|
|
26
24
|
name: 'DEV',
|
|
27
|
-
defaultCmsPublishMode:
|
|
25
|
+
defaultCmsPublishMode: CMS_PUBLISH_MODE.draft,
|
|
28
26
|
};
|
|
29
27
|
const prodAccountConfig = {
|
|
30
28
|
accountId: accounts.PROD,
|
|
@@ -36,7 +34,7 @@ describe('lib/commonOpts', () => {
|
|
|
36
34
|
};
|
|
37
35
|
const configWithDefaultCmsPublishMode = {
|
|
38
36
|
...config,
|
|
39
|
-
defaultCmsPublishMode:
|
|
37
|
+
defaultCmsPublishMode: CMS_PUBLISH_MODE.draft,
|
|
40
38
|
};
|
|
41
39
|
afterEach(() => {
|
|
42
40
|
vi.resetAllMocks();
|
|
@@ -46,12 +44,12 @@ describe('lib/commonOpts', () => {
|
|
|
46
44
|
it('should return the cms publish mode specified by the command option if present.', () => {
|
|
47
45
|
mockedGetAndLoadConfigIfNeeded.mockReturnValue(configWithDefaultCmsPublishMode);
|
|
48
46
|
mockedGetAccountConfig.mockReturnValue(devAccountConfig);
|
|
49
|
-
expect(
|
|
50
|
-
cmsPublishMode:
|
|
51
|
-
}))).toBe(
|
|
52
|
-
expect(
|
|
53
|
-
cmsPublishMode:
|
|
54
|
-
}))).toBe(
|
|
47
|
+
expect(getCmsPublishMode(buildArguments({
|
|
48
|
+
cmsPublishMode: CMS_PUBLISH_MODE.draft,
|
|
49
|
+
}))).toBe(CMS_PUBLISH_MODE.draft);
|
|
50
|
+
expect(getCmsPublishMode(buildArguments({
|
|
51
|
+
cmsPublishMode: CMS_PUBLISH_MODE.publish,
|
|
52
|
+
}))).toBe(CMS_PUBLISH_MODE.publish);
|
|
55
53
|
});
|
|
56
54
|
});
|
|
57
55
|
describe('2. hubspot.config.yml -> config.accounts[x].defaultCmsPublishMode', () => {
|
|
@@ -59,9 +57,9 @@ describe('lib/commonOpts', () => {
|
|
|
59
57
|
mockedGetAndLoadConfigIfNeeded.mockReturnValue(configWithDefaultCmsPublishMode);
|
|
60
58
|
mockedGetAccountConfig.mockReturnValue(devAccountConfig);
|
|
61
59
|
mockedLoadConfigFromEnvironment.mockReturnValue(undefined);
|
|
62
|
-
expect(
|
|
60
|
+
expect(getCmsPublishMode(buildArguments({
|
|
63
61
|
account: accounts.DEV,
|
|
64
|
-
}))).toBe(
|
|
62
|
+
}))).toBe(CMS_PUBLISH_MODE.draft);
|
|
65
63
|
});
|
|
66
64
|
});
|
|
67
65
|
describe('3. hubspot.config.yml -> config.defaultCmsPublishMode', () => {
|
|
@@ -69,17 +67,17 @@ describe('lib/commonOpts', () => {
|
|
|
69
67
|
mockedGetAndLoadConfigIfNeeded.mockReturnValue(configWithDefaultCmsPublishMode);
|
|
70
68
|
mockedGetAccountConfig.mockReturnValue(prodAccountConfig);
|
|
71
69
|
mockedLoadConfigFromEnvironment.mockReturnValue(undefined);
|
|
72
|
-
expect(
|
|
70
|
+
expect(getCmsPublishMode(buildArguments({
|
|
73
71
|
account: accounts.PROD,
|
|
74
|
-
}))).toBe(
|
|
72
|
+
}))).toBe(CMS_PUBLISH_MODE.draft);
|
|
75
73
|
});
|
|
76
74
|
});
|
|
77
75
|
describe('4. DEFAULT_CMS_PUBLISH_MODE', () => {
|
|
78
76
|
it('should return the defaultCmsPubishMode specified by the config if present.', () => {
|
|
79
77
|
mockedLoadConfigFromEnvironment.mockReturnValue(undefined);
|
|
80
|
-
expect(
|
|
78
|
+
expect(getCmsPublishMode(buildArguments({
|
|
81
79
|
account: 'xxxxx',
|
|
82
|
-
}))).toBe(
|
|
80
|
+
}))).toBe(DEFAULT_CMS_PUBLISH_MODE);
|
|
83
81
|
});
|
|
84
82
|
});
|
|
85
83
|
});
|