@hubspot/cli 7.7.21-experimental.1 → 7.7.23-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 +45 -50
- 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 -16
- 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 +119 -125
- 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 +96 -134
- package/commands/project/__tests__/devUnifiedFlow.test.js +133 -139
- 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 +1 -1
- package/commands/project/deploy.js +67 -69
- 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 +45 -53
- 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 +10 -23
- package/lang/en.js +380 -399
- package/lib/__tests__/accountTypes.test.js +20 -22
- package/lib/__tests__/buildAccount.test.js +28 -63
- 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 +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 +71 -80
- package/lib/commonOpts.d.ts +1 -1
- package/lib/commonOpts.js +42 -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 +4 -0
- package/lib/constants.js +35 -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 +70 -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 +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 +24 -30
- package/lib/projects/add/v3AddComponent.d.ts +1 -1
- package/lib/projects/add/v3AddComponent.js +36 -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 -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 +22 -24
- package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
- package/lib/projects/localDev/DevServerManagerV2.js +15 -20
- package/lib/projects/localDev/LocalDevLogger.d.ts +1 -1
- package/lib/projects/localDev/LocalDevLogger.js +68 -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 +5 -4
- package/lib/projects/localDev/LocalDevProcess.js +37 -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 +29 -27
- package/lib/projects/localDev/helpers.d.ts +3 -3
- package/lib/projects/localDev/helpers.js +156 -174
- package/lib/projects/structure.d.ts +4 -4
- package/lib/projects/structure.js +32 -78
- package/lib/projects/ui.js +10 -13
- package/lib/projects/upload.d.ts +2 -3
- package/lib/projects/upload.js +55 -65
- 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 +1 -1
- package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +23 -26
- 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 +17 -24
- 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 +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.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 +35 -44
- package/lib/utils/hasFlag.js +2 -8
- 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 +13 -16
- package/mcp-server/tools/project/AddFeatureToProject.d.ts +1 -1
- package/mcp-server/tools/project/AddFeatureToProject.js +35 -39
- package/mcp-server/tools/project/CreateProjectTool.d.ts +1 -1
- package/mcp-server/tools/project/CreateProjectTool.js +46 -50
- package/mcp-server/tools/project/DeployProject.d.ts +1 -1
- package/mcp-server/tools/project/DeployProject.js +18 -22
- 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__/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/mcp-server/utils/toolUsageTracking.js +11 -14
- package/package.json +15 -11
- package/types/Cms.d.ts +1 -1
- package/types/Cms.js +1 -2
- 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/Sandboxes.js +1 -2
- package/types/Yargs.js +1 -2
- package/commands/app/__tests__/install.test.d.ts +0 -1
- package/commands/app/__tests__/install.test.js +0 -52
- package/commands/app/install.d.ts +0 -8
- package/commands/app/install.js +0 -127
package/lib/usageTracking.js
CHANGED
|
@@ -1,32 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.trackAuthAction = trackAuthAction;
|
|
10
|
-
exports.trackCommandMetadataUsage = trackCommandMetadataUsage;
|
|
11
|
-
const trackUsage_1 = require("@hubspot/local-dev-lib/trackUsage");
|
|
12
|
-
const config_1 = require("@hubspot/local-dev-lib/config");
|
|
13
|
-
const auth_1 = require("@hubspot/local-dev-lib/constants/auth");
|
|
14
|
-
const logger_1 = require("@hubspot/local-dev-lib/logger");
|
|
15
|
-
const package_json_1 = require("../package.json");
|
|
16
|
-
const errorHandlers_1 = require("./errorHandlers");
|
|
17
|
-
exports.EventClass = {
|
|
1
|
+
import { trackUsage } from '@hubspot/local-dev-lib/trackUsage';
|
|
2
|
+
import { isTrackingAllowed, getAccountConfig, } from '@hubspot/local-dev-lib/config';
|
|
3
|
+
import { API_KEY_AUTH_METHOD } from '@hubspot/local-dev-lib/constants/auth';
|
|
4
|
+
import { logger } from '@hubspot/local-dev-lib/logger';
|
|
5
|
+
import packageJson from '../package.json' with { type: 'json' };
|
|
6
|
+
const version = packageJson.version;
|
|
7
|
+
import { debugError } from './errorHandlers/index.js';
|
|
8
|
+
export const EventClass = {
|
|
18
9
|
USAGE: 'USAGE',
|
|
19
10
|
INTERACTION: 'INTERACTION',
|
|
20
11
|
VIEW: 'VIEW',
|
|
21
12
|
ACTIVATION: 'ACTIVATION',
|
|
22
13
|
};
|
|
23
|
-
function getNodeVersionData() {
|
|
14
|
+
export function getNodeVersionData() {
|
|
24
15
|
return {
|
|
25
16
|
nodeVersion: process.version,
|
|
26
17
|
nodeMajorVersion: (process.version || '').split('.')[0],
|
|
27
18
|
};
|
|
28
19
|
}
|
|
29
|
-
function getPlatform() {
|
|
20
|
+
export function getPlatform() {
|
|
30
21
|
switch (process.platform) {
|
|
31
22
|
case 'darwin':
|
|
32
23
|
return 'macos';
|
|
@@ -36,18 +27,18 @@ function getPlatform() {
|
|
|
36
27
|
return process.platform;
|
|
37
28
|
}
|
|
38
29
|
}
|
|
39
|
-
async function trackCommandUsage(command, meta = {}, accountId) {
|
|
40
|
-
if (!
|
|
30
|
+
export async function trackCommandUsage(command, meta = {}, accountId) {
|
|
31
|
+
if (!isTrackingAllowed()) {
|
|
41
32
|
return;
|
|
42
33
|
}
|
|
43
|
-
|
|
34
|
+
logger.debug('Attempting to track usage of "%s" command', command);
|
|
44
35
|
let authType = 'unknown';
|
|
45
36
|
if (accountId) {
|
|
46
|
-
const accountConfig =
|
|
37
|
+
const accountConfig = getAccountConfig(accountId);
|
|
47
38
|
authType =
|
|
48
39
|
accountConfig && accountConfig.authType
|
|
49
40
|
? accountConfig.authType
|
|
50
|
-
:
|
|
41
|
+
: API_KEY_AUTH_METHOD.value;
|
|
51
42
|
}
|
|
52
43
|
return trackCliInteraction({
|
|
53
44
|
action: 'cli-command',
|
|
@@ -57,28 +48,28 @@ async function trackCommandUsage(command, meta = {}, accountId) {
|
|
|
57
48
|
accountId,
|
|
58
49
|
});
|
|
59
50
|
}
|
|
60
|
-
async function trackHelpUsage(command) {
|
|
61
|
-
if (!
|
|
51
|
+
export async function trackHelpUsage(command) {
|
|
52
|
+
if (!isTrackingAllowed()) {
|
|
62
53
|
return;
|
|
63
54
|
}
|
|
64
55
|
if (command) {
|
|
65
|
-
|
|
56
|
+
logger.debug('Tracking help usage of "%s" sub-command', command);
|
|
66
57
|
}
|
|
67
58
|
else {
|
|
68
|
-
|
|
59
|
+
logger.debug('Tracking help usage of main command');
|
|
69
60
|
}
|
|
70
61
|
return trackCliInteraction({
|
|
71
62
|
action: 'cli-help',
|
|
72
63
|
command,
|
|
73
64
|
});
|
|
74
65
|
}
|
|
75
|
-
async function trackConvertFieldsUsage(command) {
|
|
66
|
+
export async function trackConvertFieldsUsage(command) {
|
|
76
67
|
return trackCliInteraction({
|
|
77
68
|
action: 'cli-process-fields',
|
|
78
69
|
command,
|
|
79
70
|
});
|
|
80
71
|
}
|
|
81
|
-
async function trackAuthAction(command, authType, step, accountId) {
|
|
72
|
+
export async function trackAuthAction(command, authType, step, accountId) {
|
|
82
73
|
return trackCliInteraction({
|
|
83
74
|
action: 'cli-auth',
|
|
84
75
|
command,
|
|
@@ -89,18 +80,18 @@ async function trackAuthAction(command, authType, step, accountId) {
|
|
|
89
80
|
},
|
|
90
81
|
});
|
|
91
82
|
}
|
|
92
|
-
async function trackCommandMetadataUsage(command, meta = {}, accountId) {
|
|
93
|
-
if (!
|
|
83
|
+
export async function trackCommandMetadataUsage(command, meta = {}, accountId) {
|
|
84
|
+
if (!isTrackingAllowed()) {
|
|
94
85
|
return;
|
|
95
86
|
}
|
|
96
|
-
|
|
87
|
+
logger.debug('Attempting to track metadata usage of "%s" command', command);
|
|
97
88
|
let authType = 'unknown';
|
|
98
89
|
if (accountId) {
|
|
99
|
-
const accountConfig =
|
|
90
|
+
const accountConfig = getAccountConfig(accountId);
|
|
100
91
|
authType =
|
|
101
92
|
accountConfig && accountConfig.authType
|
|
102
93
|
? accountConfig.authType
|
|
103
|
-
:
|
|
94
|
+
: API_KEY_AUTH_METHOD.value;
|
|
104
95
|
}
|
|
105
96
|
return trackCliInteraction({
|
|
106
97
|
action: 'cli-command-metadata',
|
|
@@ -112,44 +103,44 @@ async function trackCommandMetadataUsage(command, meta = {}, accountId) {
|
|
|
112
103
|
}
|
|
113
104
|
async function trackCliInteraction({ action, accountId, command, authType, meta = {}, }) {
|
|
114
105
|
try {
|
|
115
|
-
if (!
|
|
106
|
+
if (!isTrackingAllowed()) {
|
|
116
107
|
return;
|
|
117
108
|
}
|
|
118
109
|
const usageTrackingEvent = {
|
|
119
110
|
action,
|
|
120
111
|
os: getPlatform(),
|
|
121
112
|
...getNodeVersionData(),
|
|
122
|
-
version
|
|
113
|
+
version,
|
|
123
114
|
command,
|
|
124
115
|
authType,
|
|
125
116
|
...meta,
|
|
126
117
|
};
|
|
127
118
|
if (process.env.HUBSPOT_MCP_AI_AGENT) {
|
|
128
119
|
try {
|
|
129
|
-
await
|
|
120
|
+
await trackUsage('cli-interaction', EventClass.INTERACTION, {
|
|
130
121
|
...usageTrackingEvent,
|
|
131
122
|
action: 'cli-mcp-server',
|
|
132
123
|
type: process.env.HUBSPOT_MCP_AI_AGENT,
|
|
133
124
|
}, accountId);
|
|
134
|
-
|
|
125
|
+
logger.debug('Sent AI usage tracking command event: %o', {
|
|
135
126
|
...usageTrackingEvent,
|
|
136
127
|
action: 'cli-mcp-server',
|
|
137
128
|
type: process.env.HUBSPOT_MCP_AI_AGENT,
|
|
138
129
|
});
|
|
139
130
|
}
|
|
140
131
|
catch (error) {
|
|
141
|
-
|
|
132
|
+
debugError(error);
|
|
142
133
|
}
|
|
143
134
|
}
|
|
144
135
|
try {
|
|
145
|
-
return
|
|
136
|
+
return trackUsage('cli-interaction', EventClass.INTERACTION, usageTrackingEvent, accountId);
|
|
146
137
|
}
|
|
147
138
|
catch (error) {
|
|
148
|
-
|
|
139
|
+
debugError(error);
|
|
149
140
|
}
|
|
150
|
-
|
|
141
|
+
logger.debug('Sent usage tracking command event: %o', usageTrackingEvent);
|
|
151
142
|
}
|
|
152
143
|
catch (e) {
|
|
153
|
-
|
|
144
|
+
debugError(e);
|
|
154
145
|
}
|
|
155
146
|
}
|
package/lib/utils/hasFlag.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.hasFlag = hasFlag;
|
|
7
|
-
const process_1 = __importDefault(require("process"));
|
|
1
|
+
import process from 'process';
|
|
8
2
|
// See https://github.com/sindresorhus/has-flag/blob/main/index.js (License: https://github.com/sindresorhus/has-flag/blob/main/license)
|
|
9
|
-
function hasFlag(flag, argv =
|
|
3
|
+
export function hasFlag(flag, argv = process.argv) {
|
|
10
4
|
const prefix = flag.startsWith('-') ? '' : flag.length === 1 ? '-' : '--';
|
|
11
5
|
const position = argv.indexOf(prefix + flag);
|
|
12
6
|
const terminatorPosition = argv.indexOf('--');
|
package/lib/validation.js
CHANGED
|
@@ -1,152 +1,113 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
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
|
-
exports.validateAccount = validateAccount;
|
|
37
|
-
exports.validateCmsPublishMode = validateCmsPublishMode;
|
|
38
|
-
exports.fileExists = fileExists;
|
|
39
|
-
exports.checkAndConvertToJson = checkAndConvertToJson;
|
|
40
|
-
const fs = __importStar(require("fs"));
|
|
41
|
-
const path = __importStar(require("path"));
|
|
42
|
-
const logger_1 = require("@hubspot/local-dev-lib/logger");
|
|
43
|
-
const files_1 = require("@hubspot/local-dev-lib/constants/files");
|
|
44
|
-
const auth_1 = require("@hubspot/local-dev-lib/constants/auth");
|
|
45
|
-
const text_1 = require("@hubspot/local-dev-lib/text");
|
|
46
|
-
const config_1 = require("@hubspot/local-dev-lib/config");
|
|
47
|
-
const oauth_1 = require("@hubspot/local-dev-lib/oauth");
|
|
48
|
-
const personalAccessKey_1 = require("@hubspot/local-dev-lib/personalAccessKey");
|
|
49
|
-
const path_1 = require("@hubspot/local-dev-lib/path");
|
|
50
|
-
const commonOpts_1 = require("./commonOpts");
|
|
51
|
-
const index_1 = require("./errorHandlers/index");
|
|
52
|
-
async function validateAccount(options) {
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { logger } from '@hubspot/local-dev-lib/logger';
|
|
4
|
+
import { CMS_PUBLISH_MODE } from '@hubspot/local-dev-lib/constants/files';
|
|
5
|
+
import { API_KEY_AUTH_METHOD, OAUTH_AUTH_METHOD, PERSONAL_ACCESS_KEY_AUTH_METHOD, } from '@hubspot/local-dev-lib/constants/auth';
|
|
6
|
+
import { commaSeparatedValues } from '@hubspot/local-dev-lib/text';
|
|
7
|
+
import { getConfigPath, getAccountConfig, getAccountId, loadConfigFromEnvironment, } from '@hubspot/local-dev-lib/config';
|
|
8
|
+
import { getOauthManager } from '@hubspot/local-dev-lib/oauth';
|
|
9
|
+
import { accessTokenForPersonalAccessKey } from '@hubspot/local-dev-lib/personalAccessKey';
|
|
10
|
+
import { getAbsoluteFilePath, getCwd, getExt, } from '@hubspot/local-dev-lib/path';
|
|
11
|
+
import { getCmsPublishMode } from './commonOpts.js';
|
|
12
|
+
import { logError } from './errorHandlers/index.js';
|
|
13
|
+
export async function validateAccount(options) {
|
|
53
14
|
const { derivedAccountId, userProvidedAccount } = options;
|
|
54
|
-
const accountId =
|
|
15
|
+
const accountId = getAccountId(derivedAccountId);
|
|
55
16
|
if (!accountId) {
|
|
56
17
|
if (userProvidedAccount) {
|
|
57
|
-
|
|
18
|
+
logger.error(`The account "${userProvidedAccount}" could not be found in the config`);
|
|
58
19
|
}
|
|
59
20
|
else {
|
|
60
|
-
|
|
21
|
+
logger.error('An account needs to be supplied either via "--account" or through setting a "defaultPortal"');
|
|
61
22
|
}
|
|
62
23
|
return false;
|
|
63
24
|
}
|
|
64
|
-
if (userProvidedAccount &&
|
|
25
|
+
if (userProvidedAccount && loadConfigFromEnvironment()) {
|
|
65
26
|
throw new Error('Cannot specify an account when environment variables are supplied. Please unset the environment variables or do not use the "--account" flag.');
|
|
66
27
|
}
|
|
67
|
-
const accountConfig =
|
|
28
|
+
const accountConfig = getAccountConfig(accountId);
|
|
68
29
|
if (!accountConfig) {
|
|
69
|
-
|
|
30
|
+
logger.error(`The account ${accountId} has not been configured`);
|
|
70
31
|
return false;
|
|
71
32
|
}
|
|
72
33
|
const { authType, auth, apiKey, personalAccessKey } = accountConfig;
|
|
73
34
|
if (typeof authType === 'string' && authType !== authType.toLowerCase()) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
35
|
+
logger.error(`Invalid "authType" value "${authType}" for account "${accountId}" in config file: ${getConfigPath()}. Valid values are ${commaSeparatedValues([
|
|
36
|
+
PERSONAL_ACCESS_KEY_AUTH_METHOD,
|
|
37
|
+
OAUTH_AUTH_METHOD,
|
|
38
|
+
API_KEY_AUTH_METHOD,
|
|
78
39
|
].map(method => method.value))}.`);
|
|
79
40
|
}
|
|
80
41
|
if (authType === 'oauth2') {
|
|
81
42
|
if (typeof auth !== 'object') {
|
|
82
|
-
|
|
43
|
+
logger.error(`The OAuth2 auth configuration for account ${accountId} is missing`);
|
|
83
44
|
return false;
|
|
84
45
|
}
|
|
85
46
|
const { clientId, clientSecret, tokenInfo } = auth;
|
|
86
47
|
if (!clientId || !clientSecret || !tokenInfo || !tokenInfo.refreshToken) {
|
|
87
|
-
|
|
88
|
-
|
|
48
|
+
logger.error(`The OAuth2 configuration for account ${accountId} is incorrect`);
|
|
49
|
+
logger.error('Run "hs auth --type=oauth2" to reauthenticate');
|
|
89
50
|
return false;
|
|
90
51
|
}
|
|
91
|
-
const oauth =
|
|
52
|
+
const oauth = getOauthManager(accountId, accountConfig);
|
|
92
53
|
try {
|
|
93
54
|
let accessToken;
|
|
94
55
|
if (oauth) {
|
|
95
56
|
accessToken = await oauth.accessToken();
|
|
96
57
|
}
|
|
97
58
|
if (!accessToken) {
|
|
98
|
-
|
|
59
|
+
logger.error(`The OAuth2 access token could not be found for accountId ${accountId}`);
|
|
99
60
|
return false;
|
|
100
61
|
}
|
|
101
62
|
}
|
|
102
63
|
catch (e) {
|
|
103
|
-
|
|
64
|
+
logError(e);
|
|
104
65
|
return false;
|
|
105
66
|
}
|
|
106
67
|
}
|
|
107
68
|
else if (authType === 'personalaccesskey') {
|
|
108
69
|
if (!personalAccessKey) {
|
|
109
|
-
|
|
70
|
+
logger.error(`The account "${accountId}" is configured to use a access key for authentication and is missing a "personalAccessKey" in the configuration file`);
|
|
110
71
|
return false;
|
|
111
72
|
}
|
|
112
73
|
try {
|
|
113
|
-
const accessToken = await
|
|
74
|
+
const accessToken = await accessTokenForPersonalAccessKey(accountId);
|
|
114
75
|
if (!accessToken) {
|
|
115
|
-
|
|
76
|
+
logger.error(`An OAuth2 access token for account "${accountId} could not be retrieved using the "personalAccessKey" provided`);
|
|
116
77
|
return false;
|
|
117
78
|
}
|
|
118
79
|
}
|
|
119
80
|
catch (e) {
|
|
120
|
-
|
|
81
|
+
logError(e);
|
|
121
82
|
return false;
|
|
122
83
|
}
|
|
123
84
|
}
|
|
124
85
|
else if (!apiKey) {
|
|
125
|
-
|
|
86
|
+
logger.error(`The accountId ${accountId} is missing authentication configuration`);
|
|
126
87
|
return false;
|
|
127
88
|
}
|
|
128
89
|
return true;
|
|
129
90
|
}
|
|
130
|
-
function validateCmsPublishMode(options) {
|
|
131
|
-
const cmsPublishMode =
|
|
132
|
-
if (
|
|
91
|
+
export function validateCmsPublishMode(options) {
|
|
92
|
+
const cmsPublishMode = getCmsPublishMode(options);
|
|
93
|
+
if (CMS_PUBLISH_MODE[cmsPublishMode]) {
|
|
133
94
|
return true;
|
|
134
95
|
}
|
|
135
|
-
const modesMessage = `Available CMS publish modes are: ${Object.values(
|
|
96
|
+
const modesMessage = `Available CMS publish modes are: ${Object.values(CMS_PUBLISH_MODE).join(', ')}.`;
|
|
136
97
|
if (cmsPublishMode != null) {
|
|
137
|
-
|
|
98
|
+
logger.error([
|
|
138
99
|
`The CMS publish mode "${cmsPublishMode}" is invalid.`,
|
|
139
100
|
modesMessage,
|
|
140
101
|
].join(' '));
|
|
141
102
|
}
|
|
142
103
|
else {
|
|
143
|
-
|
|
104
|
+
logger.error(['The CMS publish mode option is missing.', modesMessage].join(' '));
|
|
144
105
|
}
|
|
145
106
|
return false;
|
|
146
107
|
}
|
|
147
|
-
function fileExists(_path) {
|
|
108
|
+
export function fileExists(_path) {
|
|
148
109
|
try {
|
|
149
|
-
const absoluteSrcPath = path.resolve(
|
|
110
|
+
const absoluteSrcPath = path.resolve(getCwd(), _path);
|
|
150
111
|
if (!absoluteSrcPath)
|
|
151
112
|
return false;
|
|
152
113
|
const stats = fs.statSync(absoluteSrcPath);
|
|
@@ -160,14 +121,14 @@ function fileExists(_path) {
|
|
|
160
121
|
}
|
|
161
122
|
return true;
|
|
162
123
|
}
|
|
163
|
-
function checkAndConvertToJson(_path) {
|
|
164
|
-
const filePath =
|
|
124
|
+
export function checkAndConvertToJson(_path) {
|
|
125
|
+
const filePath = getAbsoluteFilePath(_path);
|
|
165
126
|
if (!fileExists(filePath)) {
|
|
166
|
-
|
|
127
|
+
logger.error(`The path "${_path}" is not a path to a file`);
|
|
167
128
|
return null;
|
|
168
129
|
}
|
|
169
|
-
if (
|
|
170
|
-
|
|
130
|
+
if (getExt(_path) !== 'json') {
|
|
131
|
+
logger.error(`The file "${_path}" must be a valid JSON file`);
|
|
171
132
|
return null;
|
|
172
133
|
}
|
|
173
134
|
let result;
|
|
@@ -175,7 +136,7 @@ function checkAndConvertToJson(_path) {
|
|
|
175
136
|
result = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
176
137
|
}
|
|
177
138
|
catch (e) {
|
|
178
|
-
|
|
139
|
+
logger.error(`The file "${_path}" contains invalid JSON`);
|
|
179
140
|
result = null;
|
|
180
141
|
}
|
|
181
142
|
return result;
|
package/lib/yargsUtils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Argv } from 'yargs';
|
|
2
|
-
import { hasFlag } from './utils/hasFlag';
|
|
2
|
+
import { hasFlag } from './utils/hasFlag.js';
|
|
3
3
|
export { hasFlag };
|
|
4
4
|
export declare function makeYargsBuilder<T>(callback: (yargs: Argv) => Argv<T>, command: string | string[], describe?: string, options?: {
|
|
5
5
|
useGlobalOptions?: boolean;
|
|
@@ -13,3 +13,4 @@ export declare function makeYargsBuilder<T>(callback: (yargs: Argv) => Argv<T>,
|
|
|
13
13
|
};
|
|
14
14
|
useJSONOutputOptions?: boolean;
|
|
15
15
|
}): (yargs: Argv) => Promise<Argv<T>>;
|
|
16
|
+
export declare function getExclusiveConflicts(options: string[]): Record<string, string[]>;
|
package/lib/yargsUtils.js
CHANGED
|
@@ -1,39 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const hasFlag_1 = require("./utils/hasFlag");
|
|
7
|
-
Object.defineProperty(exports, "hasFlag", { enumerable: true, get: function () { return hasFlag_1.hasFlag; } });
|
|
8
|
-
function makeYargsBuilder(callback, command, describe, options = {}) {
|
|
1
|
+
import { addCustomHelpOutput, addTestingOptions, addAccountOptions, addConfigOptions, addGlobalOptions, addUseEnvironmentOptions, addCmsPublishModeOptions, addJSONOutputOptions, } from './commonOpts.js';
|
|
2
|
+
import { hasFlag } from './utils/hasFlag.js';
|
|
3
|
+
// Re-export for backwards compatibility
|
|
4
|
+
export { hasFlag };
|
|
5
|
+
export function makeYargsBuilder(callback, command, describe, options = {}) {
|
|
9
6
|
return async function (yargs) {
|
|
10
7
|
if (options.useGlobalOptions) {
|
|
11
|
-
|
|
8
|
+
addGlobalOptions(yargs);
|
|
12
9
|
}
|
|
13
10
|
if (options.useAccountOptions) {
|
|
14
|
-
|
|
11
|
+
addAccountOptions(yargs);
|
|
15
12
|
}
|
|
16
13
|
if (options.useConfigOptions) {
|
|
17
|
-
|
|
14
|
+
addConfigOptions(yargs);
|
|
18
15
|
}
|
|
19
16
|
if (options.useEnvironmentOptions) {
|
|
20
|
-
|
|
17
|
+
addUseEnvironmentOptions(yargs);
|
|
21
18
|
}
|
|
22
19
|
if (options.useTestingOptions) {
|
|
23
|
-
|
|
20
|
+
addTestingOptions(yargs);
|
|
24
21
|
}
|
|
25
22
|
if (options.useJSONOutputOptions) {
|
|
26
|
-
|
|
23
|
+
addJSONOutputOptions(yargs);
|
|
27
24
|
}
|
|
28
25
|
if (options.useCmsPublishModeOptions) {
|
|
29
26
|
const opts = typeof options.useCmsPublishModeOptions === 'object'
|
|
30
27
|
? options.useCmsPublishModeOptions
|
|
31
28
|
: { write: true };
|
|
32
|
-
|
|
29
|
+
addCmsPublishModeOptions(yargs, opts);
|
|
33
30
|
}
|
|
34
31
|
const result = callback(yargs);
|
|
35
32
|
// Must go last to pick up available options
|
|
36
|
-
await
|
|
33
|
+
await addCustomHelpOutput(result, command, describe);
|
|
37
34
|
return result;
|
|
38
35
|
};
|
|
39
36
|
}
|
|
37
|
+
export function getExclusiveConflicts(options) {
|
|
38
|
+
return options.reduce((acc, curr) => {
|
|
39
|
+
acc[curr] = options.filter(s => s !== curr);
|
|
40
|
+
return acc;
|
|
41
|
+
}, {});
|
|
42
|
+
}
|
package/mcp-server/server.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const tools_1 = require("./tools");
|
|
6
|
-
const server = new mcp_js_1.McpServer({
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
|
+
import { registerProjectTools } from './tools/index.js';
|
|
4
|
+
const server = new McpServer({
|
|
7
5
|
name: 'HubSpot CLI MCP Server',
|
|
8
6
|
version: '0.0.1',
|
|
9
7
|
description: 'Helps perform tasks for local development of HubSpot projects.',
|
|
@@ -12,7 +10,7 @@ const server = new mcp_js_1.McpServer({
|
|
|
12
10
|
prompts: {},
|
|
13
11
|
},
|
|
14
12
|
});
|
|
15
|
-
|
|
13
|
+
registerProjectTools(server);
|
|
16
14
|
// Start receiving messages on stdin and sending messages on stdout
|
|
17
|
-
const transport = new
|
|
15
|
+
const transport = new StdioServerTransport();
|
|
18
16
|
server.connect(transport);
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const AddFeatureToProject_1 = require("./project/AddFeatureToProject");
|
|
9
|
-
const ValidateProjectTool_1 = require("./project/ValidateProjectTool");
|
|
10
|
-
function registerProjectTools(mcpServer) {
|
|
1
|
+
import { UploadProjectTools } from './project/UploadProjectTools.js';
|
|
2
|
+
import { CreateProjectTool } from './project/CreateProjectTool.js';
|
|
3
|
+
import { GuidedWalkthroughTool } from './project/GuidedWalkthroughTool.js';
|
|
4
|
+
import { DeployProject } from './project/DeployProject.js';
|
|
5
|
+
import { AddFeatureToProject } from './project/AddFeatureToProject.js';
|
|
6
|
+
import { ValidateProjectTool } from './project/ValidateProjectTool.js';
|
|
7
|
+
export function registerProjectTools(mcpServer) {
|
|
11
8
|
return [
|
|
12
|
-
new
|
|
13
|
-
new
|
|
14
|
-
new
|
|
15
|
-
new
|
|
16
|
-
new
|
|
17
|
-
new
|
|
9
|
+
new UploadProjectTools(mcpServer).register(),
|
|
10
|
+
new CreateProjectTool(mcpServer).register(),
|
|
11
|
+
new GuidedWalkthroughTool(mcpServer).register(),
|
|
12
|
+
new DeployProject(mcpServer).register(),
|
|
13
|
+
new AddFeatureToProject(mcpServer).register(),
|
|
14
|
+
new ValidateProjectTool(mcpServer).register(),
|
|
18
15
|
];
|
|
19
16
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TextContentResponse, Tool } from '../../types';
|
|
1
|
+
import { TextContentResponse, Tool } from '../../types.js';
|
|
2
2
|
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
declare const inputSchemaZodObject: z.ZodObject<{
|