@hubspot/cli 7.7.0-experimental.2 → 7.7.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/README.md +0 -4
- package/api/__tests__/migrate.test.js +181 -0
- package/api/migrate.d.ts +10 -4
- package/api/migrate.js +14 -22
- package/bin/cli.js +60 -53
- package/bin/hs +2 -2
- package/bin/hscms +2 -2
- package/bin/silenceErrors.js +1 -2
- package/commands/__tests__/account.test.d.ts +1 -0
- package/commands/__tests__/account.test.js +69 -0
- package/commands/__tests__/auth.test.d.ts +1 -0
- package/commands/__tests__/auth.test.js +38 -0
- package/commands/__tests__/cms.test.d.ts +1 -0
- package/commands/__tests__/cms.test.js +44 -0
- package/commands/__tests__/config.test.d.ts +1 -0
- package/commands/__tests__/config.test.js +44 -0
- package/commands/__tests__/create.test.d.ts +1 -0
- package/commands/__tests__/create.test.js +53 -0
- package/commands/__tests__/customObject.test.d.ts +1 -0
- package/commands/__tests__/customObject.test.js +49 -0
- package/commands/__tests__/doctor.test.d.ts +1 -0
- package/commands/__tests__/doctor.test.js +134 -0
- package/commands/__tests__/feedback.test.d.ts +1 -0
- package/commands/__tests__/feedback.test.js +24 -0
- package/commands/__tests__/fetch.test.d.ts +1 -0
- package/commands/__tests__/fetch.test.js +57 -0
- package/commands/__tests__/filemanager.test.d.ts +1 -0
- package/commands/__tests__/filemanager.test.js +45 -0
- package/commands/__tests__/function.test.d.ts +1 -0
- package/commands/__tests__/function.test.js +46 -0
- package/commands/__tests__/getStarted.test.d.ts +1 -0
- package/commands/__tests__/getStarted.test.js +155 -0
- package/commands/__tests__/hubdb.test.d.ts +1 -0
- package/commands/__tests__/hubdb.test.js +50 -0
- package/commands/__tests__/init.test.d.ts +1 -0
- package/commands/__tests__/init.test.js +42 -0
- package/commands/__tests__/lint.test.d.ts +1 -0
- package/commands/__tests__/lint.test.js +33 -0
- package/commands/__tests__/list.test.d.ts +1 -0
- package/commands/__tests__/list.test.js +42 -0
- package/commands/__tests__/logs.test.d.ts +1 -0
- package/commands/__tests__/logs.test.js +71 -0
- package/commands/__tests__/mcp.test.d.ts +1 -0
- package/commands/__tests__/mcp.test.js +46 -0
- package/commands/__tests__/mv.test.d.ts +1 -0
- package/commands/__tests__/mv.test.js +46 -0
- package/commands/__tests__/open.test.d.ts +1 -0
- package/commands/__tests__/open.test.js +58 -0
- package/commands/__tests__/project.test.d.ts +1 -0
- package/commands/__tests__/project.test.js +92 -0
- package/commands/__tests__/remove.test.d.ts +1 -0
- package/commands/__tests__/remove.test.js +39 -0
- package/commands/__tests__/sandbox.test.d.ts +1 -0
- package/commands/__tests__/sandbox.test.js +44 -0
- package/commands/__tests__/secret.test.d.ts +1 -0
- package/commands/__tests__/secret.test.js +49 -0
- package/commands/__tests__/testAccount.test.d.ts +1 -0
- package/commands/__tests__/testAccount.test.js +57 -0
- package/commands/__tests__/theme.test.d.ts +1 -0
- package/commands/__tests__/theme.test.js +47 -0
- package/commands/account/__tests__/auth.test.d.ts +1 -0
- package/commands/account/__tests__/auth.test.js +26 -0
- package/commands/account/__tests__/clean.test.d.ts +1 -0
- package/commands/account/__tests__/clean.test.js +28 -0
- package/commands/account/__tests__/createOverride.test.d.ts +1 -0
- package/commands/account/__tests__/createOverride.test.js +32 -0
- package/commands/account/__tests__/info.test.d.ts +1 -0
- package/commands/account/__tests__/info.test.js +28 -0
- package/commands/account/__tests__/list.test.d.ts +1 -0
- package/commands/account/__tests__/list.test.js +28 -0
- package/commands/account/__tests__/remove.test.d.ts +1 -0
- package/commands/account/__tests__/remove.test.js +36 -0
- package/commands/account/__tests__/removeOverride.d.ts +1 -0
- package/commands/account/__tests__/removeOverride.js +25 -0
- package/commands/account/__tests__/rename.test.d.ts +1 -0
- package/commands/account/__tests__/rename.test.js +42 -0
- package/commands/account/__tests__/use.test.d.ts +1 -0
- package/commands/account/__tests__/use.test.js +32 -0
- package/commands/account/auth.d.ts +3 -1
- package/commands/account/auth.js +109 -123
- 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 -30
- package/commands/app/__tests__/migrate.test.d.ts +1 -0
- package/commands/app/__tests__/migrate.test.js +124 -0
- package/commands/app/migrate.d.ts +2 -2
- package/commands/app/migrate.js +41 -45
- package/commands/app/secret/__tests__/add.test.d.ts +1 -0
- package/commands/app/secret/__tests__/add.test.js +28 -0
- package/commands/app/secret/__tests__/delete.test.d.ts +1 -0
- package/commands/app/secret/__tests__/delete.test.js +28 -0
- package/commands/app/secret/__tests__/list.test.d.ts +1 -0
- package/commands/app/secret/__tests__/list.test.js +25 -0
- package/commands/app/secret/__tests__/update.test.d.ts +1 -0
- package/commands/app/secret/__tests__/update.test.js +28 -0
- package/commands/app/secret/add.d.ts +1 -1
- package/commands/app/secret/add.js +29 -30
- package/commands/app/secret/delete.d.ts +1 -1
- package/commands/app/secret/delete.js +35 -36
- package/commands/app/secret/list.d.ts +1 -1
- package/commands/app/secret/list.js +26 -27
- package/commands/app/secret/update.d.ts +1 -1
- package/commands/app/secret/update.js +33 -34
- package/commands/app/secret.d.ts +1 -1
- package/commands/app/secret.js +14 -18
- package/commands/app.d.ts +1 -1
- package/commands/app.js +8 -15
- package/commands/auth.d.ts +3 -1
- package/commands/auth.js +89 -99
- 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 -18
- package/commands/completion.d.ts +1 -1
- package/commands/completion.js +10 -17
- package/commands/config/migrate.d.ts +1 -1
- package/commands/config/migrate.js +29 -53
- package/commands/config/set.d.ts +3 -2
- package/commands/config/set.js +88 -49
- package/commands/config.d.ts +1 -1
- package/commands/config.js +8 -15
- 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 +10 -12
- 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 +13 -15
- 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 +13 -15
- 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 +77 -37
- package/commands/customObject/__tests__/create.test.d.ts +1 -0
- package/commands/customObject/__tests__/create.test.js +40 -0
- package/commands/customObject/__tests__/schema.test.d.ts +1 -0
- package/commands/customObject/__tests__/schema.test.js +53 -0
- package/commands/customObject/create.d.ts +1 -1
- package/commands/customObject/create.js +28 -30
- package/commands/customObject/schema/__tests__/create.test.d.ts +1 -0
- package/commands/customObject/schema/__tests__/create.test.js +28 -0
- package/commands/customObject/schema/__tests__/delete.test.d.ts +1 -0
- package/commands/customObject/schema/__tests__/delete.test.js +42 -0
- package/commands/customObject/schema/__tests__/fetch-all.test.d.ts +1 -0
- package/commands/customObject/schema/__tests__/fetch-all.test.js +41 -0
- package/commands/customObject/schema/__tests__/fetch.test.d.ts +1 -0
- package/commands/customObject/schema/__tests__/fetch.test.js +45 -0
- package/commands/customObject/schema/__tests__/list.test.d.ts +1 -0
- package/commands/customObject/schema/__tests__/list.test.js +29 -0
- package/commands/customObject/schema/__tests__/update.test.d.ts +1 -0
- package/commands/customObject/schema/__tests__/update.test.js +40 -0
- 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 -20
- package/commands/doctor.d.ts +1 -1
- package/commands/doctor.js +28 -35
- package/commands/feedback.d.ts +1 -1
- package/commands/feedback.js +18 -25
- package/commands/fetch.d.ts +1 -1
- package/commands/fetch.js +28 -31
- package/commands/filemanager/__tests__/fetch.test.d.ts +1 -0
- package/commands/filemanager/__tests__/fetch.test.js +32 -0
- package/commands/filemanager/__tests__/upload.test.d.ts +1 -0
- package/commands/filemanager/__tests__/upload.test.js +30 -0
- 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 -15
- 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 -20
- package/commands/getStarted.d.ts +7 -0
- package/commands/getStarted.js +296 -0
- package/commands/hubdb/__tests__/clear.test.d.ts +1 -0
- package/commands/hubdb/__tests__/clear.test.js +28 -0
- package/commands/hubdb/__tests__/create.test.d.ts +1 -0
- package/commands/hubdb/__tests__/create.test.js +28 -0
- package/commands/hubdb/__tests__/delete.test.d.ts +1 -0
- package/commands/hubdb/__tests__/delete.test.js +28 -0
- package/commands/hubdb/__tests__/fetch.test.d.ts +1 -0
- package/commands/hubdb/__tests__/fetch.test.js +28 -0
- package/commands/hubdb/__tests__/list.test.d.ts +1 -0
- package/commands/hubdb/__tests__/list.test.js +96 -0
- 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 +4 -0
- package/commands/hubdb/list.js +81 -0
- package/commands/hubdb.d.ts +1 -1
- package/commands/hubdb.js +18 -24
- package/commands/init.d.ts +1 -1
- package/commands/init.js +96 -102
- package/commands/lint.d.ts +1 -1
- package/commands/lint.js +24 -28
- package/commands/list.d.ts +1 -1
- package/commands/list.js +32 -39
- package/commands/logs.d.ts +1 -1
- package/commands/logs.js +35 -38
- package/commands/mcp/__tests__/setup.test.d.ts +1 -0
- package/commands/mcp/__tests__/setup.test.js +26 -0
- package/commands/mcp/__tests__/start.test.d.ts +1 -0
- package/commands/mcp/__tests__/start.test.js +27 -0
- package/commands/mcp/setup.d.ts +6 -0
- package/commands/mcp/setup.js +52 -0
- package/commands/mcp/start.d.ts +6 -0
- package/commands/mcp/start.js +80 -0
- package/commands/mcp.d.ts +3 -0
- package/commands/mcp.js +21 -0
- package/commands/module/marketplace-validate.d.ts +1 -1
- package/commands/module/marketplace-validate.js +21 -28
- package/commands/module.d.ts +1 -1
- package/commands/module.js +7 -12
- package/commands/mv.d.ts +1 -1
- package/commands/mv.js +20 -24
- package/commands/open.d.ts +1 -1
- package/commands/open.js +29 -31
- package/commands/project/__tests__/add.test.d.ts +1 -0
- package/commands/project/__tests__/add.test.js +107 -0
- package/commands/project/__tests__/create.test.d.ts +1 -0
- package/commands/project/__tests__/create.test.js +97 -0
- package/commands/project/__tests__/deploy.test.d.ts +1 -0
- package/commands/project/__tests__/deploy.test.js +306 -0
- package/commands/project/__tests__/devUnifiedFlow.test.d.ts +1 -0
- package/commands/project/__tests__/devUnifiedFlow.test.js +403 -0
- package/commands/project/__tests__/download.test.d.ts +1 -0
- package/commands/project/__tests__/download.test.js +39 -0
- package/commands/project/__tests__/fixtures/exampleProject.json +33 -0
- package/commands/project/__tests__/installDeps.test.d.ts +1 -0
- package/commands/project/__tests__/installDeps.test.js +142 -0
- package/commands/project/__tests__/listBuilds.test.d.ts +1 -0
- package/commands/project/__tests__/listBuilds.test.js +38 -0
- package/commands/project/__tests__/logs.test.d.ts +1 -0
- package/commands/project/__tests__/logs.test.js +205 -0
- package/commands/project/__tests__/migrate.test.d.ts +1 -0
- package/commands/project/__tests__/migrate.test.js +110 -0
- package/commands/project/__tests__/migrateApp.test.d.ts +1 -0
- package/commands/project/__tests__/migrateApp.test.js +81 -0
- package/commands/project/__tests__/open.test.d.ts +1 -0
- package/commands/project/__tests__/open.test.js +39 -0
- package/commands/project/__tests__/profile.test.d.ts +1 -0
- package/commands/project/__tests__/profile.test.js +42 -0
- package/commands/project/__tests__/upload.test.d.ts +1 -0
- package/commands/project/__tests__/upload.test.js +43 -0
- package/commands/project/__tests__/validate.test.d.ts +1 -0
- package/commands/project/__tests__/validate.test.js +98 -0
- package/commands/project/__tests__/watch.test.d.ts +1 -0
- package/commands/project/__tests__/watch.test.js +35 -0
- package/commands/project/add.d.ts +7 -4
- package/commands/project/add.js +47 -92
- package/commands/project/cloneApp.d.ts +1 -1
- package/commands/project/cloneApp.js +69 -74
- package/commands/project/create.d.ts +2 -8
- package/commands/project/create.js +109 -86
- package/commands/project/deploy.d.ts +4 -2
- package/commands/project/deploy.js +103 -95
- package/commands/project/dev/deprecatedFlow.d.ts +10 -4
- package/commands/project/dev/deprecatedFlow.js +61 -58
- package/commands/project/dev/index.d.ts +1 -1
- package/commands/project/dev/index.js +103 -60
- package/commands/project/dev/unifiedFlow.d.ts +13 -5
- package/commands/project/dev/unifiedFlow.js +90 -103
- package/commands/project/download.d.ts +1 -1
- package/commands/project/download.js +34 -40
- package/commands/project/installDeps.d.ts +1 -1
- package/commands/project/installDeps.js +28 -34
- package/commands/project/listBuilds.d.ts +1 -1
- package/commands/project/listBuilds.js +40 -48
- 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 +60 -34
- package/commands/project/migrateApp.d.ts +2 -2
- package/commands/project/migrateApp.js +19 -22
- package/commands/project/open.d.ts +1 -1
- package/commands/project/open.js +24 -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 +67 -61
- package/commands/project/profile.d.ts +1 -1
- package/commands/project/profile.js +9 -15
- package/commands/project/upload.d.ts +2 -2
- package/commands/project/upload.js +63 -73
- package/commands/project/validate.d.ts +4 -2
- package/commands/project/validate.js +60 -35
- 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 +37 -45
- package/commands/remove.d.ts +1 -1
- package/commands/remove.js +15 -25
- package/commands/sandbox/__tests__/create.test.d.ts +1 -0
- package/commands/sandbox/__tests__/create.test.js +238 -0
- package/commands/sandbox/__tests__/delete.test.d.ts +1 -0
- package/commands/sandbox/__tests__/delete.test.js +31 -0
- 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 +98 -100
- package/commands/sandbox.d.ts +1 -1
- package/commands/sandbox.js +9 -16
- package/commands/secret/__tests__/addSecret.test.d.ts +1 -0
- package/commands/secret/__tests__/addSecret.test.js +29 -0
- package/commands/secret/__tests__/deleteSecret.test.d.ts +1 -0
- package/commands/secret/__tests__/deleteSecret.test.js +41 -0
- package/commands/secret/__tests__/listSecret.test.d.ts +1 -0
- package/commands/secret/__tests__/listSecret.test.js +29 -0
- package/commands/secret/__tests__/updateSecret.test.d.ts +1 -0
- package/commands/secret/__tests__/updateSecret.test.js +29 -0
- 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 -20
- package/commands/testAccount/__tests__/create.test.d.ts +1 -0
- package/commands/testAccount/__tests__/create.test.js +33 -0
- package/commands/testAccount/__tests__/createConfig.test.d.ts +1 -0
- package/commands/testAccount/__tests__/createConfig.test.js +32 -0
- package/commands/testAccount/__tests__/delete.test.d.ts +1 -0
- package/commands/testAccount/__tests__/delete.test.js +29 -0
- package/commands/testAccount/__tests__/importData.test.d.ts +1 -0
- package/commands/testAccount/__tests__/importData.test.js +93 -0
- package/commands/testAccount/create.d.ts +6 -0
- package/commands/testAccount/create.js +130 -0
- package/commands/testAccount/createConfig.d.ts +8 -0
- package/commands/testAccount/createConfig.js +92 -0
- package/commands/testAccount/delete.d.ts +7 -0
- package/commands/testAccount/delete.js +187 -0
- package/commands/testAccount/importData.d.ts +9 -0
- package/commands/testAccount/importData.js +61 -0
- package/commands/testAccount.d.ts +3 -0
- package/commands/testAccount.js +25 -0
- package/commands/theme/__tests__/generate-selectors.test.d.ts +1 -0
- package/commands/theme/__tests__/generate-selectors.test.js +28 -0
- package/commands/theme/__tests__/marketplace-validate.test.d.ts +1 -0
- package/commands/theme/__tests__/marketplace-validate.test.js +36 -0
- package/commands/theme/__tests__/preview.test.d.ts +1 -0
- package/commands/theme/__tests__/preview.test.js +60 -0
- package/commands/theme/generate-selectors.d.ts +1 -1
- package/commands/theme/generate-selectors.js +23 -31
- package/commands/theme/marketplace-validate.d.ts +1 -1
- package/commands/theme/marketplace-validate.js +19 -26
- package/commands/theme/preview.d.ts +1 -1
- package/commands/theme/preview.js +61 -67
- package/commands/theme.d.ts +1 -1
- package/commands/theme.js +11 -18
- package/commands/upload.d.ts +1 -1
- package/commands/upload.js +77 -121
- package/commands/watch.d.ts +1 -1
- package/commands/watch.js +45 -63
- package/lang/en.d.ts +653 -237
- package/lang/en.js +976 -564
- package/lang/en.lyaml +46 -237
- package/lib/__tests__/accountTypes.test.d.ts +1 -0
- package/lib/__tests__/accountTypes.test.js +98 -0
- package/lib/__tests__/buildAccount.test.d.ts +1 -0
- package/lib/__tests__/buildAccount.test.js +282 -0
- package/lib/__tests__/commonOpts.test.d.ts +1 -0
- package/lib/__tests__/commonOpts.test.js +85 -0
- package/lib/__tests__/dependencyManagement.test.d.ts +1 -0
- package/lib/__tests__/dependencyManagement.test.js +175 -0
- package/lib/__tests__/developerTestAccounts.test.d.ts +1 -0
- package/lib/__tests__/developerTestAccounts.test.js +145 -0
- package/lib/__tests__/hasFeature.test.d.ts +1 -0
- package/lib/__tests__/hasFeature.test.js +173 -0
- package/lib/__tests__/importData.test.d.ts +1 -0
- package/lib/__tests__/importData.test.js +89 -0
- package/lib/__tests__/npm.test.d.ts +1 -0
- package/lib/__tests__/npm.test.js +57 -0
- package/lib/__tests__/oauth.test.d.ts +1 -0
- package/lib/__tests__/oauth.test.js +108 -0
- package/lib/__tests__/parsing.test.d.ts +1 -0
- package/lib/__tests__/parsing.test.js +34 -0
- package/lib/__tests__/polling.test.d.ts +1 -0
- package/lib/__tests__/polling.test.js +76 -0
- package/lib/__tests__/process.test.d.ts +1 -0
- package/lib/__tests__/process.test.js +85 -0
- package/lib/__tests__/projectProfiles.test.d.ts +1 -0
- package/lib/__tests__/projectProfiles.test.js +129 -0
- package/lib/__tests__/sandboxSync.test.d.ts +1 -0
- package/lib/__tests__/sandboxSync.test.js +126 -0
- package/lib/__tests__/sandboxes.test.d.ts +1 -0
- package/lib/__tests__/sandboxes.test.js +146 -0
- package/lib/__tests__/serverlessLogs.test.d.ts +1 -0
- package/lib/__tests__/serverlessLogs.test.js +149 -0
- package/lib/__tests__/usageTracking.test.d.ts +1 -0
- package/lib/__tests__/usageTracking.test.js +164 -0
- package/lib/__tests__/validation.test.d.ts +1 -0
- package/lib/__tests__/validation.test.js +143 -0
- package/lib/__tests__/yargsUtils.test.d.ts +1 -0
- package/lib/__tests__/yargsUtils.test.js +124 -0
- package/lib/accountTypes.d.ts +1 -0
- package/lib/accountTypes.js +31 -33
- package/lib/app/__tests__/migrate.test.d.ts +1 -0
- package/lib/app/__tests__/migrate.test.js +498 -0
- package/lib/app/__tests__/migrate_legacy.test.d.ts +1 -0
- package/lib/app/__tests__/migrate_legacy.test.js +134 -0
- package/lib/app/migrate.d.ts +13 -6
- package/lib/app/migrate.js +154 -154
- package/lib/app/migrate_legacy.d.ts +1 -1
- package/lib/app/migrate_legacy.js +72 -79
- package/lib/app/urls.d.ts +1 -1
- 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 +4 -4
- package/lib/commonOpts.js +78 -58
- package/lib/configMigrate.d.ts +2 -2
- package/lib/configMigrate.js +44 -83
- package/lib/configOptions.d.ts +5 -0
- package/lib/configOptions.js +51 -40
- package/lib/constants.d.ts +52 -5
- package/lib/constants.js +77 -29
- package/lib/customObject.js +2 -6
- package/lib/dependencyManagement.d.ts +1 -1
- 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 +15 -19
- package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
- package/lib/doctor/DiagnosticInfoBuilder.js +37 -43
- package/lib/doctor/Doctor.d.ts +1 -1
- package/lib/doctor/Doctor.js +56 -63
- package/lib/doctor/__tests__/Diagnosis.test.d.ts +1 -0
- package/lib/doctor/__tests__/Diagnosis.test.js +82 -0
- package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +1 -0
- package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +167 -0
- package/lib/doctor/__tests__/Doctor.test.d.ts +1 -0
- package/lib/doctor/__tests__/Doctor.test.js +396 -0
- package/lib/enums/exitCodes.js +1 -4
- package/lib/errorHandlers/index.d.ts +4 -0
- package/lib/errorHandlers/index.js +37 -41
- 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 -31
- package/lib/hasFeature.d.ts +2 -1
- package/lib/hasFeature.js +16 -6
- package/lib/importData.d.ts +3 -0
- package/lib/importData.js +50 -0
- package/lib/interpolation.js +11 -18
- package/lib/lang.d.ts +1 -1
- package/lib/lang.js +22 -27
- package/lib/links.d.ts +1 -0
- package/lib/links.js +26 -27
- package/lib/marketplaceValidate.d.ts +12 -2
- package/lib/marketplaceValidate.js +35 -52
- package/lib/mcp/setup.d.ts +23 -0
- package/lib/mcp/setup.js +238 -0
- package/lib/middleware/__test__/configMiddleware.test.js +34 -69
- package/lib/middleware/__test__/gitMiddleware.test.js +11 -46
- package/lib/middleware/__test__/notificationsMiddleware.test.js +1 -3
- package/lib/middleware/__test__/requestMiddleware.test.js +8 -13
- package/lib/middleware/__test__/utils.test.js +9 -11
- package/lib/middleware/__test__/yargsChecksMiddleware.test.js +16 -51
- package/lib/middleware/autoUpdateMiddleware.js +33 -40
- package/lib/middleware/configMiddleware.js +56 -39
- package/lib/middleware/fireAlarmMiddleware.d.ts +2 -2
- package/lib/middleware/fireAlarmMiddleware.js +29 -23
- package/lib/middleware/gitMiddleware.js +5 -8
- package/lib/middleware/notificationsMiddleware.js +7 -11
- 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.d.ts +1 -0
- package/lib/parsing.js +8 -0
- package/lib/polling.d.ts +1 -1
- package/lib/polling.js +19 -13
- package/lib/process.js +26 -23
- package/lib/projectProfiles.d.ts +3 -2
- package/lib/projectProfiles.js +46 -38
- package/lib/projects/ProjectLogsManager.js +18 -21
- package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +1 -0
- package/lib/projects/__tests__/AppDevModeInterface.test.js +541 -0
- package/lib/projects/__tests__/LocalDevProcess.test.d.ts +1 -0
- package/lib/projects/__tests__/LocalDevProcess.test.js +466 -0
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +1 -0
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +365 -0
- package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +1 -0
- package/lib/projects/__tests__/ProjectLogsManager.test.js +189 -0
- package/lib/projects/__tests__/components.test.d.ts +1 -0
- package/lib/projects/__tests__/components.test.js +338 -0
- package/lib/projects/__tests__/deploy.test.d.ts +1 -0
- package/lib/projects/__tests__/deploy.test.js +229 -0
- package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +1 -0
- package/lib/projects/__tests__/localDevProjectHelpers.test.js +122 -0
- package/lib/projects/__tests__/platformVersion.test.d.ts +1 -0
- package/lib/projects/__tests__/platformVersion.test.js +23 -0
- package/lib/projects/__tests__/projects.test.d.ts +1 -0
- package/lib/projects/__tests__/projects.test.js +84 -0
- package/lib/projects/__tests__/structure.test.d.ts +1 -0
- package/lib/projects/__tests__/structure.test.js +211 -0
- package/lib/projects/__tests__/upload.test.d.ts +1 -0
- package/lib/projects/__tests__/upload.test.js +82 -0
- package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +1 -0
- package/lib/projects/add/__tests__/legacyAddComponent.test.js +247 -0
- package/lib/projects/add/__tests__/v3AddComponent.test.d.ts +1 -0
- package/lib/projects/add/__tests__/v3AddComponent.test.js +319 -0
- package/lib/projects/add/legacyAddComponent.d.ts +5 -0
- package/lib/projects/add/legacyAddComponent.js +46 -0
- package/lib/projects/add/v3AddComponent.d.ts +9 -0
- package/lib/projects/add/v3AddComponent.js +101 -0
- package/lib/projects/components.d.ts +3 -0
- package/lib/projects/components.js +102 -0
- package/lib/projects/config.d.ts +1 -1
- package/lib/projects/config.js +32 -41
- package/lib/projects/create/__tests__/legacy.test.d.ts +1 -0
- package/lib/projects/create/__tests__/legacy.test.js +91 -0
- package/lib/projects/create/__tests__/v3.test.d.ts +1 -0
- package/lib/projects/create/__tests__/v3.test.js +241 -0
- package/lib/projects/create/index.d.ts +24 -0
- package/lib/projects/create/index.js +36 -0
- package/lib/projects/create/legacy.d.ts +6 -0
- package/lib/projects/create/legacy.js +53 -0
- package/lib/projects/create/v3.d.ts +26 -0
- package/lib/projects/create/v3.js +171 -0
- package/lib/projects/deploy.d.ts +13 -0
- package/lib/projects/deploy.js +63 -0
- package/lib/projects/ensureProjectExists.js +31 -37
- package/lib/projects/localDev/AppDevModeInterface.d.ts +13 -5
- package/lib/projects/localDev/AppDevModeInterface.js +218 -68
- package/lib/projects/localDev/DevServerManager.d.ts +1 -1
- package/lib/projects/localDev/DevServerManager.js +22 -27
- package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
- package/lib/projects/localDev/DevServerManagerV2.js +16 -22
- package/lib/projects/localDev/LocalDevLogger.d.ts +5 -5
- package/lib/projects/localDev/LocalDevLogger.js +88 -78
- package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
- package/lib/projects/localDev/LocalDevManager.js +106 -111
- package/lib/projects/localDev/LocalDevProcess.d.ts +19 -8
- package/lib/projects/localDev/LocalDevProcess.js +155 -61
- package/lib/projects/localDev/LocalDevState.d.ts +33 -11
- package/lib/projects/localDev/LocalDevState.js +77 -25
- package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
- package/lib/projects/localDev/LocalDevWatcher.js +9 -17
- package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +8 -3
- package/lib/projects/localDev/LocalDevWebsocketServer.js +138 -47
- package/lib/projects/localDev/{helpers.d.ts → helpers/account.d.ts} +3 -9
- package/lib/projects/localDev/helpers/account.js +233 -0
- package/lib/projects/localDev/helpers/project.d.ts +12 -0
- package/lib/projects/localDev/helpers/project.js +176 -0
- package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +4 -0
- package/lib/projects/localDev/localDevWebsocketServerUtils.js +10 -0
- package/lib/projects/platformVersion.d.ts +1 -0
- package/lib/projects/platformVersion.js +10 -0
- package/lib/projects/{buildAndDeploy.d.ts → pollProjectBuildAndDeploy.d.ts} +1 -2
- package/lib/projects/{buildAndDeploy.js → pollProjectBuildAndDeploy.js} +90 -109
- 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 +4 -1
- package/lib/projects/upload.js +91 -58
- package/lib/projects/urls.d.ts +5 -0
- package/lib/projects/urls.js +30 -17
- package/lib/projects/watch.d.ts +1 -1
- package/lib/projects/watch.js +48 -54
- package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +1 -0
- package/lib/prompts/__tests__/createFunctionPrompt.test.js +129 -0
- package/lib/prompts/__tests__/createModulePrompt.test.d.ts +1 -0
- package/lib/prompts/__tests__/createModulePrompt.test.js +187 -0
- package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +1 -0
- package/lib/prompts/__tests__/createTemplatePrompt.test.js +102 -0
- package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +1 -0
- package/lib/prompts/__tests__/downloadProjectPrompt.test.js +28 -0
- package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +1 -0
- package/lib/prompts/__tests__/projectAddPrompt.test.js +143 -0
- package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +1 -0
- package/lib/prompts/__tests__/projectsLogsPrompt.test.js +37 -0
- package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +1 -0
- package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +160 -0
- 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/confirmImportDataPrompt.d.ts +1 -0
- package/lib/prompts/confirmImportDataPrompt.js +12 -0
- package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
- package/lib/prompts/createApiSamplePrompt.js +9 -12
- package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +18 -0
- package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +146 -0
- package/lib/prompts/createFunctionPrompt.d.ts +2 -1
- package/lib/prompts/createFunctionPrompt.js +51 -25
- package/lib/prompts/createModulePrompt.d.ts +2 -1
- package/lib/prompts/createModulePrompt.js +60 -17
- package/lib/prompts/createTemplatePrompt.d.ts +3 -24
- package/lib/prompts/createTemplatePrompt.js +13 -8
- package/lib/prompts/downloadProjectPrompt.js +17 -20
- package/lib/prompts/importDataFilePathPrompt.d.ts +1 -0
- package/lib/prompts/importDataFilePathPrompt.js +26 -0
- package/lib/prompts/importDataTestAccountSelectPrompt.d.ts +3 -0
- package/lib/prompts/importDataTestAccountSelectPrompt.js +29 -0
- package/lib/prompts/installAppPrompt.d.ts +7 -1
- package/lib/prompts/installAppPrompt.js +29 -21
- package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
- package/lib/prompts/personalAccessKeyPrompt.js +53 -49
- package/lib/prompts/previewPrompt.js +15 -22
- package/lib/prompts/projectAddPrompt.d.ts +6 -1
- package/lib/prompts/projectAddPrompt.js +39 -13
- package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
- package/lib/prompts/projectDevTargetAccountPrompt.js +49 -54
- package/lib/prompts/projectNameAndDestPrompt.d.ts +3 -0
- package/lib/prompts/projectNameAndDestPrompt.js +53 -0
- package/lib/prompts/projectNamePrompt.js +11 -14
- package/lib/prompts/projectsLogsPrompt.js +5 -8
- package/lib/prompts/promptUtils.d.ts +11 -3
- package/lib/prompts/promptUtils.js +195 -44
- 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 +27 -0
- package/lib/prompts/selectProjectTemplatePrompt.js +71 -0
- package/lib/prompts/selectPublicAppForMigrationPrompt.js +22 -25
- package/lib/prompts/setAsDefaultAccountPrompt.js +18 -11
- 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 +16 -19
- package/lib/serverlessLogs.js +45 -52
- package/lib/testUtils.js +5 -10
- package/lib/theme/__tests__/migrate.test.d.ts +1 -0
- package/lib/theme/__tests__/migrate.test.js +233 -0
- package/lib/theme/migrate.d.ts +13 -0
- package/lib/theme/migrate.js +90 -0
- package/lib/ui/SpinniesManager.d.ts +1 -1
- package/lib/ui/SpinniesManager.js +29 -35
- package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +1 -0
- package/lib/ui/__tests__/removeAnsiCodes.test.js +84 -0
- 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 +58 -81
- package/lib/ui/logger.d.ts +1 -0
- package/lib/ui/logger.js +11 -13
- package/lib/ui/removeAnsiCodes.d.ts +1 -0
- package/lib/ui/removeAnsiCodes.js +4 -0
- 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.d.ts +11 -0
- package/lib/usageTracking.js +88 -103
- package/lib/utils/hasFlag.d.ts +1 -0
- package/lib/utils/hasFlag.js +9 -0
- package/lib/validation.d.ts +1 -1
- package/lib/validation.js +50 -89
- package/lib/yargsUtils.d.ts +4 -1
- package/lib/yargsUtils.js +28 -25
- package/mcp-server/server.d.ts +1 -0
- package/mcp-server/server.js +17 -0
- package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +32 -0
- package/mcp-server/tools/cms/HsCreateFunctionTool.js +96 -0
- package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +38 -0
- package/mcp-server/tools/cms/HsCreateModuleTool.js +118 -0
- package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +26 -0
- package/mcp-server/tools/cms/HsCreateTemplateTool.js +75 -0
- package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +32 -0
- package/mcp-server/tools/cms/HsFunctionLogsTool.js +76 -0
- package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +23 -0
- package/mcp-server/tools/cms/HsListFunctionsTool.js +58 -0
- package/mcp-server/tools/cms/HsListTool.d.ts +23 -0
- package/mcp-server/tools/cms/HsListTool.js +58 -0
- package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +1 -0
- package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +251 -0
- package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +1 -0
- package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +224 -0
- package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +1 -0
- package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +206 -0
- package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +1 -0
- package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +183 -0
- package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +1 -0
- package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +120 -0
- package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +1 -0
- package/mcp-server/tools/cms/__tests__/HsListTool.test.js +120 -0
- package/mcp-server/tools/index.d.ts +3 -0
- package/mcp-server/tools/index.js +38 -0
- package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +29 -0
- package/mcp-server/tools/project/AddFeatureToProjectTool.js +76 -0
- package/mcp-server/tools/project/CreateProjectTool.d.ts +35 -0
- package/mcp-server/tools/project/CreateProjectTool.js +93 -0
- package/mcp-server/tools/project/DeployProjectTool.d.ts +20 -0
- package/mcp-server/tools/project/DeployProjectTool.js +49 -0
- package/mcp-server/tools/project/DocFetchTool.d.ts +17 -0
- package/mcp-server/tools/project/DocFetchTool.js +49 -0
- package/mcp-server/tools/project/DocsSearchTool.d.ts +29 -0
- package/mcp-server/tools/project/DocsSearchTool.js +62 -0
- package/mcp-server/tools/project/GetConfigValuesTool.d.ts +23 -0
- package/mcp-server/tools/project/GetConfigValuesTool.js +58 -0
- package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +17 -0
- package/mcp-server/tools/project/GuidedWalkthroughTool.js +57 -0
- package/mcp-server/tools/project/UploadProjectTools.d.ts +17 -0
- package/mcp-server/tools/project/UploadProjectTools.js +31 -0
- package/mcp-server/tools/project/ValidateProjectTool.d.ts +17 -0
- package/mcp-server/tools/project/ValidateProjectTool.js +34 -0
- package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +151 -0
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +127 -0
- package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +119 -0
- package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +117 -0
- package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +192 -0
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +199 -0
- package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +126 -0
- package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +107 -0
- package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +1 -0
- package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +110 -0
- package/mcp-server/tools/project/constants.d.ts +6 -0
- package/mcp-server/tools/project/constants.js +32 -0
- package/mcp-server/types.d.ts +14 -0
- package/mcp-server/types.js +13 -0
- package/mcp-server/utils/__tests__/cliConfig.test.d.ts +1 -0
- package/mcp-server/utils/__tests__/cliConfig.test.js +110 -0
- package/mcp-server/utils/__tests__/command.test.d.ts +1 -0
- package/mcp-server/utils/__tests__/command.test.js +45 -0
- package/mcp-server/utils/__tests__/project.test.d.ts +1 -0
- package/mcp-server/utils/__tests__/project.test.js +79 -0
- package/mcp-server/utils/cliConfig.d.ts +1 -0
- package/mcp-server/utils/cliConfig.js +12 -0
- package/mcp-server/utils/command.d.ts +3 -0
- package/mcp-server/utils/command.js +9 -0
- package/mcp-server/utils/content.d.ts +3 -0
- package/mcp-server/utils/content.js +17 -0
- package/mcp-server/utils/project.d.ts +5 -0
- package/mcp-server/utils/project.js +14 -0
- package/mcp-server/utils/toolUsageTracking.d.ts +3 -0
- package/mcp-server/utils/toolUsageTracking.js +23 -0
- package/package.json +42 -33
- package/types/Cms.d.ts +17 -1
- package/types/Cms.js +25 -2
- package/types/LocalDev.d.ts +34 -8
- package/types/LocalDev.js +1 -2
- package/types/ProjectComponents.d.ts +2 -2
- package/types/ProjectComponents.js +1 -2
- package/types/Projects.d.ts +20 -2
- package/types/Projects.js +2 -5
- package/types/Prompts.d.ts +5 -2
- package/types/Prompts.js +1 -2
- package/types/Sandboxes.js +1 -2
- package/types/Yargs.d.ts +7 -1
- package/types/Yargs.js +1 -2
- package/ui/components/BoxWithTitle.d.ts +8 -0
- package/ui/components/BoxWithTitle.js +9 -0
- package/ui/components/HorizontalSelectPrompt.d.ts +8 -0
- package/ui/components/HorizontalSelectPrompt.js +30 -0
- package/ui/components/StatusMessageBoxes.d.ts +12 -0
- package/ui/components/StatusMessageBoxes.js +31 -0
- package/ui/index.d.ts +1 -0
- package/ui/index.js +6 -0
- package/ui/lib/ui-testing-utils.d.ts +9 -0
- package/ui/lib/ui-testing-utils.js +47 -0
- package/ui/lib/useTerminalSize.d.ts +13 -0
- package/ui/lib/useTerminalSize.js +31 -0
- package/ui/styles.d.ts +18 -0
- package/ui/styles.js +18 -0
- package/ui/views/UiSandbox.d.ts +5 -0
- package/ui/views/UiSandbox.js +25 -0
- package/bin/hsmcp.d.ts +0 -2
- package/bin/hsmcp.js +0 -13
- package/commands/setupMcp.d.ts +0 -8
- package/commands/setupMcp.js +0 -229
- package/lib/projects/create.d.ts +0 -5
- package/lib/projects/create.js +0 -50
- package/lib/projects/localDev/helpers.js +0 -351
- package/lib/prompts/createProjectPrompt.d.ts +0 -19
- package/lib/prompts/createProjectPrompt.js +0 -95
- package/mcp-server/index.js +0 -17
- package/mcp-server/mcpLoader.d.ts +0 -5
- package/mcp-server/mcpLoader.js +0 -24
- package/mcp-server/tools/ExplainProjectStructureTool.d.ts +0 -33
- package/mcp-server/tools/ExplainProjectStructureTool.js +0 -266
- package/mcp-server/tools/GenerateAppComponentTool.d.ts +0 -99
- package/mcp-server/tools/GenerateAppComponentTool.js +0 -193
- package/mcp-server/tools/GenerateCardComponentTool.d.ts +0 -74
- package/mcp-server/tools/GenerateCardComponentTool.js +0 -146
- package/mcp-server/tools/GenerateProjectConfigTool.d.ts +0 -32
- package/mcp-server/tools/GenerateProjectConfigTool.js +0 -40
- package/mcp-server/tools/HubSpotCLIHelper.d.ts +0 -24
- package/mcp-server/tools/HubSpotCLIHelper.js +0 -110
- package/mcp-server/tools/UploadProjectTool.d.ts +0 -44
- package/mcp-server/tools/UploadProjectTool.js +0 -166
- package/mcp-server/tools/ValidateProjectTool.d.ts +0 -62
- package/mcp-server/tools/ValidateProjectTool.js +0 -336
- /package/{mcp-server/index.d.ts → api/__tests__/migrate.test.d.ts} +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { UploadProjectTools } from './project/UploadProjectTools.js';
|
|
2
|
+
import { CreateProjectTool } from './project/CreateProjectTool.js';
|
|
3
|
+
import { GuidedWalkthroughTool } from './project/GuidedWalkthroughTool.js';
|
|
4
|
+
import { DeployProjectTool } from './project/DeployProjectTool.js';
|
|
5
|
+
import { AddFeatureToProjectTool } from './project/AddFeatureToProjectTool.js';
|
|
6
|
+
import { ValidateProjectTool } from './project/ValidateProjectTool.js';
|
|
7
|
+
import { GetConfigValuesTool } from './project/GetConfigValuesTool.js';
|
|
8
|
+
import { DocsSearchTool } from './project/DocsSearchTool.js';
|
|
9
|
+
import { DocFetchTool } from './project/DocFetchTool.js';
|
|
10
|
+
import { HsListTool } from './cms/HsListTool.js';
|
|
11
|
+
import { HsCreateModuleTool } from './cms/HsCreateModuleTool.js';
|
|
12
|
+
import { HsCreateTemplateTool } from './cms/HsCreateTemplateTool.js';
|
|
13
|
+
import { HsCreateFunctionTool } from './cms/HsCreateFunctionTool.js';
|
|
14
|
+
import { HsListFunctionsTool } from './cms/HsListFunctionsTool.js';
|
|
15
|
+
import { HsFunctionLogsTool } from './cms/HsFunctionLogsTool.js';
|
|
16
|
+
export function registerProjectTools(mcpServer) {
|
|
17
|
+
return [
|
|
18
|
+
new UploadProjectTools(mcpServer).register(),
|
|
19
|
+
new CreateProjectTool(mcpServer).register(),
|
|
20
|
+
new GuidedWalkthroughTool(mcpServer).register(),
|
|
21
|
+
new DeployProjectTool(mcpServer).register(),
|
|
22
|
+
new AddFeatureToProjectTool(mcpServer).register(),
|
|
23
|
+
new ValidateProjectTool(mcpServer).register(),
|
|
24
|
+
new GetConfigValuesTool(mcpServer).register(),
|
|
25
|
+
new DocsSearchTool(mcpServer).register(),
|
|
26
|
+
new DocFetchTool(mcpServer).register(),
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
export function registerCmsTools(mcpServer) {
|
|
30
|
+
return [
|
|
31
|
+
new HsListTool(mcpServer).register(),
|
|
32
|
+
new HsCreateModuleTool(mcpServer).register(),
|
|
33
|
+
new HsCreateTemplateTool(mcpServer).register(),
|
|
34
|
+
new HsCreateFunctionTool(mcpServer).register(),
|
|
35
|
+
new HsListFunctionsTool(mcpServer).register(),
|
|
36
|
+
new HsFunctionLogsTool(mcpServer).register(),
|
|
37
|
+
];
|
|
38
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TextContentResponse, Tool } from '../../types.js';
|
|
2
|
+
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
|
+
absoluteProjectPath: z.ZodString;
|
|
6
|
+
addApp: z.ZodBoolean;
|
|
7
|
+
distribution: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"marketplace">, z.ZodLiteral<"private">]>>;
|
|
8
|
+
auth: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"static">, z.ZodLiteral<"oauth">]>>;
|
|
9
|
+
features: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodLiteral<"card">, z.ZodLiteral<"settings">, z.ZodLiteral<"app-function">, z.ZodLiteral<"webhooks">, z.ZodLiteral<"workflow-action">, z.ZodLiteral<"workflow-action-tool">, z.ZodLiteral<"app-object">, z.ZodLiteral<"app-event">, z.ZodLiteral<"scim">, z.ZodLiteral<"page">]>, "many">>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
absoluteProjectPath: string;
|
|
12
|
+
addApp: boolean;
|
|
13
|
+
auth?: "oauth" | "static" | undefined;
|
|
14
|
+
distribution?: "marketplace" | "private" | undefined;
|
|
15
|
+
features?: ("card" | "settings" | "page" | "app-event" | "workflow-action-tool" | "workflow-action" | "app-function" | "webhooks" | "app-object" | "scim")[] | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
absoluteProjectPath: string;
|
|
18
|
+
addApp: boolean;
|
|
19
|
+
auth?: "oauth" | "static" | undefined;
|
|
20
|
+
distribution?: "marketplace" | "private" | undefined;
|
|
21
|
+
features?: ("card" | "settings" | "page" | "app-event" | "workflow-action-tool" | "workflow-action" | "app-function" | "webhooks" | "app-object" | "scim")[] | undefined;
|
|
22
|
+
}>;
|
|
23
|
+
export type AddFeatureInputSchema = z.infer<typeof inputSchemaZodObject>;
|
|
24
|
+
export declare class AddFeatureToProjectTool extends Tool<AddFeatureInputSchema> {
|
|
25
|
+
constructor(mcpServer: McpServer);
|
|
26
|
+
handler({ absoluteProjectPath, distribution, auth, features, addApp, }: AddFeatureInputSchema): Promise<TextContentResponse>;
|
|
27
|
+
register(): RegisteredTool;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Tool } from '../../types.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { APP_AUTH_TYPES, APP_DISTRIBUTION_TYPES, } from '../../../lib/constants.js';
|
|
4
|
+
import { addFlag } from '../../utils/command.js';
|
|
5
|
+
import { absoluteProjectPath, features } from './constants.js';
|
|
6
|
+
import { runCommandInDir } from '../../utils/project.js';
|
|
7
|
+
import { formatTextContents, formatTextContent } from '../../utils/content.js';
|
|
8
|
+
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
9
|
+
const inputSchema = {
|
|
10
|
+
absoluteProjectPath,
|
|
11
|
+
addApp: z
|
|
12
|
+
.boolean()
|
|
13
|
+
.describe('Should an app be added? If there is no app in the project, an app must be added to add a feature'),
|
|
14
|
+
distribution: z
|
|
15
|
+
.optional(z.union([
|
|
16
|
+
z.literal(APP_DISTRIBUTION_TYPES.MARKETPLACE),
|
|
17
|
+
z.literal(APP_DISTRIBUTION_TYPES.PRIVATE),
|
|
18
|
+
]))
|
|
19
|
+
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Private is used if you do not wish to distribute your application on the HubSpot marketplace. '),
|
|
20
|
+
auth: z
|
|
21
|
+
.optional(z.union([
|
|
22
|
+
z.literal(APP_AUTH_TYPES.STATIC),
|
|
23
|
+
z.literal(APP_AUTH_TYPES.OAUTH),
|
|
24
|
+
]))
|
|
25
|
+
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Static uses a static non changing authentication token, and is only available for private distribution. '),
|
|
26
|
+
features,
|
|
27
|
+
};
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29
|
+
const inputSchemaZodObject = z.object({
|
|
30
|
+
...inputSchema,
|
|
31
|
+
});
|
|
32
|
+
const toolName = 'add-feature-to-project';
|
|
33
|
+
export class AddFeatureToProjectTool extends Tool {
|
|
34
|
+
constructor(mcpServer) {
|
|
35
|
+
super(mcpServer);
|
|
36
|
+
}
|
|
37
|
+
async handler({ absoluteProjectPath, distribution, auth, features, addApp, }) {
|
|
38
|
+
try {
|
|
39
|
+
await trackToolUsage(toolName);
|
|
40
|
+
let command = `hs project add`;
|
|
41
|
+
const content = [];
|
|
42
|
+
if (distribution) {
|
|
43
|
+
command = addFlag(command, 'distribution', distribution);
|
|
44
|
+
}
|
|
45
|
+
else if (addApp) {
|
|
46
|
+
content.push(formatTextContent(`Ask the user how they would you like to distribute the application. Options are ${APP_DISTRIBUTION_TYPES.MARKETPLACE} and ${APP_DISTRIBUTION_TYPES.PRIVATE}`));
|
|
47
|
+
}
|
|
48
|
+
if (auth) {
|
|
49
|
+
command = addFlag(command, 'auth', auth);
|
|
50
|
+
}
|
|
51
|
+
else if (addApp) {
|
|
52
|
+
content.push(formatTextContent(`Ask the user which auth type they would like to use. Options are ${APP_AUTH_TYPES.STATIC} and ${APP_AUTH_TYPES.OAUTH}`));
|
|
53
|
+
}
|
|
54
|
+
if (content.length > 0) {
|
|
55
|
+
return {
|
|
56
|
+
content,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// If features isn't provided, pass an empty array to bypass the prompt
|
|
60
|
+
command = addFlag(command, 'features', features || []);
|
|
61
|
+
const { stdout, stderr } = await runCommandInDir(absoluteProjectPath, command);
|
|
62
|
+
return formatTextContents(stdout, stderr);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
return formatTextContents(error instanceof Error ? error.message : `${error}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
register() {
|
|
69
|
+
return this.mcpServer.registerTool(toolName, {
|
|
70
|
+
title: 'Add feature to HubSpot Project',
|
|
71
|
+
description: `Adds a feature to an existing HubSpot project.
|
|
72
|
+
Only works for projects with platformVersion '2025.2' and beyond`,
|
|
73
|
+
inputSchema,
|
|
74
|
+
}, this.handler);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TextContentResponse, Tool } from '../../types.js';
|
|
2
|
+
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
|
+
absoluteCurrentWorkingDirectory: z.ZodString;
|
|
6
|
+
name: z.ZodOptional<z.ZodString>;
|
|
7
|
+
destination: z.ZodString;
|
|
8
|
+
projectBase: z.ZodUnion<[z.ZodLiteral<"empty">, z.ZodLiteral<"app">]>;
|
|
9
|
+
distribution: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"marketplace">, z.ZodLiteral<"private">]>>;
|
|
10
|
+
auth: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"static">, z.ZodLiteral<"oauth">]>>>;
|
|
11
|
+
features: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodLiteral<"card">, z.ZodLiteral<"settings">, z.ZodLiteral<"app-function">, z.ZodLiteral<"webhooks">, z.ZodLiteral<"workflow-action">, z.ZodLiteral<"workflow-action-tool">, z.ZodLiteral<"app-object">, z.ZodLiteral<"app-event">, z.ZodLiteral<"scim">, z.ZodLiteral<"page">]>, "many">>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
projectBase: "app" | "empty";
|
|
14
|
+
absoluteCurrentWorkingDirectory: string;
|
|
15
|
+
destination: string;
|
|
16
|
+
name?: string | undefined;
|
|
17
|
+
auth?: "oauth" | "static" | undefined;
|
|
18
|
+
distribution?: "marketplace" | "private" | undefined;
|
|
19
|
+
features?: ("card" | "settings" | "page" | "app-event" | "workflow-action-tool" | "workflow-action" | "app-function" | "webhooks" | "app-object" | "scim")[] | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
projectBase: "app" | "empty";
|
|
22
|
+
absoluteCurrentWorkingDirectory: string;
|
|
23
|
+
destination: string;
|
|
24
|
+
name?: string | undefined;
|
|
25
|
+
auth?: "oauth" | "static" | undefined;
|
|
26
|
+
distribution?: "marketplace" | "private" | undefined;
|
|
27
|
+
features?: ("card" | "settings" | "page" | "app-event" | "workflow-action-tool" | "workflow-action" | "app-function" | "webhooks" | "app-object" | "scim")[] | undefined;
|
|
28
|
+
}>;
|
|
29
|
+
export type CreateProjectInputSchema = z.infer<typeof inputSchemaZodObject>;
|
|
30
|
+
export declare class CreateProjectTool extends Tool<CreateProjectInputSchema> {
|
|
31
|
+
constructor(mcpServer: McpServer);
|
|
32
|
+
handler({ name, destination, projectBase, distribution, auth, features, absoluteCurrentWorkingDirectory, }: CreateProjectInputSchema): Promise<TextContentResponse>;
|
|
33
|
+
register(): RegisteredTool;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Tool } from '../../types.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { APP_AUTH_TYPES, APP_DISTRIBUTION_TYPES, EMPTY_PROJECT, PROJECT_WITH_APP, } from '../../../lib/constants.js';
|
|
4
|
+
import { addFlag } from '../../utils/command.js';
|
|
5
|
+
import { absoluteCurrentWorkingDirectory, features } from './constants.js';
|
|
6
|
+
import { runCommandInDir } from '../../utils/project.js';
|
|
7
|
+
import { formatTextContents, formatTextContent } from '../../utils/content.js';
|
|
8
|
+
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
9
|
+
const inputSchema = {
|
|
10
|
+
absoluteCurrentWorkingDirectory,
|
|
11
|
+
name: z
|
|
12
|
+
.string()
|
|
13
|
+
.describe('If not specified by the user, DO NOT choose for them. Changing this is potentially destructive.The name of the project to be created. This name is how your project will appear in HubSpot. ')
|
|
14
|
+
.optional(),
|
|
15
|
+
destination: z
|
|
16
|
+
.string()
|
|
17
|
+
.describe('DO NOT use the current directory unless the user has explicitly stated to do so. Relative path to the directory the project will be created in.'),
|
|
18
|
+
projectBase: z
|
|
19
|
+
.union([z.literal(EMPTY_PROJECT), z.literal(PROJECT_WITH_APP)])
|
|
20
|
+
.describe('Empty will create an empty project, and app will create a project with an app inside of it.'),
|
|
21
|
+
distribution: z
|
|
22
|
+
.optional(z.union([
|
|
23
|
+
z.literal(APP_DISTRIBUTION_TYPES.MARKETPLACE),
|
|
24
|
+
z.literal(APP_DISTRIBUTION_TYPES.PRIVATE),
|
|
25
|
+
]))
|
|
26
|
+
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Private is used if you do not wish to distribute your application on the HubSpot marketplace. '),
|
|
27
|
+
auth: z
|
|
28
|
+
.optional(z.union([
|
|
29
|
+
z.literal(APP_AUTH_TYPES.STATIC),
|
|
30
|
+
z.literal(APP_AUTH_TYPES.OAUTH),
|
|
31
|
+
]))
|
|
32
|
+
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Static uses a static non changing authentication token, and is only available for private distribution. ')
|
|
33
|
+
.optional(),
|
|
34
|
+
features,
|
|
35
|
+
};
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
37
|
+
const inputSchemaZodObject = z.object({ ...inputSchema });
|
|
38
|
+
const toolName = 'create-project';
|
|
39
|
+
export class CreateProjectTool extends Tool {
|
|
40
|
+
constructor(mcpServer) {
|
|
41
|
+
super(mcpServer);
|
|
42
|
+
}
|
|
43
|
+
async handler({ name, destination, projectBase, distribution, auth, features, absoluteCurrentWorkingDirectory, }) {
|
|
44
|
+
await trackToolUsage(toolName);
|
|
45
|
+
let command = addFlag('hs project create', 'platform-version', '2025.2');
|
|
46
|
+
const content = [];
|
|
47
|
+
if (name) {
|
|
48
|
+
command = addFlag(command, 'name', name);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
content.push(formatTextContent(`Ask the user what they would like to name the project.`));
|
|
52
|
+
}
|
|
53
|
+
if (destination) {
|
|
54
|
+
command = addFlag(command, 'dest', destination);
|
|
55
|
+
}
|
|
56
|
+
if (projectBase) {
|
|
57
|
+
command = addFlag(command, 'project-base', projectBase);
|
|
58
|
+
}
|
|
59
|
+
if (distribution) {
|
|
60
|
+
command = addFlag(command, 'distribution', distribution);
|
|
61
|
+
}
|
|
62
|
+
else if (projectBase === PROJECT_WITH_APP) {
|
|
63
|
+
content.push(formatTextContent(`Ask the user how they would you like to distribute the application? Options are ${APP_DISTRIBUTION_TYPES.MARKETPLACE} and ${APP_DISTRIBUTION_TYPES.PRIVATE}`));
|
|
64
|
+
}
|
|
65
|
+
if (auth) {
|
|
66
|
+
command = addFlag(command, 'auth', auth);
|
|
67
|
+
}
|
|
68
|
+
else if (projectBase === PROJECT_WITH_APP) {
|
|
69
|
+
content.push(formatTextContent(`Ask the user which auth type they would like to use? Options are ${APP_AUTH_TYPES.STATIC} and ${APP_AUTH_TYPES.OAUTH}`));
|
|
70
|
+
}
|
|
71
|
+
if (content.length > 0) {
|
|
72
|
+
return {
|
|
73
|
+
content,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// Always pass features, even if it is an empty array to bypass the prompts
|
|
77
|
+
command = addFlag(command, 'features', features || []);
|
|
78
|
+
try {
|
|
79
|
+
const { stdout, stderr } = await runCommandInDir(absoluteCurrentWorkingDirectory, command);
|
|
80
|
+
return formatTextContents(stdout, stderr);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
return formatTextContents(error instanceof Error ? error.message : `${error}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
register() {
|
|
87
|
+
return this.mcpServer.registerTool(toolName, {
|
|
88
|
+
title: 'Create HubSpot Project',
|
|
89
|
+
description: 'Creates a HubSpot project with the provided name and outputs it in the provided destination',
|
|
90
|
+
inputSchema,
|
|
91
|
+
}, this.handler);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TextContentResponse, Tool } from '../../types.js';
|
|
2
|
+
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
|
+
absoluteProjectPath: z.ZodString;
|
|
6
|
+
buildNumber: z.ZodOptional<z.ZodNumber>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
absoluteProjectPath: string;
|
|
9
|
+
buildNumber?: number | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
absoluteProjectPath: string;
|
|
12
|
+
buildNumber?: number | undefined;
|
|
13
|
+
}>;
|
|
14
|
+
type InputSchemaType = z.infer<typeof inputSchemaZodObject>;
|
|
15
|
+
export declare class DeployProjectTool extends Tool<InputSchemaType> {
|
|
16
|
+
constructor(mcpServer: McpServer);
|
|
17
|
+
handler({ absoluteProjectPath, buildNumber, }: InputSchemaType): Promise<TextContentResponse>;
|
|
18
|
+
register(): RegisteredTool;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Tool } from '../../types.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { addFlag } from '../../utils/command.js';
|
|
4
|
+
import { absoluteProjectPath } from './constants.js';
|
|
5
|
+
import { runCommandInDir } from '../../utils/project.js';
|
|
6
|
+
import { formatTextContents, formatTextContent } from '../../utils/content.js';
|
|
7
|
+
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
8
|
+
const inputSchema = {
|
|
9
|
+
absoluteProjectPath,
|
|
10
|
+
buildNumber: z
|
|
11
|
+
.optional(z.number())
|
|
12
|
+
.describe('The build number to be deployed. This can be found in the project details page using `hs project open`. If no build number is specified, the most recent build is deployed'),
|
|
13
|
+
};
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15
|
+
const inputSchemaZodObject = z.object({
|
|
16
|
+
...inputSchema,
|
|
17
|
+
});
|
|
18
|
+
const toolName = 'deploy-project';
|
|
19
|
+
export class DeployProjectTool extends Tool {
|
|
20
|
+
constructor(mcpServer) {
|
|
21
|
+
super(mcpServer);
|
|
22
|
+
}
|
|
23
|
+
async handler({ absoluteProjectPath, buildNumber, }) {
|
|
24
|
+
await trackToolUsage(toolName);
|
|
25
|
+
let command = `hs project deploy`;
|
|
26
|
+
const content = [];
|
|
27
|
+
if (!buildNumber) {
|
|
28
|
+
const { stdout } = await runCommandInDir(absoluteProjectPath, `hs project list-builds --limit 100`);
|
|
29
|
+
content.push(formatTextContent(`Ask the user which build number they would like to deploy? Build information: ${stdout}`));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
command = addFlag(command, 'build', buildNumber);
|
|
33
|
+
}
|
|
34
|
+
if (content.length) {
|
|
35
|
+
return {
|
|
36
|
+
content,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
const { stdout, stderr } = await runCommandInDir(absoluteProjectPath, command);
|
|
40
|
+
return formatTextContents(stdout, stderr);
|
|
41
|
+
}
|
|
42
|
+
register() {
|
|
43
|
+
return this.mcpServer.registerTool(toolName, {
|
|
44
|
+
title: 'Deploy a build of HubSpot Project',
|
|
45
|
+
description: 'Takes a build number and a project name and deploys that build of the project. DO NOT run this tool unless the user specifies they would like to deploy the project.',
|
|
46
|
+
inputSchema,
|
|
47
|
+
}, this.handler);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import z from 'zod';
|
|
3
|
+
import { TextContentResponse, Tool } from '../../types.js';
|
|
4
|
+
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
|
+
docUrl: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
docUrl: string;
|
|
8
|
+
}, {
|
|
9
|
+
docUrl: string;
|
|
10
|
+
}>;
|
|
11
|
+
type InputSchemaType = z.infer<typeof inputSchemaZodObject>;
|
|
12
|
+
export declare class DocFetchTool extends Tool<InputSchemaType> {
|
|
13
|
+
constructor(mcpServer: McpServer);
|
|
14
|
+
handler({ docUrl }: InputSchemaType): Promise<TextContentResponse>;
|
|
15
|
+
register(): RegisteredTool;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { Tool } from '../../types.js';
|
|
3
|
+
import { formatTextContents } from '../../utils/content.js';
|
|
4
|
+
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
5
|
+
import { docUrl } from './constants.js';
|
|
6
|
+
import { http } from '@hubspot/local-dev-lib/http/unauthed';
|
|
7
|
+
import { isHubSpotHttpError } from '@hubspot/local-dev-lib/errors/index';
|
|
8
|
+
const inputSchema = {
|
|
9
|
+
docUrl,
|
|
10
|
+
};
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
12
|
+
const inputSchemaZodObject = z.object({
|
|
13
|
+
...inputSchema,
|
|
14
|
+
});
|
|
15
|
+
const toolName = 'fetch-doc';
|
|
16
|
+
export class DocFetchTool extends Tool {
|
|
17
|
+
constructor(mcpServer) {
|
|
18
|
+
super(mcpServer);
|
|
19
|
+
}
|
|
20
|
+
async handler({ docUrl }) {
|
|
21
|
+
await trackToolUsage(toolName);
|
|
22
|
+
try {
|
|
23
|
+
// Append .md extension to the URL
|
|
24
|
+
const markdownUrl = `${docUrl}.md`;
|
|
25
|
+
const response = await http.get({
|
|
26
|
+
url: markdownUrl,
|
|
27
|
+
});
|
|
28
|
+
const content = response.data;
|
|
29
|
+
if (!content || content.trim().length === 0) {
|
|
30
|
+
return formatTextContents('Document is empty or contains no content.');
|
|
31
|
+
}
|
|
32
|
+
return formatTextContents(content);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
if (isHubSpotHttpError(error)) {
|
|
36
|
+
return formatTextContents(error.toString());
|
|
37
|
+
}
|
|
38
|
+
const errorMessage = `Error fetching documentation: ${error instanceof Error ? error.message : String(error)}`;
|
|
39
|
+
return formatTextContents(errorMessage);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
register() {
|
|
43
|
+
return this.mcpServer.registerTool(toolName, {
|
|
44
|
+
title: 'Fetch HubSpot Developer Documentation (single file)',
|
|
45
|
+
description: 'Always use this immediately after `search-docs` and before creating a plan, writing code, or answering technical questions. This tool retrieves the full, authoritative content of a HubSpot Developer Documentation page from its URL, ensuring responses are accurate, up-to-date, and grounded in the official docs.',
|
|
46
|
+
inputSchema,
|
|
47
|
+
}, this.handler);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import z from 'zod';
|
|
3
|
+
import { TextContentResponse, Tool } from '../../types.js';
|
|
4
|
+
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
|
+
absoluteCurrentWorkingDirectory: z.ZodString;
|
|
6
|
+
docsSearchQuery: z.ZodString;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
absoluteCurrentWorkingDirectory: string;
|
|
9
|
+
docsSearchQuery: string;
|
|
10
|
+
}, {
|
|
11
|
+
absoluteCurrentWorkingDirectory: string;
|
|
12
|
+
docsSearchQuery: string;
|
|
13
|
+
}>;
|
|
14
|
+
export interface DocsSearchResponse {
|
|
15
|
+
results: {
|
|
16
|
+
title: string;
|
|
17
|
+
content: string;
|
|
18
|
+
description: string;
|
|
19
|
+
url: string;
|
|
20
|
+
score: number;
|
|
21
|
+
}[];
|
|
22
|
+
}
|
|
23
|
+
type InputSchemaType = z.infer<typeof inputSchemaZodObject>;
|
|
24
|
+
export declare class DocsSearchTool extends Tool<InputSchemaType> {
|
|
25
|
+
constructor(mcpServer: McpServer);
|
|
26
|
+
handler({ absoluteCurrentWorkingDirectory, docsSearchQuery, }: InputSchemaType): Promise<TextContentResponse>;
|
|
27
|
+
register(): RegisteredTool;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { http } from '@hubspot/local-dev-lib/http';
|
|
2
|
+
import z from 'zod';
|
|
3
|
+
import { Tool } from '../../types.js';
|
|
4
|
+
import { formatTextContents } from '../../utils/content.js';
|
|
5
|
+
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
6
|
+
import { absoluteCurrentWorkingDirectory, docsSearchQuery, } from './constants.js';
|
|
7
|
+
import { isHubSpotHttpError } from '@hubspot/local-dev-lib/errors/index';
|
|
8
|
+
import { getAccountIdFromCliConfig } from '../../utils/cliConfig.js';
|
|
9
|
+
const inputSchema = {
|
|
10
|
+
absoluteCurrentWorkingDirectory,
|
|
11
|
+
docsSearchQuery,
|
|
12
|
+
};
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
|
+
const inputSchemaZodObject = z.object({
|
|
15
|
+
...inputSchema,
|
|
16
|
+
});
|
|
17
|
+
const toolName = 'search-docs';
|
|
18
|
+
export class DocsSearchTool extends Tool {
|
|
19
|
+
constructor(mcpServer) {
|
|
20
|
+
super(mcpServer);
|
|
21
|
+
}
|
|
22
|
+
async handler({ absoluteCurrentWorkingDirectory, docsSearchQuery, }) {
|
|
23
|
+
await trackToolUsage(toolName, { mode: docsSearchQuery });
|
|
24
|
+
const accountId = getAccountIdFromCliConfig(absoluteCurrentWorkingDirectory);
|
|
25
|
+
if (!accountId) {
|
|
26
|
+
const authErrorMessage = `No account ID found. Please run \`hs account auth\` to configure an account, or set a default account with \`hs account use <account>\``;
|
|
27
|
+
return formatTextContents(authErrorMessage);
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const response = await http.post(accountId, {
|
|
31
|
+
url: 'dev/docs/llms/v1/docs-search',
|
|
32
|
+
data: {
|
|
33
|
+
query: docsSearchQuery,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
const results = response.data.results;
|
|
37
|
+
if (!results || results.length === 0) {
|
|
38
|
+
return formatTextContents('No documentation found for your query.');
|
|
39
|
+
}
|
|
40
|
+
const formattedResults = results
|
|
41
|
+
.map(result => `**${result.title}**\n${result.description}\nURL: ${result.url}\nScore: ${result.score}\n\n${result.content}\n---\n`)
|
|
42
|
+
.join('\n');
|
|
43
|
+
const successMessage = `Found ${results.length} documentation results:\n\n${formattedResults}`;
|
|
44
|
+
return formatTextContents(successMessage);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (isHubSpotHttpError(error)) {
|
|
48
|
+
// Handle different status codes
|
|
49
|
+
return formatTextContents(error.toString());
|
|
50
|
+
}
|
|
51
|
+
const errorMessage = `Error searching documentation: ${error instanceof Error ? error.message : String(error)}`;
|
|
52
|
+
return formatTextContents(errorMessage);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
register() {
|
|
56
|
+
return this.mcpServer.registerTool(toolName, {
|
|
57
|
+
title: 'Search HubSpot Developer Documentation',
|
|
58
|
+
description: 'Use this first whenever you need details about HubSpot APIs, SDKs, integrations, or developer platform features. This searches the official HubSpot Developer Documentation and returns the most relevant pages, each with a URL for use in `fetch-doc`. Always follow this with a fetch to get the full, authoritative content before making plans or writing answers.',
|
|
59
|
+
inputSchema,
|
|
60
|
+
}, this.handler);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TextContentResponse, Tool } from '../../types.js';
|
|
2
|
+
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
|
+
absoluteCurrentWorkingDirectory: z.ZodString;
|
|
6
|
+
platformVersion: z.ZodString;
|
|
7
|
+
featureType: z.ZodString;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
platformVersion: string;
|
|
10
|
+
absoluteCurrentWorkingDirectory: string;
|
|
11
|
+
featureType: string;
|
|
12
|
+
}, {
|
|
13
|
+
platformVersion: string;
|
|
14
|
+
absoluteCurrentWorkingDirectory: string;
|
|
15
|
+
featureType: string;
|
|
16
|
+
}>;
|
|
17
|
+
type InputSchemaType = z.infer<typeof inputSchemaZodObject>;
|
|
18
|
+
export declare class GetConfigValuesTool extends Tool<InputSchemaType> {
|
|
19
|
+
constructor(mcpServer: McpServer);
|
|
20
|
+
handler({ absoluteCurrentWorkingDirectory, platformVersion, featureType, }: InputSchemaType): Promise<TextContentResponse>;
|
|
21
|
+
register(): RegisteredTool;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Tool } from '../../types.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { formatTextContents } from '../../utils/content.js';
|
|
4
|
+
import { absoluteCurrentWorkingDirectory } from './constants.js';
|
|
5
|
+
import { getIntermediateRepresentationSchema, mapToInternalType, } from '@hubspot/project-parsing-lib';
|
|
6
|
+
import { useV3Api } from '../../../lib/projects/platformVersion.js';
|
|
7
|
+
import { getAccountIdFromCliConfig } from '../../utils/cliConfig.js';
|
|
8
|
+
const inputSchema = {
|
|
9
|
+
absoluteCurrentWorkingDirectory,
|
|
10
|
+
platformVersion: z
|
|
11
|
+
.string()
|
|
12
|
+
.describe('The platform version for the project. Located in the hsproject.json file.'),
|
|
13
|
+
featureType: z
|
|
14
|
+
.string()
|
|
15
|
+
.describe('The type of the component to fetch the JSON schema for. This will be the `type` field in the -hsmeta.json file'),
|
|
16
|
+
};
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
|
+
const inputSchemaZodObject = z.object({
|
|
19
|
+
...inputSchema,
|
|
20
|
+
});
|
|
21
|
+
const toolName = 'get-feature-config-schema';
|
|
22
|
+
export class GetConfigValuesTool extends Tool {
|
|
23
|
+
constructor(mcpServer) {
|
|
24
|
+
super(mcpServer);
|
|
25
|
+
}
|
|
26
|
+
async handler({ absoluteCurrentWorkingDirectory, platformVersion, featureType, }) {
|
|
27
|
+
try {
|
|
28
|
+
if (!useV3Api(platformVersion)) {
|
|
29
|
+
return formatTextContents(`Can only be used on projects with a minimum platformVersion of 2025.2`);
|
|
30
|
+
}
|
|
31
|
+
const accountId = getAccountIdFromCliConfig(absoluteCurrentWorkingDirectory);
|
|
32
|
+
if (!accountId) {
|
|
33
|
+
const authErrorMessage = `No account ID found. Please run \`hs account auth\` to configure an account, or set a default account with \`hs account use <account>\``;
|
|
34
|
+
return formatTextContents(authErrorMessage);
|
|
35
|
+
}
|
|
36
|
+
const schema = await getIntermediateRepresentationSchema({
|
|
37
|
+
platformVersion,
|
|
38
|
+
projectSourceDir: '',
|
|
39
|
+
accountId,
|
|
40
|
+
});
|
|
41
|
+
const internalComponentType = mapToInternalType(featureType);
|
|
42
|
+
if (schema[internalComponentType]) {
|
|
43
|
+
return formatTextContents(JSON.stringify({ config: schema[internalComponentType] }));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (error) { }
|
|
47
|
+
return formatTextContents(`Unable to locate JSON schema for type ${featureType}`);
|
|
48
|
+
}
|
|
49
|
+
register() {
|
|
50
|
+
return this.mcpServer.registerTool(toolName, {
|
|
51
|
+
title: 'Fetch the JSON Schema for component',
|
|
52
|
+
description: `Fetches and returns the JSON schema for the provided feature 'type' found in -hsmeta.json file.
|
|
53
|
+
This should be called before editing a '-hsmeta.json' file to get the list of possible values and restrictions on those values.
|
|
54
|
+
This will only work for projects with platformVersion 2025.2 and beyond`,
|
|
55
|
+
inputSchema,
|
|
56
|
+
}, this.handler);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TextContentResponse, Tool } from '../../types.js';
|
|
2
|
+
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
|
+
command: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"hs init">, z.ZodLiteral<"hs auth">, z.ZodLiteral<"hs project create">, z.ZodLiteral<"hs project upload">]>>;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
command?: "hs auth" | "hs project upload" | "hs project create" | "hs init" | undefined;
|
|
8
|
+
}, {
|
|
9
|
+
command?: "hs auth" | "hs project upload" | "hs project create" | "hs init" | undefined;
|
|
10
|
+
}>;
|
|
11
|
+
type InputSchemaType = z.infer<typeof inputSchemaZodObject>;
|
|
12
|
+
export declare class GuidedWalkthroughTool extends Tool<InputSchemaType> {
|
|
13
|
+
constructor(mcpServer: McpServer);
|
|
14
|
+
handler({ command }: InputSchemaType): Promise<TextContentResponse>;
|
|
15
|
+
register(): RegisteredTool;
|
|
16
|
+
}
|
|
17
|
+
export {};
|