@hubspot/cli 8.2.0-beta.0 → 8.2.0-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 (700) 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 +23 -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 +10 -0
  21. package/commands/api.js +164 -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 +122 -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 +2 -3
  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 +16 -8
  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 +5 -6
  60. package/commands/customObject/create.js +4 -5
  61. package/commands/customObject/createSchema.js +4 -5
  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 +4 -5
  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 +17 -19
  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.js +16 -14
  77. package/commands/init.js +16 -15
  78. package/commands/mcp/setup.js +5 -6
  79. package/commands/mcp/start.js +2 -3
  80. package/commands/open.js +4 -5
  81. package/commands/project/add.js +13 -8
  82. package/commands/project/appInstallStatus.d.ts +4 -0
  83. package/commands/project/appInstallStatus.js +133 -0
  84. package/commands/project/create.js +28 -17
  85. package/commands/project/delete.d.ts +7 -0
  86. package/commands/project/delete.js +74 -0
  87. package/commands/project/deploy.js +39 -36
  88. package/commands/project/dev/deprecatedFlow.js +62 -17
  89. package/commands/project/dev/index.d.ts +3 -3
  90. package/commands/project/dev/index.js +59 -48
  91. package/commands/project/dev/unifiedFlow.js +70 -21
  92. package/commands/project/download.js +12 -9
  93. package/commands/project/info.d.ts +4 -0
  94. package/commands/project/info.js +68 -0
  95. package/commands/project/installDeps.js +9 -6
  96. package/commands/project/lint.js +43 -12
  97. package/commands/project/list.d.ts +2 -2
  98. package/commands/project/list.js +15 -14
  99. package/commands/project/listBuilds.js +8 -6
  100. package/commands/project/logs.js +5 -6
  101. package/commands/project/migrate.js +18 -18
  102. package/commands/project/open.js +5 -6
  103. package/commands/project/profile/add.js +12 -8
  104. package/commands/project/profile/delete.js +15 -11
  105. package/commands/project/release/create.d.ts +7 -0
  106. package/commands/project/release/create.js +159 -0
  107. package/commands/project/release/info.d.ts +6 -0
  108. package/commands/project/release/info.js +147 -0
  109. package/commands/project/release/list.d.ts +6 -0
  110. package/commands/project/release/list.js +111 -0
  111. package/commands/project/release.d.ts +3 -0
  112. package/commands/project/release.js +20 -0
  113. package/commands/project/updateDeps.js +9 -6
  114. package/commands/project/upload.d.ts +3 -0
  115. package/commands/project/upload.js +107 -25
  116. package/commands/project/validate.js +12 -12
  117. package/commands/project/watch.js +22 -22
  118. package/commands/project.js +14 -3
  119. package/commands/sandbox/create.js +18 -45
  120. package/commands/sandbox/delete.js +13 -14
  121. package/commands/secret/addSecret.js +6 -7
  122. package/commands/secret/deleteSecret.js +5 -6
  123. package/commands/secret/listSecret.js +2 -3
  124. package/commands/secret/updateSecret.js +4 -5
  125. package/commands/testAccount/create.d.ts +1 -1
  126. package/commands/testAccount/create.js +25 -17
  127. package/commands/testAccount/createConfig.js +7 -8
  128. package/commands/testAccount/delete.js +27 -18
  129. package/commands/testAccount/importData.js +6 -7
  130. package/commands/upgrade.js +9 -10
  131. package/lang/en.d.ts +441 -9
  132. package/lang/en.js +456 -22
  133. package/lib/CLIWebSocketServer.d.ts +5 -3
  134. package/lib/CLIWebSocketServer.js +31 -4
  135. package/lib/accountAuth.d.ts +3 -1
  136. package/lib/accountAuth.js +47 -17
  137. package/lib/api/usageTracking.d.ts +30 -0
  138. package/lib/api/usageTracking.js +11 -0
  139. package/lib/app/logs.d.ts +38 -0
  140. package/lib/app/logs.js +225 -0
  141. package/lib/app/migrate.js +18 -5
  142. package/lib/app/urls.d.ts +2 -0
  143. package/lib/app/urls.js +7 -0
  144. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.d.ts +4 -0
  145. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.js +145 -0
  146. package/lib/buildAccount.d.ts +1 -6
  147. package/lib/buildAccount.js +10 -43
  148. package/lib/commonOpts.js +0 -1
  149. package/lib/constants.d.ts +10 -3
  150. package/lib/constants.js +12 -3
  151. package/lib/doctor/Diagnosis.js +5 -5
  152. package/lib/doctor/Doctor.js +7 -7
  153. package/lib/errorHandlers/index.js +4 -3
  154. package/lib/errorHandlers/suppressError.js +4 -0
  155. package/lib/errors/PromptExitError.d.ts +6 -0
  156. package/lib/errors/PromptExitError.js +11 -0
  157. package/lib/getStartedV2Actions.js +3 -3
  158. package/lib/hasFeature.js +1 -2
  159. package/lib/link/accountTableUtils.d.ts +10 -0
  160. package/lib/link/accountTableUtils.js +39 -0
  161. package/lib/link/index.d.ts +18 -0
  162. package/lib/link/index.js +185 -0
  163. package/lib/link/linkUtils.d.ts +5 -0
  164. package/lib/link/linkUtils.js +49 -0
  165. package/lib/link/prompts.d.ts +7 -0
  166. package/lib/link/prompts.js +126 -0
  167. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  168. package/lib/link/renderLinkedAccountsTable.js +14 -0
  169. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  170. package/lib/link/warnIfLinkedDirectory.js +9 -0
  171. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  172. package/lib/middleware/commandTargetingUtils.js +1 -0
  173. package/lib/process.d.ts +1 -1
  174. package/lib/process.js +10 -3
  175. package/lib/projects/ProjectLogsManager.js +6 -3
  176. package/lib/projects/components.js +15 -4
  177. package/lib/projects/create/index.js +2 -2
  178. package/lib/projects/create/legacy.js +2 -2
  179. package/lib/projects/create/v2.js +4 -5
  180. package/lib/projects/delete.d.ts +13 -0
  181. package/lib/projects/delete.js +193 -0
  182. package/lib/projects/deploy.d.ts +1 -1
  183. package/lib/projects/deploy.js +2 -2
  184. package/lib/projects/localDev/AppDevModeInterface.js +13 -9
  185. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +4 -1
  186. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +3 -3
  187. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  188. package/lib/projects/localDev/DevSessionManager.js +31 -19
  189. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +5 -0
  190. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +21 -10
  191. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  192. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  193. package/lib/projects/localDev/LocalDevState.js +3 -1
  194. package/lib/projects/localDev/LocalDevWebsocketServer.js +1 -1
  195. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +2 -0
  196. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  197. package/lib/projects/localDev/helpers/account.js +21 -30
  198. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  199. package/lib/projects/localDev/helpers/process.js +4 -10
  200. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  201. package/lib/projects/localDev/helpers/project.js +32 -16
  202. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  203. package/lib/projects/npmAuditOnUpload.js +73 -0
  204. package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
  205. package/lib/projects/pollProjectBuildAndDeploy.js +3 -2
  206. package/lib/projects/preview.d.ts +7 -0
  207. package/lib/projects/preview.js +48 -0
  208. package/lib/projects/projectInfo.d.ts +5 -0
  209. package/lib/projects/projectInfo.js +82 -0
  210. package/lib/projects/projectProfiles.d.ts +1 -2
  211. package/lib/projects/projectProfiles.js +5 -17
  212. package/lib/projects/uieLinting.d.ts +21 -3
  213. package/lib/projects/uieLinting.js +132 -28
  214. package/lib/projects/upload.d.ts +3 -1
  215. package/lib/projects/upload.js +46 -7
  216. package/lib/projects/validateLintConfigOnUpload.d.ts +9 -0
  217. package/lib/projects/validateLintConfigOnUpload.js +45 -0
  218. package/lib/projects/workspaces.d.ts +60 -0
  219. package/lib/projects/workspaces.js +411 -0
  220. package/lib/prompts/createApiSamplePrompt.js +4 -0
  221. package/lib/prompts/downloadProjectPrompt.js +11 -10
  222. package/lib/prompts/installAppPrompt.js +3 -2
  223. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -5
  224. package/lib/prompts/personalAccessKeyPrompt.js +10 -7
  225. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  226. package/lib/prompts/projectDevTargetAccountPrompt.js +23 -16
  227. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  228. package/lib/prompts/projectProfilePrompt.js +46 -0
  229. package/lib/prompts/projectsLogsPrompt.js +3 -0
  230. package/lib/prompts/promptUtils.js +4 -2
  231. package/lib/prompts/selectAppPrompt.js +1 -0
  232. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  233. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  234. package/lib/prompts/setAsDefaultAccountPrompt.js +2 -1
  235. package/lib/sandboxes.d.ts +1 -9
  236. package/lib/sandboxes.js +0 -21
  237. package/lib/serverlessLogs.js +2 -2
  238. package/lib/theme/cmsDevServerProcess.d.ts +2 -0
  239. package/lib/theme/cmsDevServerProcess.js +8 -7
  240. package/lib/theme/migrate.d.ts +1 -1
  241. package/lib/theme/migrate.js +1 -5
  242. package/lib/ui/SpinniesManager.d.ts +1 -0
  243. package/lib/ui/SpinniesManager.js +22 -6
  244. package/lib/ui/accountTable.d.ts +8 -0
  245. package/lib/ui/accountTable.js +67 -0
  246. package/lib/ui/appLogs.d.ts +32 -0
  247. package/lib/ui/appLogs.js +175 -0
  248. package/lib/ui/spinniesUtils.d.ts +0 -1
  249. package/lib/ui/spinniesUtils.js +6 -16
  250. package/lib/usageTracking.d.ts +9 -20
  251. package/lib/usageTracking.js +68 -30
  252. package/lib/yargs/makeWrappedYargsHandler.d.ts +3 -0
  253. package/lib/yargs/makeWrappedYargsHandler.js +121 -0
  254. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  255. package/lib/yargs/makeYargsBuilder.js +33 -0
  256. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  257. package/lib/yargs/parseYargsOrExit.js +25 -0
  258. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  259. package/lib/yargs/strictEnforceBoolean.js +13 -0
  260. package/lib/yargsUtils.d.ts +3 -16
  261. package/lib/yargsUtils.js +3 -48
  262. package/mcp-server/Tool.d.ts +15 -0
  263. package/mcp-server/Tool.js +53 -0
  264. package/mcp-server/server.js +43 -3
  265. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +4 -2
  266. package/mcp-server/tools/cms/HsCreateFunctionTool.js +10 -8
  267. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -2
  268. package/mcp-server/tools/cms/HsCreateModuleTool.js +12 -11
  269. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +4 -2
  270. package/mcp-server/tools/cms/HsCreateTemplateTool.js +10 -8
  271. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -2
  272. package/mcp-server/tools/cms/HsFunctionLogsTool.js +10 -9
  273. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +4 -2
  274. package/mcp-server/tools/cms/HsListFunctionsTool.js +10 -9
  275. package/mcp-server/tools/cms/HsListTool.d.ts +4 -2
  276. package/mcp-server/tools/cms/HsListTool.js +10 -8
  277. package/mcp-server/tools/index.d.ts +3 -2
  278. package/mcp-server/tools/index.js +24 -22
  279. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +6 -3
  280. package/mcp-server/tools/project/AddFeatureToProjectTool.js +9 -7
  281. package/mcp-server/tools/project/CreateProjectTool.d.ts +6 -3
  282. package/mcp-server/tools/project/CreateProjectTool.js +10 -7
  283. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +4 -2
  284. package/mcp-server/tools/project/CreateTestAccountTool.js +21 -9
  285. package/mcp-server/tools/project/DeployProjectTool.d.ts +4 -2
  286. package/mcp-server/tools/project/DeployProjectTool.js +5 -7
  287. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  288. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  289. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  290. package/mcp-server/tools/project/DocsSearchTool.js +32 -9
  291. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  292. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  293. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +4 -2
  294. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +8 -6
  295. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +4 -2
  296. package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
  297. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +4 -2
  298. package/mcp-server/tools/project/GetBuildLogsTool.js +9 -7
  299. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +4 -2
  300. package/mcp-server/tools/project/GetBuildStatusTool.js +9 -7
  301. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -2
  302. package/mcp-server/tools/project/GetConfigValuesTool.js +12 -7
  303. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +4 -2
  304. package/mcp-server/tools/project/GuidedWalkthroughTool.js +4 -6
  305. package/mcp-server/tools/project/UploadProjectTools.d.ts +4 -2
  306. package/mcp-server/tools/project/UploadProjectTools.js +10 -8
  307. package/mcp-server/tools/project/ValidateProjectTool.d.ts +4 -2
  308. package/mcp-server/tools/project/ValidateProjectTool.js +9 -7
  309. package/mcp-server/tools/project/constants.d.ts +2 -1
  310. package/mcp-server/tools/project/constants.js +2 -1
  311. package/mcp-server/types.d.ts +0 -7
  312. package/mcp-server/types.js +1 -13
  313. package/mcp-server/utils/command.js +3 -1
  314. package/mcp-server/utils/config.js +1 -0
  315. package/mcp-server/utils/logger.d.ts +10 -0
  316. package/mcp-server/utils/logger.js +29 -0
  317. package/mcp-server/utils/toolUsageTracking.js +10 -8
  318. package/package.json +16 -11
  319. package/types/Link.d.ts +32 -0
  320. package/types/Link.js +5 -0
  321. package/types/LocalDev.d.ts +5 -0
  322. package/types/PackageJson.d.ts +1 -0
  323. package/types/Projects.d.ts +19 -0
  324. package/types/Prompts.d.ts +1 -0
  325. package/types/Yargs.d.ts +19 -1
  326. package/ui/components/ActionSection.d.ts +1 -1
  327. package/ui/components/InputField.d.ts +1 -1
  328. package/ui/components/SelectInput.d.ts +1 -1
  329. package/ui/components/StatusIcon.d.ts +1 -1
  330. package/ui/components/Table.d.ts +5 -5
  331. package/ui/components/getStarted/GetStartedFlow.d.ts +1 -1
  332. package/ui/components/getStarted/screens/InstallationScreen.d.ts +1 -1
  333. package/ui/components/getStarted/screens/ProjectSetupScreen.d.ts +1 -1
  334. package/ui/components/getStarted/screens/UploadScreen.d.ts +1 -1
  335. package/api/__tests__/migrate.test.d.ts +0 -1
  336. package/api/__tests__/migrate.test.js +0 -199
  337. package/commands/__tests__/account.test.d.ts +0 -1
  338. package/commands/__tests__/account.test.js +0 -69
  339. package/commands/__tests__/auth.test.d.ts +0 -1
  340. package/commands/__tests__/auth.test.js +0 -43
  341. package/commands/__tests__/cms.test.d.ts +0 -1
  342. package/commands/__tests__/cms.test.js +0 -87
  343. package/commands/__tests__/config.test.d.ts +0 -1
  344. package/commands/__tests__/config.test.js +0 -44
  345. package/commands/__tests__/customObject.test.d.ts +0 -1
  346. package/commands/__tests__/customObject.test.js +0 -68
  347. package/commands/__tests__/doctor.test.d.ts +0 -1
  348. package/commands/__tests__/doctor.test.js +0 -132
  349. package/commands/__tests__/feedback.test.d.ts +0 -1
  350. package/commands/__tests__/feedback.test.js +0 -24
  351. package/commands/__tests__/filemanager.test.d.ts +0 -1
  352. package/commands/__tests__/filemanager.test.js +0 -45
  353. package/commands/__tests__/getStarted.test.d.ts +0 -1
  354. package/commands/__tests__/getStarted.test.js +0 -173
  355. package/commands/__tests__/hubdb.test.d.ts +0 -1
  356. package/commands/__tests__/hubdb.test.js +0 -50
  357. package/commands/__tests__/init.test.d.ts +0 -1
  358. package/commands/__tests__/init.test.js +0 -42
  359. package/commands/__tests__/mcp.test.d.ts +0 -1
  360. package/commands/__tests__/mcp.test.js +0 -46
  361. package/commands/__tests__/open.test.d.ts +0 -1
  362. package/commands/__tests__/open.test.js +0 -58
  363. package/commands/__tests__/project.test.d.ts +0 -1
  364. package/commands/__tests__/project.test.js +0 -125
  365. package/commands/__tests__/sandbox.test.d.ts +0 -1
  366. package/commands/__tests__/sandbox.test.js +0 -44
  367. package/commands/__tests__/secret.test.d.ts +0 -1
  368. package/commands/__tests__/secret.test.js +0 -49
  369. package/commands/__tests__/testAccount.test.d.ts +0 -1
  370. package/commands/__tests__/testAccount.test.js +0 -57
  371. package/commands/__tests__/upgrade.test.d.ts +0 -1
  372. package/commands/__tests__/upgrade.test.js +0 -309
  373. package/commands/account/__tests__/auth.test.d.ts +0 -1
  374. package/commands/account/__tests__/auth.test.js +0 -206
  375. package/commands/account/__tests__/clean.test.d.ts +0 -1
  376. package/commands/account/__tests__/clean.test.js +0 -28
  377. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  378. package/commands/account/__tests__/createOverride.test.js +0 -32
  379. package/commands/account/__tests__/info.test.d.ts +0 -1
  380. package/commands/account/__tests__/info.test.js +0 -28
  381. package/commands/account/__tests__/list.test.d.ts +0 -1
  382. package/commands/account/__tests__/list.test.js +0 -153
  383. package/commands/account/__tests__/remove.test.d.ts +0 -1
  384. package/commands/account/__tests__/remove.test.js +0 -36
  385. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  386. package/commands/account/__tests__/removeOverride.js +0 -25
  387. package/commands/account/__tests__/rename.test.d.ts +0 -1
  388. package/commands/account/__tests__/rename.test.js +0 -82
  389. package/commands/account/__tests__/use.test.d.ts +0 -1
  390. package/commands/account/__tests__/use.test.js +0 -170
  391. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  392. package/commands/app/__tests__/migrate.test.js +0 -111
  393. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  394. package/commands/app/secret/__tests__/add.test.js +0 -140
  395. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  396. package/commands/app/secret/__tests__/delete.test.js +0 -28
  397. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  398. package/commands/app/secret/__tests__/list.test.js +0 -25
  399. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  400. package/commands/app/secret/__tests__/update.test.js +0 -28
  401. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  402. package/commands/cms/__tests__/delete.test.js +0 -39
  403. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  404. package/commands/cms/__tests__/fetch.test.js +0 -156
  405. package/commands/cms/__tests__/function.test.d.ts +0 -1
  406. package/commands/cms/__tests__/function.test.js +0 -50
  407. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  408. package/commands/cms/__tests__/lint.test.js +0 -33
  409. package/commands/cms/__tests__/list.test.d.ts +0 -1
  410. package/commands/cms/__tests__/list.test.js +0 -42
  411. package/commands/cms/__tests__/module.test.d.ts +0 -1
  412. package/commands/cms/__tests__/module.test.js +0 -45
  413. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  414. package/commands/cms/__tests__/mv.test.js +0 -46
  415. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  416. package/commands/cms/__tests__/theme.test.js +0 -54
  417. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  418. package/commands/cms/__tests__/upload.test.js +0 -308
  419. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  420. package/commands/cms/__tests__/watch.test.js +0 -204
  421. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  422. package/commands/cms/function/__tests__/logs.test.js +0 -70
  423. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  424. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  425. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  426. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  427. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  428. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  429. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  430. package/commands/customObject/__tests__/create.test.js +0 -40
  431. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  432. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  433. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  434. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  435. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  436. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  437. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  438. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  439. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  440. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  441. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  442. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  443. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  444. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  445. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  446. package/commands/filemanager/__tests__/upload.test.js +0 -191
  447. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  448. package/commands/hubdb/__tests__/clear.test.js +0 -28
  449. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  450. package/commands/hubdb/__tests__/create.test.js +0 -28
  451. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  452. package/commands/hubdb/__tests__/delete.test.js +0 -28
  453. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  454. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  455. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  456. package/commands/hubdb/__tests__/list.test.js +0 -88
  457. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  458. package/commands/mcp/__tests__/setup.test.js +0 -26
  459. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  460. package/commands/mcp/__tests__/start.test.js +0 -144
  461. package/commands/project/__tests__/add.test.d.ts +0 -1
  462. package/commands/project/__tests__/add.test.js +0 -107
  463. package/commands/project/__tests__/create.test.d.ts +0 -1
  464. package/commands/project/__tests__/create.test.js +0 -97
  465. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  466. package/commands/project/__tests__/deploy.test.js +0 -307
  467. package/commands/project/__tests__/dev.test.d.ts +0 -1
  468. package/commands/project/__tests__/dev.test.js +0 -273
  469. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  470. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  471. package/commands/project/__tests__/download.test.d.ts +0 -1
  472. package/commands/project/__tests__/download.test.js +0 -39
  473. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  474. package/commands/project/__tests__/installDeps.test.js +0 -140
  475. package/commands/project/__tests__/lint.test.d.ts +0 -1
  476. package/commands/project/__tests__/lint.test.js +0 -704
  477. package/commands/project/__tests__/list.test.d.ts +0 -1
  478. package/commands/project/__tests__/list.test.js +0 -31
  479. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  480. package/commands/project/__tests__/listBuilds.test.js +0 -38
  481. package/commands/project/__tests__/logs.test.d.ts +0 -1
  482. package/commands/project/__tests__/logs.test.js +0 -202
  483. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  484. package/commands/project/__tests__/migrate.test.js +0 -106
  485. package/commands/project/__tests__/open.test.d.ts +0 -1
  486. package/commands/project/__tests__/open.test.js +0 -39
  487. package/commands/project/__tests__/profile.test.d.ts +0 -1
  488. package/commands/project/__tests__/profile.test.js +0 -42
  489. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  490. package/commands/project/__tests__/updateDeps.test.js +0 -140
  491. package/commands/project/__tests__/upload.test.d.ts +0 -1
  492. package/commands/project/__tests__/upload.test.js +0 -234
  493. package/commands/project/__tests__/validate.test.d.ts +0 -1
  494. package/commands/project/__tests__/validate.test.js +0 -381
  495. package/commands/project/__tests__/watch.test.d.ts +0 -1
  496. package/commands/project/__tests__/watch.test.js +0 -35
  497. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  498. package/commands/sandbox/__tests__/create.test.js +0 -245
  499. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  500. package/commands/sandbox/__tests__/delete.test.js +0 -31
  501. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  502. package/commands/secret/__tests__/addSecret.test.js +0 -162
  503. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  504. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  505. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  506. package/commands/secret/__tests__/listSecret.test.js +0 -29
  507. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  508. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  509. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  510. package/commands/testAccount/__tests__/create.test.js +0 -106
  511. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  512. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  513. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  514. package/commands/testAccount/__tests__/delete.test.js +0 -29
  515. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  516. package/commands/testAccount/__tests__/importData.test.js +0 -92
  517. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  518. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  519. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  520. package/lib/__tests__/accountAuth.test.js +0 -258
  521. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  522. package/lib/__tests__/accountTypes.test.js +0 -98
  523. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  524. package/lib/__tests__/buildAccount.test.js +0 -262
  525. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  526. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  527. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  528. package/lib/__tests__/commandSuggestion.test.js +0 -121
  529. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  530. package/lib/__tests__/commonOpts.test.js +0 -80
  531. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  532. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  533. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  534. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  535. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  536. package/lib/__tests__/hasFeature.test.js +0 -167
  537. package/lib/__tests__/http.test.d.ts +0 -1
  538. package/lib/__tests__/http.test.js +0 -40
  539. package/lib/__tests__/importData.test.d.ts +0 -1
  540. package/lib/__tests__/importData.test.js +0 -98
  541. package/lib/__tests__/npmCli.test.d.ts +0 -1
  542. package/lib/__tests__/npmCli.test.js +0 -84
  543. package/lib/__tests__/oauth.test.d.ts +0 -1
  544. package/lib/__tests__/oauth.test.js +0 -109
  545. package/lib/__tests__/parsing.test.d.ts +0 -1
  546. package/lib/__tests__/parsing.test.js +0 -34
  547. package/lib/__tests__/polling.test.d.ts +0 -1
  548. package/lib/__tests__/polling.test.js +0 -76
  549. package/lib/__tests__/process.test.d.ts +0 -1
  550. package/lib/__tests__/process.test.js +0 -89
  551. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  552. package/lib/__tests__/sandboxSync.test.js +0 -147
  553. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  554. package/lib/__tests__/sandboxes.test.js +0 -156
  555. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  556. package/lib/__tests__/serverlessLogs.test.js +0 -163
  557. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  558. package/lib/__tests__/usageTracking.test.js +0 -197
  559. package/lib/__tests__/validation.test.d.ts +0 -1
  560. package/lib/__tests__/validation.test.js +0 -143
  561. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  562. package/lib/__tests__/yargsUtils.test.js +0 -124
  563. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  564. package/lib/app/__tests__/migrate.test.js +0 -638
  565. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  566. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  567. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  568. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  569. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  570. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  571. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  572. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  573. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  574. package/lib/mcp/__tests__/setup.test.js +0 -523
  575. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  576. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  577. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  578. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  579. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  580. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  581. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  582. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  583. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  584. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  585. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  586. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  587. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  588. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  589. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  590. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  591. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  592. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  593. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  594. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  595. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  596. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  597. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  598. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  599. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  600. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  601. package/lib/projects/__tests__/components.test.d.ts +0 -1
  602. package/lib/projects/__tests__/components.test.js +0 -426
  603. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  604. package/lib/projects/__tests__/deploy.test.js +0 -231
  605. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  606. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  607. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  608. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  609. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  610. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  611. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  612. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  613. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  614. package/lib/projects/__tests__/projects.test.js +0 -58
  615. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  616. package/lib/projects/__tests__/structure.test.js +0 -210
  617. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  618. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  619. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  620. package/lib/projects/__tests__/upload.test.js +0 -183
  621. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  622. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  623. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  624. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  625. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  626. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  627. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  628. package/lib/projects/create/__tests__/v2.test.js +0 -257
  629. package/lib/projects/platformVersion.d.ts +0 -9
  630. package/lib/projects/platformVersion.js +0 -39
  631. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  632. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  633. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  634. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  635. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  636. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  637. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  638. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  639. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  640. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  641. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  642. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  643. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  644. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  645. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  646. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  647. package/lib/sandboxSync.d.ts +0 -4
  648. package/lib/sandboxSync.js +0 -102
  649. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  650. package/lib/theme/__tests__/migrate.test.js +0 -256
  651. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  652. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  653. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  654. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  655. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  656. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  657. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  658. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  659. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  660. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  661. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  662. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  663. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  664. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  665. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  666. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  667. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  668. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  669. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  670. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -132
  671. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  672. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  673. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  674. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  675. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  676. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  677. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  678. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  679. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  680. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  681. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  682. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  683. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  684. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  685. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  686. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  687. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  688. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  689. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  690. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  691. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  692. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  693. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  694. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  695. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  696. package/mcp-server/utils/__tests__/command.test.js +0 -275
  697. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  698. package/mcp-server/utils/__tests__/content.test.js +0 -164
  699. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  700. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
