@hubspot/cli 8.2.0 → 8.2.1-experimental.1

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 (768) 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.d.ts +3 -1
  6. package/commands/account/auth.js +25 -7
  7. package/commands/account/clean.js +7 -6
  8. package/commands/account/createOverride.js +10 -7
  9. package/commands/account/info.js +36 -17
  10. package/commands/account/link.d.ts +4 -0
  11. package/commands/account/link.js +87 -0
  12. package/commands/account/list.js +32 -76
  13. package/commands/account/remove.js +4 -3
  14. package/commands/account/removeOverride.js +11 -10
  15. package/commands/account/rename.js +5 -6
  16. package/commands/account/unlink.d.ts +4 -0
  17. package/commands/account/unlink.js +68 -0
  18. package/commands/account/use.js +75 -6
  19. package/commands/account.js +4 -0
  20. package/commands/api.d.ts +13 -0
  21. package/commands/api.js +161 -0
  22. package/commands/app/logDetails.d.ts +9 -0
  23. package/commands/app/logDetails.js +86 -0
  24. package/commands/app/logs.d.ts +13 -0
  25. package/commands/app/logs.js +126 -0
  26. package/commands/app/migrate.js +13 -13
  27. package/commands/app/secret/add.js +6 -7
  28. package/commands/app/secret/delete.js +9 -10
  29. package/commands/app/secret/list.js +6 -7
  30. package/commands/app/secret/update.js +8 -9
  31. package/commands/app.js +8 -1
  32. package/commands/auth.js +20 -16
  33. package/commands/cms/app/create.js +9 -5
  34. package/commands/cms/convertFields.js +8 -8
  35. package/commands/cms/delete.js +2 -3
  36. package/commands/cms/fetch.js +7 -7
  37. package/commands/cms/function/create.js +9 -5
  38. package/commands/cms/function/deploy.js +2 -3
  39. package/commands/cms/function/list.js +11 -7
  40. package/commands/cms/function/logs.js +17 -23
  41. package/commands/cms/function/server.js +16 -10
  42. package/commands/cms/getReactModule.js +7 -8
  43. package/commands/cms/lighthouseScore.js +25 -24
  44. package/commands/cms/lint.js +4 -5
  45. package/commands/cms/list.js +5 -6
  46. package/commands/cms/module/create.js +15 -5
  47. package/commands/cms/module/marketplace-validate.js +7 -8
  48. package/commands/cms/mv.js +2 -3
  49. package/commands/cms/template/create.js +10 -6
  50. package/commands/cms/theme/create.js +5 -5
  51. package/commands/cms/theme/generate-selectors.js +5 -4
  52. package/commands/cms/theme/marketplace-validate.js +8 -9
  53. package/commands/cms/theme/preview.js +24 -9
  54. package/commands/cms/upload.js +15 -12
  55. package/commands/cms/watch.js +5 -5
  56. package/commands/cms/webpack/create.js +5 -5
  57. package/commands/completion.js +3 -5
  58. package/commands/config/migrate.js +6 -7
  59. package/commands/config/set.js +29 -11
  60. package/commands/customObject/create.js +4 -5
  61. package/commands/customObject/createSchema.js +6 -8
  62. package/commands/customObject/deleteSchema.js +4 -5
  63. package/commands/customObject/fetchAllSchemas.js +2 -3
  64. package/commands/customObject/fetchSchema.js +2 -3
  65. package/commands/customObject/listSchemas.js +2 -3
  66. package/commands/customObject/updateSchema.js +6 -8
  67. package/commands/doctor.js +8 -8
  68. package/commands/feedback.js +6 -4
  69. package/commands/filemanager/fetch.js +5 -6
  70. package/commands/filemanager/upload.js +5 -5
  71. package/commands/getStarted.js +34 -38
  72. package/commands/hubdb/clear.js +6 -3
  73. package/commands/hubdb/create.js +4 -5
  74. package/commands/hubdb/delete.js +9 -6
  75. package/commands/hubdb/fetch.js +6 -3
  76. package/commands/hubdb/list.d.ts +1 -1
  77. package/commands/hubdb/list.js +23 -22
  78. package/commands/init.js +18 -15
  79. package/commands/mcp/setup.d.ts +2 -0
  80. package/commands/mcp/setup.js +35 -8
  81. package/commands/mcp/start.js +2 -3
  82. package/commands/open.js +4 -5
  83. package/commands/project/add.js +19 -13
  84. package/commands/project/appInstallStatus.d.ts +5 -0
  85. package/commands/project/appInstallStatus.js +139 -0
  86. package/commands/project/create.js +37 -22
  87. package/commands/project/delete.d.ts +7 -0
  88. package/commands/project/delete.js +74 -0
  89. package/commands/project/deploy.d.ts +2 -1
  90. package/commands/project/deploy.js +72 -50
  91. package/commands/project/dev/index.d.ts +3 -3
  92. package/commands/project/dev/index.js +40 -73
  93. package/commands/project/dev/unifiedFlow.js +81 -22
  94. package/commands/project/download.js +15 -12
  95. package/commands/project/info.d.ts +5 -0
  96. package/commands/project/info.js +73 -0
  97. package/commands/project/installApp.d.ts +8 -0
  98. package/commands/project/installApp.js +185 -0
  99. package/commands/project/installDeps.js +17 -11
  100. package/commands/project/lint.js +57 -19
  101. package/commands/project/list.d.ts +2 -2
  102. package/commands/project/list.js +15 -14
  103. package/commands/project/listBuilds.d.ts +3 -2
  104. package/commands/project/listBuilds.js +50 -19
  105. package/commands/project/logs.js +7 -10
  106. package/commands/project/migrate.js +30 -28
  107. package/commands/project/open.js +20 -13
  108. package/commands/project/profile/add.d.ts +2 -1
  109. package/commands/project/profile/add.js +42 -13
  110. package/commands/project/profile/delete.d.ts +1 -1
  111. package/commands/project/profile/delete.js +23 -15
  112. package/commands/project/release/create.d.ts +8 -0
  113. package/commands/project/release/create.js +156 -0
  114. package/commands/project/release/info.d.ts +7 -0
  115. package/commands/project/release/info.js +148 -0
  116. package/commands/project/release/list.d.ts +7 -0
  117. package/commands/project/release/list.js +119 -0
  118. package/commands/project/release.d.ts +3 -0
  119. package/commands/project/release.js +20 -0
  120. package/commands/project/updateDeps.js +15 -11
  121. package/commands/project/upload.d.ts +7 -1
  122. package/commands/project/upload.js +159 -35
  123. package/commands/project/validate.d.ts +1 -1
  124. package/commands/project/validate.js +23 -106
  125. package/commands/project/watch.js +27 -29
  126. package/commands/project.js +17 -4
  127. package/commands/sandbox/create.js +18 -45
  128. package/commands/sandbox/delete.js +15 -17
  129. package/commands/secret/addSecret.js +6 -7
  130. package/commands/secret/deleteSecret.js +5 -6
  131. package/commands/secret/listSecret.js +2 -3
  132. package/commands/secret/updateSecret.js +4 -5
  133. package/commands/testAccount/create.d.ts +3 -2
  134. package/commands/testAccount/create.js +30 -22
  135. package/commands/testAccount/createConfig.js +7 -8
  136. package/commands/testAccount/delete.js +27 -18
  137. package/commands/testAccount/importData.d.ts +1 -1
  138. package/commands/testAccount/importData.js +6 -7
  139. package/commands/upgrade.js +11 -10
  140. package/lang/en.d.ts +573 -54
  141. package/lang/en.js +614 -79
  142. package/lib/CLIWebSocketServer.d.ts +5 -3
  143. package/lib/CLIWebSocketServer.js +31 -4
  144. package/lib/accountAuth.d.ts +3 -1
  145. package/lib/accountAuth.js +47 -17
  146. package/lib/accountTargetDiscovery.d.ts +15 -0
  147. package/lib/accountTargetDiscovery.js +175 -0
  148. package/lib/api/usageTracking.d.ts +30 -0
  149. package/lib/api/usageTracking.js +11 -0
  150. package/lib/app/install.d.ts +22 -0
  151. package/lib/app/install.js +42 -0
  152. package/lib/app/logs.d.ts +38 -0
  153. package/lib/app/logs.js +225 -0
  154. package/lib/app/migrate.js +23 -12
  155. package/lib/app/urls.d.ts +2 -0
  156. package/lib/app/urls.js +7 -1
  157. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.d.ts +4 -0
  158. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.js +146 -0
  159. package/lib/buildAccount.d.ts +1 -6
  160. package/lib/buildAccount.js +10 -43
  161. package/lib/cms/serverlessDevRuntime.d.ts +1 -0
  162. package/lib/cms/serverlessDevRuntime.js +72 -0
  163. package/lib/commonOpts.js +6 -2
  164. package/lib/configOptions.d.ts +10 -10
  165. package/lib/configOptions.js +10 -11
  166. package/lib/constants.d.ts +14 -3
  167. package/lib/constants.js +16 -3
  168. package/lib/dependencyManagement.js +10 -17
  169. package/lib/doctor/Diagnosis.js +5 -5
  170. package/lib/doctor/DiagnosticInfoBuilder.d.ts +2 -2
  171. package/lib/doctor/DiagnosticInfoBuilder.js +8 -8
  172. package/lib/doctor/Doctor.d.ts +1 -0
  173. package/lib/doctor/Doctor.js +40 -16
  174. package/lib/errorHandlers/index.js +4 -3
  175. package/lib/errorHandlers/suppressError.js +4 -0
  176. package/lib/errors/ProjectErrors.d.ts +0 -6
  177. package/lib/errors/ProjectErrors.js +0 -12
  178. package/lib/errors/ProjectValidationError.d.ts +2 -1
  179. package/lib/errors/ProjectValidationError.js +3 -1
  180. package/lib/errors/PromptExitError.d.ts +6 -0
  181. package/lib/errors/PromptExitError.js +11 -0
  182. package/lib/getStartedV2Actions.js +19 -22
  183. package/lib/hasFeature.js +1 -2
  184. package/lib/importData.js +3 -4
  185. package/lib/jsonOutput.d.ts +195 -0
  186. package/lib/jsonOutput.js +171 -0
  187. package/lib/link/accountTableUtils.d.ts +10 -0
  188. package/lib/link/accountTableUtils.js +39 -0
  189. package/lib/link/index.d.ts +18 -0
  190. package/lib/link/index.js +185 -0
  191. package/lib/link/linkUtils.d.ts +5 -0
  192. package/lib/link/linkUtils.js +49 -0
  193. package/lib/link/prompts.d.ts +7 -0
  194. package/lib/link/prompts.js +126 -0
  195. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  196. package/lib/link/renderLinkedAccountsTable.js +14 -0
  197. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  198. package/lib/link/warnIfLinkedDirectory.js +9 -0
  199. package/lib/links.js +6 -5
  200. package/lib/mcp/clients.d.ts +13 -0
  201. package/lib/mcp/clients.js +62 -0
  202. package/lib/mcp/promotion.d.ts +3 -0
  203. package/lib/mcp/promotion.js +109 -0
  204. package/lib/mcp/setup.d.ts +8 -2
  205. package/lib/mcp/setup.js +123 -38
  206. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  207. package/lib/middleware/commandTargetingUtils.js +1 -0
  208. package/lib/npm/npmCli.d.ts +1 -0
  209. package/lib/npm/npmCli.js +13 -0
  210. package/lib/npm/packageJson.js +1 -1
  211. package/lib/process.d.ts +1 -1
  212. package/lib/process.js +10 -3
  213. package/lib/projects/ProjectLogsManager.js +7 -7
  214. package/lib/projects/builds.d.ts +2 -0
  215. package/lib/projects/builds.js +22 -0
  216. package/lib/projects/components.js +15 -4
  217. package/lib/projects/config.d.ts +6 -5
  218. package/lib/projects/config.js +7 -38
  219. package/lib/projects/create/index.js +2 -2
  220. package/lib/projects/create/legacy.js +2 -2
  221. package/lib/projects/create/v2.js +5 -5
  222. package/lib/projects/delete.d.ts +13 -0
  223. package/lib/projects/delete.js +193 -0
  224. package/lib/projects/deploy.d.ts +1 -1
  225. package/lib/projects/deploy.js +2 -2
  226. package/lib/projects/installApp.d.ts +58 -0
  227. package/lib/projects/installApp.js +283 -0
  228. package/lib/projects/localDev/AppDevModeInterface.d.ts +0 -3
  229. package/lib/projects/localDev/AppDevModeInterface.js +35 -53
  230. package/lib/projects/localDev/DevSessionManager.d.ts +8 -5
  231. package/lib/projects/localDev/DevSessionManager.js +35 -49
  232. package/lib/projects/localDev/LocalDevLogger.d.ts +4 -0
  233. package/lib/projects/localDev/LocalDevLogger.js +18 -0
  234. package/lib/projects/localDev/LocalDevProcess.d.ts +11 -1
  235. package/lib/projects/localDev/LocalDevProcess.js +104 -19
  236. package/lib/projects/localDev/LocalDevState.d.ts +9 -2
  237. package/lib/projects/localDev/LocalDevState.js +21 -1
  238. package/lib/projects/localDev/LocalDevWatcher.js +1 -1
  239. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +1 -0
  240. package/lib/projects/localDev/LocalDevWebsocketServer.js +24 -2
  241. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +2 -0
  242. package/lib/projects/localDev/helpers/account.d.ts +1 -7
  243. package/lib/projects/localDev/helpers/account.js +12 -100
  244. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  245. package/lib/projects/localDev/helpers/process.js +4 -10
  246. package/lib/projects/localDev/helpers/project.d.ts +8 -6
  247. package/lib/projects/localDev/helpers/project.js +80 -29
  248. package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +2 -1
  249. package/lib/projects/localDev/localDevWebsocketServerUtils.js +3 -0
  250. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  251. package/lib/projects/npmAuditOnUpload.js +73 -0
  252. package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
  253. package/lib/projects/pollProjectBuildAndDeploy.js +3 -2
  254. package/lib/projects/preview.d.ts +7 -0
  255. package/lib/projects/preview.js +48 -0
  256. package/lib/projects/projectInfo.d.ts +5 -0
  257. package/lib/projects/projectInfo.js +82 -0
  258. package/lib/projects/projectProfiles.d.ts +2 -3
  259. package/lib/projects/projectProfiles.js +5 -20
  260. package/lib/projects/release.d.ts +4 -0
  261. package/lib/projects/release.js +90 -0
  262. package/lib/projects/ui.d.ts +1 -0
  263. package/lib/projects/ui.js +14 -0
  264. package/lib/projects/uieLinting.d.ts +21 -3
  265. package/lib/projects/uieLinting.js +129 -28
  266. package/lib/projects/upload.d.ts +12 -2
  267. package/lib/projects/upload.js +59 -13
  268. package/lib/projects/urls.d.ts +0 -1
  269. package/lib/projects/urls.js +6 -13
  270. package/lib/projects/validate.d.ts +9 -0
  271. package/lib/projects/validate.js +96 -0
  272. package/lib/projects/validateLintConfigOnUpload.d.ts +9 -0
  273. package/lib/projects/validateLintConfigOnUpload.js +45 -0
  274. package/lib/projects/workspaces.d.ts +60 -0
  275. package/lib/projects/workspaces.js +411 -0
  276. package/lib/prompts/createApiSamplePrompt.js +4 -0
  277. package/lib/prompts/downloadProjectPrompt.js +11 -10
  278. package/lib/prompts/installAppPrompt.js +3 -2
  279. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -5
  280. package/lib/prompts/personalAccessKeyPrompt.js +10 -7
  281. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  282. package/lib/prompts/projectDevTargetAccountPrompt.js +26 -18
  283. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  284. package/lib/prompts/projectProfilePrompt.js +46 -0
  285. package/lib/prompts/projectsLogsPrompt.js +3 -0
  286. package/lib/prompts/promptUtils.js +4 -2
  287. package/lib/prompts/selectAppPrompt.js +1 -0
  288. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  289. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  290. package/lib/prompts/setAsDefaultAccountPrompt.js +2 -1
  291. package/lib/sandboxes.d.ts +1 -9
  292. package/lib/sandboxes.js +0 -21
  293. package/lib/serverlessLogs.js +2 -2
  294. package/lib/theme/cmsDevServerProcess.d.ts +2 -0
  295. package/lib/theme/cmsDevServerProcess.js +8 -7
  296. package/lib/theme/migrate.d.ts +1 -1
  297. package/lib/theme/migrate.js +2 -9
  298. package/lib/ui/SpinniesManager.d.ts +1 -0
  299. package/lib/ui/SpinniesManager.js +22 -6
  300. package/lib/ui/accountTable.d.ts +8 -0
  301. package/lib/ui/accountTable.js +67 -0
  302. package/lib/ui/appLogs.d.ts +32 -0
  303. package/lib/ui/appLogs.js +175 -0
  304. package/lib/ui/spinniesUtils.d.ts +0 -1
  305. package/lib/ui/spinniesUtils.js +6 -16
  306. package/lib/usageTracking.d.ts +10 -20
  307. package/lib/usageTracking.js +77 -30
  308. package/lib/yargs/makeWrappedYargsHandler.d.ts +7 -0
  309. package/lib/yargs/makeWrappedYargsHandler.js +179 -0
  310. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  311. package/lib/yargs/makeYargsBuilder.js +33 -0
  312. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  313. package/lib/yargs/parseYargsOrExit.js +25 -0
  314. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  315. package/lib/yargs/strictEnforceBoolean.js +13 -0
  316. package/lib/yargsUtils.d.ts +3 -16
  317. package/lib/yargsUtils.js +3 -48
  318. package/mcp-server/Tool.d.ts +20 -0
  319. package/mcp-server/Tool.js +79 -0
  320. package/mcp-server/server.js +47 -3
  321. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +5 -3
  322. package/mcp-server/tools/cms/HsCreateFunctionTool.js +18 -23
  323. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +5 -3
  324. package/mcp-server/tools/cms/HsCreateModuleTool.js +21 -26
  325. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +5 -3
  326. package/mcp-server/tools/cms/HsCreateTemplateTool.js +16 -16
  327. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +5 -3
  328. package/mcp-server/tools/cms/HsFunctionLogsTool.js +16 -15
  329. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +5 -3
  330. package/mcp-server/tools/cms/HsListFunctionsTool.js +14 -13
  331. package/mcp-server/tools/cms/HsListTool.d.ts +5 -3
  332. package/mcp-server/tools/cms/HsListTool.js +14 -16
  333. package/mcp-server/tools/index.d.ts +3 -2
  334. package/mcp-server/tools/index.js +26 -22
  335. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +8 -4
  336. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -15
  337. package/mcp-server/tools/project/AuthAccountTool.d.ts +18 -0
  338. package/mcp-server/tools/project/AuthAccountTool.js +78 -0
  339. package/mcp-server/tools/project/CreateProjectTool.d.ts +8 -4
  340. package/mcp-server/tools/project/CreateProjectTool.js +21 -17
  341. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +5 -3
  342. package/mcp-server/tools/project/CreateTestAccountTool.js +35 -24
  343. package/mcp-server/tools/project/DeployProjectTool.d.ts +5 -3
  344. package/mcp-server/tools/project/DeployProjectTool.js +14 -16
  345. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  346. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  347. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  348. package/mcp-server/tools/project/DocsSearchTool.js +39 -15
  349. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  350. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  351. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +6 -3
  352. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +16 -13
  353. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +6 -3
  354. package/mcp-server/tools/project/GetApplicationInfoTool.js +19 -14
  355. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +4 -2
  356. package/mcp-server/tools/project/GetBuildLogsTool.js +19 -14
  357. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +4 -2
  358. package/mcp-server/tools/project/GetBuildStatusTool.js +19 -14
  359. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +6 -3
  360. package/mcp-server/tools/project/GetConfigValuesTool.js +20 -13
  361. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +4 -2
  362. package/mcp-server/tools/project/GuidedWalkthroughTool.js +4 -6
  363. package/mcp-server/tools/project/UploadProjectTools.d.ts +5 -3
  364. package/mcp-server/tools/project/UploadProjectTools.js +21 -20
  365. package/mcp-server/tools/project/ValidateProjectTool.d.ts +5 -3
  366. package/mcp-server/tools/project/ValidateProjectTool.js +13 -10
  367. package/mcp-server/tools/project/constants.d.ts +3 -1
  368. package/mcp-server/tools/project/constants.js +3 -1
  369. package/mcp-server/types.d.ts +0 -7
  370. package/mcp-server/types.js +1 -13
  371. package/mcp-server/utils/command.d.ts +25 -2
  372. package/mcp-server/utils/command.js +68 -16
  373. package/mcp-server/utils/config.js +6 -0
  374. package/mcp-server/utils/logger.d.ts +13 -0
  375. package/mcp-server/utils/logger.js +59 -0
  376. package/mcp-server/utils/toolUsageTracking.js +28 -11
  377. package/package.json +25 -17
  378. package/types/AccountTargets.d.ts +37 -0
  379. package/types/AccountTargets.js +12 -0
  380. package/types/Link.d.ts +32 -0
  381. package/types/Link.js +5 -0
  382. package/types/LocalDev.d.ts +15 -2
  383. package/types/PackageJson.d.ts +1 -0
  384. package/types/ProjectComponents.d.ts +2 -1
  385. package/types/Projects.d.ts +25 -5
  386. package/types/Prompts.d.ts +1 -0
  387. package/types/Yargs.d.ts +23 -2
  388. package/ui/components/ActionSection.d.ts +1 -1
  389. package/ui/components/InputField.d.ts +1 -1
  390. package/ui/components/SelectInput.d.ts +1 -1
  391. package/ui/components/StatusIcon.d.ts +1 -1
  392. package/ui/components/Table.d.ts +5 -5
  393. package/ui/components/getStarted/GetStartedFlow.d.ts +1 -1
  394. package/ui/components/getStarted/screens/InstallationScreen.d.ts +1 -1
  395. package/ui/components/getStarted/screens/ProjectSetupScreen.d.ts +1 -1
  396. package/ui/components/getStarted/screens/UploadScreen.d.ts +1 -1
  397. package/api/__tests__/migrate.test.d.ts +0 -1
  398. package/api/__tests__/migrate.test.js +0 -199
  399. package/commands/__tests__/account.test.d.ts +0 -1
  400. package/commands/__tests__/account.test.js +0 -69
  401. package/commands/__tests__/auth.test.d.ts +0 -1
  402. package/commands/__tests__/auth.test.js +0 -43
  403. package/commands/__tests__/cms.test.d.ts +0 -1
  404. package/commands/__tests__/cms.test.js +0 -87
  405. package/commands/__tests__/config.test.d.ts +0 -1
  406. package/commands/__tests__/config.test.js +0 -44
  407. package/commands/__tests__/customObject.test.d.ts +0 -1
  408. package/commands/__tests__/customObject.test.js +0 -68
  409. package/commands/__tests__/doctor.test.d.ts +0 -1
  410. package/commands/__tests__/doctor.test.js +0 -132
  411. package/commands/__tests__/feedback.test.d.ts +0 -1
  412. package/commands/__tests__/feedback.test.js +0 -24
  413. package/commands/__tests__/filemanager.test.d.ts +0 -1
  414. package/commands/__tests__/filemanager.test.js +0 -45
  415. package/commands/__tests__/getStarted.test.d.ts +0 -1
  416. package/commands/__tests__/getStarted.test.js +0 -173
  417. package/commands/__tests__/hubdb.test.d.ts +0 -1
  418. package/commands/__tests__/hubdb.test.js +0 -50
  419. package/commands/__tests__/init.test.d.ts +0 -1
  420. package/commands/__tests__/init.test.js +0 -42
  421. package/commands/__tests__/mcp.test.d.ts +0 -1
  422. package/commands/__tests__/mcp.test.js +0 -46
  423. package/commands/__tests__/open.test.d.ts +0 -1
  424. package/commands/__tests__/open.test.js +0 -58
  425. package/commands/__tests__/project.test.d.ts +0 -1
  426. package/commands/__tests__/project.test.js +0 -125
  427. package/commands/__tests__/sandbox.test.d.ts +0 -1
  428. package/commands/__tests__/sandbox.test.js +0 -44
  429. package/commands/__tests__/secret.test.d.ts +0 -1
  430. package/commands/__tests__/secret.test.js +0 -49
  431. package/commands/__tests__/testAccount.test.d.ts +0 -1
  432. package/commands/__tests__/testAccount.test.js +0 -57
  433. package/commands/__tests__/upgrade.test.d.ts +0 -1
  434. package/commands/__tests__/upgrade.test.js +0 -309
  435. package/commands/account/__tests__/auth.test.d.ts +0 -1
  436. package/commands/account/__tests__/auth.test.js +0 -206
  437. package/commands/account/__tests__/clean.test.d.ts +0 -1
  438. package/commands/account/__tests__/clean.test.js +0 -28
  439. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  440. package/commands/account/__tests__/createOverride.test.js +0 -32
  441. package/commands/account/__tests__/info.test.d.ts +0 -1
  442. package/commands/account/__tests__/info.test.js +0 -28
  443. package/commands/account/__tests__/list.test.d.ts +0 -1
  444. package/commands/account/__tests__/list.test.js +0 -153
  445. package/commands/account/__tests__/remove.test.d.ts +0 -1
  446. package/commands/account/__tests__/remove.test.js +0 -36
  447. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  448. package/commands/account/__tests__/removeOverride.js +0 -25
  449. package/commands/account/__tests__/rename.test.d.ts +0 -1
  450. package/commands/account/__tests__/rename.test.js +0 -82
  451. package/commands/account/__tests__/use.test.d.ts +0 -1
  452. package/commands/account/__tests__/use.test.js +0 -170
  453. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  454. package/commands/app/__tests__/migrate.test.js +0 -111
  455. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  456. package/commands/app/secret/__tests__/add.test.js +0 -140
  457. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  458. package/commands/app/secret/__tests__/delete.test.js +0 -28
  459. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  460. package/commands/app/secret/__tests__/list.test.js +0 -25
  461. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  462. package/commands/app/secret/__tests__/update.test.js +0 -28
  463. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  464. package/commands/cms/__tests__/delete.test.js +0 -39
  465. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  466. package/commands/cms/__tests__/fetch.test.js +0 -156
  467. package/commands/cms/__tests__/function.test.d.ts +0 -1
  468. package/commands/cms/__tests__/function.test.js +0 -50
  469. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  470. package/commands/cms/__tests__/lint.test.js +0 -33
  471. package/commands/cms/__tests__/list.test.d.ts +0 -1
  472. package/commands/cms/__tests__/list.test.js +0 -42
  473. package/commands/cms/__tests__/module.test.d.ts +0 -1
  474. package/commands/cms/__tests__/module.test.js +0 -45
  475. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  476. package/commands/cms/__tests__/mv.test.js +0 -46
  477. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  478. package/commands/cms/__tests__/theme.test.js +0 -54
  479. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  480. package/commands/cms/__tests__/upload.test.js +0 -308
  481. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  482. package/commands/cms/__tests__/watch.test.js +0 -204
  483. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  484. package/commands/cms/function/__tests__/logs.test.js +0 -70
  485. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  486. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  487. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  488. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  489. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  490. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  491. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  492. package/commands/customObject/__tests__/create.test.js +0 -40
  493. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  494. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  495. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  496. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  497. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  498. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  499. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  500. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  501. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  502. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  503. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  504. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  505. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  506. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  507. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  508. package/commands/filemanager/__tests__/upload.test.js +0 -191
  509. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  510. package/commands/hubdb/__tests__/clear.test.js +0 -28
  511. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  512. package/commands/hubdb/__tests__/create.test.js +0 -28
  513. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  514. package/commands/hubdb/__tests__/delete.test.js +0 -28
  515. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  516. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  517. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  518. package/commands/hubdb/__tests__/list.test.js +0 -88
  519. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  520. package/commands/mcp/__tests__/setup.test.js +0 -26
  521. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  522. package/commands/mcp/__tests__/start.test.js +0 -144
  523. package/commands/project/__tests__/add.test.d.ts +0 -1
  524. package/commands/project/__tests__/add.test.js +0 -107
  525. package/commands/project/__tests__/create.test.d.ts +0 -1
  526. package/commands/project/__tests__/create.test.js +0 -97
  527. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  528. package/commands/project/__tests__/deploy.test.js +0 -307
  529. package/commands/project/__tests__/dev.test.d.ts +0 -1
  530. package/commands/project/__tests__/dev.test.js +0 -273
  531. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  532. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  533. package/commands/project/__tests__/download.test.d.ts +0 -1
  534. package/commands/project/__tests__/download.test.js +0 -39
  535. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  536. package/commands/project/__tests__/installDeps.test.js +0 -140
  537. package/commands/project/__tests__/lint.test.d.ts +0 -1
  538. package/commands/project/__tests__/lint.test.js +0 -704
  539. package/commands/project/__tests__/list.test.d.ts +0 -1
  540. package/commands/project/__tests__/list.test.js +0 -31
  541. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  542. package/commands/project/__tests__/listBuilds.test.js +0 -38
  543. package/commands/project/__tests__/logs.test.d.ts +0 -1
  544. package/commands/project/__tests__/logs.test.js +0 -202
  545. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  546. package/commands/project/__tests__/migrate.test.js +0 -106
  547. package/commands/project/__tests__/open.test.d.ts +0 -1
  548. package/commands/project/__tests__/open.test.js +0 -39
  549. package/commands/project/__tests__/profile.test.d.ts +0 -1
  550. package/commands/project/__tests__/profile.test.js +0 -42
  551. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  552. package/commands/project/__tests__/updateDeps.test.js +0 -140
  553. package/commands/project/__tests__/upload.test.d.ts +0 -1
  554. package/commands/project/__tests__/upload.test.js +0 -234
  555. package/commands/project/__tests__/validate.test.d.ts +0 -1
  556. package/commands/project/__tests__/validate.test.js +0 -381
  557. package/commands/project/__tests__/watch.test.d.ts +0 -1
  558. package/commands/project/__tests__/watch.test.js +0 -35
  559. package/commands/project/dev/deprecatedFlow.d.ts +0 -11
  560. package/commands/project/dev/deprecatedFlow.js +0 -135
  561. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  562. package/commands/sandbox/__tests__/create.test.js +0 -245
  563. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  564. package/commands/sandbox/__tests__/delete.test.js +0 -31
  565. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  566. package/commands/secret/__tests__/addSecret.test.js +0 -162
  567. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  568. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  569. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  570. package/commands/secret/__tests__/listSecret.test.js +0 -29
  571. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  572. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  573. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  574. package/commands/testAccount/__tests__/create.test.js +0 -106
  575. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  576. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  577. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  578. package/commands/testAccount/__tests__/delete.test.js +0 -29
  579. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  580. package/commands/testAccount/__tests__/importData.test.js +0 -92
  581. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  582. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  583. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  584. package/lib/__tests__/accountAuth.test.js +0 -258
  585. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  586. package/lib/__tests__/accountTypes.test.js +0 -98
  587. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  588. package/lib/__tests__/buildAccount.test.js +0 -262
  589. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  590. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  591. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  592. package/lib/__tests__/commandSuggestion.test.js +0 -121
  593. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  594. package/lib/__tests__/commonOpts.test.js +0 -80
  595. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  596. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  597. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  598. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  599. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  600. package/lib/__tests__/hasFeature.test.js +0 -167
  601. package/lib/__tests__/http.test.d.ts +0 -1
  602. package/lib/__tests__/http.test.js +0 -40
  603. package/lib/__tests__/importData.test.d.ts +0 -1
  604. package/lib/__tests__/importData.test.js +0 -98
  605. package/lib/__tests__/npmCli.test.d.ts +0 -1
  606. package/lib/__tests__/npmCli.test.js +0 -84
  607. package/lib/__tests__/oauth.test.d.ts +0 -1
  608. package/lib/__tests__/oauth.test.js +0 -109
  609. package/lib/__tests__/parsing.test.d.ts +0 -1
  610. package/lib/__tests__/parsing.test.js +0 -34
  611. package/lib/__tests__/polling.test.d.ts +0 -1
  612. package/lib/__tests__/polling.test.js +0 -76
  613. package/lib/__tests__/process.test.d.ts +0 -1
  614. package/lib/__tests__/process.test.js +0 -89
  615. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  616. package/lib/__tests__/sandboxSync.test.js +0 -147
  617. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  618. package/lib/__tests__/sandboxes.test.js +0 -156
  619. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  620. package/lib/__tests__/serverlessLogs.test.js +0 -163
  621. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  622. package/lib/__tests__/usageTracking.test.js +0 -197
  623. package/lib/__tests__/validation.test.d.ts +0 -1
  624. package/lib/__tests__/validation.test.js +0 -143
  625. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  626. package/lib/__tests__/yargsUtils.test.js +0 -124
  627. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  628. package/lib/app/__tests__/migrate.test.js +0 -638
  629. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  630. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  631. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  632. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  633. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  634. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  635. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  636. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  637. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  638. package/lib/mcp/__tests__/setup.test.js +0 -523
  639. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  640. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  641. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  642. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  643. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  644. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  645. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  646. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  647. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  648. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  649. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  650. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  651. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  652. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  653. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  654. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  655. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  656. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  657. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  658. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  659. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  660. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  661. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  662. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  663. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  664. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  665. package/lib/projects/__tests__/components.test.d.ts +0 -1
  666. package/lib/projects/__tests__/components.test.js +0 -426
  667. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  668. package/lib/projects/__tests__/deploy.test.js +0 -231
  669. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  670. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  671. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  672. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  673. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  674. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  675. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  676. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  677. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  678. package/lib/projects/__tests__/projects.test.js +0 -58
  679. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  680. package/lib/projects/__tests__/structure.test.js +0 -210
  681. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  682. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  683. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  684. package/lib/projects/__tests__/upload.test.js +0 -183
  685. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  686. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  687. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  688. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  689. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  690. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  691. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  692. package/lib/projects/create/__tests__/v2.test.js +0 -257
  693. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +0 -40
  694. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +0 -128
  695. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +0 -59
  696. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +0 -383
  697. package/lib/projects/platformVersion.d.ts +0 -9
  698. package/lib/projects/platformVersion.js +0 -39
  699. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  700. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  701. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  702. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  703. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  704. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  705. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  706. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  707. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  708. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  709. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  710. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  711. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  712. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  713. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  714. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  715. package/lib/sandboxSync.d.ts +0 -4
  716. package/lib/sandboxSync.js +0 -102
  717. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  718. package/lib/theme/__tests__/migrate.test.js +0 -256
  719. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  720. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  721. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  722. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  723. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  724. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  725. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  726. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  727. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  728. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  729. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  730. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  731. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  732. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  733. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  734. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  735. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  736. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  737. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  738. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -132
  739. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  740. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  741. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  742. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  743. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  744. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  745. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  746. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  747. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  748. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  749. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  750. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  751. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  752. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  753. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  754. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  755. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  756. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  757. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  758. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  759. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  760. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  761. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  762. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  763. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  764. package/mcp-server/utils/__tests__/command.test.js +0 -275
  765. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  766. package/mcp-server/utils/__tests__/content.test.js +0 -164
  767. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  768. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
