@hubspot/cli 8.1.0 → 8.1.2-experimental.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (681) hide show
  1. package/api/migrate.js +8 -4
  2. package/api/releases.d.ts +36 -0
  3. package/api/releases.js +41 -0
  4. package/bin/cli.js +12 -6
  5. package/commands/account/auth.js +7 -7
  6. package/commands/account/clean.js +7 -6
  7. package/commands/account/createOverride.js +10 -7
  8. package/commands/account/info.js +36 -17
  9. package/commands/account/link.d.ts +4 -0
  10. package/commands/account/link.js +89 -0
  11. package/commands/account/list.js +32 -76
  12. package/commands/account/remove.js +4 -3
  13. package/commands/account/removeOverride.js +11 -10
  14. package/commands/account/rename.js +5 -6
  15. package/commands/account/unlink.d.ts +4 -0
  16. package/commands/account/unlink.js +70 -0
  17. package/commands/account/use.js +75 -6
  18. package/commands/account.js +4 -0
  19. package/commands/api.d.ts +10 -0
  20. package/commands/api.js +164 -0
  21. package/commands/app/migrate.js +13 -13
  22. package/commands/app/secret/add.js +6 -7
  23. package/commands/app/secret/delete.js +9 -10
  24. package/commands/app/secret/list.js +6 -7
  25. package/commands/app/secret/update.js +8 -9
  26. package/commands/auth.js +19 -15
  27. package/commands/cms/app/create.js +9 -5
  28. package/commands/cms/convertFields.js +8 -8
  29. package/commands/cms/delete.js +2 -3
  30. package/commands/cms/fetch.js +7 -7
  31. package/commands/cms/function/create.js +9 -5
  32. package/commands/cms/function/deploy.js +2 -3
  33. package/commands/cms/function/list.js +11 -7
  34. package/commands/cms/function/logs.js +17 -22
  35. package/commands/cms/function/server.js +2 -3
  36. package/commands/cms/getReactModule.js +7 -8
  37. package/commands/cms/lighthouseScore.js +25 -24
  38. package/commands/cms/lint.js +4 -5
  39. package/commands/cms/list.js +5 -6
  40. package/commands/cms/module/create.js +14 -5
  41. package/commands/cms/module/marketplace-validate.js +7 -8
  42. package/commands/cms/mv.js +2 -3
  43. package/commands/cms/template/create.js +10 -6
  44. package/commands/cms/theme/create.js +5 -5
  45. package/commands/cms/theme/generate-selectors.js +5 -4
  46. package/commands/cms/theme/marketplace-validate.js +8 -9
  47. package/commands/cms/theme/preview.js +23 -70
  48. package/commands/cms/upload.js +15 -12
  49. package/commands/cms/watch.d.ts +0 -1
  50. package/commands/cms/watch.js +6 -12
  51. package/commands/cms/webpack/create.js +5 -5
  52. package/commands/completion.js +3 -5
  53. package/commands/config/migrate.js +6 -7
  54. package/commands/config/set.js +5 -6
  55. package/commands/customObject/create.js +4 -5
  56. package/commands/customObject/createSchema.js +4 -5
  57. package/commands/customObject/deleteSchema.js +4 -5
  58. package/commands/customObject/fetchAllSchemas.js +2 -3
  59. package/commands/customObject/fetchSchema.js +2 -3
  60. package/commands/customObject/listSchemas.js +2 -3
  61. package/commands/customObject/updateSchema.js +4 -5
  62. package/commands/doctor.js +8 -8
  63. package/commands/feedback.js +7 -5
  64. package/commands/filemanager/fetch.js +5 -6
  65. package/commands/filemanager/upload.js +5 -5
  66. package/commands/getStarted.js +17 -19
  67. package/commands/hubdb/clear.js +6 -3
  68. package/commands/hubdb/create.js +4 -5
  69. package/commands/hubdb/delete.js +9 -6
  70. package/commands/hubdb/fetch.js +6 -3
  71. package/commands/hubdb/list.js +16 -14
  72. package/commands/init.js +15 -14
  73. package/commands/mcp/setup.js +5 -14
  74. package/commands/mcp/start.js +2 -4
  75. package/commands/open.js +4 -5
  76. package/commands/project/add.js +13 -8
  77. package/commands/project/appInstallStatus.d.ts +4 -0
  78. package/commands/project/appInstallStatus.js +132 -0
  79. package/commands/project/create.js +28 -17
  80. package/commands/project/delete.d.ts +7 -0
  81. package/commands/project/delete.js +74 -0
  82. package/commands/project/deploy.js +39 -36
  83. package/commands/project/dev/deprecatedFlow.js +62 -17
  84. package/commands/project/dev/index.d.ts +3 -3
  85. package/commands/project/dev/index.js +59 -48
  86. package/commands/project/dev/unifiedFlow.js +70 -21
  87. package/commands/project/download.js +12 -9
  88. package/commands/project/info.d.ts +4 -0
  89. package/commands/project/info.js +67 -0
  90. package/commands/project/installDeps.js +9 -6
  91. package/commands/project/lint.js +33 -10
  92. package/commands/project/list.d.ts +2 -2
  93. package/commands/project/list.js +15 -14
  94. package/commands/project/listBuilds.js +8 -6
  95. package/commands/project/logs.js +5 -6
  96. package/commands/project/migrate.js +18 -18
  97. package/commands/project/open.js +5 -6
  98. package/commands/project/profile/add.js +12 -8
  99. package/commands/project/profile/delete.js +15 -11
  100. package/commands/project/updateDeps.js +9 -6
  101. package/commands/project/upload.d.ts +3 -0
  102. package/commands/project/upload.js +98 -25
  103. package/commands/project/validate.js +12 -12
  104. package/commands/project/watch.js +32 -19
  105. package/commands/project.js +12 -3
  106. package/commands/sandbox/create.js +18 -45
  107. package/commands/sandbox/delete.js +13 -14
  108. package/commands/secret/addSecret.js +6 -7
  109. package/commands/secret/deleteSecret.js +5 -6
  110. package/commands/secret/listSecret.js +2 -3
  111. package/commands/secret/updateSecret.js +4 -5
  112. package/commands/testAccount/create.d.ts +1 -1
  113. package/commands/testAccount/create.js +25 -17
  114. package/commands/testAccount/createConfig.js +7 -8
  115. package/commands/testAccount/delete.js +27 -18
  116. package/commands/testAccount/importData.js +6 -7
  117. package/commands/upgrade.js +9 -10
  118. package/lang/en.d.ts +276 -14
  119. package/lang/en.js +293 -28
  120. package/lib/accountAuth.js +4 -0
  121. package/lib/api/usageTracking.d.ts +29 -0
  122. package/lib/api/usageTracking.js +28 -0
  123. package/lib/app/migrate.js +18 -5
  124. package/lib/buildAccount.d.ts +1 -6
  125. package/lib/buildAccount.js +9 -42
  126. package/lib/commandSuggestion.js +1 -7
  127. package/lib/constants.d.ts +3 -4
  128. package/lib/constants.js +5 -4
  129. package/lib/doctor/Diagnosis.js +5 -5
  130. package/lib/doctor/Doctor.js +7 -7
  131. package/lib/errorHandlers/index.js +4 -3
  132. package/lib/errorHandlers/suppressError.js +4 -0
  133. package/lib/errors/PromptExitError.d.ts +6 -0
  134. package/lib/errors/PromptExitError.js +11 -0
  135. package/lib/generateSelectors.js +1 -2
  136. package/lib/getStartedV2Actions.d.ts +13 -0
  137. package/lib/getStartedV2Actions.js +56 -3
  138. package/lib/hasFeature.js +1 -2
  139. package/lib/link/accountTableUtils.d.ts +10 -0
  140. package/lib/link/accountTableUtils.js +39 -0
  141. package/lib/link/index.d.ts +18 -0
  142. package/lib/link/index.js +185 -0
  143. package/lib/link/linkUtils.d.ts +5 -0
  144. package/lib/link/linkUtils.js +49 -0
  145. package/lib/link/prompts.d.ts +7 -0
  146. package/lib/link/prompts.js +126 -0
  147. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  148. package/lib/link/renderLinkedAccountsTable.js +14 -0
  149. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  150. package/lib/link/warnIfLinkedDirectory.js +9 -0
  151. package/lib/mcp/setup.d.ts +1 -0
  152. package/lib/mcp/setup.js +77 -30
  153. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  154. package/lib/process.d.ts +1 -1
  155. package/lib/process.js +10 -3
  156. package/lib/projects/ProjectLogsManager.js +6 -3
  157. package/lib/projects/components.js +15 -4
  158. package/lib/projects/create/index.js +3 -6
  159. package/lib/projects/create/legacy.js +5 -10
  160. package/lib/projects/create/v2.js +5 -14
  161. package/lib/projects/delete.d.ts +13 -0
  162. package/lib/projects/delete.js +193 -0
  163. package/lib/projects/deploy.d.ts +1 -1
  164. package/lib/projects/deploy.js +2 -2
  165. package/lib/projects/ensureProjectExists.js +1 -2
  166. package/lib/projects/localDev/AppDevModeInterface.js +13 -9
  167. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +4 -1
  168. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +3 -3
  169. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  170. package/lib/projects/localDev/DevSessionManager.js +31 -19
  171. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +5 -0
  172. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +21 -10
  173. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  174. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  175. package/lib/projects/localDev/LocalDevState.js +3 -1
  176. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  177. package/lib/projects/localDev/helpers/account.js +21 -30
  178. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  179. package/lib/projects/localDev/helpers/process.js +4 -10
  180. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  181. package/lib/projects/localDev/helpers/project.js +32 -16
  182. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  183. package/lib/projects/npmAuditOnUpload.js +73 -0
  184. package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
  185. package/lib/projects/pollProjectBuildAndDeploy.js +93 -87
  186. package/lib/projects/preview.d.ts +7 -0
  187. package/lib/projects/preview.js +48 -0
  188. package/lib/projects/projectInfo.d.ts +5 -0
  189. package/lib/projects/projectInfo.js +82 -0
  190. package/lib/projects/projectProfiles.d.ts +1 -2
  191. package/lib/projects/projectProfiles.js +5 -17
  192. package/lib/projects/uieLinting.d.ts +17 -3
  193. package/lib/projects/uieLinting.js +93 -28
  194. package/lib/projects/upload.d.ts +4 -1
  195. package/lib/projects/upload.js +71 -50
  196. package/lib/projects/watch.d.ts +2 -1
  197. package/lib/projects/watch.js +32 -24
  198. package/lib/projects/workspaces.d.ts +52 -0
  199. package/lib/projects/workspaces.js +365 -0
  200. package/lib/prompts/createApiSamplePrompt.js +4 -0
  201. package/lib/prompts/downloadProjectPrompt.js +11 -10
  202. package/lib/prompts/installAppPrompt.js +3 -2
  203. package/lib/prompts/personalAccessKeyPrompt.js +3 -2
  204. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  205. package/lib/prompts/projectDevTargetAccountPrompt.js +23 -16
  206. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  207. package/lib/prompts/projectProfilePrompt.js +46 -0
  208. package/lib/prompts/projectsLogsPrompt.js +3 -0
  209. package/lib/prompts/promptUtils.js +4 -2
  210. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  211. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  212. package/lib/sandboxes.d.ts +1 -9
  213. package/lib/sandboxes.js +0 -21
  214. package/lib/serverlessLogs.js +50 -44
  215. package/lib/theme/cmsDevServerProcess.d.ts +14 -0
  216. package/lib/theme/cmsDevServerProcess.js +149 -0
  217. package/lib/theme/cmsDevServerRunner.d.ts +14 -0
  218. package/lib/theme/cmsDevServerRunner.js +90 -0
  219. package/lib/theme/migrate.d.ts +1 -1
  220. package/lib/theme/migrate.js +1 -5
  221. package/lib/ui/SpinniesManager.d.ts +1 -0
  222. package/lib/ui/SpinniesManager.js +22 -6
  223. package/lib/ui/accountTable.d.ts +8 -0
  224. package/lib/ui/accountTable.js +67 -0
  225. package/lib/ui/spinniesUtils.d.ts +0 -1
  226. package/lib/ui/spinniesUtils.js +6 -16
  227. package/lib/usageTracking.d.ts +9 -20
  228. package/lib/usageTracking.js +51 -34
  229. package/lib/yargs/makeWrappedYargsHandler.d.ts +3 -0
  230. package/lib/yargs/makeWrappedYargsHandler.js +121 -0
  231. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  232. package/lib/yargs/makeYargsBuilder.js +33 -0
  233. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  234. package/lib/yargs/parseYargsOrExit.js +25 -0
  235. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  236. package/lib/yargs/strictEnforceBoolean.js +13 -0
  237. package/lib/yargsUtils.d.ts +3 -16
  238. package/lib/yargsUtils.js +3 -48
  239. package/mcp-server/Tool.d.ts +15 -0
  240. package/mcp-server/Tool.js +53 -0
  241. package/mcp-server/server.js +43 -3
  242. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +4 -2
  243. package/mcp-server/tools/cms/HsCreateFunctionTool.js +11 -9
  244. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -2
  245. package/mcp-server/tools/cms/HsCreateModuleTool.js +12 -11
  246. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +4 -2
  247. package/mcp-server/tools/cms/HsCreateTemplateTool.js +11 -9
  248. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -2
  249. package/mcp-server/tools/cms/HsFunctionLogsTool.js +10 -9
  250. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +4 -2
  251. package/mcp-server/tools/cms/HsListFunctionsTool.js +10 -9
  252. package/mcp-server/tools/cms/HsListTool.d.ts +4 -2
  253. package/mcp-server/tools/cms/HsListTool.js +11 -9
  254. package/mcp-server/tools/index.d.ts +3 -2
  255. package/mcp-server/tools/index.js +24 -22
  256. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +25 -5
  257. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -18
  258. package/mcp-server/tools/project/CreateProjectTool.d.ts +29 -6
  259. package/mcp-server/tools/project/CreateProjectTool.js +16 -18
  260. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +4 -2
  261. package/mcp-server/tools/project/CreateTestAccountTool.js +22 -10
  262. package/mcp-server/tools/project/DeployProjectTool.d.ts +4 -2
  263. package/mcp-server/tools/project/DeployProjectTool.js +6 -8
  264. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  265. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  266. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  267. package/mcp-server/tools/project/DocsSearchTool.js +32 -9
  268. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  269. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  270. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +4 -2
  271. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +13 -14
  272. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +4 -2
  273. package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
  274. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +6 -4
  275. package/mcp-server/tools/project/GetBuildLogsTool.js +15 -14
  276. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +5 -3
  277. package/mcp-server/tools/project/GetBuildStatusTool.js +12 -11
  278. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -2
  279. package/mcp-server/tools/project/GetConfigValuesTool.js +12 -7
  280. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +10 -3
  281. package/mcp-server/tools/project/GuidedWalkthroughTool.js +5 -12
  282. package/mcp-server/tools/project/UploadProjectTools.d.ts +4 -2
  283. package/mcp-server/tools/project/UploadProjectTools.js +11 -9
  284. package/mcp-server/tools/project/ValidateProjectTool.d.ts +4 -2
  285. package/mcp-server/tools/project/ValidateProjectTool.js +10 -8
  286. package/mcp-server/tools/project/constants.d.ts +13 -1
  287. package/mcp-server/tools/project/constants.js +13 -16
  288. package/mcp-server/types.d.ts +0 -7
  289. package/mcp-server/types.js +1 -13
  290. package/mcp-server/utils/command.d.ts +5 -0
  291. package/mcp-server/utils/command.js +24 -0
  292. package/mcp-server/utils/feedbackTracking.js +2 -17
  293. package/mcp-server/utils/logger.d.ts +10 -0
  294. package/mcp-server/utils/logger.js +29 -0
  295. package/mcp-server/utils/toolUsageTracking.js +10 -8
  296. package/package.json +15 -11
  297. package/types/Link.d.ts +32 -0
  298. package/types/Link.js +5 -0
  299. package/types/LocalDev.d.ts +5 -0
  300. package/types/PackageJson.d.ts +1 -0
  301. package/types/Projects.d.ts +19 -0
  302. package/types/Prompts.d.ts +1 -0
  303. package/types/Yargs.d.ts +19 -1
  304. package/ui/components/getStarted/GetStartedFlow.js +79 -2
  305. package/ui/components/getStarted/reducer.d.ts +20 -0
  306. package/ui/components/getStarted/reducer.js +36 -0
  307. package/ui/components/getStarted/screens/InstallationScreen.d.ts +7 -0
  308. package/ui/components/getStarted/screens/InstallationScreen.js +16 -0
  309. package/ui/components/getStarted/screens/ProjectSetupScreen.js +2 -1
  310. package/ui/lib/constants.d.ts +1 -0
  311. package/ui/lib/constants.js +1 -0
  312. package/api/__tests__/migrate.test.d.ts +0 -1
  313. package/api/__tests__/migrate.test.js +0 -199
  314. package/commands/__tests__/account.test.d.ts +0 -1
  315. package/commands/__tests__/account.test.js +0 -69
  316. package/commands/__tests__/auth.test.d.ts +0 -1
  317. package/commands/__tests__/auth.test.js +0 -43
  318. package/commands/__tests__/cms.test.d.ts +0 -1
  319. package/commands/__tests__/cms.test.js +0 -87
  320. package/commands/__tests__/config.test.d.ts +0 -1
  321. package/commands/__tests__/config.test.js +0 -44
  322. package/commands/__tests__/customObject.test.d.ts +0 -1
  323. package/commands/__tests__/customObject.test.js +0 -68
  324. package/commands/__tests__/doctor.test.d.ts +0 -1
  325. package/commands/__tests__/doctor.test.js +0 -132
  326. package/commands/__tests__/feedback.test.d.ts +0 -1
  327. package/commands/__tests__/feedback.test.js +0 -24
  328. package/commands/__tests__/filemanager.test.d.ts +0 -1
  329. package/commands/__tests__/filemanager.test.js +0 -45
  330. package/commands/__tests__/getStarted.test.d.ts +0 -1
  331. package/commands/__tests__/getStarted.test.js +0 -173
  332. package/commands/__tests__/hubdb.test.d.ts +0 -1
  333. package/commands/__tests__/hubdb.test.js +0 -50
  334. package/commands/__tests__/init.test.d.ts +0 -1
  335. package/commands/__tests__/init.test.js +0 -42
  336. package/commands/__tests__/mcp.test.d.ts +0 -1
  337. package/commands/__tests__/mcp.test.js +0 -46
  338. package/commands/__tests__/open.test.d.ts +0 -1
  339. package/commands/__tests__/open.test.js +0 -58
  340. package/commands/__tests__/project.test.d.ts +0 -1
  341. package/commands/__tests__/project.test.js +0 -125
  342. package/commands/__tests__/sandbox.test.d.ts +0 -1
  343. package/commands/__tests__/sandbox.test.js +0 -44
  344. package/commands/__tests__/secret.test.d.ts +0 -1
  345. package/commands/__tests__/secret.test.js +0 -49
  346. package/commands/__tests__/testAccount.test.d.ts +0 -1
  347. package/commands/__tests__/testAccount.test.js +0 -57
  348. package/commands/__tests__/upgrade.test.d.ts +0 -1
  349. package/commands/__tests__/upgrade.test.js +0 -309
  350. package/commands/account/__tests__/auth.test.d.ts +0 -1
  351. package/commands/account/__tests__/auth.test.js +0 -206
  352. package/commands/account/__tests__/clean.test.d.ts +0 -1
  353. package/commands/account/__tests__/clean.test.js +0 -28
  354. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  355. package/commands/account/__tests__/createOverride.test.js +0 -32
  356. package/commands/account/__tests__/info.test.d.ts +0 -1
  357. package/commands/account/__tests__/info.test.js +0 -28
  358. package/commands/account/__tests__/list.test.d.ts +0 -1
  359. package/commands/account/__tests__/list.test.js +0 -153
  360. package/commands/account/__tests__/remove.test.d.ts +0 -1
  361. package/commands/account/__tests__/remove.test.js +0 -36
  362. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  363. package/commands/account/__tests__/removeOverride.js +0 -25
  364. package/commands/account/__tests__/rename.test.d.ts +0 -1
  365. package/commands/account/__tests__/rename.test.js +0 -82
  366. package/commands/account/__tests__/use.test.d.ts +0 -1
  367. package/commands/account/__tests__/use.test.js +0 -170
  368. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  369. package/commands/app/__tests__/migrate.test.js +0 -111
  370. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  371. package/commands/app/secret/__tests__/add.test.js +0 -140
  372. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  373. package/commands/app/secret/__tests__/delete.test.js +0 -28
  374. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  375. package/commands/app/secret/__tests__/list.test.js +0 -25
  376. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  377. package/commands/app/secret/__tests__/update.test.js +0 -28
  378. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  379. package/commands/cms/__tests__/delete.test.js +0 -39
  380. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  381. package/commands/cms/__tests__/fetch.test.js +0 -156
  382. package/commands/cms/__tests__/function.test.d.ts +0 -1
  383. package/commands/cms/__tests__/function.test.js +0 -50
  384. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  385. package/commands/cms/__tests__/lint.test.js +0 -33
  386. package/commands/cms/__tests__/list.test.d.ts +0 -1
  387. package/commands/cms/__tests__/list.test.js +0 -42
  388. package/commands/cms/__tests__/module.test.d.ts +0 -1
  389. package/commands/cms/__tests__/module.test.js +0 -45
  390. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  391. package/commands/cms/__tests__/mv.test.js +0 -46
  392. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  393. package/commands/cms/__tests__/theme.test.js +0 -54
  394. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  395. package/commands/cms/__tests__/upload.test.js +0 -308
  396. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  397. package/commands/cms/__tests__/watch.test.js +0 -212
  398. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  399. package/commands/cms/function/__tests__/logs.test.js +0 -70
  400. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  401. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  402. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  403. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  404. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  405. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  406. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  407. package/commands/customObject/__tests__/create.test.js +0 -40
  408. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  409. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  410. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  411. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  412. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  413. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  414. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  415. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  416. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  417. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  418. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  419. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  420. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  421. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  422. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  423. package/commands/filemanager/__tests__/upload.test.js +0 -191
  424. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  425. package/commands/hubdb/__tests__/clear.test.js +0 -28
  426. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  427. package/commands/hubdb/__tests__/create.test.js +0 -28
  428. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  429. package/commands/hubdb/__tests__/delete.test.js +0 -28
  430. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  431. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  432. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  433. package/commands/hubdb/__tests__/list.test.js +0 -88
  434. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  435. package/commands/mcp/__tests__/setup.test.js +0 -26
  436. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  437. package/commands/mcp/__tests__/start.test.js +0 -137
  438. package/commands/project/__tests__/add.test.d.ts +0 -1
  439. package/commands/project/__tests__/add.test.js +0 -107
  440. package/commands/project/__tests__/create.test.d.ts +0 -1
  441. package/commands/project/__tests__/create.test.js +0 -97
  442. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  443. package/commands/project/__tests__/deploy.test.js +0 -307
  444. package/commands/project/__tests__/dev.test.d.ts +0 -1
  445. package/commands/project/__tests__/dev.test.js +0 -273
  446. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  447. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  448. package/commands/project/__tests__/download.test.d.ts +0 -1
  449. package/commands/project/__tests__/download.test.js +0 -39
  450. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  451. package/commands/project/__tests__/installDeps.test.js +0 -140
  452. package/commands/project/__tests__/lint.test.d.ts +0 -1
  453. package/commands/project/__tests__/lint.test.js +0 -704
  454. package/commands/project/__tests__/list.test.d.ts +0 -1
  455. package/commands/project/__tests__/list.test.js +0 -31
  456. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  457. package/commands/project/__tests__/listBuilds.test.js +0 -38
  458. package/commands/project/__tests__/logs.test.d.ts +0 -1
  459. package/commands/project/__tests__/logs.test.js +0 -202
  460. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  461. package/commands/project/__tests__/migrate.test.js +0 -106
  462. package/commands/project/__tests__/open.test.d.ts +0 -1
  463. package/commands/project/__tests__/open.test.js +0 -39
  464. package/commands/project/__tests__/profile.test.d.ts +0 -1
  465. package/commands/project/__tests__/profile.test.js +0 -42
  466. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  467. package/commands/project/__tests__/updateDeps.test.js +0 -140
  468. package/commands/project/__tests__/upload.test.d.ts +0 -1
  469. package/commands/project/__tests__/upload.test.js +0 -234
  470. package/commands/project/__tests__/validate.test.d.ts +0 -1
  471. package/commands/project/__tests__/validate.test.js +0 -381
  472. package/commands/project/__tests__/watch.test.d.ts +0 -1
  473. package/commands/project/__tests__/watch.test.js +0 -35
  474. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  475. package/commands/sandbox/__tests__/create.test.js +0 -245
  476. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  477. package/commands/sandbox/__tests__/delete.test.js +0 -31
  478. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  479. package/commands/secret/__tests__/addSecret.test.js +0 -162
  480. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  481. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  482. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  483. package/commands/secret/__tests__/listSecret.test.js +0 -29
  484. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  485. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  486. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  487. package/commands/testAccount/__tests__/create.test.js +0 -106
  488. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  489. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  490. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  491. package/commands/testAccount/__tests__/delete.test.js +0 -29
  492. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  493. package/commands/testAccount/__tests__/importData.test.js +0 -92
  494. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  495. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  496. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  497. package/lib/__tests__/accountAuth.test.js +0 -258
  498. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  499. package/lib/__tests__/accountTypes.test.js +0 -98
  500. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  501. package/lib/__tests__/buildAccount.test.js +0 -262
  502. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  503. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  504. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  505. package/lib/__tests__/commandSuggestion.test.js +0 -119
  506. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  507. package/lib/__tests__/commonOpts.test.js +0 -80
  508. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  509. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  510. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  511. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  512. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  513. package/lib/__tests__/hasFeature.test.js +0 -167
  514. package/lib/__tests__/http.test.d.ts +0 -1
  515. package/lib/__tests__/http.test.js +0 -40
  516. package/lib/__tests__/importData.test.d.ts +0 -1
  517. package/lib/__tests__/importData.test.js +0 -98
  518. package/lib/__tests__/npmCli.test.d.ts +0 -1
  519. package/lib/__tests__/npmCli.test.js +0 -84
  520. package/lib/__tests__/oauth.test.d.ts +0 -1
  521. package/lib/__tests__/oauth.test.js +0 -109
  522. package/lib/__tests__/parsing.test.d.ts +0 -1
  523. package/lib/__tests__/parsing.test.js +0 -34
  524. package/lib/__tests__/polling.test.d.ts +0 -1
  525. package/lib/__tests__/polling.test.js +0 -76
  526. package/lib/__tests__/process.test.d.ts +0 -1
  527. package/lib/__tests__/process.test.js +0 -89
  528. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  529. package/lib/__tests__/sandboxSync.test.js +0 -147
  530. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  531. package/lib/__tests__/sandboxes.test.js +0 -156
  532. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  533. package/lib/__tests__/serverlessLogs.test.js +0 -148
  534. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  535. package/lib/__tests__/usageTracking.test.js +0 -197
  536. package/lib/__tests__/validation.test.d.ts +0 -1
  537. package/lib/__tests__/validation.test.js +0 -143
  538. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  539. package/lib/__tests__/yargsUtils.test.js +0 -124
  540. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  541. package/lib/app/__tests__/migrate.test.js +0 -638
  542. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  543. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  544. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  545. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  546. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  547. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  548. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  549. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  550. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  551. package/lib/mcp/__tests__/setup.test.js +0 -194
  552. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  553. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  554. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  555. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  556. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  557. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  558. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  559. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  560. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  561. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  562. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  563. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  564. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  565. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  566. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  567. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  568. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  569. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  570. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  571. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  572. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  573. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  574. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  575. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  576. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  577. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  578. package/lib/projects/__tests__/components.test.d.ts +0 -1
  579. package/lib/projects/__tests__/components.test.js +0 -426
  580. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  581. package/lib/projects/__tests__/deploy.test.js +0 -231
  582. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  583. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  584. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  585. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  586. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  587. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  588. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  589. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  590. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  591. package/lib/projects/__tests__/projects.test.js +0 -58
  592. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  593. package/lib/projects/__tests__/structure.test.js +0 -210
  594. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  595. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  596. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  597. package/lib/projects/__tests__/upload.test.js +0 -183
  598. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  599. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  600. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  601. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  602. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  603. package/lib/projects/create/__tests__/legacy.test.js +0 -90
  604. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  605. package/lib/projects/create/__tests__/v2.test.js +0 -257
  606. package/lib/projects/platformVersion.d.ts +0 -9
  607. package/lib/projects/platformVersion.js +0 -39
  608. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  609. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  610. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  611. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  612. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  613. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  614. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  615. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  616. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  617. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  618. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  619. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  620. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  621. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  622. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  623. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  624. package/lib/sandboxSync.d.ts +0 -4
  625. package/lib/sandboxSync.js +0 -102
  626. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  627. package/lib/theme/__tests__/migrate.test.js +0 -256
  628. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  629. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  630. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  631. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  632. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  633. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -255
  634. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  635. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -228
  636. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  637. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -209
  638. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  639. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -187
  640. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  641. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -125
  642. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  643. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -125
  644. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  645. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -158
  646. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  647. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -133
  648. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  649. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -462
  650. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  651. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -126
  652. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  653. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  654. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  655. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  656. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  657. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -178
  658. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  659. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  660. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  661. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  662. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  663. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  664. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  665. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  666. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  667. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  668. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  669. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -179
  670. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  671. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  672. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  673. package/mcp-server/utils/__tests__/command.test.js +0 -45
  674. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  675. package/mcp-server/utils/__tests__/content.test.js +0 -164
  676. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  677. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -124
  678. package/mcp-server/utils/__tests__/project.test.d.ts +0 -1
  679. package/mcp-server/utils/__tests__/project.test.js +0 -140
  680. package/mcp-server/utils/project.d.ts +0 -5
  681. package/mcp-server/utils/project.js +0 -18
