@hubspot/cli 8.0.11-experimental.0 → 8.0.11-experimental.2

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.
Files changed (595) hide show
  1. package/api/migrate.js +3 -3
  2. package/bin/cli.js +5 -0
  3. package/commands/account/auth.js +12 -22
  4. package/commands/account/clean.js +5 -6
  5. package/commands/account/createOverride.js +7 -7
  6. package/commands/account/info.js +2 -1
  7. package/commands/account/list.js +3 -5
  8. package/commands/account/remove.js +2 -3
  9. package/commands/account/removeOverride.js +8 -10
  10. package/commands/account/rename.js +5 -6
  11. package/commands/account/use.js +8 -19
  12. package/commands/api.d.ts +10 -0
  13. package/commands/api.js +164 -0
  14. package/commands/app/migrate.js +12 -12
  15. package/commands/app/secret/add.js +6 -7
  16. package/commands/app/secret/delete.js +9 -10
  17. package/commands/app/secret/list.js +6 -7
  18. package/commands/app/secret/update.js +8 -9
  19. package/commands/auth.js +12 -12
  20. package/commands/cms/app/create.js +9 -5
  21. package/commands/cms/convertFields.js +8 -8
  22. package/commands/cms/delete.js +2 -3
  23. package/commands/cms/fetch.js +7 -7
  24. package/commands/cms/function/create.js +9 -5
  25. package/commands/cms/function/deploy.js +2 -3
  26. package/commands/cms/function/list.js +11 -7
  27. package/commands/cms/function/logs.js +17 -23
  28. package/commands/cms/function/server.js +2 -3
  29. package/commands/cms/getReactModule.js +7 -8
  30. package/commands/cms/lighthouseScore.js +25 -24
  31. package/commands/cms/lint.js +4 -5
  32. package/commands/cms/list.js +5 -6
  33. package/commands/cms/module/create.js +9 -5
  34. package/commands/cms/module/marketplace-validate.js +7 -8
  35. package/commands/cms/mv.js +2 -3
  36. package/commands/cms/template/create.js +10 -6
  37. package/commands/cms/theme/create.js +5 -5
  38. package/commands/cms/theme/generate-selectors.js +5 -4
  39. package/commands/cms/theme/marketplace-validate.js +8 -9
  40. package/commands/cms/theme/preview.js +16 -8
  41. package/commands/cms/upload.js +15 -12
  42. package/commands/cms/watch.js +5 -5
  43. package/commands/cms/webpack/create.js +5 -5
  44. package/commands/completion.js +3 -5
  45. package/commands/config/migrate.js +6 -7
  46. package/commands/config/set.js +5 -6
  47. package/commands/customObject/create.js +4 -5
  48. package/commands/customObject/createSchema.js +4 -5
  49. package/commands/customObject/deleteSchema.js +4 -5
  50. package/commands/customObject/fetchAllSchemas.js +2 -3
  51. package/commands/customObject/fetchSchema.js +2 -3
  52. package/commands/customObject/listSchemas.js +2 -3
  53. package/commands/customObject/updateSchema.js +4 -5
  54. package/commands/doctor.js +8 -8
  55. package/commands/feedback.js +6 -4
  56. package/commands/filemanager/fetch.js +5 -6
  57. package/commands/filemanager/upload.js +5 -5
  58. package/commands/getStarted.js +16 -18
  59. package/commands/hubdb/clear.js +5 -6
  60. package/commands/hubdb/create.js +4 -5
  61. package/commands/hubdb/delete.js +8 -9
  62. package/commands/hubdb/fetch.js +5 -6
  63. package/commands/hubdb/list.js +16 -14
  64. package/commands/init.js +14 -17
  65. package/commands/mcp/setup.js +5 -6
  66. package/commands/mcp/start.js +2 -3
  67. package/commands/open.js +4 -5
  68. package/commands/project/add.js +13 -8
  69. package/commands/project/create.js +20 -17
  70. package/commands/project/delete.d.ts +7 -0
  71. package/commands/project/delete.js +74 -0
  72. package/commands/project/deploy.js +39 -36
  73. package/commands/project/dev/deprecatedFlow.js +42 -15
  74. package/commands/project/dev/index.d.ts +3 -3
  75. package/commands/project/dev/index.js +29 -34
  76. package/commands/project/dev/unifiedFlow.js +37 -14
  77. package/commands/project/download.js +10 -11
  78. package/commands/project/info.js +19 -19
  79. package/commands/project/installDeps.js +9 -6
  80. package/commands/project/lint.js +11 -8
  81. package/commands/project/list.js +14 -14
  82. package/commands/project/listBuilds.js +8 -6
  83. package/commands/project/logs.js +5 -6
  84. package/commands/project/migrate.js +13 -13
  85. package/commands/project/open.js +5 -6
  86. package/commands/project/profile/add.js +12 -8
  87. package/commands/project/profile/delete.js +15 -11
  88. package/commands/project/updateDeps.js +9 -6
  89. package/commands/project/upload.js +33 -19
  90. package/commands/project/validate.js +12 -12
  91. package/commands/project/watch.js +22 -22
  92. package/commands/project.js +8 -3
  93. package/commands/sandbox/create.js +15 -15
  94. package/commands/sandbox/delete.js +13 -14
  95. package/commands/secret/addSecret.js +6 -7
  96. package/commands/secret/deleteSecret.js +5 -6
  97. package/commands/secret/listSecret.js +2 -3
  98. package/commands/secret/updateSecret.js +4 -5
  99. package/commands/testAccount/create.d.ts +1 -1
  100. package/commands/testAccount/create.js +24 -20
  101. package/commands/testAccount/createConfig.js +7 -8
  102. package/commands/testAccount/delete.js +27 -18
  103. package/commands/testAccount/importData.js +6 -7
  104. package/commands/upgrade.js +9 -10
  105. package/lang/en.d.ts +95 -7
  106. package/lang/en.js +98 -13
  107. package/lib/accountAuth.js +2 -2
  108. package/lib/app/migrate.js +7 -0
  109. package/lib/buildAccount.js +3 -3
  110. package/lib/constants.d.ts +0 -1
  111. package/lib/constants.js +0 -1
  112. package/lib/doctor/Diagnosis.js +5 -5
  113. package/lib/doctor/Doctor.js +2 -2
  114. package/lib/errorHandlers/index.js +4 -3
  115. package/lib/errorHandlers/suppressError.js +4 -0
  116. package/lib/errors/PromptExitError.d.ts +4 -2
  117. package/lib/errors/PromptExitError.js +3 -0
  118. package/lib/getStartedV2Actions.js +2 -2
  119. package/lib/hasFeature.js +1 -2
  120. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  121. package/lib/process.d.ts +1 -1
  122. package/lib/process.js +10 -3
  123. package/lib/projects/ProjectLogsManager.js +2 -2
  124. package/lib/projects/create/index.js +2 -2
  125. package/lib/projects/create/legacy.js +2 -2
  126. package/lib/projects/create/v2.js +3 -4
  127. package/lib/projects/delete.d.ts +13 -0
  128. package/lib/projects/delete.js +193 -0
  129. package/lib/projects/deploy.d.ts +1 -1
  130. package/lib/projects/deploy.js +2 -2
  131. package/lib/projects/localDev/AppDevModeInterface.js +11 -11
  132. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +3 -1
  133. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +2 -2
  134. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  135. package/lib/projects/localDev/DevSessionManager.js +31 -19
  136. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +3 -0
  137. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +16 -12
  138. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  139. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  140. package/lib/projects/localDev/LocalDevState.js +3 -1
  141. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  142. package/lib/projects/localDev/helpers/account.js +16 -19
  143. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  144. package/lib/projects/localDev/helpers/process.js +4 -10
  145. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  146. package/lib/projects/localDev/helpers/project.js +31 -15
  147. package/lib/projects/projectInfo.d.ts +3 -20
  148. package/lib/projects/projectInfo.js +32 -54
  149. package/lib/projects/projectProfiles.d.ts +1 -2
  150. package/lib/projects/projectProfiles.js +5 -17
  151. package/lib/projects/upload.js +22 -3
  152. package/lib/projects/workspaces.d.ts +42 -0
  153. package/lib/projects/workspaces.js +350 -0
  154. package/lib/prompts/createApiSamplePrompt.js +4 -0
  155. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  156. package/lib/prompts/projectProfilePrompt.js +46 -0
  157. package/lib/prompts/promptUtils.js +3 -2
  158. package/lib/prompts/selectHubDBTablePrompt.js +2 -2
  159. package/lib/prompts/selectPublicAppForMigrationPrompt.js +2 -2
  160. package/lib/theme/cmsDevServerProcess.d.ts +2 -0
  161. package/lib/theme/cmsDevServerProcess.js +8 -7
  162. package/lib/ui/SpinniesManager.d.ts +1 -0
  163. package/lib/ui/SpinniesManager.js +20 -6
  164. package/lib/ui/spinniesUtils.d.ts +0 -1
  165. package/lib/ui/spinniesUtils.js +6 -16
  166. package/lib/usageTracking.d.ts +3 -4
  167. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  168. package/lib/yargs/makeYargsBuilder.js +33 -0
  169. package/lib/yargs/makeYargsHandlerWithUsageTracking.d.ts +3 -0
  170. package/lib/yargs/makeYargsHandlerWithUsageTracking.js +95 -0
  171. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  172. package/lib/yargs/strictEnforceBoolean.js +13 -0
  173. package/lib/yargsUtils.d.ts +3 -16
  174. package/lib/yargsUtils.js +3 -48
  175. package/mcp-server/Tool.d.ts +15 -0
  176. package/mcp-server/Tool.js +53 -0
  177. package/mcp-server/server.js +5 -3
  178. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +4 -2
  179. package/mcp-server/tools/cms/HsCreateFunctionTool.js +8 -6
  180. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -2
  181. package/mcp-server/tools/cms/HsCreateModuleTool.js +8 -6
  182. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +5 -3
  183. package/mcp-server/tools/cms/HsCreateTemplateTool.js +8 -6
  184. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -2
  185. package/mcp-server/tools/cms/HsFunctionLogsTool.js +8 -6
  186. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +4 -2
  187. package/mcp-server/tools/cms/HsListFunctionsTool.js +8 -6
  188. package/mcp-server/tools/cms/HsListTool.d.ts +4 -2
  189. package/mcp-server/tools/cms/HsListTool.js +8 -6
  190. package/mcp-server/tools/index.d.ts +3 -2
  191. package/mcp-server/tools/index.js +22 -22
  192. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +6 -4
  193. package/mcp-server/tools/project/AddFeatureToProjectTool.js +8 -6
  194. package/mcp-server/tools/project/CreateProjectTool.d.ts +6 -4
  195. package/mcp-server/tools/project/CreateProjectTool.js +9 -7
  196. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +4 -2
  197. package/mcp-server/tools/project/CreateTestAccountTool.js +20 -8
  198. package/mcp-server/tools/project/DeployProjectTool.d.ts +4 -2
  199. package/mcp-server/tools/project/DeployProjectTool.js +4 -6
  200. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  201. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  202. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  203. package/mcp-server/tools/project/DocsSearchTool.js +32 -9
  204. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +4 -2
  205. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +8 -6
  206. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +4 -2
  207. package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
  208. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +4 -2
  209. package/mcp-server/tools/project/GetBuildLogsTool.js +8 -6
  210. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +4 -2
  211. package/mcp-server/tools/project/GetBuildStatusTool.js +8 -6
  212. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -2
  213. package/mcp-server/tools/project/GetConfigValuesTool.js +12 -7
  214. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +4 -2
  215. package/mcp-server/tools/project/GuidedWalkthroughTool.js +4 -6
  216. package/mcp-server/tools/project/UploadProjectTools.d.ts +4 -2
  217. package/mcp-server/tools/project/UploadProjectTools.js +9 -7
  218. package/mcp-server/tools/project/ValidateProjectTool.d.ts +4 -2
  219. package/mcp-server/tools/project/ValidateProjectTool.js +8 -6
  220. package/mcp-server/tools/project/constants.d.ts +2 -2
  221. package/mcp-server/types.d.ts +0 -7
  222. package/mcp-server/types.js +1 -13
  223. package/mcp-server/utils/logger.d.ts +10 -0
  224. package/mcp-server/utils/logger.js +29 -0
  225. package/mcp-server/utils/toolUsageTracking.js +0 -2
  226. package/package.json +12 -7
  227. package/types/LocalDev.d.ts +5 -0
  228. package/types/Projects.d.ts +19 -0
  229. package/types/Yargs.d.ts +18 -1
  230. package/api/__tests__/migrate.test.d.ts +0 -1
  231. package/api/__tests__/migrate.test.js +0 -199
  232. package/commands/__tests__/account.test.d.ts +0 -1
  233. package/commands/__tests__/account.test.js +0 -69
  234. package/commands/__tests__/auth.test.d.ts +0 -1
  235. package/commands/__tests__/auth.test.js +0 -43
  236. package/commands/__tests__/cms.test.d.ts +0 -1
  237. package/commands/__tests__/cms.test.js +0 -87
  238. package/commands/__tests__/config.test.d.ts +0 -1
  239. package/commands/__tests__/config.test.js +0 -44
  240. package/commands/__tests__/customObject.test.d.ts +0 -1
  241. package/commands/__tests__/customObject.test.js +0 -68
  242. package/commands/__tests__/doctor.test.d.ts +0 -1
  243. package/commands/__tests__/doctor.test.js +0 -132
  244. package/commands/__tests__/feedback.test.d.ts +0 -1
  245. package/commands/__tests__/feedback.test.js +0 -24
  246. package/commands/__tests__/filemanager.test.d.ts +0 -1
  247. package/commands/__tests__/filemanager.test.js +0 -45
  248. package/commands/__tests__/getStarted.test.d.ts +0 -1
  249. package/commands/__tests__/getStarted.test.js +0 -173
  250. package/commands/__tests__/hubdb.test.d.ts +0 -1
  251. package/commands/__tests__/hubdb.test.js +0 -50
  252. package/commands/__tests__/init.test.d.ts +0 -1
  253. package/commands/__tests__/init.test.js +0 -42
  254. package/commands/__tests__/mcp.test.d.ts +0 -1
  255. package/commands/__tests__/mcp.test.js +0 -46
  256. package/commands/__tests__/open.test.d.ts +0 -1
  257. package/commands/__tests__/open.test.js +0 -58
  258. package/commands/__tests__/project.test.d.ts +0 -1
  259. package/commands/__tests__/project.test.js +0 -125
  260. package/commands/__tests__/sandbox.test.d.ts +0 -1
  261. package/commands/__tests__/sandbox.test.js +0 -44
  262. package/commands/__tests__/secret.test.d.ts +0 -1
  263. package/commands/__tests__/secret.test.js +0 -49
  264. package/commands/__tests__/testAccount.test.d.ts +0 -1
  265. package/commands/__tests__/testAccount.test.js +0 -57
  266. package/commands/__tests__/upgrade.test.d.ts +0 -1
  267. package/commands/__tests__/upgrade.test.js +0 -309
  268. package/commands/account/__tests__/auth.test.d.ts +0 -1
  269. package/commands/account/__tests__/auth.test.js +0 -206
  270. package/commands/account/__tests__/clean.test.d.ts +0 -1
  271. package/commands/account/__tests__/clean.test.js +0 -28
  272. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  273. package/commands/account/__tests__/createOverride.test.js +0 -32
  274. package/commands/account/__tests__/info.test.d.ts +0 -1
  275. package/commands/account/__tests__/info.test.js +0 -28
  276. package/commands/account/__tests__/list.test.d.ts +0 -1
  277. package/commands/account/__tests__/list.test.js +0 -153
  278. package/commands/account/__tests__/remove.test.d.ts +0 -1
  279. package/commands/account/__tests__/remove.test.js +0 -36
  280. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  281. package/commands/account/__tests__/removeOverride.js +0 -25
  282. package/commands/account/__tests__/rename.test.d.ts +0 -1
  283. package/commands/account/__tests__/rename.test.js +0 -82
  284. package/commands/account/__tests__/use.test.d.ts +0 -1
  285. package/commands/account/__tests__/use.test.js +0 -170
  286. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  287. package/commands/app/__tests__/migrate.test.js +0 -111
  288. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  289. package/commands/app/secret/__tests__/add.test.js +0 -140
  290. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  291. package/commands/app/secret/__tests__/delete.test.js +0 -28
  292. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  293. package/commands/app/secret/__tests__/list.test.js +0 -25
  294. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  295. package/commands/app/secret/__tests__/update.test.js +0 -28
  296. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  297. package/commands/cms/__tests__/delete.test.js +0 -39
  298. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  299. package/commands/cms/__tests__/fetch.test.js +0 -156
  300. package/commands/cms/__tests__/function.test.d.ts +0 -1
  301. package/commands/cms/__tests__/function.test.js +0 -50
  302. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  303. package/commands/cms/__tests__/lint.test.js +0 -33
  304. package/commands/cms/__tests__/list.test.d.ts +0 -1
  305. package/commands/cms/__tests__/list.test.js +0 -42
  306. package/commands/cms/__tests__/module.test.d.ts +0 -1
  307. package/commands/cms/__tests__/module.test.js +0 -45
  308. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  309. package/commands/cms/__tests__/mv.test.js +0 -46
  310. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  311. package/commands/cms/__tests__/theme.test.js +0 -54
  312. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  313. package/commands/cms/__tests__/upload.test.js +0 -312
  314. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  315. package/commands/cms/__tests__/watch.test.js +0 -204
  316. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  317. package/commands/cms/function/__tests__/logs.test.js +0 -70
  318. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  319. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  320. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  321. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  322. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  323. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  324. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  325. package/commands/customObject/__tests__/create.test.js +0 -40
  326. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  327. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  328. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  329. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  330. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  331. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  332. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  333. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  334. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  335. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  336. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  337. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  338. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  339. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  340. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  341. package/commands/filemanager/__tests__/upload.test.js +0 -191
  342. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  343. package/commands/hubdb/__tests__/clear.test.js +0 -28
  344. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  345. package/commands/hubdb/__tests__/create.test.js +0 -28
  346. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  347. package/commands/hubdb/__tests__/delete.test.js +0 -28
  348. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  349. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  350. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  351. package/commands/hubdb/__tests__/list.test.js +0 -88
  352. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  353. package/commands/mcp/__tests__/setup.test.js +0 -26
  354. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  355. package/commands/mcp/__tests__/start.test.js +0 -144
  356. package/commands/project/__tests__/add.test.d.ts +0 -1
  357. package/commands/project/__tests__/add.test.js +0 -107
  358. package/commands/project/__tests__/create.test.d.ts +0 -1
  359. package/commands/project/__tests__/create.test.js +0 -97
  360. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  361. package/commands/project/__tests__/deploy.test.js +0 -307
  362. package/commands/project/__tests__/dev.test.d.ts +0 -1
  363. package/commands/project/__tests__/dev.test.js +0 -273
  364. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  365. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  366. package/commands/project/__tests__/download.test.d.ts +0 -1
  367. package/commands/project/__tests__/download.test.js +0 -39
  368. package/commands/project/__tests__/info.test.d.ts +0 -1
  369. package/commands/project/__tests__/info.test.js +0 -145
  370. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  371. package/commands/project/__tests__/installDeps.test.js +0 -140
  372. package/commands/project/__tests__/lint.test.d.ts +0 -1
  373. package/commands/project/__tests__/lint.test.js +0 -704
  374. package/commands/project/__tests__/list.test.d.ts +0 -1
  375. package/commands/project/__tests__/list.test.js +0 -31
  376. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  377. package/commands/project/__tests__/listBuilds.test.js +0 -38
  378. package/commands/project/__tests__/logs.test.d.ts +0 -1
  379. package/commands/project/__tests__/logs.test.js +0 -202
  380. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  381. package/commands/project/__tests__/migrate.test.js +0 -106
  382. package/commands/project/__tests__/open.test.d.ts +0 -1
  383. package/commands/project/__tests__/open.test.js +0 -39
  384. package/commands/project/__tests__/profile.test.d.ts +0 -1
  385. package/commands/project/__tests__/profile.test.js +0 -42
  386. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  387. package/commands/project/__tests__/updateDeps.test.js +0 -140
  388. package/commands/project/__tests__/upload.test.d.ts +0 -1
  389. package/commands/project/__tests__/upload.test.js +0 -234
  390. package/commands/project/__tests__/validate.test.d.ts +0 -1
  391. package/commands/project/__tests__/validate.test.js +0 -381
  392. package/commands/project/__tests__/watch.test.d.ts +0 -1
  393. package/commands/project/__tests__/watch.test.js +0 -35
  394. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  395. package/commands/sandbox/__tests__/create.test.js +0 -198
  396. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  397. package/commands/sandbox/__tests__/delete.test.js +0 -31
  398. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  399. package/commands/secret/__tests__/addSecret.test.js +0 -162
  400. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  401. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  402. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  403. package/commands/secret/__tests__/listSecret.test.js +0 -29
  404. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  405. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  406. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  407. package/commands/testAccount/__tests__/create.test.js +0 -106
  408. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  409. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  410. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  411. package/commands/testAccount/__tests__/delete.test.js +0 -29
  412. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  413. package/commands/testAccount/__tests__/importData.test.js +0 -92
  414. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  415. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  416. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  417. package/lib/__tests__/accountAuth.test.js +0 -258
  418. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  419. package/lib/__tests__/accountTypes.test.js +0 -98
  420. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  421. package/lib/__tests__/buildAccount.test.js +0 -211
  422. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  423. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  424. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  425. package/lib/__tests__/commandSuggestion.test.js +0 -121
  426. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  427. package/lib/__tests__/commonOpts.test.js +0 -80
  428. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  429. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  430. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  431. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  432. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  433. package/lib/__tests__/hasFeature.test.js +0 -167
  434. package/lib/__tests__/http.test.d.ts +0 -1
  435. package/lib/__tests__/http.test.js +0 -40
  436. package/lib/__tests__/importData.test.d.ts +0 -1
  437. package/lib/__tests__/importData.test.js +0 -98
  438. package/lib/__tests__/npmCli.test.d.ts +0 -1
  439. package/lib/__tests__/npmCli.test.js +0 -84
  440. package/lib/__tests__/oauth.test.d.ts +0 -1
  441. package/lib/__tests__/oauth.test.js +0 -109
  442. package/lib/__tests__/parsing.test.d.ts +0 -1
  443. package/lib/__tests__/parsing.test.js +0 -34
  444. package/lib/__tests__/polling.test.d.ts +0 -1
  445. package/lib/__tests__/polling.test.js +0 -76
  446. package/lib/__tests__/process.test.d.ts +0 -1
  447. package/lib/__tests__/process.test.js +0 -89
  448. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  449. package/lib/__tests__/sandboxes.test.js +0 -128
  450. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  451. package/lib/__tests__/serverlessLogs.test.js +0 -163
  452. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  453. package/lib/__tests__/usageTracking.test.js +0 -197
  454. package/lib/__tests__/validation.test.d.ts +0 -1
  455. package/lib/__tests__/validation.test.js +0 -143
  456. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  457. package/lib/__tests__/yargsUtils.test.js +0 -124
  458. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  459. package/lib/app/__tests__/migrate.test.js +0 -638
  460. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  461. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  462. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  463. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  464. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  465. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  466. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  467. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  468. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  469. package/lib/mcp/__tests__/setup.test.js +0 -523
  470. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  471. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  472. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  473. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  474. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  475. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  476. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  477. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  478. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  479. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  480. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  481. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  482. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  483. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  484. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  485. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  486. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  487. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  488. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  489. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  490. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  491. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  492. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  493. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  494. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  495. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  496. package/lib/projects/__tests__/components.test.d.ts +0 -1
  497. package/lib/projects/__tests__/components.test.js +0 -440
  498. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  499. package/lib/projects/__tests__/deploy.test.js +0 -231
  500. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  501. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  502. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  503. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  504. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  505. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  506. package/lib/projects/__tests__/projectInfo.test.d.ts +0 -1
  507. package/lib/projects/__tests__/projectInfo.test.js +0 -114
  508. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  509. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  510. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  511. package/lib/projects/__tests__/projects.test.js +0 -58
  512. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  513. package/lib/projects/__tests__/structure.test.js +0 -210
  514. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  515. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  516. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  517. package/lib/projects/__tests__/upload.test.js +0 -183
  518. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  519. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  520. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  521. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  522. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  523. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  524. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  525. package/lib/projects/create/__tests__/v2.test.js +0 -257
  526. package/lib/projects/platformVersion.d.ts +0 -9
  527. package/lib/projects/platformVersion.js +0 -39
  528. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  529. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  530. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  531. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  532. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  533. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  534. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  535. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  536. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  537. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  538. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  539. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  540. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  541. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  542. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  543. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  544. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  545. package/lib/theme/__tests__/migrate.test.js +0 -247
  546. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  547. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  548. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  549. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  550. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  551. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  552. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  553. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  554. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  555. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  556. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  557. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  558. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  559. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  560. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  561. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  562. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  563. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  564. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  565. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -131
  566. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  567. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  568. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  569. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  570. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  571. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  572. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  573. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  574. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  575. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  576. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  577. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  578. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  579. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  580. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  581. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  582. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  583. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  584. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  585. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  586. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  587. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  588. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  589. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  590. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  591. package/mcp-server/utils/__tests__/command.test.js +0 -275
  592. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  593. package/mcp-server/utils/__tests__/content.test.js +0 -164
  594. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  595. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