@@ -1,118 +0,0 @@
1
- import { ValidateProjectTool, } from '../ValidateProjectTool.js';
2
- import { runCommandInDir } 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 mockMcpFeedbackRequest = mcpFeedbackRequest;
11
- const mockRunCommandInDir = runCommandInDir;
12
- describe('mcp-server/tools/project/ValidateProjectTool', () => {
13
- let mockMcpServer;
14
- let tool;
15
- let mockRegisteredTool;
16
- beforeEach(() => {
17
- // @ts-expect-error Not mocking the whole thing
18
- mockMcpServer = {
19
- registerTool: vi.fn(),
20
- };
21
- mockRegisteredTool = {};
22
- mockMcpServer.registerTool.mockReturnValue(mockRegisteredTool);
23
- mockMcpFeedbackRequest.mockResolvedValue('');
24
- mockTrackToolUsage.mockResolvedValue(undefined);
25
- tool = new ValidateProjectTool(mockMcpServer);
26
- });
27
- describe('register', () => {
28
- it('should register tool with correct parameters', () => {
29
- const result = tool.register();
30
- expect(mockMcpServer.registerTool).toHaveBeenCalledWith('validate-project', expect.objectContaining({
31
- title: expect.stringContaining('Validate HubSpot Project'),
32
- description: expect.stringContaining('Validates the HubSpot project and its configuration files.'),
33
- inputSchema: expect.any(Object),
34
- }), expect.any(Function));
35
- expect(result).toBe(mockRegisteredTool);
36
- });
37
- });
38
- describe('handler', () => {
39
- const input = {
40
- absoluteCurrentWorkingDirectory: '/test/dir',
41
- absoluteProjectPath: '/test/project',
42
- };
43
- it('should validate project successfully', async () => {
44
- mockRunCommandInDir.mockResolvedValue({
45
- stdout: 'Project validation successful',
46
- stderr: '',
47
- });
48
- const result = await tool.handler(input);
49
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/test/project', 'hs project validate');
50
- expect(result).toEqual({
51
- content: [
52
- { type: 'text', text: 'Project validation successful' },
53
- { type: 'text', text: '' },
54
- ],
55
- });
56
- });
57
- it('should handle validation with warnings', async () => {
58
- mockRunCommandInDir.mockResolvedValue({
59
- stdout: 'Project is valid',
60
- stderr: 'Warning: some files may need updates',
61
- });
62
- const result = await tool.handler(input);
63
- expect(result.content).toEqual([
64
- { type: 'text', text: 'Project is valid' },
65
- { type: 'text', text: 'Warning: some files may need updates' },
66
- ]);
67
- });
68
- it('should handle validation errors', async () => {
69
- const error = new Error('Validation failed');
70
- mockRunCommandInDir.mockRejectedValue(error);
71
- const result = await tool.handler(input);
72
- expect(result).toEqual({
73
- content: [{ type: 'text', text: 'Validation failed' }],
74
- });
75
- });
76
- it('should handle non-Error rejection', async () => {
77
- mockRunCommandInDir.mockRejectedValue('String error');
78
- const result = await tool.handler(input);
79
- expect(result).toEqual({
80
- content: [{ type: 'text', text: 'String error' }],
81
- });
82
- });
83
- it('should handle empty stdout and stderr', async () => {
84
- mockRunCommandInDir.mockResolvedValue({
85
- stdout: 'stdout',
86
- stderr: 'stderr',
87
- });
88
- const result = await tool.handler(input);
89
- expect(result.content).toEqual([
90
- { type: 'text', text: 'stdout' },
91
- { type: 'text', text: 'stderr' },
92
- ]);
93
- });
94
- it('should work with different project paths', async () => {
95
- mockRunCommandInDir.mockResolvedValue({
96
- stdout: 'Validation complete',
97
- stderr: '',
98
- });
99
- const differentInput = {
100
- absoluteCurrentWorkingDirectory: '/test/dir',
101
- absoluteProjectPath: '/different/path/to/project',
102
- };
103
- await tool.handler(differentInput);
104
- expect(mockRunCommandInDir).toHaveBeenCalledWith('/different/path/to/project', 'hs project validate');
105
- });
106
- it('should handle validation errors with stderr', async () => {
107
- mockRunCommandInDir.mockResolvedValue({
108
- stdout: '',
109
- stderr: 'Error: Missing required configuration file',
110
- });
111
- const result = await tool.handler(input);
112
- expect(result.content).toEqual([
113
- { type: 'text', text: '' },
114
- { type: 'text', text: 'Error: Missing required configuration file' },
115
- ]);
116
- });
117
- });
118
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,275 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- const mockExecAsync = vi.fn();
4
- vi.mock('node:child_process');
5
- vi.mock('util', () => ({
6
- default: {
7
- promisify: () => mockExecAsync,
8
- },
9
- promisify: () => mockExecAsync,
10
- }));
11
- vi.mock('fs');
12
- vi.mock('path');
13
- // Import after mocks are set up
14
- const { addFlag, runCommandInDir } = await import('../command.js');
15
- const mockExistsSync = vi.mocked(fs.existsSync);
16
- const mockMkdirSync = vi.mocked(fs.mkdirSync);
17
- const mockResolve = vi.mocked(path.resolve);
18
- describe('mcp-server/utils/command', () => {
19
- describe('addFlag', () => {
20
- it('should add string flag to command', () => {
21
- const result = addFlag('hs project create', 'name', 'test-project');
22
- expect(result).toBe('hs project create --name "test-project"');
23
- });
24
- it('should add number flag to command', () => {
25
- const result = addFlag('hs project deploy', 'build', 123);
26
- expect(result).toBe('hs project deploy --build "123"');
27
- });
28
- it('should add boolean flag to command', () => {
29
- const result = addFlag('hs project upload', 'watch', true);
30
- expect(result).toBe('hs project upload --watch "true"');
31
- });
32
- it('should add array flag to command', () => {
33
- const result = addFlag('hs project create', 'features', [
34
- 'card',
35
- 'settings',
36
- ]);
37
- expect(result).toBe('hs project create --features "card" "settings"');
38
- });
39
- it('should handle empty array', () => {
40
- const result = addFlag('hs project create', 'features', []);
41
- expect(result).toBe('hs project create --features ');
42
- });
43
- it('should handle array with one item', () => {
44
- const result = addFlag('hs project create', 'features', ['card']);
45
- expect(result).toBe('hs project create --features "card"');
46
- });
47
- it('should handle special characters in string values', () => {
48
- const result = addFlag('hs project create', 'name', 'my-project with spaces');
49
- expect(result).toBe('hs project create --name "my-project with spaces"');
50
- });
51
- it('should handle special characters in array values', () => {
52
- const result = addFlag('hs project create', 'features', [
53
- 'card with spaces',
54
- 'settings',
55
- ]);
56
- expect(result).toBe('hs project create --features "card with spaces" "settings"');
57
- });
58
- });
59
- describe('runCommandInDir', () => {
60
- const mockDirectory = '/test/directory';
61
- const mockCommand = 'npm install';
62
- const mockResolvedPath = '/resolved/test/directory';
63
- beforeEach(() => {
64
- mockResolve.mockReturnValue(mockResolvedPath);
65
- });
66
- it('should run command in existing directory', async () => {
67
- const expectedResult = {
68
- stdout: 'command output',
69
- stderr: '',
70
- };
71
- mockExistsSync.mockReturnValue(true);
72
- mockExecAsync.mockResolvedValue(expectedResult);
73
- const result = await runCommandInDir(mockDirectory, mockCommand);
74
- expect(mockExistsSync).toHaveBeenCalledWith(mockDirectory);
75
- expect(mockMkdirSync).not.toHaveBeenCalled();
76
- expect(mockResolve).toHaveBeenCalledWith(mockDirectory);
77
- expect(mockExecAsync).toHaveBeenCalledWith(mockCommand, expect.objectContaining({
78
- cwd: mockResolvedPath,
79
- env: expect.any(Object),
80
- }));
81
- expect(result).toEqual(expectedResult);
82
- });
83
- it('should create directory if it does not exist', async () => {
84
- const expectedResult = {
85
- stdout: 'command output',
86
- stderr: '',
87
- };
88
- mockExistsSync.mockReturnValue(false);
89
- mockExecAsync.mockResolvedValue(expectedResult);
90
- const result = await runCommandInDir(mockDirectory, mockCommand);
91
- expect(mockExistsSync).toHaveBeenCalledWith(mockDirectory);
92
- expect(mockMkdirSync).toHaveBeenCalledWith(mockDirectory);
93
- expect(mockResolve).toHaveBeenCalledWith(mockDirectory);
94
- expect(mockExecAsync).toHaveBeenCalledWith(mockCommand, expect.objectContaining({
95
- cwd: mockResolvedPath,
96
- env: expect.any(Object),
97
- }));
98
- expect(result).toEqual(expectedResult);
99
- });
100
- it('should propagate execAsync errors', async () => {
101
- const error = new Error('Command failed');
102
- mockExistsSync.mockReturnValue(true);
103
- mockExecAsync.mockRejectedValue(error);
104
- await expect(runCommandInDir(mockDirectory, mockCommand)).rejects.toThrow('Command failed');
105
- expect(mockExecAsync).toHaveBeenCalledWith(mockCommand, expect.objectContaining({
106
- cwd: mockResolvedPath,
107
- env: expect.any(Object),
108
- }));
109
- });
110
- it('should handle stderr in results', async () => {
111
- const expectedResult = {
112
- stdout: 'some output',
113
- stderr: 'warning message',
114
- };
115
- mockExistsSync.mockReturnValue(true);
116
- mockExecAsync.mockResolvedValue(expectedResult);
117
- const result = await runCommandInDir(mockDirectory, mockCommand);
118
- expect(result.stdout).toBe('some output');
119
- expect(result.stderr).toBe('warning message');
120
- });
121
- it('should add --disable-usage-tracking flag to hs commands', async () => {
122
- const hsCommand = 'hs project upload';
123
- const expectedResult = {
124
- stdout: 'success',
125
- stderr: '',
126
- };
127
- mockExistsSync.mockReturnValue(true);
128
- mockExecAsync.mockResolvedValue(expectedResult);
129
- await runCommandInDir(mockDirectory, hsCommand);
130
- expect(mockExecAsync).toHaveBeenCalledWith('hs project upload --disable-usage-tracking "true"', expect.objectContaining({
131
- cwd: mockResolvedPath,
132
- env: expect.any(Object),
133
- }));
134
- });
135
- it('should not add --disable-usage-tracking flag to non-hs commands', async () => {
136
- const nonHsCommand = 'npm install';
137
- const expectedResult = {
138
- stdout: 'success',
139
- stderr: '',
140
- };
141
- mockExistsSync.mockReturnValue(true);
142
- mockExecAsync.mockResolvedValue(expectedResult);
143
- await runCommandInDir(mockDirectory, nonHsCommand);
144
- expect(mockExecAsync).toHaveBeenCalledWith('npm install', expect.objectContaining({
145
- cwd: mockResolvedPath,
146
- env: expect.any(Object),
147
- }));
148
- });
149
- it('should add --disable-usage-tracking flag to hs commands with existing flags', async () => {
150
- const hsCommand = 'hs project upload --profile prod';
151
- const expectedResult = {
152
- stdout: 'success',
153
- stderr: '',
154
- };
155
- mockExistsSync.mockReturnValue(true);
156
- mockExecAsync.mockResolvedValue(expectedResult);
157
- await runCommandInDir(mockDirectory, hsCommand);
158
- expect(mockExecAsync).toHaveBeenCalledWith('hs project upload --profile prod --disable-usage-tracking "true"', expect.objectContaining({
159
- cwd: mockResolvedPath,
160
- env: expect.any(Object),
161
- }));
162
- });
163
- it('should handle hs commands that start with whitespace', async () => {
164
- const hsCommand = 'hs init';
165
- const expectedResult = {
166
- stdout: 'success',
167
- stderr: '',
168
- };
169
- mockExistsSync.mockReturnValue(true);
170
- mockExecAsync.mockResolvedValue(expectedResult);
171
- await runCommandInDir(mockDirectory, hsCommand);
172
- expect(mockExecAsync).toHaveBeenCalledWith('hs init --disable-usage-tracking "true"', expect.objectContaining({
173
- cwd: mockResolvedPath,
174
- env: expect.any(Object),
175
- }));
176
- });
177
- it('should use npx -p @hubspot/cli when HUBSPOT_MCP_STANDALONE is true', async () => {
178
- const originalEnv = process.env.HUBSPOT_MCP_STANDALONE;
179
- process.env.HUBSPOT_MCP_STANDALONE = 'true';
180
- const hsCommand = 'hs project upload';
181
- const expectedResult = {
182
- stdout: 'success',
183
- stderr: '',
184
- };
185
- mockExistsSync.mockReturnValue(true);
186
- mockExecAsync.mockResolvedValue(expectedResult);
187
- await runCommandInDir(mockDirectory, hsCommand);
188
- expect(mockExecAsync).toHaveBeenCalledWith('npx -y -p @hubspot/cli hs project upload --disable-usage-tracking "true"', expect.objectContaining({
189
- cwd: mockResolvedPath,
190
- env: expect.any(Object),
191
- }));
192
- // Restore original env
193
- if (originalEnv === undefined) {
194
- delete process.env.HUBSPOT_MCP_STANDALONE;
195
- }
196
- else {
197
- process.env.HUBSPOT_MCP_STANDALONE = originalEnv;
198
- }
199
- });
200
- it('should use regular hs command when HUBSPOT_MCP_STANDALONE is not set', async () => {
201
- const originalEnv = process.env.HUBSPOT_MCP_STANDALONE;
202
- delete process.env.HUBSPOT_MCP_STANDALONE;
203
- const hsCommand = 'hs project upload';
204
- const expectedResult = {
205
- stdout: 'success',
206
- stderr: '',
207
- };
208
- mockExistsSync.mockReturnValue(true);
209
- mockExecAsync.mockResolvedValue(expectedResult);
210
- await runCommandInDir(mockDirectory, hsCommand);
211
- expect(mockExecAsync).toHaveBeenCalledWith('hs project upload --disable-usage-tracking "true"', expect.objectContaining({
212
- cwd: mockResolvedPath,
213
- env: expect.any(Object),
214
- }));
215
- // Restore original env
216
- if (originalEnv !== undefined) {
217
- process.env.HUBSPOT_MCP_STANDALONE = originalEnv;
218
- }
219
- });
220
- it('should use npx -p @hubspot/cli for hs commands with flags in standalone mode', async () => {
221
- const originalEnv = process.env.HUBSPOT_MCP_STANDALONE;
222
- process.env.HUBSPOT_MCP_STANDALONE = 'true';
223
- const hsCommand = 'hs project upload --profile prod';
224
- const expectedResult = {
225
- stdout: 'success',
226
- stderr: '',
227
- };
228
- mockExistsSync.mockReturnValue(true);
229
- mockExecAsync.mockResolvedValue(expectedResult);
230
- await runCommandInDir(mockDirectory, hsCommand);
231
- expect(mockExecAsync).toHaveBeenCalledWith('npx -y -p @hubspot/cli hs project upload --profile prod --disable-usage-tracking "true"', expect.objectContaining({
232
- cwd: mockResolvedPath,
233
- env: expect.any(Object),
234
- }));
235
- // Restore original env
236
- if (originalEnv === undefined) {
237
- delete process.env.HUBSPOT_MCP_STANDALONE;
238
- }
239
- else {
240
- process.env.HUBSPOT_MCP_STANDALONE = originalEnv;
241
- }
242
- });
243
- it('should use pinned CLI version when HUBSPOT_CLI_VERSION is set in standalone mode', async () => {
244
- const originalStandaloneEnv = process.env.HUBSPOT_MCP_STANDALONE;
245
- const originalVersionEnv = process.env.HUBSPOT_CLI_VERSION;
246
- process.env.HUBSPOT_MCP_STANDALONE = 'true';
247
- process.env.HUBSPOT_CLI_VERSION = '8.1.0';
248
- const hsCommand = 'hs project upload';
249
- const expectedResult = {
250
- stdout: 'success',
251
- stderr: '',
252
- };
253
- mockExistsSync.mockReturnValue(true);
254
- mockExecAsync.mockResolvedValue(expectedResult);
255
- await runCommandInDir(mockDirectory, hsCommand);
256
- expect(mockExecAsync).toHaveBeenCalledWith('npx -y -p @hubspot/cli@8.1.0 hs project upload --disable-usage-tracking "true"', expect.objectContaining({
257
- cwd: mockResolvedPath,
258
- env: expect.any(Object),
259
- }));
260
- // Restore original env
261
- if (originalStandaloneEnv === undefined) {
262
- delete process.env.HUBSPOT_MCP_STANDALONE;
263
- }
264
- else {
265
- process.env.HUBSPOT_MCP_STANDALONE = originalStandaloneEnv;
266
- }
267
- if (originalVersionEnv === undefined) {
268
- delete process.env.HUBSPOT_CLI_VERSION;
269
- }
270
- else {
271
- process.env.HUBSPOT_CLI_VERSION = originalVersionEnv;
272
- }
273
- });
274
- });
275
- });
@@ -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,69 +0,0 @@
1
- import { mcpFeedbackRequest } from '../feedbackTracking.js';
2
- import { getStateValue, setStateValue, } from '@hubspot/local-dev-lib/config/state';
3
- import { FEEDBACK_URL } from '../../../lib/constants.js';
4
- vi.mock('@hubspot/local-dev-lib/config/state');
5
- vi.mock('@hubspot/local-dev-lib/logger');
6
- const mockGetStateValue = getStateValue;
7
- const mockSetStateValue = setStateValue;
8
- describe('mcp-server/utils/feedbackTracking', () => {
9
- describe('mcpFeedbackRequest', () => {
10
- it('should return empty string when not at a threshold', async () => {
11
- mockGetStateValue.mockReturnValue(10);
12
- const result = await mcpFeedbackRequest();
13
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 11);
14
- expect(result).toBe(undefined);
15
- });
16
- it('should return feedback message at threshold 50', async () => {
17
- mockGetStateValue.mockReturnValue(49);
18
- const result = await mcpFeedbackRequest();
19
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 50);
20
- expect(result).toContain('FEEDBACK REQUEST');
21
- expect(result).toContain(FEEDBACK_URL);
22
- });
23
- it('should return feedback message at threshold 250', async () => {
24
- mockGetStateValue.mockReturnValue(249);
25
- const result = await mcpFeedbackRequest();
26
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 250);
27
- expect(result).toContain('FEEDBACK REQUEST');
28
- });
29
- it('should return feedback message at threshold 550', async () => {
30
- mockGetStateValue.mockReturnValue(549);
31
- const result = await mcpFeedbackRequest();
32
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 550);
33
- expect(result).toContain('FEEDBACK REQUEST');
34
- });
35
- it('should return feedback message at threshold 1050', async () => {
36
- mockGetStateValue.mockReturnValue(1049);
37
- const result = await mcpFeedbackRequest();
38
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 1050);
39
- expect(result).toContain('FEEDBACK REQUEST');
40
- });
41
- it('should not return feedback at threshold + 1', async () => {
42
- mockGetStateValue.mockReturnValue(50);
43
- const result = await mcpFeedbackRequest();
44
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', 51);
45
- expect(result).toBe(undefined);
46
- });
47
- it('should increment tool calls counter on every invocation', async () => {
48
- const initialCount = 100;
49
- mockGetStateValue.mockReturnValue(initialCount);
50
- await mcpFeedbackRequest();
51
- expect(mockGetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls');
52
- expect(mockSetStateValue).toHaveBeenCalledWith('mcpTotalToolCalls', initialCount + 1);
53
- });
54
- it('should include feedback request instructions in message', async () => {
55
- mockGetStateValue.mockReturnValue(49);
56
- const result = await mcpFeedbackRequest();
57
- expect(result).toContain('IMPORTANT - FEEDBACK REQUEST');
58
- expect(result).toContain('This message appears only once');
59
- expect(result).toContain('Share feedback here');
60
- });
61
- it('should handle errors gracefully and return undefined', async () => {
62
- mockGetStateValue.mockImplementation(() => {
63
- throw new Error('State error');
64
- });
65
- const result = await mcpFeedbackRequest();
66
- expect(result).toBe(undefined);
67
- });
68
- });
69
- });