@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
package/lib/mcp/setup.js CHANGED
@@ -4,31 +4,43 @@ import { promptUser } from '../prompts/promptUtils.js';
4
4
  import SpinniesManager from '../ui/SpinniesManager.js';
5
5
  import { logError, getErrorMessage } from '../errorHandlers/index.js';
6
6
  import { execAsync } from '../../mcp-server/utils/command.js';
7
+ import { MCP_CLIENTS, MCP_SERVER_NAME, getMcpClientPathSegments, } from './clients.js';
7
8
  import path from 'path';
8
9
  import os from 'os';
9
10
  import fs from 'fs-extra';
10
11
  import { existsSync } from 'fs';
11
- const mcpServerName = 'HubSpotDev';
12
+ const mcpServerName = MCP_SERVER_NAME;
12
13
  const claudeCode = 'claude';
13
- const windsurf = 'windsurf';
14
14
  const cursor = 'cursor';
15
+ const devin = 'devin';
15
16
  const vscode = 'vscode';
16
17
  const codex = 'codex';
17
18
  const gemini = 'gemini';
19
+ const opencode = 'opencode';
20
+ const OTHER_TOOL = 'other';
21
+ const clientLabels = {
22
+ codex: commands.mcp.setup.codex,
23
+ claude: commands.mcp.setup.claudeCode,
24
+ cursor: commands.mcp.setup.cursor,
25
+ devin: commands.mcp.setup.devin,
26
+ gemini: commands.mcp.setup.gemini,
27
+ opencode: commands.mcp.setup.opencode,
28
+ vscode: commands.mcp.setup.vsCode,
29
+ };
18
30
  export const supportedTools = [
19
- { name: commands.mcp.setup.codex, value: codex },
20
- { name: commands.mcp.setup.claudeCode, value: claudeCode },
21
- { name: commands.mcp.setup.cursor, value: cursor },
22
- { name: commands.mcp.setup.gemini, value: gemini },
23
- { name: commands.mcp.setup.vsCode, value: vscode },
24
- { name: commands.mcp.setup.windsurf, value: windsurf },
31
+ ...MCP_CLIENTS.map(client => ({
32
+ name: clientLabels[client.id],
33
+ value: client.id,
34
+ })),
35
+ { name: commands.mcp.setup.other, value: OTHER_TOOL },
25
36
  ];
26
37
  const defaultMcpCommand = {
27
38
  command: 'hs',
28
39
  args: ['mcp', 'start'],
29
40
  };