@@ -0,0 +1,193 @@
1
+ import { fetchProjects, fetchProject, stageProjectForDeletion, getDeployStatus, deleteProject, } from '@hubspot/local-dev-lib/api/projects';
2
+ import { fetchPublicAppsForPortal } from '@hubspot/local-dev-lib/api/appsDev';
3
+ import { debugError, getErrorMessage } from '../errorHandlers/index.js';
4
+ import { uiLogger } from '../ui/logger.js';
5
+ import SpinniesManager from '../ui/SpinniesManager.js';
6
+ import { commands } from '../../lang/en.js';
7
+ import { confirmPrompt, listPrompt } from '../prompts/promptUtils.js';
8
+ import { poll, DEFAULT_POLLING_STATES, DEFAULT_POLLING_STATUS_LOOKUP, } from '../polling.js';
9
+ import { PromptExitError } from '../errors/PromptExitError.js';
10
+ import { EXIT_CODES } from '../enums/exitCodes.js';
11
+ import { AUTO_GENERATED_COMPONENT_TYPES } from '@hubspot/project-parsing-lib/constants';
12
+ import { mapToUserFacingType } from '@hubspot/project-parsing-lib/transform';
13
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
14
+ import { COMPONENT_TYPES, SUBCOMPONENT_TYPES, } from '@hubspot/local-dev-lib/enums/build';
15
+ export const DELETION_POLL_TIMEOUT_MS = 5 * 60 * 1000;
16
+ export const DELETION_DEPLOY_SUCCESS_STATES = [
17
+ DEFAULT_POLLING_STATES.SUCCESS,
18
+ 'FINISHED',
19
+ ];
20
+ export const DELETION_DEPLOY_ERROR_STATES = DEFAULT_POLLING_STATUS_LOOKUP.errorStates;
21
+ const LEGACY_COMPONENTS_TO_FILTER = [
22
+ SUBCOMPONENT_TYPES.SERVERLESS_PKG,
23
+ SUBCOMPONENT_TYPES.REACT_EXTENSION,
24
+ SUBCOMPONENT_TYPES.PACKAGE_LOCK_FILE,
25
+ COMPONENT_TYPES.PRIVATE_APP,
26
+ COMPONENT_TYPES.PUBLIC_APP,
27
+ ];
28
+ const legacyComponentFriendlyNames = {
29
+ [SUBCOMPONENT_TYPES.APP_ID]: 'Private App',
30
+ [SUBCOMPONENT_TYPES.PUBLIC_APP_ID]: 'Public App',
31
+ [SUBCOMPONENT_TYPES.CRM_CARD_V2]: 'Card',
32
+ [SUBCOMPONENT_TYPES.CARD_V2]: 'Card',
33
+ [SUBCOMPONENT_TYPES.SERVERLESS_FUNCTION]: 'Serverless Function',
34
+ [SUBCOMPONENT_TYPES.APP_FUNCTION]: 'App Function',
35
+ [SUBCOMPONENT_TYPES.AUTOMATION_ACTION]: 'Automation Action',
36
+ [SUBCOMPONENT_TYPES.WEBHOOKS]: 'Webhooks',
37
+ [COMPONENT_TYPES.THEME]: 'Theme',
38
+ [COMPONENT_TYPES.REACT_THEME]: 'React Theme',
39
+ };
40
+ function mapLegacyComponentToUserFriendlyName(type) {
41
+ return legacyComponentFriendlyNames[type] || 'unknown';
42
+ }
43
+ export async function resolveProjectName(accountId, projectArg) {
44
+ const { data } = await fetchProjects(accountId);
45
+ const projects = data.results;
46
+ if (projectArg) {
47
+ if (!projects.some(p => p.name === projectArg)) {
48
+ throw new Error(commands.project.delete.errors.projectNotFound(projectArg, accountId));
49
+ }
50
+ return projectArg;
51
+ }
52
+ if (projects.length === 0) {
53
+ throw new Error(commands.project.delete.errors.noProjectsFound(accountId));
54
+ }
55
+ const selected = await listPrompt(commands.project.delete.prompts.selectProject(accountId), {
56
+ choices: projects.map(p => ({ name: p.name, value: p.name })),
57
+ validate: value => !!value || commands.project.delete.prompts.validation.projectRequired,
58
+ });
59
+ if (!selected) {
60
+ throw new Error(commands.project.delete.prompts.validation.projectRequired);
61
+ }
62
+ return selected;
63
+ }
64
+ export async function fetchProjectInstallCount(accountId, projectId) {
65
+ try {
66
+ const { data } = await fetchPublicAppsForPortal(accountId);
67
+ return data.results
68
+ .filter(app => app.projectId === projectId)
69
+ .reduce((sum, app) => sum + app.publicApplicationInstallCounts.uniquePortalInstallCount, 0);
70
+ }
71
+ catch (e) {
72
+ debugError(e);
73
+ uiLogger.warn(commands.project.delete.logs.installCountUnknown);
74
+ return 0;
75
+ }
76
+ }
77
+ export async function checkDeployedComponents(accountId, projectName) {
78
+ const { data: projectData } = await fetchProject(accountId, projectName);
79
+ const platformVersion = projectData.deployedBuild?.platformVersion ||
80
+ projectData.latestBuild?.platformVersion;
81
+ if (!platformVersion) {
82
+ throw new Error(commands.project.delete.errors.noPlatformVersion);
83
+ }
84
+ if (isLegacyProject(platformVersion)) {
85
+ const userVisibleComponents = [];
86
+ projectData.deployedBuild?.subbuildStatuses?.forEach(item => {
87
+ if (LEGACY_COMPONENTS_TO_FILTER.includes(item.buildType)) {
88
+ return;
89
+ }
90
+ userVisibleComponents.push(`${item.buildName} - (${mapLegacyComponentToUserFriendlyName(item.buildType)})`);
91
+ });
92
+ if (userVisibleComponents.length > 0) {
93
+ uiLogger.log(commands.project.delete.logs.componentsToDeleteLegacy(userVisibleComponents));
94
+ }
95
+ return {
96
+ platformVersion,
97
+ hasUnifiedComponents: false,
98
+ projectId: projectData.id,
99
+ };
100
+ }
101
+ try {
102
+ const { data } = await stageProjectForDeletion(accountId, projectName, true);
103
+ if (data.hasDeployedComponents) {
104
+ const userVisibleComponents = data.componentsToRemove.filter(item => !AUTO_GENERATED_COMPONENT_TYPES.includes(mapToUserFacingType(item.componentType)));
105
+ uiLogger.log(commands.project.delete.logs.componentsToDeleteUnified(userVisibleComponents));
106
+ }
107
+ return {
108
+ hasUnifiedComponents: data.hasDeployedComponents,
109
+ platformVersion,
110
+ projectId: projectData.id,
111
+ };
112
+ }
113
+ catch (e) {
114
+ debugError(e);
115
+ throw new Error(commands.project.delete.errors.cannotDelete(projectName, getErrorMessage(e)));
116
+ }
117
+ }
118
+ export async function deleteDeployedComponents(accountId, projectName) {
119
+ SpinniesManager.add('removeComponents', {
120
+ text: commands.project.delete.logs.deletingComponents(projectName),
121
+ });
122
+ let projectDeletionResponse;
123
+ try {
124
+ const { data } = await stageProjectForDeletion(accountId, projectName, false);
125
+ projectDeletionResponse = data;
126
+ }
127
+ catch (e) {
128
+ debugError(e);
129
+ SpinniesManager.fail('removeComponents', {
130
+ text: commands.project.delete.errors.componentDeletionFailed(projectName),
131
+ });
132
+ throw new Error(commands.project.delete.errors.componentDeletionFailed(projectName));
133
+ }
134
+ const { deployId, hasDeployedComponents } = projectDeletionResponse;
135
+ if (deployId === undefined) {
136
+ if (hasDeployedComponents) {
137
+ SpinniesManager.fail('removeComponents', {
138
+ text: commands.project.delete.logs.unableToDetermineIfComponentsWereDeleted(projectName),
139
+ });
140
+ throw new Error(commands.project.delete.logs.unableToDetermineIfComponentsWereDeleted(projectName));
141
+ }
142
+ else {
143
+ SpinniesManager.succeed('removeComponents', {
144
+ text: commands.project.delete.logs.componentsDeleted(projectName),
145
+ });
146
+ }
147
+ return;
148
+ }
149
+ try {
150
+ await poll(() => getDeployStatus(accountId, projectName, deployId), {
151
+ successStates: DELETION_DEPLOY_SUCCESS_STATES,
152
+ errorStates: DELETION_DEPLOY_ERROR_STATES,
153
+ }, DELETION_POLL_TIMEOUT_MS);
154
+ SpinniesManager.succeed('removeComponents', {
155
+ text: commands.project.delete.logs.componentsDeleted(projectName),
156
+ });
157
+ }
158
+ catch (e) {
159
+ debugError(e);
160
+ SpinniesManager.fail('removeComponents', {
161
+ text: commands.project.delete.errors.componentDeletionFailed(projectName),
162
+ });
163
+ throw new Error(commands.project.delete.errors.componentDeletionFailed(projectName));
164
+ }
165
+ }
166
+ export async function handleProjectDeletion(accountId, projectName) {
167
+ try {
168
+ SpinniesManager.add('deleteProject', {
169
+ text: commands.project.delete.logs.deleting(projectName),
170
+ });
171
+ await deleteProject(accountId, projectName);
172
+ SpinniesManager.succeed('deleteProject', {
173
+ text: commands.project.delete.logs.deleted(projectName, accountId),
174
+ });
175
+ }
176
+ catch (e) {
177
+ SpinniesManager.fail('deleteProject', {
178
+ text: commands.project.delete.errors.deleteFailed(projectName),
179
+ });
180
+ throw e;
181
+ }
182
+ }
183
+ export async function confirmDeletion(projectName, accountId, projectId) {
184
+ const installCount = await fetchProjectInstallCount(accountId, projectId);
185
+ if (installCount > 0) {
186
+ uiLogger.warn(commands.project.delete.logs.installWarning(installCount));
187
+ }
188
+ const confirmed = await confirmPrompt(commands.project.delete.prompts.confirmDelete(projectName, accountId), { defaultAnswer: false });
189
+ if (!confirmed) {
190
+ uiLogger.log(commands.project.delete.logs.cancelled);
191
+ throw new PromptExitError(commands.project.delete.logs.cancelled, EXIT_CODES.SUCCESS);
192
+ }
193
+ }
@@ -10,4 +10,4 @@ export declare function logDeployErrors(errorData: {
10
10
  };
11
11
  }>;