@@ -1,209 +0,0 @@
1
- import { GetConfigValuesTool } from '../GetConfigValuesTool.js';
2
- import { getIntermediateRepresentationSchema } from '@hubspot/project-parsing-lib/schema';
3
- import { mapToInternalType } from '@hubspot/project-parsing-lib/transform';
4
- import { getConfigDefaultAccountIfExists } from '@hubspot/local-dev-lib/config';
5
- import { mcpFeedbackRequest } from '../../../utils/feedbackTracking.js';
6
- import { trackToolUsage } from '../../../utils/toolUsageTracking.js';
7
- vi.mock('@modelcontextprotocol/sdk/server/mcp.js');
8
- vi.mock('@hubspot/project-parsing-lib/schema');
9
- vi.mock('@hubspot/project-parsing-lib/transform');
10
- vi.mock('@hubspot/local-dev-lib/config');
11
- vi.mock('../../../utils/toolUsageTracking');
12
- vi.mock('../../../utils/feedbackTracking');
13
- const mockTrackToolUsage = trackToolUsage;
14
- const mockMcpFeedbackRequest = mcpFeedbackRequest;
15
- const mockGetIntermediateRepresentationSchema = getIntermediateRepresentationSchema;
16
- const mockMapToInternalType = mapToInternalType;
17
- const mockGetConfigDefaultAccountIfExists = getConfigDefaultAccountIfExists;
18
- describe('mcp-server/tools/project/GetConfigValuesTool', () => {
19
- let mockMcpServer;
20
- let tool;
21
- let mockRegisteredTool;
22
- beforeEach(() => {
23
- // @ts-expect-error Not mocking the whole thing
24
- mockMcpServer = {
25
- registerTool: vi.fn(),
26
- };
27
- mockRegisteredTool = {};
28
- mockMcpServer.registerTool.mockReturnValue(mockRegisteredTool);
29
- mockMcpFeedbackRequest.mockResolvedValue('');
30
- mockTrackToolUsage.mockResolvedValue(undefined);
31
- tool = new GetConfigValuesTool(mockMcpServer);
32
- });
33
- describe('register', () => {
34
- it('should register tool with correct parameters', () => {
35
- const result = tool.register();
36
- expect(mockMcpServer.registerTool).toHaveBeenCalledWith('get-feature-config-schema', expect.objectContaining({
37
- title: 'Fetch the JSON Schema for component',
38
- description: expect.stringContaining('Fetches and returns the JSON schema for the provided feature'),
39
- inputSchema: expect.objectContaining({
40
- platformVersion: expect.objectContaining({
41
- describe: expect.any(Function),
42
- }),
43
- featureType: expect.objectContaining({
44
- describe: expect.any(Function),
45
- }),
46
- }),
47
- }), expect.any(Function));
48
- expect(result).toBe(mockRegisteredTool);
49
- });
50
- });
51
- describe('handler', () => {
52
- const input = {
53
- platformVersion: '2025.2',
54
- featureType: 'card',
55
- absoluteCurrentWorkingDirectory: '/foo',
56
- };
57
- beforeEach(() => {
58
- mockGetConfigDefaultAccountIfExists.mockReturnValue({
59
- accountId: 123456789,
60
- });
61
- });
62
- it('should return config schema when component type exists', async () => {
63
- const mockSchema = {
64
- 'internal-card-type': {
65
- type: 'object',
66
- properties: {
67
- title: { type: 'string' },
68
- description: { type: 'string' },
69
- },
70
- },
71
- };
72
- mockGetIntermediateRepresentationSchema.mockResolvedValue(mockSchema);
73
- mockMapToInternalType.mockReturnValue('internal-card-type');
74
- const result = await tool.handler(input);
75
- expect(mockGetConfigDefaultAccountIfExists).toHaveBeenCalled();
76
- expect(mockGetIntermediateRepresentationSchema).toHaveBeenCalledWith({
77
- platformVersion: '2025.2',
78
- projectSourceDir: '',
79
- accountId: 123456789,
80
- });
81
- expect(mockMapToInternalType).toHaveBeenCalledWith('card');
82
- expect(result).toEqual({
83
- content: [
84
- {
85
- type: 'text',
86
- text: JSON.stringify({
87
- config: {
88
- type: 'object',
89
- properties: {
90
- title: { type: 'string' },
91
- description: { type: 'string' },
92
- },
93
- },
94
- }),
95
- },
96
- ],
97
- });
98
- });
99
- it('should return error message when component type does not exist in schema', async () => {
100
- const mockSchema = {
101
- 'other-type': {
102
- type: 'object',
103
- properties: {},
104
- },
105
- };
106
- mockGetIntermediateRepresentationSchema.mockResolvedValue(mockSchema);
107
- mockMapToInternalType.mockReturnValue('internal-card-type');
108
- const result = await tool.handler(input);
109
- expect(result).toEqual({
110
- content: [
111
- {
112
- type: 'text',
113
- text: 'Unable to locate JSON schema for type card',
114
- },
115
- ],
116
- });
117
- });
118
- it('should return error message when getIntermediateRepresentationSchema throws', async () => {
119
- mockGetIntermediateRepresentationSchema.mockRejectedValue(new Error('Schema fetch failed'));
120
- mockMapToInternalType.mockReturnValue('internal-card-type');
121
- const result = await tool.handler(input);
122
- expect(result).toEqual({
123
- content: [
124
- {
125
- type: 'text',
126
- text: 'Unable to locate JSON schema for type card',
127
- },
128
- ],
129
- });
130
- });
131
- it('should return error message when mapToInternalType throws', async () => {
132
- const mockSchema = {};
133
- mockGetIntermediateRepresentationSchema.mockResolvedValue(mockSchema);
134
- mockMapToInternalType.mockImplementation(() => {
135
- throw new Error('Mapping failed');
136
- });
137
- const result = await tool.handler(input);
138
- expect(result).toEqual({
139
- content: [
140
- {
141
- type: 'text',
142
- text: 'Unable to locate JSON schema for type card',
143
- },
144
- ],
145
- });
146
- });
147
- it('should handle null account id', async () => {
148
- mockGetConfigDefaultAccountIfExists.mockReturnValue(undefined);
149
- const result = await tool.handler(input);
150
- expect(result).toEqual({
151
- content: [
152
- {
153
- type: 'text',
154
- text: 'No account ID found. Please run `hs account auth` to configure an account, or set a default account with `hs account use <account>`',
155
- },
156
- ],
157
- });
158
- });
159
- it('should handle empty schema object', async () => {
160
- const mockSchema = {};
161
- mockGetIntermediateRepresentationSchema.mockResolvedValue(mockSchema);
162
- mockMapToInternalType.mockReturnValue('internal-card-type');
163
- const result = await tool.handler(input);
164
- expect(result).toEqual({
165
- content: [
166
- {
167
- type: 'text',
168
- text: 'Unable to locate JSON schema for type card',
169
- },
170
- ],
171
- });
172
- });
173
- it('should handle complex nested schema structures', async () => {
174
- const complexSchema = {
175
- 'internal-card-type': {
176
- type: 'object',
177
- properties: {
178
- title: { type: 'string', maxLength: 100 },
179
- metadata: {
180
- type: 'object',
181
- properties: {
182
- author: { type: 'string' },
183
- tags: {
184
- type: 'array',
185
- items: { type: 'string' },
186
- },
187
- },
188
- required: ['author'],
189
- },
190
- },
191
- required: ['title'],
192
- },
193
- };
194
- mockGetIntermediateRepresentationSchema.mockResolvedValue(complexSchema);
195
- mockMapToInternalType.mockReturnValue('internal-card-type');
196
- const result = await tool.handler(input);
197
- expect(result).toEqual({
198
- content: [
199
- {
200
- type: 'text',
201
- text: JSON.stringify({
202
- config: complexSchema['internal-card-type'],
203
- }),
204
- },
205
- ],
206
- });
207
- });
208
- });
209
- });
@@ -1,158 +0,0 @@
1
- import { GuidedWalkthroughTool } from '../GuidedWalkthroughTool.js';
2
- import { execAsync } from '../../../utils/command.js';
3
- import { mcpFeedbackRequest } from '../../../utils/feedbackTracking.js';
4
- import { trackToolUsage } from '../../../utils/toolUsageTracking.js';
5
- vi.mock('@modelcontextprotocol/sdk/server/mcp.js');
6
- vi.mock('../../../utils/command');
7
- vi.mock('../../../utils/toolUsageTracking');
8
- vi.mock('../../../utils/feedbackTracking');
9
- const mockTrackToolUsage = trackToolUsage;
10
- const mockExecAsync = execAsync;
11
- const mockMcpFeedbackRequest = mcpFeedbackRequest;
12
- describe('mcp-server/tools/project/GuidedWalkthroughTool', () => {
13
- let mockMcpServer;
14
- let tool;
15
- let mockRegisteredTool;
16
- beforeEach(() => {
17
- // @ts-expect-error Not mocking whole server
18
- mockMcpServer = {
19
- registerTool: vi.fn(),
20
- };
21
- mockRegisteredTool = {};
22
- mockMcpServer.registerTool.mockReturnValue(mockRegisteredTool);
23
- mockMcpFeedbackRequest.mockResolvedValue('');
24
- mockTrackToolUsage.mockResolvedValue(undefined);
25
- tool = new GuidedWalkthroughTool(mockMcpServer);
26
- });
27
- describe('register', () => {
28
- it('should register tool with correct parameters and enhanced description', () => {
29
- const result = tool.register();
30
- expect(mockMcpServer.registerTool).toHaveBeenCalledWith('guided-walkthrough-cli', expect.objectContaining({
31
- title: 'Guided walkthrough of the CLI',
32
- description: expect.stringContaining('Give the user a guided walkthrough of the HubSpot CLI'),
33
- inputSchema: expect.any(Object),
34
- }), expect.any(Function));
35
- expect(result).toBe(mockRegisteredTool);
36
- });
37
- });
38
- describe('handler', () => {
39
- it('should show help for hs init command', async () => {
40
- const helpOutput = 'Usage: hs init [options]\nInitialize HubSpot CLI';
41
- mockExecAsync.mockResolvedValue({
42
- stdout: helpOutput,
43
- stderr: '',
44
- });
45
- const result = await tool.handler({
46
- absoluteCurrentWorkingDirectory: '/test/dir',
47
- command: 'hs init',
48
- });
49
- expect(mockExecAsync).toHaveBeenCalledWith('hs init --help');
50
- expect(result.content).toHaveLength(1);
51
- expect(result.content[0].text).toContain(helpOutput);
52
- expect(result.content[0].text).toContain('hs auth');
53
- });
54
- it('should show help for hs auth command', async () => {
55
- const helpOutput = 'Usage: hs auth [options]\nAuthenticate with HubSpot';
56
- mockExecAsync.mockResolvedValue({
57
- stdout: helpOutput,
58
- stderr: '',
59
- });
60
- const result = await tool.handler({
61
- absoluteCurrentWorkingDirectory: '/test/dir',
62
- command: 'hs auth',
63
- });
64
- expect(mockExecAsync).toHaveBeenCalledWith('hs auth --help');
65
- expect(result.content[0].text).toContain(helpOutput);
66
- expect(result.content[0].text).toContain('hs project create');
67
- });
68
- it('should show help for hs project create command', async () => {
69
- const helpOutput = 'Usage: hs project create [options]\nCreate a new project';
70
- mockExecAsync.mockResolvedValue({
71
- stdout: helpOutput,
72
- stderr: '',
73
- });
74
- const result = await tool.handler({
75
- absoluteCurrentWorkingDirectory: '/test/dir',
76
- command: 'hs project create',
77
- });
78
- expect(mockExecAsync).toHaveBeenCalledWith('hs project create --help');
79
- expect(result.content[0].text).toContain(helpOutput);
80
- expect(result.content[0].text).toContain('hs project upload');
81
- });
82
- it('should show help for hs project upload command', async () => {
83
- const helpOutput = 'Usage: hs project upload [options]\nUpload project to HubSpot';
84
- mockExecAsync.mockResolvedValue({
85
- stdout: helpOutput,
86
- stderr: '',
87
- });
88
- const result = await tool.handler({
89
- absoluteCurrentWorkingDirectory: '/test/dir',
90
- command: 'hs project upload',
91
- });
92
- expect(mockExecAsync).toHaveBeenCalledWith('hs project upload --help');
93
- expect(result.content[0].text).toContain(helpOutput);
94
- expect(result.content[0].text).toContain('hs project dev');
95
- });
96
- it('should handle command without next step', async () => {
97
- const helpOutput = 'Usage: hs project dev [options]\nStart development server';
98
- mockExecAsync.mockResolvedValue({
99
- stdout: helpOutput,
100
- stderr: '',
101
- });
102
- // Test with a command that doesn't have a next command
103
- const result = await tool.handler({
104
- absoluteCurrentWorkingDirectory: '/test/dir',
105
- command: 'hs project upload',
106
- });
107
- expect(result.content[0].text).toContain(helpOutput);
108
- expect(result.content[0].text).toContain('hs project dev');
109
- });
110
- it('should handle no command provided', async () => {
111
- const result = await tool.handler({
112
- absoluteCurrentWorkingDirectory: '/test/dir',
113
- });
114
- expect(mockExecAsync).not.toHaveBeenCalled();
115
- expect(result.content).toEqual([
116
- {
117
- type: 'text',
118
- text: 'Is there another command you would like to learn more about?',
119
- },
120
- ]);
121
- });
122
- it('should handle undefined command', async () => {
123
- const result = await tool.handler({
124
- absoluteCurrentWorkingDirectory: '/test/dir',
125
- command: undefined,
126
- });
127
- expect(mockExecAsync).not.toHaveBeenCalled();
128
- expect(result.content).toEqual([
129
- {
130
- type: 'text',
131
- text: 'Is there another command you would like to learn more about?',
132
- },
133
- ]);
134
- });
135
- it('should handle execAsync errors', async () => {
136
- const error = new Error('Command not found');
137
- mockExecAsync.mockRejectedValue(error);
138
- await expect(tool.handler({
139
- absoluteCurrentWorkingDirectory: '/test/dir',
140
- command: 'hs init',
141
- })).rejects.toThrow('Command not found');
142
- });
143
- it('should format help text with proper instructions', async () => {
144
- const helpOutput = 'Usage: hs init\nOptions:\n --help Show help';
145
- mockExecAsync.mockResolvedValue({
146
- stdout: helpOutput,
147
- stderr: '',
148
- });
149
- const result = await tool.handler({
150
- absoluteCurrentWorkingDirectory: '/test/dir',
151
- command: 'hs init',
152
- });
153
- expect(result.content[0].text).toContain('Display this help output for the user amd wait for them to acknowledge:');
154
- expect(result.content[0].text).toContain(helpOutput);
155
- expect(result.content[0].text).toContain('Once they are ready, A good command to look at next is hs auth');
156
- });
157
- });
158
- });
@@ -1,187 +0,0 @@
1
- import { UploadProjectTools } from '../UploadProjectTools.js';
2
- import { getAllHsProfiles } from '@hubspot/project-parsing-lib/profiles';
3
- import { getProjectConfig } from '../../../../lib/projects/config.js';
4
- import { runCommandInDir } from '../../../utils/command.js';
5
- import { mcpFeedbackRequest } from '../../../utils/feedbackTracking.js';
6
- import { trackToolUsage } from '../../../utils/toolUsageTracking.js';
7
- vi.mock('@modelcontextprotocol/sdk/server/mcp.js');
8
- vi.mock('@hubspot/project-parsing-lib/profiles');
9
- vi.mock('../../../../lib/projects/config.js');
10
- vi.mock('../../../utils/command', () => ({
11
- runCommandInDir: vi.fn(),
12
- addFlag: vi.fn((command, flagName, value) => {
13
- if (Array.isArray(value)) {
14
- return `${command} --${flagName} ${value.map(item => `"${item}"`).join(' ')}`;
15
- }
16
- return `${command} --${flagName} "${value}"`;
17
- }),
18
- }));
19
- vi.mock('../../../utils/toolUsageTracking');
20
- vi.mock('../../../utils/feedbackTracking');
21
- const mockTrackToolUsage = trackToolUsage;
22
- const mockMcpFeedbackRequest = mcpFeedbackRequest;
23
- const mockRunCommandInDir = runCommandInDir;
24
- const mockGetProjectConfig = getProjectConfig;
25
- const mockGetAllHsProfiles = getAllHsProfiles;
26
- describe('mcp-server/tools/project/UploadProjectTools', () => {
27
- let mockMcpServer;
28
- let tool;
29
- let mockRegisteredTool;
30
- beforeEach(() => {
31
- // @ts-expect-error noy mocking whole server
32
- mockMcpServer = {
33
- registerTool: vi.fn(),
34
- };
35
- mockRegisteredTool = {};
36
- mockMcpServer.registerTool.mockReturnValue(mockRegisteredTool);
37
- mockMcpFeedbackRequest.mockResolvedValue('');
38
- mockTrackToolUsage.mockResolvedValue(undefined);
39
- mockGetProjectConfig.mockResolvedValue({
40
- projectConfig: {
41
- srcDir: 'src',
42
- name: 'test-project',
43
- platformVersion: '2025.2',
44
- },
45
- projectDir: '/test/project',
46
- });
47
- mockGetAllHsProfiles.mockResolvedValue([]);
48
- tool = new UploadProjectTools(mockMcpServer);
49
- });
50
- describe('register', () => {
51
- it('should register tool with correct parameters', () => {
52
- const result = tool.register();
53
- expect(mockMcpServer.registerTool).toHaveBeenCalledWith('upload-project', expect.objectContaining({
54
- title: 'Upload HubSpot Project',
55
- description: expect.stringContaining('Uploads the HubSpot project in current working directory.'),
56
- inputSchema: expect.any(Object),
57
- }), expect.any(Function));
58
- expect(result).toBe(mockRegisteredTool);
59
- });
60
- });
61
- describe('handler', () => {
62
- const input = {
63
- absoluteCurrentWorkingDirectory: '/test/dir',
64
- absoluteProjectPath: '/test/project',
65
- uploadMessage: 'Test upload message',
66
- };
67
- it('should upload project successfully', async () => {
68
- mockRunCommandInDir.mockResolvedValue({
69
- stdout: 'Project uploaded successfully',
70
- stderr: '',
71
- });
72
- const result = await tool.handler(input);
73
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', expect.stringContaining('hs project upload'));
74
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', expect.stringContaining('--force-create'));
75
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', expect.stringContaining('--message "Test upload message"'));
76
- expect(result).toEqual({
77
- content: [
78
- { type: 'text', text: 'Project uploaded successfully' },
79
- { type: 'text', text: '' },
80
- {
81
- type: 'text',
82
- text: '\nIMPORTANT: If this project contains cards, remember that uploading does NOT make them live automatically. Cards must be manually added to a view in HubSpot to become visible to users.',
83
- },
84
- ],
85
- });
86
- });
87
- it('should handle upload with warnings', async () => {
88
- mockRunCommandInDir.mockResolvedValue({
89
- stdout: 'Project uploaded with warnings',
90
- stderr: 'Warning: some files were ignored',
91
- });
92
- const result = await tool.handler(input);
93
- expect(result.content).toEqual([
94
- { type: 'text', text: 'Project uploaded with warnings' },
95
- { type: 'text', text: 'Warning: some files were ignored' },
96
- {
97
- type: 'text',
98
- text: '\nIMPORTANT: If this project contains cards, remember that uploading does NOT make them live automatically. Cards must be manually added to a view in HubSpot to become visible to users.',
99
- },
100
- ]);
101
- });
102
- it('should handle upload errors', async () => {
103
- const error = new Error('Upload failed');
104
- mockRunCommandInDir.mockRejectedValue(error);
105
- await expect(tool.handler(input)).rejects.toThrow('Upload failed');
106
- });
107
- it('should use force-create and message flags', async () => {
108
- mockRunCommandInDir.mockResolvedValue({
109
- stdout: 'Project created and uploaded',
110
- stderr: '',
111
- });
112
- await tool.handler(input);
113
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', expect.stringContaining('hs project upload'));
114
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', expect.stringContaining('--force-create'));
115
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', expect.stringContaining('--message "Test upload message"'));
116
- });
117
- it('should use profiles', async () => {
118
- mockRunCommandInDir.mockResolvedValue({
119
- stdout: 'Project created and uploaded',
120
- stderr: '',
121
- });
122
- await tool.handler({
123
- ...input,
124
- profile: 'dev',
125
- });
126
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', expect.stringContaining('hs project upload'));
127
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', expect.stringContaining('--force-create'));
128
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', expect.stringContaining('--message "Test upload message"'));
129
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', expect.stringContaining('--profile "dev"'));
130
- });
131
- it('should prompt for profile if not specified and the project requires them', async () => {
132
- mockGetAllHsProfiles.mockResolvedValue(['prod', 'dev']);
133
- mockRunCommandInDir.mockResolvedValue({
134
- stdout: 'Project created and uploaded',
135
- stderr: '',
136
- });
137
- const result = await tool.handler(input);
138
- expect(mockRunCommandInDir).not.toHaveBeenCalled();
139
- expect(result.content).toEqual([
140
- {
141
- type: 'text',
142
- text: 'Ask the user which profile they would like to use for the upload.',
143
- },
144
- ]);
145
- });
146
- it('should handle empty stdout and stderr', async () => {
147
- mockRunCommandInDir.mockResolvedValue({
148
- stdout: '',
149
- stderr: '',
150
- });
151
- const result = await tool.handler(input);
152
- expect(result.content).toEqual([
153
- { type: 'text', text: '' },
154
- { type: 'text', text: '' },
155
- {
156
- type: 'text',
157
- text: '\nIMPORTANT: If this project contains cards, remember that uploading does NOT make them live automatically. Cards must be manually added to a view in HubSpot to become visible to users.',
158
- },
159
- ]);
160
- });
161
- it('should work with different project paths', async () => {
162
- mockRunCommandInDir.mockResolvedValue({
163
- stdout: 'Upload complete',
164
- stderr: '',
165
- });
166
- const differentInput = {
167
- absoluteCurrentWorkingDirectory: '/test/dir',
168
- absoluteProjectPath: '/different/path/to/project',
169
- uploadMessage: 'Different test upload message',
170
- };
171
- await tool.handler(differentInput);
172
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/different/path/to/project', expect.stringContaining('hs project upload'));
173
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/different/path/to/project', expect.stringContaining('--force-create'));
174
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/different/path/to/project', expect.stringContaining('--message "Different test upload message"'));
175
- });
176
- it('should handle very long output', async () => {
177
- const longOutput = 'A'.repeat(10000);
178
- mockRunCommandInDir.mockResolvedValue({
179
- stdout: longOutput,
180
- stderr: 'Long stderr output',
181
- });
182
- const result = await tool.handler(input);
183
- expect(result.content[0].text).toBe(longOutput);
184
- expect(result.content[1].text).toBe('Long stderr output');
185
- });
186
- });
187
- });