30
- export async function addMcpServerToConfig(targets) {
41
+ export async function configureMcpServer(options) {
31
42
  try {
43
+ const { targets, standalone, cliVersion: cliVersionFlag } = options;
32
44
  let derivedTargets = [];
33
45
  if (!targets || targets.length === 0) {
34
46
  const { selectedTargets } = await promptUser({
@@ -36,6 +48,7 @@ export async function addMcpServerToConfig(targets) {
36
48
  type: 'checkbox',
37
49
  message: commands.mcp.setup.prompts.targets,
38
50
  choices: supportedTools,
51
+ pageSize: supportedTools.length,
39
52
  validate: (choices) => {
40
53
  return choices.length === 0
41
54
  ? commands.mcp.setup.prompts.targetsRequired
@@ -47,23 +60,34 @@ export async function addMcpServerToConfig(targets) {
47
60
  else {
48
61
  derivedTargets = targets;
49
62
  }
50
- // Prompt for standalone mode
51
- const { useStandaloneMode } = await promptUser({
52
- name: 'useStandaloneMode',
53
- type: 'confirm',
54
- message: commands.mcp.setup.prompts.standaloneMode,
55
- default: false,
56
- });
57
- const { cliVersion } = useStandaloneMode
58
- ? await promptUser({
59
- name: 'cliVersion',
60
- type: 'input',
61
- message: commands.mcp.setup.prompts.cliVersion,
62
- validate: (v) => !v || /^[\d]+\.[\d]+\.[\d]+([-+][\w.]+)?$/.test(v.trim())
63
- ? true
64
- : 'Please enter a valid semver version (e.g. 8.0.1) or leave blank for latest.',
65
- })
66
- : { cliVersion: '' };
63
+ const onlyOther = derivedTargets.length === 1 && derivedTargets[0] === OTHER_TOOL;
64
+ let useStandaloneMode = onlyOther ? false : standalone;
65
+ if (useStandaloneMode === undefined) {
66
+ const response = await promptUser({
67
+ name: 'useStandaloneMode',
68
+ type: 'confirm',
69
+ message: commands.mcp.setup.prompts.standaloneMode,
70
+ default: false,
71
+ });
72
+ useStandaloneMode = response.useStandaloneMode;
73
+ }
74
+ let cliVersion = '';
75
+ if (useStandaloneMode) {
76
+ if (cliVersionFlag !== undefined) {
77
+ cliVersion = cliVersionFlag;
78
+ }
79
+ else {
80
+ const response = await promptUser({
81
+ name: 'cliVersion',
82
+ type: 'input',
83
+ message: commands.mcp.setup.prompts.cliVersion,
84
+ validate: (v) => !v || /^[\d]+\.[\d]+\.[\d]+([-+][\w.]+)?$/.test(v.trim())
85
+ ? true
86
+ : 'Please enter a valid semver version (e.g. 8.0.1) or leave blank for latest.',
87
+ });
88
+ cliVersion = response.cliVersion;
89
+ }
90
+ }
67
91
  const cliPackage = cliVersion
68
92
  ? `@hubspot/cli@${cliVersion}`
69
93
  : '@hubspot/cli';
@@ -86,8 +110,8 @@ export async function addMcpServerToConfig(targets) {
86
110
  if (derivedTargets.includes(cursor)) {
87
111
  await runSetupFunction(() => setupCursor(mcpCommand));
88
112
  }
89
- if (derivedTargets.includes(windsurf)) {
90
- await runSetupFunction(() => setupWindsurf(mcpCommand));
113
+ if (derivedTargets.includes(devin)) {
114
+ await runSetupFunction(() => setupDevin(mcpCommand));
91
115
  }
92
116
  if (derivedTargets.includes(vscode)) {
93
117
  await runSetupFunction(() => setupVsCode(mcpCommand));
@@ -98,8 +122,17 @@ export async function addMcpServerToConfig(targets) {
98
122
  if (derivedTargets.includes(gemini)) {
99
123
  await runSetupFunction(() => setupGemini(mcpCommand));
100
124
  }
101
- uiLogger.info(commands.mcp.setup.success(derivedTargets));
102
- return derivedTargets;
125
+ if (derivedTargets.includes(opencode)) {
126
+ await runSetupFunction(() => setupOpenCode(mcpCommand));
127
+ }
128
+ if (derivedTargets.includes(OTHER_TOOL)) {
129
+ logOtherToolInstructions(mcpCommand);
130
+ }
131
+ const configuredTargets = derivedTargets.filter(t => t !== OTHER_TOOL);
132
+ if (configuredTargets.length > 0) {
133
+ uiLogger.info(commands.mcp.setup.success(configuredTargets));
134
+ }
135
+ return configuredTargets;
103
136
  }
104
137
  catch (error) {
105
138
  SpinniesManager.fail('mcpSetup', {
@@ -247,7 +280,7 @@ export async function setupClaudeCode(mcpCommand = defaultMcpCommand) {
247
280
  }
248
281
  }
249
282
  export function setupCursor(mcpCommand = defaultMcpCommand) {
250
- const cursorConfigPath = path.join(os.homedir(), '.cursor', 'mcp.json');
283
+ const cursorConfigPath = path.join(os.homedir(), ...getMcpClientPathSegments(cursor));
251
284
  return setupMcpConfigFile({
252
285
  configPath: cursorConfigPath,
253
286
  configuringMessage: commands.mcp.setup.spinners.configuringCursor,
@@ -256,14 +289,14 @@ export function setupCursor(mcpCommand = defaultMcpCommand) {
256
289
  mcpCommand: buildCommandWithAgentString(mcpCommand, cursor),
257
290
  });
258
291
  }
259
- export function setupWindsurf(mcpCommand = defaultMcpCommand) {
260
- const windsurfConfigPath = path.join(os.homedir(), '.codeium', 'windsurf', 'mcp_config.json');
292
+ export function setupDevin(mcpCommand = defaultMcpCommand) {
293
+ const devinConfigPath = path.join(os.homedir(), ...getMcpClientPathSegments(devin));
261
294
  return setupMcpConfigFile({
262
- configPath: windsurfConfigPath,
263
- configuringMessage: commands.mcp.setup.spinners.configuringWindsurf,
264
- configuredMessage: commands.mcp.setup.spinners.configuredWindsurf,
265
- failedMessage: commands.mcp.setup.spinners.failedToConfigureWindsurf,
266
- mcpCommand: buildCommandWithAgentString(mcpCommand, windsurf),
295
+ configPath: devinConfigPath,
296
+ configuringMessage: commands.mcp.setup.spinners.configuringDevin,
297
+ configuredMessage: commands.mcp.setup.spinners.configuredDevin,
298
+ failedMessage: commands.mcp.setup.spinners.failedToConfigureDevin,
299
+ mcpCommand: buildCommandWithAgentString(mcpCommand, devin),
267
300
  });
268
301
  }
269
302
  export async function setupCodex(mcpCommand = defaultMcpCommand) {
@@ -325,6 +358,58 @@ export async function setupGemini(mcpCommand = defaultMcpCommand) {
325
358
  return false;
326
359
  }
327
360
  }
361
+ export async function setupOpenCode(mcpCommand = defaultMcpCommand) {
362
+ try {
363
+ SpinniesManager.add('openCodeSpinner', {
364
+ text: commands.mcp.setup.spinners.configuringOpenCode,
365
+ });
366
+ try {
367
+ await execAsync('opencode --version');
368
+ }
369
+ catch (error) {
370
+ SpinniesManager.fail('openCodeSpinner', {
371
+ text: commands.mcp.setup.spinners.openCodeNotFound,
372
+ });
373
+ return false;
374
+ }
375
+ const mcpCommandWithAgent = buildCommandWithAgentString(mcpCommand, opencode);
376
+ await execAsync(`opencode mcp add "${mcpServerName}"${buildEnvFlagString(mcpCommand)} -- ${mcpCommandWithAgent.command} ${mcpCommandWithAgent.args.join(' ')}`);
377
+ SpinniesManager.succeed('openCodeSpinner', {
378
+ text: commands.mcp.setup.spinners.configuredOpenCode,
379
+ });
380
+ return true;
381
+ }
382
+ catch (error) {
383
+ SpinniesManager.fail('openCodeSpinner', {
384
+ text: commands.mcp.setup.spinners.openCodeInstallFailed,
385
+ });
386
+ logError(error);
387
+ return false;
388
+ }
389
+ }
390
+ function logOtherToolInstructions(mcpCommand) {
391
+ const { otherInstructions } = commands.mcp.setup;
392
+ uiLogger.log('');
393
+ uiLogger.log(otherInstructions.header);
394
+ uiLogger.log(otherInstructions.docsNote);
395
+ uiLogger.log('');
396
+ uiLogger.log(` ${otherInstructions.commandLabel}`);
397
+ uiLogger.log(` ${mcpCommand.command} ${mcpCommand.args.join(' ')}`);
398
+ uiLogger.log('');
399
+ uiLogger.log(` ${otherInstructions.jsonLabel}`);
400
+ uiLogger.log('');
401
+ const jsonConfig = {
402
+ mcpServers: {
403
+ [mcpServerName]: mcpCommand,
404
+ },
405
+ };
406
+ const indented = JSON.stringify(jsonConfig, null, 2)
407
+ .split('\n')
408
+ .map(line => ` ${line}`)
409
+ .join('\n');
410
+ uiLogger.log(indented);
411
+ uiLogger.log('');
412
+ }
328
413
  function buildCommandWithAgentString(mcpCommand, agent) {
329
414
  const mcpCommandCopy = structuredClone(mcpCommand);
330
415
  mcpCommandCopy.args.push('--ai-agent', agent);
@@ -42,6 +42,10 @@ export async function autoUpdateCLI(argv) {
42
42
  debugError(e);
43
43
  }
44
44
  const cliUpgradeInfo = getCliUpgradeInfo();
45
+ // Ignore all update notifications if the current version is a pre-release (contains a hyphen)
46
+ if (cliUpgradeInfo.current && cliUpgradeInfo.current.includes('-')) {
47
+ showManualInstallHelp = false;
48
+ }
45
49
  if (isAllowAutoUpdatesEnabled &&
46
50
  cliUpgradeInfo.current &&
47
51
  cliUpgradeInfo.latest &&
@@ -49,9 +53,8 @@ export async function autoUpdateCLI(argv) {
49
53
  !argv.useEnv &&
50
54
  !process.env.SKIP_HUBSPOT_CLI_AUTO_UPDATES &&
51
55
  !preventAutoUpdateForCommand(argv._)) {
52
- // Ignore all update notifications if the current version is a pre-release (contains a hyphen)
53
- if (cliUpgradeInfo.current.includes('-')) {
54
- showManualInstallHelp = false;
56
+ if (!showManualInstallHelp) {
57
+ // Pre-release version detected, skip auto-update
55
58
  }
56
59
  else if (!['major', 'latest'].includes(cliUpgradeInfo.type)) {
57
60
  // type "latest" => current installed version is latest
@@ -21,6 +21,7 @@ const SKIP_CONFIG_LOADING_COMMANDS = {
21
21
  init: true,
22
22
  feedback: true,
23
23
  mcp: { start: true },
24
+ project: { lint: true },
24
25
  };
25
26
  // Returns true if the command requires a config file to be present
26
27
  export function shouldLoadConfigForCommand(commandParts) {
@@ -4,6 +4,7 @@ export declare function getLatestPackageVersion(packageName: string): Promise<{
4
4
  latest: string | null;
5
5
  next: string | null;
6
6
  }>;
7
+ export declare function getNpmExecErrorOutput(error: unknown): string | null;
7
8
  export declare function executeInstall(packages?: string[], flags?: string | null, options?: {
8
9
  cwd?: string;
9
10
  }): Promise<void>;
package/lib/npm/npmCli.js CHANGED
@@ -23,6 +23,19 @@ export async function getLatestPackageVersion(packageName) {
23
23
  return { latest: null, next: null };
24
24
  }
25
25
  }
26
+ function isNpmExecError(error) {
27
+ return (typeof error === 'object' &&
28
+ error !== null &&
29
+ ('stderr' in error || 'stdout' in error));
30
+ }
31
+ export function getNpmExecErrorOutput(error) {
32
+ if (!isNpmExecError(error)) {
33
+ return null;
34
+ }
35
+ const stderr = error.stderr?.trim();
36
+ const stdout = error.stdout?.trim();
37
+ return stderr || stdout || null;
38
+ }
26
39
  export async function executeInstall(packages = [], flags, options) {
27
40
  const installCommand = `${DEFAULT_PACKAGE_MANAGER} install${flags ? ` ${flags}` : ''} ${packages.join(' ')}`;
28
41
  uiLogger.debug('Running', installCommand);
@@ -92,7 +92,7 @@ const findAllPackageJsonFilesInDirectoryCached = async (directory) => {
92
92
  * @returns Array of absolute paths to package.json files in the project
93
93
  */
94
94
  export async function findAllPackageJsonFilesInProjectCached() {
95
- const projectConfig = await getProjectConfig();
95
+ const projectConfig = getProjectConfig();
96
96
  const { projectDir } = projectConfig;
97
97
  if (!projectDir) {
98
98
  return [];
package/lib/process.d.ts CHANGED
@@ -8,6 +8,6 @@ interface KeyPress {
8
8
  export declare const TERMINATION_SIGNALS: string[];
9
9
  export declare function handleExit(callback: (onTerminate: {
10
10
  isSIGHUP: boolean;
11
- }) => void): void;
11
+ }) => void): () => void;
12
12
  export declare function handleKeypress(callback: (onKeyPress: KeyPress) => void): void;
13
13
  export {};
package/lib/process.js CHANGED
@@ -16,9 +16,9 @@ export const TERMINATION_SIGNALS = [
16
16
  ];
17
17
  export function handleExit(callback) {
18
18
  let exitInProgress = false;
19
+ const listeners = [];
19
20
  TERMINATION_SIGNALS.forEach(signal => {
20
- process.removeAllListeners(signal);
21
- process.on(signal, async (...args) => {
21
+ const handler = async (...args) => {
22
22
  // Prevent duplicate exit handling
23
23
  if (!exitInProgress) {
24
24
  exitInProgress = true;
@@ -38,8 +38,15 @@ export function handleExit(callback) {
38
38
  }
39
39
  await callback({ isSIGHUP });
40
40
  }
41
- });
41
+ };
42
+ listeners.push({ signal, handler });
43
+ process.on(signal, handler);
42
44
  });
45
+ return () => {
46
+ for (const { signal, handler } of listeners) {
47
+ process.removeListener(signal, handler);
48
+ }
49
+ };
43
50
  }
44
51
  export function handleKeypress(callback) {
45
52
  readline.createInterface(process.stdin, process.stdout);
@@ -4,7 +4,7 @@ import { fetchProjectComponentsMetadata } from '@hubspot/local-dev-lib/api/proje
4
4
  import { fetchAppMetadataBySourceId } from '@hubspot/local-dev-lib/api/appsDev';
5
5
  import { uiLogger } from '../ui/logger.js';
6
6
  import { commands } from '../../lang/en.js';
7
- import { isV2Project } from './platformVersion.js';
7
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
8
8
  import { getDeployedProjectNodes } from './localDev/helpers/project.js';
9
9
  import { debugError } from '../errorHandlers/index.js';
10
10
  class _ProjectLogsManager {
@@ -34,10 +34,7 @@ class _ProjectLogsManager {
34
34
  this.functions = [];
35
35
  }
36
36
  async init(accountId) {
37
- const { projectConfig } = await getProjectConfig();
38
- if (!projectConfig || !projectConfig.name) {
39
- throw new Error(commands.project.logs.errors.noProjectConfig);
40
- }
37
+ const { projectConfig } = getProjectConfig();
41
38
  this.projectConfig = projectConfig;
42
39
  this.projectName = projectConfig.name;
43
40
  this.accountId = accountId;
@@ -51,7 +48,7 @@ class _ProjectLogsManager {
51
48
  throw new Error(commands.project.logs.errors.failedToFetchProjectDetails);
52
49
  }
53
50
  this.projectId = project.id;
54
- if (isV2Project(projectConfig.platformVersion)) {
51
+ if (!isLegacyProject(projectConfig.platformVersion)) {
55
52
  const deployedBuildId = project.deployedBuild.buildId;
56
53
  if (!deployedBuildId) {
57
54
  throw new Error(commands.project.logs.errors.noDeployedBuild);
@@ -134,9 +131,12 @@ class _ProjectLogsManager {
134
131
  return this.functions.map(serverlessFunction => serverlessFunction.componentName);
135
132
  }
136
133
  setFunction(functionName) {
137
- if (!functionName || this.functions.length === 0) {
134
+ if (this.functions.length === 0) {
138
135
  throw new Error(commands.project.logs.errors.noFunctionsInProject);
139
136
  }
137
+ if (!functionName) {
138
+ throw new Error(commands.project.logs.errors.functionNameRequired);
139
+ }
140
140
  this.selectedFunction = this.functions.find(serverlessFunction => serverlessFunction.componentName === functionName);
141
141
  if (!this.selectedFunction) {
142
142
  throw new Error(commands.project.logs.errors.noFunctionWithName(functionName));
@@ -0,0 +1,2 @@
1
+ import { type Build } from '@hubspot/local-dev-lib/types/Build';
2
+ export declare function getLastSuccessfulBuild(accountId: number, projectName: string, latestBuild?: Build): Promise<Build | undefined>;
@@ -0,0 +1,22 @@
1
+ import { fetchProjectBuilds } from '@hubspot/local-dev-lib/api/projects';
2
+ import { BUILD_STATUS } from '@hubspot/local-dev-lib/enums/build';
3
+ export async function getLastSuccessfulBuild(accountId, projectName, latestBuild) {
4
+ if (latestBuild?.status === BUILD_STATUS.SUCCESS) {
5
+ return latestBuild;
6
+ }
7
+ let after;
8
+ let hasMore = true;
9
+ while (hasMore) {
10
+ const { data: { results, paging }, } = await fetchProjectBuilds(accountId, projectName, {
11
+ limit: 100,
12
+ ...(after ? { after } : {}),
13
+ });
14
+ const successfulBuild = results.find(build => build.status === BUILD_STATUS.SUCCESS);
15
+ if (successfulBuild) {
16
+ return successfulBuild;
17
+ }
18
+ after = paging?.next?.after;
19
+ hasMore = !!after;
20
+ }
21
+ return undefined;
22
+ }
@@ -114,9 +114,19 @@ export function handleComponentCollision({ dest, src, collisions }) {
114
114
  }
115
115
  });
116
116
  const filenameDifferentiator = generateSafeFilenameDifferentiator(sourceFiles, hsMetaFiles);
117
- // Exclude markdown files fromthe rename process because they should not be duplicated
118
117
  const sourceFilenameMapping = sourceFiles
119
- .filter(filename => !filename.endsWith('.md'))
118
+ .filter(filename => {
119
+ // Exclude markdown files from the rename process because they should not be duplicated
120
+ if (filename.endsWith('.md')) {
121
+ return false;
122
+ }
123
+ // Also exclude the tooling config we add to new projects
124
+ const base = path.parse(filename).base;
125
+ if (base === '.prettierrc.json' || base === 'eslint.config.js') {
126
+ return false;
127
+ }
128
+ return true;
129
+ })
120
130
  .reduce((acc, filename) => {
121
131
  return {
122
132
  ...acc,
@@ -183,12 +193,13 @@ export async function updateHsMetaFilesWithAutoGeneratedFields(projectName, hsMe
183
193
  return component.uid;
184
194
  };
185
195
  let uid = getBaseUid();
186
- let differentiator = 1;
196
+ let differentiator = 2;
187
197
  while (existingUids.includes(uid)) {
188
- differentiator++;
189
198
  uid = `${getBaseUid()}_${differentiator}`;
199
+ differentiator++;
190
200
  }
191
201
  component.uid = uid;
202
+ existingUids.push(uid);
192
203
  if (component.type === AppKey && component.config) {
193
204
  component.config.name = `${projectName}-App`;
194
205
  }
@@ -1,9 +1,10 @@
1
- import { ProjectConfig } from '../../types/Projects.js';
1
+ import type { ProjectConfig } from '@hubspot/project-parsing-lib/projects';
2
+ export { ProjectConfigValidationError } from '@hubspot/project-parsing-lib/projects';
3
+ export type { ProjectConfig } from '@hubspot/project-parsing-lib/projects';
2
4
  export declare function writeProjectConfig(configPath: string, config: ProjectConfig): boolean;
3
5
  export declare function getIsInProject(dir?: string): boolean;
4
6
  export interface LoadedProjectConfig {
5
- projectDir: string | null;
6
- projectConfig: ProjectConfig | null;
7
+ projectDir: string;
8
+ projectConfig: ProjectConfig;
7
9
  }
8
- export declare function getProjectConfig(dir?: string): Promise<LoadedProjectConfig>;
9
- export declare function validateProjectConfig(projectConfig: ProjectConfig | null, projectDir: string | null): asserts projectConfig is ProjectConfig;
10
+ export declare function getProjectConfig(dir?: string): LoadedProjectConfig;
@@ -2,10 +2,11 @@ import fs from 'fs-extra';
2
2
  import path from 'path';
3
3
  import findup from 'findup-sync';
4
4
  import { getAbsoluteFilePath, getCwd } from '@hubspot/local-dev-lib/path';
5
+ import { parseProjectConfig, ProjectConfigValidationError, } from '@hubspot/project-parsing-lib/projects';
5
6
  import { PROJECT_CONFIG_FILE } from '../constants.js';
6
7
  import { lib } from '../../lang/en.js';
7
8
  import { uiLogger } from '../ui/logger.js';
8
- import ProjectValidationError from '../errors/ProjectValidationError.js';
9
+ export { ProjectConfigValidationError } from '@hubspot/project-parsing-lib/projects';
9
10
  export function writeProjectConfig(configPath, config) {
10
11
  try {
11
12
  fs.ensureFileSync(configPath);
@@ -30,44 +31,12 @@ function getProjectConfigPath(dir) {
30
31
  });
31
32
  return configPath;
32
33
  }
33
- export async function getProjectConfig(dir) {
34
+ export function getProjectConfig(dir) {
34
35
  const configPath = getProjectConfigPath(dir);
35
36
  if (!configPath) {
36
- return { projectConfig: null, projectDir: null };
37
- }
38
- try {
39
- const config = fs.readFileSync(configPath);
40
- const projectConfig = JSON.parse(config.toString());
41
- return {
42
- projectDir: path.dirname(configPath),
43
- projectConfig,
44
- };
45
- }
46
- catch (e) {
47
- uiLogger.error(lib.projects.getProjectConfig.error);
48
- return { projectConfig: null, projectDir: null };
49
- }
50
- }
51
- export function validateProjectConfig(projectConfig, projectDir) {
52
- if (!projectConfig || !projectDir) {
53
- throw new ProjectValidationError(lib.projects.validateProjectConfig.configNotFound);
54
- }
55
- const missingFields = [];
56
- if (!projectConfig.name) {
57
- missingFields.push('name');
58
- }
59
- if (!projectConfig.srcDir) {
60
- missingFields.push('srcDir');
61
- }
62
- if (missingFields.length > 0) {
63
- throw new ProjectValidationError(lib.projects.validateProjectConfig.configMissingFields(missingFields));
64
- }
65
- const resolvedPath = path.resolve(projectDir, projectConfig.srcDir);
66
- if (!resolvedPath.startsWith(projectDir)) {
67
- const projectConfigFile = path.relative('.', path.join(projectDir, PROJECT_CONFIG_FILE));
68
- throw new ProjectValidationError(lib.projects.validateProjectConfig.srcOutsideProjectDir(projectConfigFile, projectConfig.srcDir));
69
- }
70
- if (!fs.existsSync(resolvedPath)) {
71
- throw new ProjectValidationError(lib.projects.validateProjectConfig.srcDirNotFound(projectConfig.srcDir, projectDir));
37
+ throw new ProjectConfigValidationError(lib.projects.validateProjectConfig.configNotFound);
72
38
  }
39
+ const projectDir = path.dirname(configPath);
40
+ const projectConfig = parseProjectConfig(projectDir);
41
+ return { projectDir, projectConfig };
73
42
  }
@@ -1,7 +1,7 @@
1
1
  import { selectProjectTemplatePrompt, } from '../../prompts/selectProjectTemplatePrompt.js';
2
2
  import { projectNameAndDestPrompt } from '../../prompts/projectNameAndDestPrompt.js';
3
3
  import { DEFAULT_PROJECT_TEMPLATE_BRANCH, HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, EMPTY_PROJECT, } from '../../constants.js';
4
- import { isV2Project } from '../platformVersion.js';
4
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
5
5
  import { v2ComponentFlow } from './v2.js';
6
6
  import { getProjectTemplateListFromRepo } from './legacy.js';
7
7
  import { commands } from '../../../lang/en.js';
@@ -9,7 +9,7 @@ export async function handleProjectCreationFlow(args) {
9
9
  const { platformVersion, templateSource, projectBase, auth: providedAuth, distribution: providedDistribution, } = args;
10
10
  const repo = templateSource || HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH;
11
11
  const projectNameAndDestPromptResponse = await projectNameAndDestPrompt(args);
12
- if (isV2Project(platformVersion)) {
12
+ if (!isLegacyProject(platformVersion)) {
13
13
  const { componentTemplateChoices, authType, distribution, repoConfig, projectContents, } = await v2ComponentFlow(platformVersion, projectBase, providedAuth, providedDistribution, args.derivedAccountId);
14
14
  const selectProjectTemplatePromptResponse = await selectProjectTemplatePrompt(args, undefined, projectContents !== EMPTY_PROJECT ? componentTemplateChoices : undefined);
15
15
  return {
@@ -1,13 +1,13 @@
1
1
  import { fetchRepoFile } from '@hubspot/local-dev-lib/api/github';
2
2
  import { DEFAULT_PROJECT_TEMPLATE_BRANCH, HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, PROJECT_COMPONENT_TYPES, } from '../../constants.js';
3
3
  import { debugError } from '../../errorHandlers/index.js';
4
- import { isV2Project } from '../platformVersion.js';
4
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
5
5
  import { lib } from '../../../lang/en.js';
6
6
  const PROJECT_TEMPLATE_PROPERTIES = ['name', 'label', 'path'];
7
7
  export const EMPTY_PROJECT_TEMPLATE_NAME = 'no-template';
8
8
  export async function getConfigForPlatformVersion(platformVersion) {
9
9
  let path = '';
10
- if (isV2Project(platformVersion)) {
10
+ if (!isLegacyProject(platformVersion)) {
11
11
  path = `${platformVersion}/`;
12
12
  }
13
13
  const { data } = await fetchRepoFile(HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, `${path}config.json`, DEFAULT_PROJECT_TEMPLATE_BRANCH);
@@ -1,8 +1,8 @@
1
1
  import { marketplaceDistribution, oAuth, privateDistribution, staticAuth, EMPTY_PROJECT, PROJECT_WITH_APP, FEATURES, } from '../../constants.js';
2
2
  import { commands, lib } from '../../../lang/en.js';
3
3
  import { listPrompt } from '../../prompts/promptUtils.js';
4
- import { APP_EVENTS_KEY as AppEventsKey, PAGES_KEY as PagesKey, } from '@hubspot/project-parsing-lib/constants';
5
- import { isV2Project } from '../platformVersion.js';
4
+ import { APP_EVENTS_KEY as AppEventsKey } from '@hubspot/project-parsing-lib/constants';
5
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
6
6
  import path from 'path';
7
7
  import { getConfigForPlatformVersion } from './legacy.js';
8
8
  import { hasFeature } from '../../hasFeature.js';
@@ -47,8 +47,8 @@ export async function createV2App(providedAuth, providedDistribution) {
47
47
  }
48
48
  const componentTypeToGateMap = {
49
49
  [AppEventsKey]: FEATURES.APP_EVENTS,
50
- [PagesKey]: FEATURES.APPS_HOME,
51
50
  'workflow-action-tool': FEATURES.AGENT_TOOLS,
51
+ 'crm-bulk-action': FEATURES.APP_ACTIONS,
52
52
  };
53
53
  export async function calculateComponentTemplateChoices(components, authType, distribution, accountId, projectMetadata) {
54
54
  const enabledComponents = [];
@@ -113,11 +113,11 @@ export async function v2ComponentFlow(platformVersion, projectBase, providedAuth
113
113
  const projectContentsChoice = projectBase ||
114
114
  (await listPrompt(commands.project.create.prompts.parentComponents, {
115
115
  choices: [
116
+ { name: commands.project.create.prompts.app, value: PROJECT_WITH_APP },
116
117
  {
117
118
  name: commands.project.create.prompts.emptyProject,
118
119
  value: EMPTY_PROJECT,
119
120
  },
120
- { name: commands.project.create.prompts.app, value: PROJECT_WITH_APP },
121
121
  ],
122
122
  }));
123
123
  if (projectContentsChoice === PROJECT_WITH_APP) {
@@ -135,7 +135,7 @@ export async function v2ComponentFlow(platformVersion, projectBase, providedAuth
135
135
  };
136
136
  }
137
137
  export function generateComponentPaths({ selectProjectTemplatePromptResponse, platformVersion, repoConfig, projectContents, authType, distribution, }) {
138
- if (!isV2Project(platformVersion)) {
138
+ if (isLegacyProject(platformVersion)) {
139
139
  return [];
140
140
  }
141
141
  const components = selectProjectTemplatePromptResponse.componentTemplates?.map((componentTemplate) => {
@@ -0,0 +1,13 @@
1
+ export declare const DELETION_POLL_TIMEOUT_MS: number;
2
+ export declare const DELETION_DEPLOY_SUCCESS_STATES: string[];
3
+ export declare const DELETION_DEPLOY_ERROR_STATES: ("FAILURE" | "ERROR" | "REVERTED")[];
4
+ export declare function resolveProjectName(accountId: number, projectArg: string | undefined): Promise<string>;
5
+ export declare function fetchProjectInstallCount(accountId: number, projectId: number): Promise<number>;
6
+ export declare function checkDeployedComponents(accountId: number, projectName: string): Promise<{
7
+ platformVersion: string;
8
+ hasUnifiedComponents: boolean;
9
+ projectId: number;
10
+ }>;
11
+ export declare function deleteDeployedComponents(accountId: number, projectName: string): Promise<void>;
12
+ export declare function handleProjectDeletion(accountId: number, projectName: string): Promise<void>;
13
+ export declare function confirmDeletion(projectName: string, accountId: number, projectId: number): Promise<void>;