12
12
  }): void;
13
- export declare function handleProjectDeploy(targetAccountId: number, projectName: string, buildId: number, isV2Project: boolean, force: boolean): Promise<Deploy | undefined>;
13
+ export declare function handleProjectDeploy(targetAccountId: number, projectName: string, buildId: number, isLegacyProject: boolean, force: boolean): Promise<Deploy | undefined>;
@@ -47,9 +47,9 @@ function handleBlockedDeploy(deployResp) {
47
47
  uiLogger.log('');
48
48
  });
49
49
  }
50
- export async function handleProjectDeploy(targetAccountId, projectName, buildId, isV2Project, force) {
50
+ export async function handleProjectDeploy(targetAccountId, projectName, buildId, isLegacyProject, force) {
51
51
  let deployId;
52
- if (isV2Project) {
52
+ if (!isLegacyProject) {
53
53
  const { data: deployResp } = await deployProjectV2(targetAccountId, projectName, buildId, force);
54
54
  if (!deployResp || deployResp.buildResultType !== 'DEPLOY_QUEUED') {
55
55
  if (deployResp?.buildResultType === 'DEPLOY_BLOCKED') {
@@ -6,6 +6,7 @@ import { EXIT_CODES } from '../../enums/exitCodes.js';
6
6
  import { isAppIRNode } from '../../projects/structure.js';
7
7
  import { uiLine } from '../../ui/index.js';
8
8
  import { logError } from '../../errorHandlers/index.js';
9
+ import { isPromptExitError } from '../../errors/PromptExitError.js';
9
10
  import { installAppAutoPrompt, installAppBrowserPrompt, } from '../../prompts/installAppPrompt.js';
10
11
  import { confirmPrompt } from '../../prompts/promptUtils.js';
11
12
  import { lib } from '../../../lang/en.js';
@@ -27,7 +28,7 @@ class AppDevModeInterface {
27
28
  !this.localDevState.projectConfig ||
28
29
  !this.localDevState.projectDir) {
29
30
  uiLogger.error(lib.LocalDevManager.failedToInitialize);
30
- process.exit(EXIT_CODES.ERROR);
31
+ throw new Error(lib.LocalDevManager.failedToInitialize);
31
32
  }
32
33
  }
33
34
  getAppNodeFromProjectNodes(projectNodes) {
@@ -45,12 +46,12 @@ class AppDevModeInterface {
45
46
  // App data will never be accessed before being set
46
47
  if (!this.appNode) {
47
48
  uiLogger.log(lib.AppDevModeInterface.appDataNotFound);
48
- process.exit(EXIT_CODES.ERROR);
49
+ throw new Error(lib.AppDevModeInterface.appDataNotFound);
49
50
  }
50
51
  const data = this.localDevState.getAppDataByUid(this.appNode.uid);
51
52
  if (!data) {
52
53
  uiLogger.log(lib.AppDevModeInterface.appDataNotFound);
53
- process.exit(EXIT_CODES.ERROR);
54
+ throw new Error(lib.AppDevModeInterface.appDataNotFound);
54
55
  }
55
56
  return data;
56
57
  }
@@ -107,7 +108,7 @@ class AppDevModeInterface {
107
108
  text: lib.AppDevModeInterface.fetchAppData.error,
108
109
  });
109
110
  logError(e);
110
- process.exit(EXIT_CODES.ERROR);
111
+ return this.localDevState.actions.exit(EXIT_CODES.ERROR);
111
112
  }
112
113
  if (!appData) {
113
114
  return;
@@ -135,7 +136,7 @@ class AppDevModeInterface {
135
136
  uiLine();
136
137
  const proceed = await confirmPrompt(lib.LocalDevManager.activeInstallWarning.confirmationPrompt, { defaultAnswer: false });
137
138
  if (!proceed) {
138
- process.exit(EXIT_CODES.SUCCESS);
139
+ return this.localDevState.actions.exit(EXIT_CODES.SUCCESS);
139
140
  }
140
141
  this.localDevState.addUploadWarning(lib.AppDevModeInterface.defaultMarketplaceAppWarning(this.marketplaceAppInstalls));
141
142
  }
@@ -155,7 +156,7 @@ class AppDevModeInterface {
155
156
  const shouldInstall = await installAppAutoPrompt();
156
157
  if (!shouldInstall) {
157
158
  uiLogger.log(lib.AppDevModeInterface.autoInstallDeclined);
158
- process.exit(EXIT_CODES.SUCCESS);
159
+ return this.localDevState.actions.exit(EXIT_CODES.SUCCESS);
159
160
  }
160
161
  uiLogger.log('');
161
162
  SpinniesManager.add('autoInstallStaticAuthApp', {
@@ -224,7 +225,7 @@ class AppDevModeInterface {
224
225
  if (!serverIsRunningAtRedirectUrl) {
225
226
  uiLogger.log('');
226
227
  uiLogger.error(lib.AppDevModeInterface.oauthAppRedirectUrlError(redirectUrl));
227
- process.exit(EXIT_CODES.ERROR);
228
+ return this.localDevState.actions.exit(EXIT_CODES.ERROR);
228
229
  }
229
230
  }
230
231
  resolveAppInstallPromise() {
@@ -245,7 +246,7 @@ class AppDevModeInterface {
245
246
  }
246
247
  handleAppInstallFailureDevServerMessage() {
247
248
  uiLogger.error(lib.AppDevModeInterface.installationFailed);
248
- process.exit(EXIT_CODES.ERROR);
249
+ this.localDevState.actions.exit(EXIT_CODES.ERROR);
249
250
  }
250
251
  onDevServerMessage = async (message) => {
251
252
  if (message === LOCAL_DEV_SERVER_MESSAGE_TYPES.WEBSOCKET_SERVER_CONNECTED) {
@@ -313,6 +314,9 @@ class AppDevModeInterface {
313
314
  }
314
315
  }
315
316
  catch (e) {
317
+ if (isPromptExitError(e)) {
318
+ throw e;
319
+ }
316
320
  if (SpinniesManager.pick('fetchAppData')) {
317
321
  SpinniesManager.fail('fetchAppData', {
318
322
  text: lib.AppDevModeInterface.fetchAppData.error,
@@ -320,7 +324,7 @@ class AppDevModeInterface {
320
324
  });
321
325
  }
322
326
  logError(e);
323
- process.exit(EXIT_CODES.ERROR);
327
+ return this.localDevState.actions.exit(EXIT_CODES.ERROR);
324
328
  }
325
329
  }
326
330
  async start() {
@@ -1,4 +1,5 @@
1
1
  import { ProjectConfig, ComponentTypes, Component } from '../../../types/Projects.js';
2
+ import { ExitFunction } from '../../../types/Yargs.js';
2
3
  type DevServerInterface = {
3
4
  setup?: Function;
4
5
  start?: (options: object) => Promise<void>;
@@ -20,11 +21,13 @@ declare class DevServerManager_DEPRECATED {
20
21
  [key: string]: Component;
21
22
  }) => Promise<void>): Promise<void>;
22
23
  arrangeComponentsByType(components: Component[]): ComponentsByType;
23
- setup({ components, onUploadRequired, accountId, setActiveApp, }: {
24
+ setup({ components, onUploadRequired, accountId, setActiveApp, exit, port, }: {
24
25
  components: Component[];
25
26
  onUploadRequired: () => void;
26
27
  accountId: number;
27
28
  setActiveApp: (appUid: string | undefined) => Promise<void>;
29
+ exit: ExitFunction;
30
+ port?: number;
28
31
  }): Promise<void>;
29
32
  start({ accountId, projectConfig, }: {
30
33
  accountId: number;
@@ -57,7 +57,7 @@ class DevServerManager_DEPRECATED {
57
57
  return acc;
58
58
  }, {});
59
59
  }
60
- async setup({ components, onUploadRequired, accountId, setActiveApp, }) {
60
+ async setup({ components, onUploadRequired, accountId, setActiveApp, exit, port, }) {
61
61
  this.componentsByType = this.arrangeComponentsByType(components);
62
62
  let env;
63
63
  const accountConfig = getConfigAccountById(accountId);
@@ -65,11 +65,11 @@ class DevServerManager_DEPRECATED {
65
65
  env = accountConfig.env;
66
66
  }
67
67
  try {
68
- await startPortManagerServer();
68
+ await startPortManagerServer(port);
69
69
  }
70
70
  catch (e) {
71
71
  logError(e);
72
- process.exit(EXIT_CODES.ERROR);
72
+ return exit(EXIT_CODES.ERROR);
73
73
  }
74
74
  await this.iterateDevServers(async (serverInterface, compatibleComponents) => {
75
75
  if (serverInterface.setup) {
@@ -1,14 +1,17 @@
1
1
  import LocalDevLogger from './LocalDevLogger.js';
2
+ import { ExitFunction } from '../../../types/Yargs.js';
2
3
  type DevSessionManagerConstructorOptions = {
3
4
  targetTestingAccountId: number;
4
5
  localDevLogger?: LocalDevLogger;
6
+ exit: ExitFunction;
5
7
  };
6
8
  declare class DevSessionManager {
7
9
  localDevLogger?: LocalDevLogger;
8
10
  targetTestingAccountId: number;
9
- protected _devSessionId: number | undefined;
10
- private _heartbeatInterval;
11
- private _heartbeatRetries;
11
+ protected devSessionId: number | undefined;
12
+ private heartbeatInterval;
13
+ private heartbeatRetries;
14
+ private exit;
12
15
  constructor(options: DevSessionManagerConstructorOptions);
13
16
  private validateSessionIdExists;
14
17
  registerSession(): Promise<boolean>;
@@ -7,18 +7,20 @@ import { getErrorMessage } from '../../errorHandlers/index.js';
7
7
  class DevSessionManager {
8
8
  localDevLogger;
9
9
  targetTestingAccountId;
10
- _devSessionId;
11
- _heartbeatInterval;
12
- _heartbeatRetries;
10
+ devSessionId;
11
+ heartbeatInterval;
12
+ heartbeatRetries;
13
+ exit;
13
14
  constructor(options) {
14
15
  this.targetTestingAccountId = options.targetTestingAccountId;
15
16
  this.localDevLogger = options.localDevLogger;
16
- this._devSessionId = undefined;
17
- this._heartbeatInterval = undefined;
18
- this._heartbeatRetries = 0;
17
+ this.exit = options.exit;
18
+ this.devSessionId = undefined;
19
+ this.heartbeatInterval = undefined;
20
+ this.heartbeatRetries = 0;
19
21
  }
20
22
  validateSessionIdExists() {
21
- if (!this._devSessionId) {
23
+ if (!this.devSessionId) {
22
24
  if (this.localDevLogger) {
23
25
  this.localDevLogger.devSessionMissingSessionIdError();
24
26
  }
@@ -26,7 +28,7 @@ class DevSessionManager {
26
28
  // Fallback for deprecated local dev manager
27
29
  uiLogger.error(lib.LocalDevManager.devSession.missingSessionIdError);
28
30
  }
29
- process.exit(EXIT_CODES.ERROR);
31
+ throw new Error(lib.LocalDevManager.devSession.missingSessionIdError);
30
32
  }
31
33
  }
32
34
  async registerSession() {
@@ -34,7 +36,7 @@ class DevSessionManager {
34
36
  const activeServers = await getActiveServers();
35
37
  const portData = Object.entries(activeServers).map(([serverId, port]) => ({ serverId, port }));
36
38
  const registerDevSessionResponse = await registerDevSession(this.targetTestingAccountId, portData);
37
- this._devSessionId = registerDevSessionResponse.data.sessionId;
39
+ this.devSessionId = registerDevSessionResponse.data.sessionId;
38
40
  }
39
41
  catch (e) {
40
42
  if (this.localDevLogger) {
@@ -46,19 +48,29 @@ class DevSessionManager {
46
48
  }
47
49
  return false;
48
50
  }
49
- this.validateSessionIdExists();
51
+ try {
52
+ this.validateSessionIdExists();
53
+ }
54
+ catch {
55
+ return this.exit(EXIT_CODES.ERROR);
56
+ }
50
57
  this.initializeHeartbeat();
51
58
  return true;
52
59
  }
53
60
  initializeHeartbeat() {
54
- this._heartbeatInterval = setInterval(async () => {
55
- this.validateSessionIdExists();
61
+ this.heartbeatInterval = setInterval(async () => {
62
+ try {
63
+ this.validateSessionIdExists();
64
+ }
65
+ catch {
66
+ return this.exit(EXIT_CODES.ERROR);
67
+ }
56
68
  try {
57
- await devSessionHeartbeat(this.targetTestingAccountId, this._devSessionId);
69
+ await devSessionHeartbeat(this.targetTestingAccountId, this.devSessionId);
58
70
  }
59
71
  catch (e) {
60
- if (this._heartbeatRetries < 3) {
61
- this._heartbeatRetries++;
72
+ if (this.heartbeatRetries < 3) {
73
+ this.heartbeatRetries++;
62
74
  return;
63
75
  }
64
76
  if (this.localDevLogger) {
@@ -68,15 +80,15 @@ class DevSessionManager {
68
80
  // Fallback for deprecated local dev manager
69
81
  uiLogger.error(lib.LocalDevManager.devSession.heartbeatError(getErrorMessage(e)));
70
82
  }
71
- process.exit(EXIT_CODES.ERROR);
83
+ return this.exit(EXIT_CODES.ERROR);
72
84
  }
73
85
  }, 30000);
74
86
  }
75
87
  async deleteDevSession() {
76
- if (this._devSessionId) {
77
- clearInterval(this._heartbeatInterval);
88
+ if (this.devSessionId) {
89
+ clearInterval(this.heartbeatInterval);
78
90
  try {
79
- await deleteDevSession(this.targetTestingAccountId, this._devSessionId);
91
+ await deleteDevSession(this.targetTestingAccountId, this.devSessionId);
80
92
  }
81
93
  catch (e) {
82
94
  if (this.localDevLogger) {
@@ -3,6 +3,7 @@ import { Build } from '@hubspot/local-dev-lib/types/Build';
3
3
  import { PublicApp } from '@hubspot/local-dev-lib/types/Apps';
4
4
  import { Environment } from '@hubspot/local-dev-lib/types/Accounts';
5
5
  import { Component, ProjectConfig } from '../../../types/Projects.js';
6
+ import { ExitFunction } from '../../../types/Yargs.js';
6
7
  type LocalDevManagerConstructorOptions = {
7
8
  targetAccountId: number;
8
9
  parentAccountId: number;
@@ -14,6 +15,8 @@ type LocalDevManagerConstructorOptions = {
14
15
  isGithubLinked: boolean;
15
16
  runnableComponents: Component[];
16
17
  env: Environment;
18
+ exit: ExitFunction;
19
+ port?: number;
17
20
  };
18
21
  declare class LocalDevManager_DEPRECATED {
19
22
  targetAccountId: number;
@@ -36,6 +39,8 @@ declare class LocalDevManager_DEPRECATED {
36
39
  projectSourceDir: string;
37
40
  mostRecentUploadWarning: string | null;
38
41
  private devSessionManager;
42
+ private exit;
43
+ private port?;
39
44
  constructor(options: LocalDevManagerConstructorOptions);
40
45
  setActiveApp(appUid?: string): Promise<void>;
41
46
  setActivePublicAppData(): Promise<void>;
@@ -15,6 +15,7 @@ import { componentIsApp, componentIsPublicApp, CONFIG_FILES, getAppCardConfigs,
15
15
  import { ComponentTypes, } from '../../../types/Projects.js';
16
16
  import { UI_COLORS, uiCommandReference, uiAccountDescription, uiLink, uiLine, } from '../../ui/index.js';
17
17
  import { logError } from '../../errorHandlers/index.js';
18
+ import { isPromptExitError } from '../../errors/PromptExitError.js';
18
19
  import { installAppBrowserPrompt } from '../../prompts/installAppPrompt.js';
19
20
  import { confirmPrompt } from '../../prompts/promptUtils.js';
20
21
  import { handleKeypress } from '../../process.js';
@@ -46,6 +47,8 @@ class LocalDevManager_DEPRECATED {
46
47
  projectSourceDir;
47
48
  mostRecentUploadWarning;
48
49
  devSessionManager;
50
+ exit;
51
+ port;
49
52
  constructor(options) {
50
53
  this.targetAccountId = options.targetAccountId;
51
54
  // The account that the project exists in. This is not always the targetAccountId
@@ -64,19 +67,22 @@ class LocalDevManager_DEPRECATED {
64
67
  this.env = options.env;
65
68
  this.publicAppActiveInstalls = null;
66
69
  this.mostRecentUploadWarning = null;
70
+ this.exit = options.exit;
71
+ this.port = options.port;
67
72
  this.projectSourceDir = path.join(this.projectDir, this.projectConfig.srcDir);
68
73
  if (!this.targetAccountId || !this.projectConfig || !this.projectDir) {
69
- uiLogger.log(lib.LocalDevManager.failedToInitialize);
70
- process.exit(EXIT_CODES.ERROR);
74
+ uiLogger.error(lib.LocalDevManager.failedToInitialize);
75
+ throw new Error(lib.LocalDevManager.failedToInitialize);
71
76
  }
72
77
  this.devSessionManager = new DevSessionManager({
73
78
  targetTestingAccountId: this.targetAccountId,
79
+ exit: this.exit,
74
80
  });
75
81
  }
76
82
  async setActiveApp(appUid) {
77
83
  if (!appUid) {
78
84
  uiLogger.error(lib.LocalDevManager.missingUid);
79
- process.exit(EXIT_CODES.ERROR);
85
+ return this.exit(EXIT_CODES.ERROR);
80
86
  }
81
87
  this.activeApp =
82
88
  this.runnableComponents.find(component => {
@@ -89,6 +95,9 @@ class LocalDevManager_DEPRECATED {
89
95
  await this.checkPublicAppInstallation();
90
96
  }
91
97
  catch (e) {
98
+ if (isPromptExitError(e)) {
99
+ throw e;
100
+ }
92
101
  logError(e);
93
102
  }
94
103
  }
@@ -118,7 +127,7 @@ class LocalDevManager_DEPRECATED {
118
127
  uiLine();
119
128
  const proceed = await confirmPrompt(lib.LocalDevManager.activeInstallWarning.confirmationPrompt, { defaultAnswer: false });
120
129
  if (!proceed) {
121
- process.exit(EXIT_CODES.SUCCESS);
130
+ return this.exit(EXIT_CODES.SUCCESS);
122
131
  }
123
132
  }
124
133
  async start() {
@@ -128,11 +137,11 @@ class LocalDevManager_DEPRECATED {
128
137
  if (!this.deployedBuild) {
129
138
  uiLogger.error(lib.LocalDevManager.noDeployedBuild(this.projectConfig.name, uiAccountDescription(this.targetProjectAccountId), this.getUploadCommand()));
130
139
  uiLogger.log('');
131
- process.exit(EXIT_CODES.SUCCESS);
140
+ return this.exit(EXIT_CODES.SUCCESS);
132
141
  }
133
142
  const setupSucceeded = await this.devServerSetup();
134
143
  if (!setupSucceeded) {
135
- process.exit(EXIT_CODES.ERROR);
144
+ return this.exit(EXIT_CODES.ERROR);
136
145
  }
137
146
  else if (!this.debug) {
138
147
  console.clear();
@@ -152,7 +161,7 @@ class LocalDevManager_DEPRECATED {
152
161
  await this.devServerStart();
153
162
  const devSessionRegistered = await this.devSessionManager.registerSession();
154
163
  if (!devSessionRegistered) {
155
- process.exit(EXIT_CODES.ERROR);
164
+ return this.exit(EXIT_CODES.ERROR);
156
165
  }
157
166
  // Initialize project file watcher to detect configuration file changes
158
167
  this.startWatching();
@@ -177,14 +186,14 @@ class LocalDevManager_DEPRECATED {
177
186
  text: lib.LocalDevManager.exitingFail,
178
187
  });
179
188
  }
180
- process.exit(EXIT_CODES.ERROR);
189
+ return this.exit(EXIT_CODES.ERROR);
181
190
  }
182
191
  if (showProgress) {
183
192
  SpinniesManager.succeed('cleanupMessage', {
184
193
  text: lib.LocalDevManager.exitingSucceed,
185
194
  });
186
195
  }
187
- process.exit(EXIT_CODES.SUCCESS);
196
+ return this.exit(EXIT_CODES.SUCCESS);
188
197
  }
189
198
  async checkPublicAppInstallation() {
190
199
  if (!componentIsPublicApp(this.activeApp) || !this.activePublicAppData) {
@@ -329,6 +338,8 @@ class LocalDevManager_DEPRECATED {
329
338
  onUploadRequired: this.logUploadWarning.bind(this),
330
339
  accountId: this.targetAccountId,
331
340
  setActiveApp: this.setActiveApp.bind(this),
341
+ exit: this.exit,
342
+ port: this.port,
332
343
  });
333
344
  return true;
334
345
  }
@@ -352,7 +363,7 @@ class LocalDevManager_DEPRECATED {
352
363
  uiLogger.error(getErrorMessage(e));
353
364
  }
354
365
  uiLogger.error(lib.LocalDevManager.devServer.startError(getErrorMessage(e)));
355
- process.exit(EXIT_CODES.ERROR);
366
+ return this.exit(EXIT_CODES.ERROR);
356
367
  }
357
368
  }
358
369
  devServerFileChange(filePath, event) {
@@ -32,6 +32,7 @@ class LocalDevProcess {
32
32
  this.devSessionManager = new DevSessionManager({
33
33
  targetTestingAccountId: this.state.targetTestingAccountId,
34
34
  localDevLogger: this._logger,
35
+ exit: this.state.actions.exit,
35
36
  });
36
37
  }
37
38
  get projectDir() {
@@ -68,7 +69,7 @@ class LocalDevProcess {
68
69
  }
69
70
  catch (e) {
70
71
  this.logger.devServerStartError(e);
71
- process.exit(EXIT_CODES.ERROR);
72
+ return this.state.actions.exit(EXIT_CODES.ERROR);
72
73
  }
73
74
  }
74
75
  async cleanupDevServers() {
@@ -148,7 +149,7 @@ class LocalDevProcess {
148
149
  this.logger.resetSpinnies();
149
150
  const setupSucceeded = await this.setupDevServers();
150
151
  if (!setupSucceeded) {
151
- process.exit(EXIT_CODES.ERROR);
152
+ return this.state.actions.exit(EXIT_CODES.ERROR);
152
153
  }
153
154
  this.logger.startupMessage();
154
155
  if (isConfigFlagEnabled(CONFIG_FLAGS.AUTO_OPEN_BROWSER, true)) {
@@ -157,7 +158,7 @@ class LocalDevProcess {
157
158
  await this.startDevServers();
158
159
  const devSessionRegistered = await this.devSessionManager.registerSession();
159
160
  if (!devSessionRegistered) {
160
- process.exit(EXIT_CODES.ERROR);
161
+ return this.state.actions.exit(EXIT_CODES.ERROR);
161
162
  }
162
163
  this.state.devServersStarted = true;
163
164
  this.logger.monitorConsoleOutput();
@@ -172,12 +173,12 @@ class LocalDevProcess {
172
173
  if (showProgress) {
173
174
  this.logger.cleanupError();
174
175
  }
175
- process.exit(EXIT_CODES.ERROR);
176
+ return this.state.actions.exit(EXIT_CODES.ERROR);
176
177
  }
177
178
  if (showProgress) {
178
179
  this.logger.cleanupSuccess();
179
180
  }
180
- process.exit(EXIT_CODES.SUCCESS);
181
+ return this.state.actions.exit(EXIT_CODES.SUCCESS);
181
182
  }
182
183
  async uploadProject() {
183
184
  this.logger.uploadInitiated();