@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,11 +1,12 @@
1
1
  import { getSandboxUsageLimits } from '@hubspot/local-dev-lib/api/sandboxHubs';
2
- import { HUBSPOT_ACCOUNT_TYPES, HUBSPOT_ACCOUNT_TYPE_STRINGS, } from '@hubspot/local-dev-lib/constants/config';
2
+ import { HUBSPOT_ACCOUNT_TYPE_STRINGS, HUBSPOT_ACCOUNT_TYPES, } from '@hubspot/local-dev-lib/constants/config';
3
3
  import { fetchDeveloperTestAccounts } from '@hubspot/local-dev-lib/api/developerTestAccounts';
4
4
  import { promptUser } from './promptUtils.js';
5
5
  import { lib } from '../../lang/en.js';
6
6
  import { uiLogger } from '../ui/logger.js';
7
7
  import { uiAccountDescription } from '../ui/index.js';
8
8
  import { isSandbox } from '../accountTypes.js';
9
+ import { PromptExitError } from '../errors/PromptExitError.js';
9
10
  import { EXIT_CODES } from '../enums/exitCodes.js';
10
11
  function mapNestedAccount(accountConfig) {
11
12
  const parentAccountId = accountConfig.parentAccountId ?? null;
@@ -23,20 +24,18 @@ function getNonConfigDeveloperTestAccountName(account) {
23
24
  }
24
25
  export async function selectSandboxTargetAccountPrompt(accounts, defaultAccountConfig) {
25
26
  const defaultAccountId = defaultAccountConfig.accountId;
27
+ if (!defaultAccountId) {
28
+ uiLogger.error(lib.prompts.projectDevTargetAccountPrompt.noAccountId);
29
+ throw new PromptExitError(lib.prompts.projectDevTargetAccountPrompt.noAccountId, EXIT_CODES.ERROR);
30
+ }
26
31
  let choices = [];
27
32
  let sandboxUsage = {
28
33
  STANDARD: { used: 0, available: 0, limit: 0 },
29
34
  DEVELOPER: { used: 0, available: 0, limit: 0 },
30
35
  };
31
36
  try {
32
- if (defaultAccountId) {
33
- const { data } = await getSandboxUsageLimits(defaultAccountId);
34
- sandboxUsage = data.usage;
35
- }
36
- else {
37
- uiLogger.error(lib.prompts.projectDevTargetAccountPrompt.noAccountId);
38
- process.exit(EXIT_CODES.ERROR);
39
- }
37
+ const { data } = await getSandboxUsageLimits(defaultAccountId);
38
+ sandboxUsage = data.usage;
40
39
  }
41
40
  catch (err) {
42
41
  uiLogger.debug('Unable to fetch sandbox usage limits: ', err);
@@ -83,19 +82,18 @@ export async function selectSandboxTargetAccountPrompt(accounts, defaultAccountC
83
82
  }
84
83
  export async function selectDeveloperTestTargetAccountPrompt(accounts, defaultAccountConfig) {
85
84
  const defaultAccountId = defaultAccountConfig.accountId;
85
+ if (!defaultAccountId) {
86
+ uiLogger.error(lib.prompts.projectDevTargetAccountPrompt.noAccountId);
87
+ throw new PromptExitError(lib.prompts.projectDevTargetAccountPrompt.noAccountId, EXIT_CODES.ERROR);
88
+ }
86
89
  let devTestAccountsResponse;
87
90
  try {
88
- if (defaultAccountId) {
89
- const { data } = await fetchDeveloperTestAccounts(defaultAccountId);
90
- devTestAccountsResponse = data;
91
- }
92
- else {
93
- uiLogger.error(lib.prompts.projectDevTargetAccountPrompt.noAccountId);
94
- process.exit(EXIT_CODES.ERROR);
95
- }
91
+ const { data } = await fetchDeveloperTestAccounts(defaultAccountId);
92
+ devTestAccountsResponse = data;
96
93
  }
97
94
  catch (err) {
98
- uiLogger.debug('Unable to fetch developer test account usage limits: ', err);
95
+ uiLogger.error(lib.prompts.projectDevTargetAccountPrompt.fetchDeveloperTestAccountsError);
96
+ throw new PromptExitError(lib.prompts.projectDevTargetAccountPrompt.fetchDeveloperTestAccountsError, EXIT_CODES.ERROR);
99
97
  }
100
98
  let disabledMessage = false;
101
99
  if (devTestAccountsResponse &&
@@ -167,3 +165,13 @@ export async function confirmUseExistingDeveloperTestAccountPrompt(account) {
167
165
  ]);
168
166
  return confirmUseExistingDeveloperTestAccount;
169
167
  }
168
+ export async function confirmLinkExistingDeveloperTestAccountPrompt(accountName) {
169
+ const { confirmLinkExistingDeveloperTestAccount } = await promptUser([
170
+ {
171
+ name: 'confirmLinkExistingDeveloperTestAccount',
172
+ type: 'confirm',
173
+ message: lib.prompts.projectDevTargetAccountPrompt.confirmLinkExistingDeveloperTestAccount(accountName),
174
+ },
175
+ ]);
176
+ return confirmLinkExistingDeveloperTestAccount;
177
+ }
@@ -0,0 +1,2 @@
1
+ import { ProjectConfig } from '../../types/Projects.js';
2
+ export declare function projectProfilePrompt(projectDir: string, projectConfig: ProjectConfig, profileName?: string, exitIfMissing?: boolean): Promise<string | null>;
@@ -0,0 +1,46 @@
1
+ import path from 'path';
2
+ import { getAllHsProfiles } from '@hubspot/project-parsing-lib/profiles';
3
+ import { listPrompt } from './promptUtils.js';
4
+ import { loadProfile } from '../projects/projectProfiles.js';
5
+ import { lib } from '../../lang/en.js';
6
+ function generateProfilePromptOption(projectDir, projectConfig, profileName) {
7
+ const choice = {
8
+ name: profileName,
9
+ value: profileName,
10
+ };
11
+ try {
12
+ const profile = loadProfile(projectConfig, projectDir, profileName);
13
+ choice.name = `${profileName} [${profile.accountId}]`;
14
+ }
15
+ catch (e) {
16
+ choice.name = `${profileName} [Invalid profile]`;
17
+ choice.disabled = true;
18
+ }
19
+ return choice;
20
+ }
21
+ export async function projectProfilePrompt(projectDir, projectConfig, profileName, exitIfMissing) {
22
+ if (profileName) {
23
+ return profileName;
24
+ }
25
+ const existingProfiles = await getAllHsProfiles(path.join(projectDir, projectConfig.srcDir));
26
+ if (existingProfiles.length !== 0) {
27
+ if (existingProfiles.length === 1) {
28
+ return existingProfiles[0];
29
+ }
30
+ // In automated workflows exit instead of prompting
31
+ if (exitIfMissing) {
32
+ throw new Error(lib.prompts.projectProfilePrompt.exitMessage);
33
+ }
34
+ const listOptions = existingProfiles.map(p => generateProfilePromptOption(projectDir, projectConfig, p));
35
+ const hasAnyValidProfiles = listOptions.some(option => typeof option === 'object' && 'name' in option && !option.disabled);
36
+ // Exit early if the user has no valid profiles for us to show in the prompt
37
+ if (!hasAnyValidProfiles) {
38
+ throw new Error(lib.prompts.projectProfilePrompt.noValidProfilesMessage);
39
+ }
40
+ const profileNameFromPrompt = await listPrompt(lib.prompts.projectProfilePrompt.message, {
41
+ choices: listOptions,
42
+ });
43
+ return profileNameFromPrompt;
44
+ }
45
+ return null;
46
+ }
@@ -4,6 +4,9 @@ export async function projectLogsPrompt({ functionChoices, promptOptions, projec
4
4
  if (!functionChoices) {
5
5
  return {};
6
6
  }
7
+ if (promptOptions?.function) {
8
+ return { functionName: promptOptions.function };
9
+ }
7
10
  if (functionChoices.length === 1) {
8
11
  return { functionName: functionChoices[0] };
9
12
  }
@@ -3,6 +3,7 @@ import { EXIT_CODES } from '../enums/exitCodes.js';
3
3
  import chalk from 'chalk';
4
4
  import { lib } from '../../lang/en.js';
5
5
  import { uiLogger } from '../ui/logger.js';
6
+ import { PromptExitError } from '../errors/PromptExitError.js';
6
7
  export const Separator = new _Separator();
7
8
  export const PROMPT_THEME = { prefix: { idle: chalk.green('?') } };
8
9
  export const CHECKBOX_PROMPT_THEME = {
@@ -19,14 +20,14 @@ function isNoSelectableChoicesError(error) {
19
20
  }
20
21
  function handlePromptError(config, error) {
21
22
  if (isUserCancellationError(error)) {
22
- process.exit(EXIT_CODES.SUCCESS);
23
+ throw new PromptExitError(lib.prompts.promptUtils.errors.userCancelled, EXIT_CODES.SUCCESS);
23
24
  }
24
25
  if (isNoSelectableChoicesError(error)) {
25
26
  if (!Array.isArray(config)) {
26
27
  uiLogger.log(config.message);
27
28
  }
28
29
  uiLogger.error(lib.prompts.promptUtils.errors.noSelectableChoices);
29
- process.exit(EXIT_CODES.ERROR);
30
+ throw new PromptExitError(lib.prompts.promptUtils.errors.noSelectableChoices, EXIT_CODES.ERROR);
30
31
  }
31
32
  throw error;
32
33
  }
@@ -41,6 +42,7 @@ function mapPromptChoicesToChoices(choices) {
41
42
  return {
42
43
  value: choice.value,
43
44
  name: choice.name,
45
+ short: choice.short,
44
46
  disabled: choice.disabled,
45
47
  checked: choice.checked,
46
48
  };
@@ -27,6 +27,7 @@ export async function selectAppPrompt(accountId, appId) {
27
27
  uiLogger.error(lib.prompts.selectAppPrompt.errors.invalidAppId);
28
28
  }
29
29
  }
30
+ availableApps.sort((a, b) => a.name.localeCompare(b.name));
30
31
  const appPromptValue = await listPrompt(lib.prompts.selectAppPrompt.selectAppId, {
31
32
  choices: availableApps.map(app => ({
32
33
  name: `${app.name} (${app.id})`,
@@ -4,25 +4,29 @@ import { lib } from '../../lang/en.js';
4
4
  import { debugError } from '../errorHandlers/index.js';
5
5
  import { uiLogger } from '../ui/logger.js';
6
6
  import { fetchTables } from '@hubspot/local-dev-lib/api/hubdb';
7
- import { EXIT_CODES } from '../enums/exitCodes.js';
8
7
  import { isValidPath, untildify } from '@hubspot/local-dev-lib/path';
8
+ import { isPromptExitError, PromptExitError, } from '../errors/PromptExitError.js';
9
+ import { EXIT_CODES } from '../enums/exitCodes.js';
9
10
  async function fetchHubDBOptions(accountId) {
10
11
  try {
11
12
  const { data: { results: tables }, } = await fetchTables(accountId);
12
13
  if (tables.length === 0) {
13
14
  uiLogger.log(lib.prompts.selectHubDBTablePrompt.errors.noTables(accountId.toString()));
14
- process.exit(EXIT_CODES.SUCCESS);
15
+ throw new PromptExitError(lib.prompts.selectHubDBTablePrompt.errors.noTables(accountId.toString()), EXIT_CODES.SUCCESS);
15
16
  }
16
17
  return tables;
17
18
  }
18
19
  catch (error) {
20
+ if (isPromptExitError(error)) {
21
+ throw error;
22
+ }
19
23
  debugError(error, { accountId });
20
24
  uiLogger.error(lib.prompts.selectHubDBTablePrompt.errors.errorFetchingTables(accountId.toString()));
21
- process.exit(EXIT_CODES.ERROR);
25
+ throw new PromptExitError(lib.prompts.selectHubDBTablePrompt.errors.errorFetchingTables(accountId.toString()), EXIT_CODES.ERROR);
22
26
  }
23
27
  }
24
28
  export async function selectHubDBTablePrompt({ accountId, options, skipDestPrompt = true, }) {
25
- const hubdbTables = (await fetchHubDBOptions(accountId)) || [];
29
+ const hubdbTables = await fetchHubDBOptions(accountId);
26
30
  const id = options.tableId?.toString();
27
31
  const isValidTable = options.tableId && hubdbTables.find(table => table.id === id);
28
32
  return promptUser([
@@ -4,13 +4,14 @@ import { uiLine } from '../ui/index.js';
4
4
  import { logError } from '../errorHandlers/index.js';
5
5
  import { uiLogger } from '../ui/logger.js';
6
6
  import { fetchPublicAppsForPortal } from '@hubspot/local-dev-lib/api/appsDev';
7
+ import { isPromptExitError, PromptExitError, } from '../errors/PromptExitError.js';
7
8
  import { EXIT_CODES } from '../enums/exitCodes.js';
8
9
  async function fetchPublicAppOptions(accountId, accountName, isMigratingApp = false) {
10
+ if (!accountId) {
11
+ uiLogger.error(lib.prompts.selectPublicAppForMigrationPrompt.errors.noAccountId);
12
+ throw new PromptExitError(lib.prompts.selectPublicAppForMigrationPrompt.errors.noAccountId, EXIT_CODES.ERROR);
13
+ }
9
14
  try {
10
- if (!accountId) {
11
- uiLogger.error(lib.prompts.selectPublicAppForMigrationPrompt.errors.noAccountId);
12
- process.exit(EXIT_CODES.ERROR);
13
- }
14
15
  const { data: { results: publicApps }, } = await fetchPublicAppsForPortal(accountId);
15
16
  const filteredPublicApps = publicApps.filter(app => !app.projectId && !app.sourceId);
16
17
  if (!filteredPublicApps.length ||
@@ -24,14 +25,19 @@ async function fetchPublicAppOptions(accountId, accountName, isMigratingApp = fa
24
25
  uiLogger.error(`${lib.prompts.selectPublicAppForMigrationPrompt.errors.noAppsClone}\n${lib.prompts.selectPublicAppForMigrationPrompt.errors.noAppsCloneMessage(accountName)}`);
25
26
  }
26
27
  uiLine();
27
- process.exit(EXIT_CODES.SUCCESS);
28
+ throw new PromptExitError(isMigratingApp
29
+ ? lib.prompts.selectPublicAppForMigrationPrompt.errors.noAppsMigration
30
+ : lib.prompts.selectPublicAppForMigrationPrompt.errors.noAppsClone, EXIT_CODES.SUCCESS);
28
31
  }
29
32
  return filteredPublicApps;
30
33
  }
31
34
  catch (error) {
35
+ if (isPromptExitError(error)) {
36
+ throw error;
37
+ }
32
38
  logError(error, accountId ? { accountId } : undefined);
33
39
  uiLogger.error(lib.prompts.selectPublicAppForMigrationPrompt.errors.errorFetchingApps);
34
- process.exit(EXIT_CODES.ERROR);
40
+ throw new PromptExitError(lib.prompts.selectPublicAppForMigrationPrompt.errors.errorFetchingApps, EXIT_CODES.ERROR);
35
41
  }
36
42
  }
37
43
  export async function selectPublicAppForMigrationPrompt({ accountId, accountName, isMigratingApp = false, }) {
@@ -11,7 +11,8 @@ export async function setAsDefaultAccountPrompt(accountName) {
11
11
  name: 'setAsDefault',
12
12
  type: 'confirm',
13
13
  when: accounts.length >= 1 && defaultAccount?.name !== accountName,
14
- message: lib.prompts.setAsDefaultAccountPrompt.setAsDefaultAccountMessage,
14
+ message: lib.prompts.setAsDefaultAccountPrompt.setAsDefaultAccountMessage(accountName),
15
+ default: false,
15
16
  },
16
17
  ]);
17
18
  uiLogger.log('');
@@ -1,22 +1,14 @@
1
1
  import { AccountType, HubSpotConfigAccount } from '@hubspot/local-dev-lib/types/Accounts';
2
2
  import { Environment } from '@hubspot/local-dev-lib/types/Accounts';
3
- import { SandboxSyncTask, SandboxAccountType } from '../types/Sandboxes.js';
4
- export declare const SYNC_TYPES: {
5
- readonly OBJECT_RECORDS: "object-records";
6
- };
3
+ import { SandboxAccountType } from '../types/Sandboxes.js';
7
4
  export declare const SANDBOX_TYPE_MAP: {
8
5
  [key: string]: SandboxAccountType;
9
6
  };
10
- export declare const SANDBOX_API_TYPE_MAP: {
11
- readonly STANDARD_SANDBOX: 1;
12
- readonly DEVELOPMENT_SANDBOX: 2;
13
- };
14
7
  export declare const SANDBOX_TYPE_MAP_V2: {
15
8
  readonly STANDARD_SANDBOX: "STANDARD";
16
9
  readonly DEVELOPMENT_SANDBOX: "DEVELOPER";
17
10
  };
18
11
  export declare function getSandboxTypeAsString(accountType?: AccountType): string;
19
12
  export declare function getHasSandboxesByType(parentAccountConfig: HubSpotConfigAccount, type: AccountType): boolean;
20
- export declare function getAvailableSyncTypes(parentAccountConfig: HubSpotConfigAccount, config: HubSpotConfigAccount): Promise<Array<SandboxSyncTask>>;
21
13
  export declare function validateSandboxUsageLimits(accountConfig: HubSpotConfigAccount, sandboxType: AccountType, env: Environment): Promise<void>;
22
14
  export declare function handleSandboxCreateError(err: unknown, env: Environment, name: string, accountId: number): never;
package/lib/sandboxes.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { getSandboxUsageLimits } from '@hubspot/local-dev-lib/api/sandboxHubs';
2
- import { fetchTypes } from '@hubspot/local-dev-lib/api/sandboxSync';
3
2
  import { getAllConfigAccounts } from '@hubspot/local-dev-lib/config';
4
3
  import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
5
4
  import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
@@ -8,19 +7,12 @@ import { uiLogger } from './ui/logger.js';
8
7
  import { lib } from '../lang/en.js';
9
8
  import { logError } from './errorHandlers/index.js';
10
9
  import { uiAccountDescription } from './ui/index.js';
11
- export const SYNC_TYPES = {
12
- OBJECT_RECORDS: 'object-records',
13
- };
14
10
  export const SANDBOX_TYPE_MAP = {
15
11
  dev: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
16
12
  developer: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
17
13
  development: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
18
14
  standard: HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
19
15
  };
20
- export const SANDBOX_API_TYPE_MAP = {
21
- [HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX]: 1,
22
- [HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX]: 2,
23
- };
24
16
  export const SANDBOX_TYPE_MAP_V2 = {
25
17
  [HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX]: 'STANDARD',
26
18
  [HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX]: 'DEVELOPER',
@@ -45,19 +37,6 @@ export function getHasSandboxesByType(parentAccountConfig, type) {
45
37
  }
46
38
  return false;
47
39
  }
48
- // Fetches available sync types for a given sandbox portal
49
- export async function getAvailableSyncTypes(parentAccountConfig, config) {
50
- const parentPortalId = parentAccountConfig.accountId;
51
- const portalId = config.accountId;
52
- if (!parentPortalId || !portalId) {
53
- throw new Error(lib.sandbox.sync.failure.syncTypeFetch);
54
- }
55
- const { data: { results: syncTypes }, } = await fetchTypes(parentPortalId, portalId);
56
- if (!syncTypes) {
57
- throw new Error(lib.sandbox.sync.failure.syncTypeFetch);
58
- }
59
- return syncTypes.map(t => ({ type: t.name }));
60
- }
61
40
  export async function validateSandboxUsageLimits(accountConfig, sandboxType, env) {
62
41
  const accountId = accountConfig.accountId;
63
42
  if (!accountId) {
@@ -2,11 +2,11 @@ import https from 'https';
2
2
  import chalk from 'chalk';
3
3
  import { uiLogger } from './ui/logger.js';
4
4
  import { isHubSpotHttpError, isMissingScopeError, } from '@hubspot/local-dev-lib/errors/index';
5
- import { SCOPE_GROUPS, PERSONAL_ACCESS_KEY_AUTH_METHOD, } from '@hubspot/local-dev-lib/constants/auth';
5
+ import { PERSONAL_ACCESS_KEY_AUTH_METHOD, SCOPE_GROUPS, } from '@hubspot/local-dev-lib/constants/auth';
6
6
  import { getConfigAccountById } from '@hubspot/local-dev-lib/config';
7
7
  import { fetchScopeData } from '@hubspot/local-dev-lib/api/localDevAuth';
8
8
  import { outputLogs } from './ui/serverlessFunctionLogs.js';
9
- import { logError, ApiErrorContext } from './errorHandlers/index.js';
9
+ import { ApiErrorContext, logError } from './errorHandlers/index.js';
10
10
  import SpinniesManager from './ui/SpinniesManager.js';
11
11
  import { handleExit, handleKeypress } from './process.js';
12
12
  import { lib } from '../lang/en.js';
@@ -1,4 +1,5 @@
1
1
  import { ChildProcess } from 'child_process';
2
+ import { ExitFunction } from '../../types/Yargs.js';
2
3
  interface DevServerOptions {
3
4
  absoluteSrc: string;
4
5
  accountName?: string;
@@ -7,6 +8,7 @@ interface DevServerOptions {
7
8
  generateFieldsTypes?: boolean;
8
9
  resetSession?: boolean;
9
10
  dest: string;
11
+ exit: ExitFunction;
10
12
  }
11
13
  export declare function spawnDevServer(options: DevServerOptions): Promise<ChildProcess>;
12
14
  export {};
@@ -6,10 +6,11 @@ import { fileURLToPath } from 'url';
6
6
  import { getConfigFilePath } from '@hubspot/local-dev-lib/config';
7
7
  import SpinniesManager from '../ui/SpinniesManager.js';
8
8
  import { lib } from '../../lang/en.js';
9
+ import { EXIT_CODES } from '../enums/exitCodes.js';
9
10
  const __filename = fileURLToPath(import.meta.url);
10
11
  const __dirname = path.dirname(__filename);
11
12
  // cms-dev-server version to install to isolated cache
12
- const TARGET_CMS_DEV_SERVER_VERSION = '1.2.16';
13
+ const TARGET_CMS_DEV_SERVER_VERSION = '1.2.44';
13
14
  /**
14
15
  * Ensures cms-dev-server is installed in an isolated cache directory.
15
16
  * This prevents React version conflicts with the CLI.
@@ -83,7 +84,7 @@ async function ensureCmsDevServerCache(targetVersion) {
83
84
  return cacheDir;
84
85
  }
85
86
  export async function spawnDevServer(options) {
86
- const { absoluteSrc, accountName, noSsl, port, generateFieldsTypes, resetSession, dest, } = options;
87
+ const { absoluteSrc, accountName, noSsl, port, generateFieldsTypes, resetSession, dest, exit, } = options;
87
88
  // Ensure cms-dev-server is installed in isolated cache
88
89
  const cacheDir = await ensureCmsDevServerCache(TARGET_CMS_DEV_SERVER_VERSION);
89
90
  // Get config path to pass to createDevServer
@@ -123,18 +124,18 @@ export async function spawnDevServer(options) {
123
124
  cwd: cacheDir,
124
125
  });
125
126
  // Handle process events
126
- devServer.on('error', error => {
127
+ devServer.on('error', async (error) => {
127
128
  console.error(lib.theme.cmsDevServerProcess.serverStartError(error));
128
- process.exit(1);
129
+ await exit(EXIT_CODES.ERROR);
129
130
  });
130
- devServer.on('exit', (code, signal) => {
131
+ devServer.on('exit', async (code, signal) => {
131
132
  if (code !== 0 && code !== null) {
132
133
  console.error(lib.theme.cmsDevServerProcess.serverExit(code));
133
- process.exit(code);
134
+ await exit(code);
134
135
  }
135
136
  if (signal) {
136
137
  console.error(lib.theme.cmsDevServerProcess.serverKill(signal));
137
- process.exit(1);
138
+ await exit(EXIT_CODES.ERROR);
138
139
  }
139
140
  });
140
141
  // Handle CLI termination
@@ -10,4 +10,4 @@ export declare function getHasMigratableThemes(projectConfig?: LoadedProjectConf
10
10
  }>;
11
11
  export declare function validateMigrationAppsAndThemes(hasApps: number, projectConfig?: LoadedProjectConfig): Promise<void>;
12
12
  export declare function handleThemesMigration(projectConfig: LoadedProjectConfig, platformVersion: string): Promise<void>;
13
- export declare function migrateThemes2025_2(derivedAccountId: number, options: ArgumentsCamelCase<MigrateThemesArgs>, themeCount: number, projectConfig: LoadedProjectConfig): Promise<void>;
13
+ export declare function migrateThemesV2(derivedAccountId: number, options: ArgumentsCamelCase<MigrateThemesArgs>, themeCount: number, projectConfig: LoadedProjectConfig): Promise<void>;
@@ -7,11 +7,10 @@ import { lib } from '../../lang/en.js';
7
7
  import { PROJECT_CONFIG_FILE } from '../constants.js';
8
8
  import { uiLogger } from '../ui/logger.js';
9
9
  import { debugError } from '../errorHandlers/index.js';
10
- import { isV2Project } from '../projects/platformVersion.js';
11
10
  import { confirmPrompt } from '../prompts/promptUtils.js';
12
11
  import { fetchMigrationApps } from '../app/migrate.js';
13
12
  export async function getHasMigratableThemes(projectConfig) {
14
- if (!projectConfig?.projectConfig?.name || !projectConfig?.projectDir) {
13
+ if (!projectConfig) {
15
14
  return { hasMigratableThemes: false, migratableThemesCount: 0 };
16
15
  }
17
16
  const projectSrcDir = path.resolve(projectConfig.projectDir, projectConfig.projectConfig.srcDir);
@@ -22,9 +21,6 @@ export async function getHasMigratableThemes(projectConfig) {
22
21
  };
23
22
  }
24
23
  export async function validateMigrationAppsAndThemes(hasApps, projectConfig) {
25
- if (isV2Project(projectConfig?.projectConfig?.platformVersion)) {
26
- throw new Error(lib.migrate.errors.project.themesAlreadyMigrated);
27
- }
28
24
  if (hasApps > 0 && projectConfig) {
29
25
  throw new Error(lib.migrate.errors.project.themesAndAppsNotAllowed);
30
26
  }
@@ -33,9 +29,6 @@ export async function validateMigrationAppsAndThemes(hasApps, projectConfig) {
33
29
  }
34
30
  }
35
31
  export async function handleThemesMigration(projectConfig, platformVersion) {
36
- if (!projectConfig?.projectDir || !projectConfig?.projectConfig?.srcDir) {
37
- throw new Error(lib.migrate.errors.project.invalidConfig);
38
- }
39
32
  const projectSrcDir = path.resolve(projectConfig.projectDir, projectConfig.projectConfig.srcDir);
40
33
  let migrated = false;
41
34
  let failureReason;
@@ -61,7 +54,7 @@ export async function handleThemesMigration(projectConfig, platformVersion) {
61
54
  uiLogger.log('');
62
55
  uiLogger.log(lib.migrate.success.themesMigrationSuccess(platformVersion));
63
56
  }
64
- export async function migrateThemes2025_2(derivedAccountId, options, themeCount, projectConfig) {
57
+ export async function migrateThemesV2(derivedAccountId, options, themeCount, projectConfig) {
65
58
  if (!projectConfig?.projectConfig || !projectConfig?.projectDir) {
66
59
  throw new Error(lib.migrate.errors.project.invalidConfig);
67
60
  }
@@ -12,6 +12,7 @@ declare class SpinniesManager {
12
12
  private lineCount;
13
13
  private currentFrameIndex;
14
14
  private spin;
15
+ private sigintHandler;
15
16
  constructor();
16
17
  init(options?: Partial<SpinnerState>): void;
17
18
  private resetState;
@@ -10,7 +10,8 @@ The above copyright notice and this permission notice shall be included in all c
10
10
  import readline from 'readline';
11
11
  import chalk from 'chalk';
12
12
  import cliCursor from 'cli-cursor';
13
- import { breakText, cleanStream, colorOptions, getLinesLength, prefixOptions, purgeSpinnerOptions, purgeSpinnersOptions, SPINNERS, terminalSupportsUnicode, writeStream, } from './spinniesUtils.js';
13
+ import { breakText, cleanStream, colorOptions, getLinesLength, prefixOptions, purgeSpinnerOptions, purgeSpinnersOptions, SPINNERS, writeStream, } from './spinniesUtils.js';
14
+ import { isUnicodeSupported } from '@hubspot/local-dev-lib/isUnicodeSupported';
14
15
  import { uiLogger } from './logger.js';
15
16
  function safeColor(text, color) {
16
17
  const chalkFn = chalk[color];
@@ -29,6 +30,7 @@ class SpinniesManager {
29
30
  lineCount = 0;
30
31
  currentFrameIndex = 0;
31
32
  spin;
33
+ sigintHandler = null;
32
34
  constructor() {
33
35
  this.resetState();
34
36
  }
@@ -37,7 +39,7 @@ class SpinniesManager {
37
39
  spinnerColor: 'greenBright',
38
40
  succeedColor: 'green',
39
41
  failColor: 'red',
40
- spinner: terminalSupportsUnicode() ? SPINNERS.dots : SPINNERS.dashes,
42
+ spinner: isUnicodeSupported() ? SPINNERS.dots : SPINNERS.dashes,
41
43
  disableSpins: false,
42
44
  ...purgeSpinnersOptions(options),
43
45
  };
@@ -103,6 +105,8 @@ class SpinniesManager {
103
105
  return;
104
106
  }
105
107
  delete this.spinners[name];
108
+ // Update the spinner state to clean up the deleted spinner
109
+ this.updateSpinnerState();
106
110
  }
107
111
  stopAll(newStatus = 'stopped') {
108
112
  Object.keys(this.spinners).forEach(name => {
@@ -245,12 +249,24 @@ class SpinniesManager {
245
249
  }
246
250
  }
247
251
  bindSigint() {
248
- process.removeAllListeners('SIGINT');
249
- process.on('SIGINT', () => {
252
+ if (this.sigintHandler) {
253
+ process.removeListener('SIGINT', this.sigintHandler);
254
+ }
255
+ this.sigintHandler = () => {
250
256
  cliCursor.show();
251
257
  readline.moveCursor(process.stderr, 0, this.lineCount);
252
- process.exit(0);
253
- });
258
+ const remainingListeners = process
259
+ .listeners('SIGINT')
260
+ .filter(l => l !== this.sigintHandler);
261
+ if (remainingListeners.length === 0) {
262
+ // process.exit is intentionally used here rather than the command-level
263
+ // exit() function because this SIGINT handler runs outside of a command
264
+ // context and needs to force-terminate the process when no other SIGINT
265
+ // listeners remain to handle it.
266
+ process.exit(0);
267
+ }
268
+ };
269
+ process.on('SIGINT', this.sigintHandler);
254
270
  }
255
271
  }
256
272
  const toExport = new SpinniesManager();
@@ -0,0 +1,8 @@
1
+ import { HubSpotConfigAccount } from '@hubspot/local-dev-lib/types/Accounts';
2
+ export declare function sortAndMapAccounts(accounts: HubSpotConfigAccount[]): {
3
+ [key: string]: HubSpotConfigAccount[];
4
+ };
5
+ export declare function getAccountData(mappedAccountData: {
6
+ [key: string]: HubSpotConfigAccount[];
7
+ }): string[][];
8
+ export declare function renderAccountTable(showAllLabel?: boolean): void;
@@ -0,0 +1,67 @@
1
+ import { HUBSPOT_ACCOUNT_TYPES, HUBSPOT_ACCOUNT_TYPE_STRINGS, } from '@hubspot/local-dev-lib/constants/config';
2
+ import { isSandbox, isDeveloperTestAccount } from '../accountTypes.js';
3
+ import { getAllConfigAccounts } from '@hubspot/local-dev-lib/config';
4
+ import { commands } from '../../lang/en.js';
5
+ import { renderTable } from '../../ui/render.js';
6
+ import { uiLogger } from './logger.js';
7
+ export function sortAndMapAccounts(accounts) {
8
+ const mappedAccountData = {};
9
+ // Standard and app developer accounts
10
+ accounts
11
+ .filter(p => p.accountType &&
12
+ (p.accountType === HUBSPOT_ACCOUNT_TYPES.STANDARD ||
13
+ p.accountType === HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER))
14
+ .forEach(account => {
15
+ mappedAccountData[account.accountId] = [account];
16
+ });
17
+ // Non-standard accounts (sandbox, developer test account)
18
+ accounts
19
+ .filter(p => p.accountType && (isSandbox(p) || isDeveloperTestAccount(p)))
20
+ .forEach(p => {
21
+ if (p.parentAccountId) {
22
+ mappedAccountData[p.parentAccountId] = [
23
+ ...(mappedAccountData[p.parentAccountId] || []),
24
+ p,
25
+ ];
26
+ }
27
+ else {
28
+ mappedAccountData[p.accountId] = [p];
29
+ }
30
+ });
31
+ return mappedAccountData;
32
+ }
33
+ export function getAccountData(mappedAccountData) {
34
+ const accountData = [];
35
+ Object.entries(mappedAccountData).forEach(([key, set]) => {
36
+ const hasParentAccount = set.filter(p => p.accountId === parseInt(key, 10))[0];
37
+ set.forEach(account => {
38
+ let name = `${account.name} [${HUBSPOT_ACCOUNT_TYPE_STRINGS[account.accountType]}]`;
39
+ if (isSandbox(account)) {
40
+ if (hasParentAccount && set.length > 1) {
41
+ name = `↳ ${name}`;
42
+ }
43
+ }
44
+ else if (isDeveloperTestAccount(account)) {
45
+ if (hasParentAccount && set.length > 1) {
46
+ name = `↳ ${name}`;
47
+ }
48
+ }
49
+ accountData.push([name, String(account.accountId), account.authType]);
50
+ });
51
+ });
52
+ return accountData;
53
+ }
54
+ export function renderAccountTable(showAllLabel = false) {
55
+ const accountsList = getAllConfigAccounts();
56
+ const mappedAccountData = sortAndMapAccounts(accountsList);
57
+ const accountData = getAccountData(mappedAccountData);
58
+ const tableHeader = [
59
+ commands.account.subcommands.list.labels.name,
60
+ commands.account.subcommands.list.labels.accountId,
61
+ commands.account.subcommands.list.labels.authType,
62
+ ];
63
+ uiLogger.log(showAllLabel
64
+ ? commands.account.subcommands.list.allAccounts
65
+ : commands.account.subcommands.list.accounts);
66
+ renderTable(tableHeader, accountData, true);
67
+ }
@@ -0,0 +1,32 @@
1
+ import { AppLogDetails } from '@hubspot/local-dev-lib/types/AppLogs';
2
+ type AppLogEntry = {
3
+ id: string;
4
+ createdAt: number;
5
+ executionTimeMillis?: number;
6
+ portalId?: number;
7
+ traceId?: string;
8
+ status: 'SUCCESS' | 'ERROR';
9
+ errorType?: string;
10
+ errorMessage?: string;
11
+ };
12
+ type AppLogsSearchResponse = {
13
+ results: AppLogEntry[];
14
+ hasMore: boolean;
15
+ offset: number;
16
+ total: number;
17
+ };
18
+ type OutputOptions = {
19
+ compact?: boolean;
20
+ tail?: boolean;
21
+ accountId: number;
22
+ appId: number;
23
+ systemType: string;
24
+ typeName: string;
25
+ };
26
+ export declare function outputAppLogs(response: AppLogsSearchResponse, options: OutputOptions): Promise<void>;
27
+ type LogDetailsOutputOptions = {
28
+ accountId: number;
29
+ appId: number;
30
+ };
31
+ export declare function outputAppLogDetails(details: AppLogDetails, options: LogDetailsOutputOptions): void;
32
+ export {};