@@ -1 +0,0 @@
1
- export {};
@@ -1,45 +0,0 @@
1
- import { addFlag } from '../command.js';
2
- vi.mock('child_process');
3
- vi.mock('util');
4
- describe('mcp-server/utils/command', () => {
5
- describe('addFlag', () => {
6
- it('should add string flag to command', () => {
7
- const result = addFlag('hs project create', 'name', 'test-project');
8
- expect(result).toBe('hs project create --name "test-project"');
9
- });
10
- it('should add number flag to command', () => {
11
- const result = addFlag('hs project deploy', 'build', 123);
12
- expect(result).toBe('hs project deploy --build "123"');
13
- });
14
- it('should add boolean flag to command', () => {
15
- const result = addFlag('hs project upload', 'watch', true);
16
- expect(result).toBe('hs project upload --watch "true"');
17
- });
18
- it('should add array flag to command', () => {
19
- const result = addFlag('hs project create', 'features', [
20
- 'card',
21
- 'settings',
22
- ]);
23
- expect(result).toBe('hs project create --features "card" "settings"');
24
- });
25
- it('should handle empty array', () => {
26
- const result = addFlag('hs project create', 'features', []);
27
- expect(result).toBe('hs project create --features ');
28
- });
29
- it('should handle array with one item', () => {
30
- const result = addFlag('hs project create', 'features', ['card']);
31
- expect(result).toBe('hs project create --features "card"');
32
- });
33
- it('should handle special characters in string values', () => {
34
- const result = addFlag('hs project create', 'name', 'my-project with spaces');
35
- expect(result).toBe('hs project create --name "my-project with spaces"');
36
- });
37
- it('should handle special characters in array values', () => {
38
- const result = addFlag('hs project create', 'features', [
39
- 'card with spaces',
40
- 'settings',
41
- ]);
42
- expect(result).toBe('hs project create --features "card with spaces" "settings"');
43
- });
44
- });
45
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,164 +0,0 @@
1
- import { formatTextContents, formatTextContent } from '../content.js';
2
- import { mcpFeedbackRequest } from '../feedbackTracking.js';
3
- vi.mock('../feedbackTracking');
4
- const mockMcpFeedbackRequest = mcpFeedbackRequest;
5
- describe('mcp-server/utils/content', () => {
6
- describe('formatTextContent', () => {
7
- it('should format a single text string', () => {
8
- const result = formatTextContent('Test message');
9
- expect(result).toEqual({
10
- type: 'text',
11
- text: 'Test message',
12
- });
13
- });
14
- it('should handle empty string', () => {
15
- const result = formatTextContent('');
16
- expect(result).toEqual({
17
- type: 'text',
18
- text: '',
19
- });
20
- });
21
- it('should handle multiline text', () => {
22
- const multilineText = 'Line 1\nLine 2\nLine 3';
23
- const result = formatTextContent(multilineText);
24
- expect(result).toEqual({
25
- type: 'text',
26
- text: multilineText,
27
- });
28
- });
29
- });
30
- describe('formatTextContents', () => {
31
- it('should format single output without feedback', async () => {
32
- mockMcpFeedbackRequest.mockResolvedValue('');
33
- const result = await formatTextContents('Test output');
34
- expect(mockMcpFeedbackRequest).toHaveBeenCalled();
35
- expect(result).toEqual({
36
- content: [
37
- {
38
- type: 'text',
39
- text: 'Test output',
40
- },
41
- ],
42
- });
43
- });
44
- it('should format multiple outputs without feedback', async () => {
45
- mockMcpFeedbackRequest.mockResolvedValue('');
46
- const result = await formatTextContents('First output', 'Second output', 'Third output');
47
- expect(result).toEqual({
48
- content: [
49
- { type: 'text', text: 'First output' },
50
- { type: 'text', text: 'Second output' },
51
- { type: 'text', text: 'Third output' },
52
- ],
53
- });
54
- });
55
- it('should append feedback message when feedback is returned', async () => {
56
- const feedbackMessage = 'Please share your feedback!';
57
- mockMcpFeedbackRequest.mockResolvedValue(feedbackMessage);
58
- const result = await formatTextContents('Command output');
59
- expect(mockMcpFeedbackRequest).toHaveBeenCalled();
60
- expect(result).toEqual({
61
- content: [
62
- { type: 'text', text: 'Command output' },
63
- { type: 'text', text: feedbackMessage },
64
- ],
65
- });
66
- });
67
- it('should append feedback to multiple outputs', async () => {
68
- const feedbackMessage = 'Feedback request message';
69
- mockMcpFeedbackRequest.mockResolvedValue(feedbackMessage);
70
- const result = await formatTextContents('First output', 'Second output');
71
- expect(result).toEqual({
72
- content: [
73
- { type: 'text', text: 'First output' },
74
- { type: 'text', text: 'Second output' },
75
- { type: 'text', text: feedbackMessage },
76
- ],
77
- });
78
- });
79
- it('should filter out undefined outputs', async () => {
80
- mockMcpFeedbackRequest.mockResolvedValue('');
81
- const result = await formatTextContents('First output', undefined, 'Third output', undefined);
82
- expect(result).toEqual({
83
- content: [
84
- { type: 'text', text: 'First output' },
85
- { type: 'text', text: 'Third output' },
86
- ],
87
- });
88
- });
89
- it('should not call mcpFeedbackRequest when no outputs provided', async () => {
90
- mockMcpFeedbackRequest.mockResolvedValue('Feedback message');
91
- const result = await formatTextContents();
92
- expect(mockMcpFeedbackRequest).not.toHaveBeenCalled();
93
- expect(result).toEqual({
94
- content: [],
95
- });
96
- });
97
- it('should call mcpFeedbackRequest but not add feedback when all outputs are undefined and feedback is empty', async () => {
98
- mockMcpFeedbackRequest.mockResolvedValue('');
99
- const result = await formatTextContents(undefined, undefined);
100
- // mcpFeedbackRequest is still called because outputs.length > 0, but content is empty
101
- expect(mockMcpFeedbackRequest).toHaveBeenCalled();
102
- expect(result).toEqual({
103
- content: [],
104
- });
105
- });
106
- it('should handle empty string outputs and still request feedback', async () => {
107
- mockMcpFeedbackRequest.mockResolvedValue('');
108
- const result = await formatTextContents('');
109
- expect(mockMcpFeedbackRequest).toHaveBeenCalled();
110
- expect(result).toEqual({
111
- content: [{ type: 'text', text: '' }],
112
- });
113
- });
114
- it('should not add feedback when empty string is returned from mcpFeedbackRequest', async () => {
115
- mockMcpFeedbackRequest.mockResolvedValue('');
116
- const result = await formatTextContents('Output 1', 'Output 2');
117
- // Should not have a third content item with empty feedback
118
- expect(result.content).toHaveLength(2);
119
- expect(result).toEqual({
120
- content: [
121
- { type: 'text', text: 'Output 1' },
122
- { type: 'text', text: 'Output 2' },
123
- ],
124
- });
125
- });
126
- it('should handle feedback request with realistic threshold message', async () => {
127
- const realisticFeedback = `
128
-
129
- ---
130
-
131
- IMPORTANT - FEEDBACK REQUEST FOR THIS RESPONSE ONLY:
132
- This message appears only once. If you see this text in the tool output, you MUST include the following feedback request in your response to the user. If this text is NOT in the tool output, do NOT ask for feedback.
133
-
134
- Say: "📝 **Before we continue, would you mind sharing feedback on your experience with the HubSpot Developer MCP?** Your input helps us improve: [Share feedback here](https://app.hubspot.com/l/product-updates/in-beta?rollout=239890)"`;
135
- mockMcpFeedbackRequest.mockResolvedValue(realisticFeedback);
136
- const result = await formatTextContents('Project created successfully');
137
- expect(result.content).toHaveLength(2);
138
- expect(result.content[0]).toEqual({
139
- type: 'text',
140
- text: 'Project created successfully',
141
- });
142
- expect(result.content[1]).toEqual({
143
- type: 'text',
144
- text: realisticFeedback,
145
- });
146
- expect(result.content[1].text).toContain('FEEDBACK REQUEST');
147
- });
148
- it('should not require absoluteCurrentWorkingDirectory parameter', async () => {
149
- mockMcpFeedbackRequest.mockResolvedValue('');
150
- const result = await formatTextContents('Test output');
151
- expect(mockMcpFeedbackRequest).toHaveBeenCalled();
152
- expect(result).toEqual({
153
- content: [{ type: 'text', text: 'Test output' }],
154
- });
155
- });
156
- it('should await mcpFeedbackRequest and handle async properly', async () => {
157
- const feedbackPromise = Promise.resolve('Async feedback message');
158
- mockMcpFeedbackRequest.mockReturnValue(feedbackPromise);
159
- const result = await formatTextContents('Output');
160
- expect(result.content).toHaveLength(2);
161
- expect(result.content[1].text).toBe('Async feedback message');
162
- });
163
- });
164
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,124 +0,0 @@
1
- import { mcpFeedbackRequest } from '../feedbackTracking.js';
2
- import { getStateValue, setStateValue, } from '@hubspot/local-dev-lib/config/state';
3
- import { getConfigDefaultAccountIfExists } from '@hubspot/local-dev-lib/config';
4
- import { hasFeature } from '../../../lib/hasFeature.js';
5
- import { FEATURES } from '../../../lib/constants.js';
6
- vi.mock('@hubspot/local-dev-lib/config/state');
7
- vi.mock('@hubspot/local-dev-lib/config');
8
- vi.mock('@hubspot/local-dev-lib/logger');
9
- vi.mock('../../../lib/hasFeature');
10
- vi.mock('../../../lib/errorHandlers/index');
11
- const mockGetStateValue = getStateValue;
12
- const mockSetStateValue = setStateValue;
13
- const mockGetConfigDefaultAccountIfExists = getConfigDefaultAccountIfExists;
14
- const mockHasFeature = hasFeature;
15
- describe('mcp-server/utils/feedbackTracking', () => {
16
- describe('mcpFeedbackRequest', () => {
17
- it('should return empty string when not at a threshold', async () => {
18
- mockGetStateValue.mockReturnValue(10);
19
- const result = await mcpFeedbackRequest();
20
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 11);
21
- expect(result).toBe(undefined);
22
- });
23
- it('should return feedback message at threshold 50', async () => {
24
- mockGetStateValue.mockReturnValue(49);
25
- mockGetConfigDefaultAccountIfExists.mockReturnValue(undefined);
26
- const result = await mcpFeedbackRequest();
27
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 50);
28
- expect(result).toContain('FEEDBACK REQUEST');
29
- expect(result).toContain('https://app.hubspot.com/l/product-updates/in-beta?rollout=239890');
30
- });
31
- it('should return feedback message at threshold 250', async () => {
32
- mockGetStateValue.mockReturnValue(249);
33
- mockGetConfigDefaultAccountIfExists.mockReturnValue(undefined);
34
- const result = await mcpFeedbackRequest();
35
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 250);
36
- expect(result).toContain('FEEDBACK REQUEST');
37
- });
38
- it('should return feedback message at threshold 550', async () => {
39
- mockGetStateValue.mockReturnValue(549);
40
- mockGetConfigDefaultAccountIfExists.mockReturnValue(undefined);
41
- const result = await mcpFeedbackRequest();
42
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 550);
43
- expect(result).toContain('FEEDBACK REQUEST');
44
- });
45
- it('should return feedback message at threshold 1050', async () => {
46
- mockGetStateValue.mockReturnValue(1049);
47
- mockGetConfigDefaultAccountIfExists.mockReturnValue(undefined);
48
- const result = await mcpFeedbackRequest();
49
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 1050);
50
- expect(result).toContain('FEEDBACK REQUEST');
51
- });
52
- it('should use account-specific URL when account has MCP access', async () => {
53
- const accountId = 12345;
54
- mockGetStateValue.mockReturnValue(49);
55
- mockGetConfigDefaultAccountIfExists.mockReturnValue({
56
- accountId,
57
- });
58
- mockHasFeature.mockResolvedValue(true);
59
- const result = await mcpFeedbackRequest();
60
- expect(mockGetConfigDefaultAccountIfExists).toHaveBeenCalled();
61
- expect(mockHasFeature).toHaveBeenCalledWith(accountId, FEATURES.MCP_ACCESS);
62
- expect(result).toContain(`https://app.hubspot.com/product-updates/${accountId}/in-beta?rollout=239890`);
63
- });
64
- it('should use default URL when account does not have MCP access', async () => {
65
- const accountId = 12345;
66
- mockGetStateValue.mockReturnValue(49);
67
- mockGetConfigDefaultAccountIfExists.mockReturnValue({
68
- accountId,
69
- });
70
- mockHasFeature.mockResolvedValue(false);
71
- const result = await mcpFeedbackRequest();
72
- expect(mockHasFeature).toHaveBeenCalledWith(accountId, FEATURES.MCP_ACCESS);
73
- expect(result).toContain('https://app.hubspot.com/l/product-updates/in-beta?rollout=239890');
74
- expect(result).not.toContain(`/product-updates/${accountId}/`);
75
- });
76
- it('should use default URL when no account ID is found', async () => {
77
- mockGetStateValue.mockReturnValue(49);
78
- mockGetConfigDefaultAccountIfExists.mockReturnValue(undefined);
79
- const result = await mcpFeedbackRequest();
80
- expect(mockGetConfigDefaultAccountIfExists).toHaveBeenCalled();
81
- expect(mockHasFeature).not.toHaveBeenCalled();
82
- expect(result).toContain('https://app.hubspot.com/l/product-updates/in-beta?rollout=239890');
83
- });
84
- it('should handle errors gracefully and return empty string', async () => {
85
- mockGetStateValue.mockImplementation(() => {
86
- throw new Error('State error');
87
- });
88
- const result = await mcpFeedbackRequest();
89
- expect(result).toBe(undefined);
90
- });
91
- it('should handle hasFeature errors and use default URL', async () => {
92
- const accountId = 12345;
93
- mockGetStateValue.mockReturnValue(49);
94
- mockGetConfigDefaultAccountIfExists.mockReturnValue({
95
- accountId,
96
- });
97
- mockHasFeature.mockRejectedValue(new Error('Feature check failed'));
98
- const result = await mcpFeedbackRequest();
99
- expect(result).toContain('https://app.hubspot.com/l/product-updates/in-beta?rollout=239890');
100
- expect(result).not.toContain(`/product-updates/${accountId}/`);
101
- });
102
- it('should not return feedback at threshold + 1', async () => {
103
- mockGetStateValue.mockReturnValue(50);
104
- const result = await mcpFeedbackRequest();
105
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 51);
106
- expect(result).toBe(undefined);
107
- });
108
- it('should increment tool calls counter on every invocation', async () => {
109
- const initialCount = 100;
110
- mockGetStateValue.mockReturnValue(initialCount);
111
- await mcpFeedbackRequest();
112
- expect(mockGetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls');
113
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', initialCount + 1);
114
- });
115
- it('should include feedback request instructions in message', async () => {
116
- mockGetStateValue.mockReturnValue(49);
117
- mockGetConfigDefaultAccountIfExists.mockReturnValue(undefined);
118
- const result = await mcpFeedbackRequest();
119
- expect(result).toContain('IMPORTANT - FEEDBACK REQUEST');
120
- expect(result).toContain('This message appears only once');
121
- expect(result).toContain('Share feedback here');
122
- });
123
- });
124
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,140 +0,0 @@
1
- import { runCommandInDir } from '../project.js';
2
- import { execAsync } from '../command.js';
3
- import fs from 'fs';
4
- import path from 'path';
5
- vi.mock('../command', () => ({
6
- execAsync: vi.fn(),
7
- addFlag: vi.fn((command, flagName, value) => {
8
- if (Array.isArray(value)) {
9
- return `${command} --${flagName} ${value.map(item => `"${item}"`).join(' ')}`;
10
- }
11
- return `${command} --${flagName} "${value}"`;
12
- }),
13
- }));
14
- vi.mock('fs');
15
- vi.mock('path');
16
- const mockExecAsync = execAsync;
17
- const mockExistsSync = fs.existsSync;
18
- const mockMkdirSync = fs.mkdirSync;
19
- const mockResolve = path.resolve;
20
- describe('mcp-server/utils/project', () => {
21
- describe('runCommandInDir', () => {
22
- const mockDirectory = '/test/directory';
23
- const mockCommand = 'npm install';
24
- const mockResolvedPath = '/resolved/test/directory';
25
- beforeEach(() => {
26
- mockResolve.mockReturnValue(mockResolvedPath);
27
- });
28
- it('should run command in existing directory', async () => {
29
- const expectedResult = {
30
- stdout: 'command output',
31
- stderr: '',
32
- };
33
- mockExistsSync.mockReturnValue(true);
34
- mockExecAsync.mockResolvedValue(expectedResult);
35
- const result = await runCommandInDir(mockDirectory, mockCommand);
36
- expect(mockExistsSync).toHaveBeenCalledWith(mockDirectory);
37
- expect(mockMkdirSync).not.toHaveBeenCalled();
38
- expect(mockResolve).toHaveBeenCalledWith(mockDirectory);
39
- expect(mockExecAsync).toHaveBeenCalledWith(mockCommand, expect.objectContaining({
40
- cwd: mockResolvedPath,
41
- env: expect.any(Object),
42
- }));
43
- expect(result).toEqual(expectedResult);
44
- });
45
- it('should create directory if it does not exist', async () => {
46
- const expectedResult = {
47
- stdout: 'command output',
48
- stderr: '',
49
- };
50
- mockExistsSync.mockReturnValue(false);
51
- mockExecAsync.mockResolvedValue(expectedResult);
52
- const result = await runCommandInDir(mockDirectory, mockCommand);
53
- expect(mockExistsSync).toHaveBeenCalledWith(mockDirectory);
54
- expect(mockMkdirSync).toHaveBeenCalledWith(mockDirectory);
55
- expect(mockResolve).toHaveBeenCalledWith(mockDirectory);
56
- expect(mockExecAsync).toHaveBeenCalledWith(mockCommand, expect.objectContaining({
57
- cwd: mockResolvedPath,
58
- env: expect.any(Object),
59
- }));
60
- expect(result).toEqual(expectedResult);
61
- });
62
- it('should propagate execAsync errors', async () => {
63
- const error = new Error('Command failed');
64
- mockExistsSync.mockReturnValue(true);
65
- mockExecAsync.mockRejectedValue(error);
66
- await expect(runCommandInDir(mockDirectory, mockCommand)).rejects.toThrow('Command failed');
67
- expect(mockExecAsync).toHaveBeenCalledWith(mockCommand, expect.objectContaining({
68
- cwd: mockResolvedPath,
69
- env: expect.any(Object),
70
- }));
71
- });
72
- it('should handle stderr in results', async () => {
73
- const expectedResult = {
74
- stdout: 'some output',
75
- stderr: 'warning message',
76
- };
77
- mockExistsSync.mockReturnValue(true);
78
- mockExecAsync.mockResolvedValue(expectedResult);
79
- const result = await runCommandInDir(mockDirectory, mockCommand);
80
- expect(result.stdout).toBe('some output');
81
- expect(result.stderr).toBe('warning message');
82
- });
83
- it('should add --disable-usage-tracking flag to hs commands', async () => {
84
- const hsCommand = 'hs project upload';
85
- const expectedResult = {
86
- stdout: 'success',
87
- stderr: '',
88
- };
89
- mockExistsSync.mockReturnValue(true);
90
- mockExecAsync.mockResolvedValue(expectedResult);
91
- await runCommandInDir(mockDirectory, hsCommand);
92
- expect(mockExecAsync).toHaveBeenCalledWith('hs project upload --disable-usage-tracking "true"', expect.objectContaining({
93
- cwd: mockResolvedPath,
94
- env: expect.any(Object),
95
- }));
96
- });
97
- it('should not add --disable-usage-tracking flag to non-hs commands', async () => {
98
- const nonHsCommand = 'npm install';
99
- const expectedResult = {
100
- stdout: 'success',
101
- stderr: '',
102
- };
103
- mockExistsSync.mockReturnValue(true);
104
- mockExecAsync.mockResolvedValue(expectedResult);
105
- await runCommandInDir(mockDirectory, nonHsCommand);
106
- expect(mockExecAsync).toHaveBeenCalledWith('npm install', expect.objectContaining({
107
- cwd: mockResolvedPath,
108
- env: expect.any(Object),
109
- }));
110
- });
111
- it('should add --disable-usage-tracking flag to hs commands with existing flags', async () => {
112
- const hsCommand = 'hs project upload --profile prod';
113
- const expectedResult = {
114
- stdout: 'success',
115
- stderr: '',
116
- };
117
- mockExistsSync.mockReturnValue(true);
118
- mockExecAsync.mockResolvedValue(expectedResult);
119
- await runCommandInDir(mockDirectory, hsCommand);
120
- expect(mockExecAsync).toHaveBeenCalledWith('hs project upload --profile prod --disable-usage-tracking "true"', expect.objectContaining({
121
- cwd: mockResolvedPath,
122
- env: expect.any(Object),
123
- }));
124
- });
125
- it('should handle hs commands that start with whitespace', async () => {
126
- const hsCommand = 'hs init';
127
- const expectedResult = {
128
- stdout: 'success',
129
- stderr: '',
130
- };
131
- mockExistsSync.mockReturnValue(true);
132
- mockExecAsync.mockResolvedValue(expectedResult);
133
- await runCommandInDir(mockDirectory, hsCommand);
134
- expect(mockExecAsync).toHaveBeenCalledWith('hs init --disable-usage-tracking "true"', expect.objectContaining({
135
- cwd: mockResolvedPath,
136
- env: expect.any(Object),
137
- }));
138
- });
139
- });
140
- });
@@ -1,5 +0,0 @@
1
- export interface CommandResults {
2
- stderr: string;
3
- stdout: string;
4
- }
5
- export declare function runCommandInDir(directory: string, command: string): Promise<CommandResults>;
@@ -1,18 +0,0 @@
1
- import { addFlag, execAsync } from './command.js';
2
- import path from 'path';
3
- import fs from 'fs';
4
- export async function runCommandInDir(directory, command) {
5
- if (!fs.existsSync(directory)) {
6
- fs.mkdirSync(directory);
7
- }
8
- let finalCommand = command;
9
- if (command.startsWith('hs ')) {
10
- finalCommand = addFlag(finalCommand, 'disable-usage-tracking', true);
11
- }
12
- return execAsync(finalCommand, {
13
- cwd: path.resolve(directory),
14
- env: {
15
- ...process.env,
16
- },
17
- });
18
- }