@hubspot/cli 8.1.0-beta.0 → 8.1.0-experimental.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (670) hide show
  1. package/api/migrate.js +8 -4
  2. package/bin/cli.js +12 -6
  3. package/commands/account/auth.js +7 -7
  4. package/commands/account/clean.js +7 -6
  5. package/commands/account/createOverride.js +10 -7
  6. package/commands/account/info.js +36 -17
  7. package/commands/account/link.d.ts +4 -0
  8. package/commands/account/link.js +89 -0
  9. package/commands/account/list.js +32 -76
  10. package/commands/account/remove.js +4 -3
  11. package/commands/account/removeOverride.js +11 -10
  12. package/commands/account/rename.js +5 -6
  13. package/commands/account/unlink.d.ts +4 -0
  14. package/commands/account/unlink.js +70 -0
  15. package/commands/account/use.js +75 -6
  16. package/commands/account.js +4 -0
  17. package/commands/api.d.ts +10 -0
  18. package/commands/api.js +164 -0
  19. package/commands/app/migrate.js +13 -13
  20. package/commands/app/secret/add.js +6 -7
  21. package/commands/app/secret/delete.js +9 -10
  22. package/commands/app/secret/list.js +6 -7
  23. package/commands/app/secret/update.js +8 -9
  24. package/commands/auth.js +19 -15
  25. package/commands/cms/app/create.js +9 -5
  26. package/commands/cms/convertFields.js +8 -8
  27. package/commands/cms/delete.js +2 -3
  28. package/commands/cms/fetch.js +7 -7
  29. package/commands/cms/function/create.js +9 -5
  30. package/commands/cms/function/deploy.js +2 -3
  31. package/commands/cms/function/list.js +11 -7
  32. package/commands/cms/function/logs.js +17 -22
  33. package/commands/cms/function/server.js +2 -3
  34. package/commands/cms/getReactModule.js +7 -8
  35. package/commands/cms/lighthouseScore.js +25 -24
  36. package/commands/cms/lint.js +4 -5
  37. package/commands/cms/list.js +5 -6
  38. package/commands/cms/module/create.js +9 -5
  39. package/commands/cms/module/marketplace-validate.js +7 -8
  40. package/commands/cms/mv.js +2 -3
  41. package/commands/cms/template/create.js +10 -6
  42. package/commands/cms/theme/create.js +5 -5
  43. package/commands/cms/theme/generate-selectors.js +5 -4
  44. package/commands/cms/theme/marketplace-validate.js +8 -9
  45. package/commands/cms/theme/preview.js +23 -70
  46. package/commands/cms/upload.js +15 -12
  47. package/commands/cms/watch.d.ts +0 -1
  48. package/commands/cms/watch.js +6 -12
  49. package/commands/cms/webpack/create.js +5 -5
  50. package/commands/completion.js +3 -5
  51. package/commands/config/migrate.js +6 -7
  52. package/commands/config/set.js +5 -6
  53. package/commands/customObject/create.js +4 -5
  54. package/commands/customObject/createSchema.js +4 -5
  55. package/commands/customObject/deleteSchema.js +4 -5
  56. package/commands/customObject/fetchAllSchemas.js +2 -3
  57. package/commands/customObject/fetchSchema.js +2 -3
  58. package/commands/customObject/listSchemas.js +2 -3
  59. package/commands/customObject/updateSchema.js +4 -5
  60. package/commands/doctor.js +8 -8
  61. package/commands/feedback.js +7 -5
  62. package/commands/filemanager/fetch.js +5 -6
  63. package/commands/filemanager/upload.js +5 -5
  64. package/commands/getStarted.js +17 -19
  65. package/commands/hubdb/clear.js +6 -3
  66. package/commands/hubdb/create.js +4 -5
  67. package/commands/hubdb/delete.js +9 -6
  68. package/commands/hubdb/fetch.js +6 -3
  69. package/commands/hubdb/list.js +16 -14
  70. package/commands/init.js +15 -14
  71. package/commands/mcp/setup.js +5 -14
  72. package/commands/mcp/start.js +2 -4
  73. package/commands/open.js +4 -5
  74. package/commands/project/add.js +13 -8
  75. package/commands/project/appInstallStatus.d.ts +4 -0
  76. package/commands/project/appInstallStatus.js +132 -0
  77. package/commands/project/create.js +28 -17
  78. package/commands/project/delete.d.ts +7 -0
  79. package/commands/project/delete.js +74 -0
  80. package/commands/project/deploy.js +39 -36
  81. package/commands/project/dev/deprecatedFlow.js +62 -17
  82. package/commands/project/dev/index.d.ts +3 -3
  83. package/commands/project/dev/index.js +59 -48
  84. package/commands/project/dev/unifiedFlow.js +70 -21
  85. package/commands/project/download.js +12 -9
  86. package/commands/project/info.d.ts +4 -0
  87. package/commands/project/info.js +67 -0
  88. package/commands/project/installDeps.js +9 -6
  89. package/commands/project/lint.js +31 -10
  90. package/commands/project/list.js +14 -14
  91. package/commands/project/listBuilds.js +8 -6
  92. package/commands/project/logs.js +5 -6
  93. package/commands/project/migrate.js +18 -18
  94. package/commands/project/open.js +5 -6
  95. package/commands/project/profile/add.js +12 -8
  96. package/commands/project/profile/delete.js +15 -11
  97. package/commands/project/updateDeps.js +9 -6
  98. package/commands/project/upload.js +33 -19
  99. package/commands/project/validate.js +12 -12
  100. package/commands/project/watch.js +32 -19
  101. package/commands/project.js +12 -3
  102. package/commands/sandbox/create.js +18 -45
  103. package/commands/sandbox/delete.js +13 -14
  104. package/commands/secret/addSecret.js +6 -7
  105. package/commands/secret/deleteSecret.js +5 -6
  106. package/commands/secret/listSecret.js +2 -3
  107. package/commands/secret/updateSecret.js +4 -5
  108. package/commands/testAccount/create.d.ts +1 -1
  109. package/commands/testAccount/create.js +25 -17
  110. package/commands/testAccount/createConfig.js +7 -8
  111. package/commands/testAccount/delete.js +27 -18
  112. package/commands/testAccount/importData.js +6 -7
  113. package/commands/upgrade.js +9 -10
  114. package/lang/en.d.ts +248 -14
  115. package/lang/en.js +265 -28
  116. package/lib/accountAuth.js +4 -0
  117. package/lib/app/migrate.js +18 -5
  118. package/lib/buildAccount.d.ts +1 -6
  119. package/lib/buildAccount.js +9 -42
  120. package/lib/commandSuggestion.js +1 -7
  121. package/lib/constants.d.ts +2 -4
  122. package/lib/constants.js +4 -4
  123. package/lib/doctor/Diagnosis.js +5 -5
  124. package/lib/doctor/Doctor.js +7 -7
  125. package/lib/errorHandlers/index.js +4 -3
  126. package/lib/errorHandlers/suppressError.js +4 -0
  127. package/lib/errors/PromptExitError.d.ts +6 -0
  128. package/lib/errors/PromptExitError.js +11 -0
  129. package/lib/generateSelectors.js +1 -2
  130. package/lib/getStartedV2Actions.d.ts +13 -0
  131. package/lib/getStartedV2Actions.js +56 -3
  132. package/lib/hasFeature.js +1 -2
  133. package/lib/link/accountTableUtils.d.ts +10 -0
  134. package/lib/link/accountTableUtils.js +39 -0
  135. package/lib/link/index.d.ts +18 -0
  136. package/lib/link/index.js +185 -0
  137. package/lib/link/linkUtils.d.ts +5 -0
  138. package/lib/link/linkUtils.js +49 -0
  139. package/lib/link/prompts.d.ts +7 -0
  140. package/lib/link/prompts.js +126 -0
  141. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  142. package/lib/link/renderLinkedAccountsTable.js +14 -0
  143. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  144. package/lib/link/warnIfLinkedDirectory.js +9 -0
  145. package/lib/mcp/setup.d.ts +1 -0
  146. package/lib/mcp/setup.js +77 -30
  147. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  148. package/lib/process.d.ts +1 -1
  149. package/lib/process.js +10 -3
  150. package/lib/projects/ProjectLogsManager.js +6 -3
  151. package/lib/projects/components.js +15 -4
  152. package/lib/projects/create/index.js +3 -6
  153. package/lib/projects/create/legacy.js +5 -10
  154. package/lib/projects/create/v2.js +5 -14
  155. package/lib/projects/delete.d.ts +13 -0
  156. package/lib/projects/delete.js +193 -0
  157. package/lib/projects/deploy.d.ts +1 -1
  158. package/lib/projects/deploy.js +2 -2
  159. package/lib/projects/ensureProjectExists.js +1 -2
  160. package/lib/projects/localDev/AppDevModeInterface.js +13 -9
  161. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +4 -1
  162. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +3 -3
  163. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  164. package/lib/projects/localDev/DevSessionManager.js +31 -19
  165. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +5 -0
  166. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +21 -10
  167. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  168. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  169. package/lib/projects/localDev/LocalDevState.js +3 -1
  170. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  171. package/lib/projects/localDev/helpers/account.js +21 -30
  172. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  173. package/lib/projects/localDev/helpers/process.js +4 -10
  174. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  175. package/lib/projects/localDev/helpers/project.js +31 -15
  176. package/lib/projects/pollProjectBuildAndDeploy.js +90 -85
  177. package/lib/projects/projectInfo.d.ts +5 -0
  178. package/lib/projects/projectInfo.js +82 -0
  179. package/lib/projects/projectProfiles.d.ts +1 -2
  180. package/lib/projects/projectProfiles.js +5 -17
  181. package/lib/projects/uieLinting.d.ts +17 -3
  182. package/lib/projects/uieLinting.js +93 -28
  183. package/lib/projects/upload.d.ts +1 -0
  184. package/lib/projects/upload.js +59 -49
  185. package/lib/projects/watch.d.ts +2 -1
  186. package/lib/projects/watch.js +32 -24
  187. package/lib/projects/workspaces.d.ts +52 -0
  188. package/lib/projects/workspaces.js +365 -0
  189. package/lib/prompts/createApiSamplePrompt.js +4 -0
  190. package/lib/prompts/downloadProjectPrompt.js +11 -10
  191. package/lib/prompts/installAppPrompt.js +3 -2
  192. package/lib/prompts/personalAccessKeyPrompt.js +3 -2
  193. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  194. package/lib/prompts/projectDevTargetAccountPrompt.js +23 -16
  195. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  196. package/lib/prompts/projectProfilePrompt.js +46 -0
  197. package/lib/prompts/projectsLogsPrompt.js +3 -0
  198. package/lib/prompts/promptUtils.js +4 -2
  199. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  200. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  201. package/lib/sandboxes.d.ts +1 -9
  202. package/lib/sandboxes.js +0 -21
  203. package/lib/serverlessLogs.js +50 -44
  204. package/lib/theme/cmsDevServerProcess.d.ts +14 -0
  205. package/lib/theme/cmsDevServerProcess.js +149 -0
  206. package/lib/theme/cmsDevServerRunner.d.ts +14 -0
  207. package/lib/theme/cmsDevServerRunner.js +90 -0
  208. package/lib/theme/migrate.d.ts +1 -1
  209. package/lib/theme/migrate.js +1 -5
  210. package/lib/ui/SpinniesManager.d.ts +1 -0
  211. package/lib/ui/SpinniesManager.js +22 -6
  212. package/lib/ui/accountTable.d.ts +8 -0
  213. package/lib/ui/accountTable.js +67 -0
  214. package/lib/ui/spinniesUtils.d.ts +0 -1
  215. package/lib/ui/spinniesUtils.js +6 -16
  216. package/lib/usageTracking.d.ts +3 -4
  217. package/lib/usageTracking.js +9 -6
  218. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  219. package/lib/yargs/makeYargsBuilder.js +33 -0
  220. package/lib/yargs/makeYargsHandlerWithUsageTracking.d.ts +3 -0
  221. package/lib/yargs/makeYargsHandlerWithUsageTracking.js +95 -0
  222. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  223. package/lib/yargs/parseYargsOrExit.js +25 -0
  224. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  225. package/lib/yargs/strictEnforceBoolean.js +13 -0
  226. package/lib/yargsUtils.d.ts +3 -16
  227. package/lib/yargsUtils.js +3 -48
  228. package/mcp-server/Tool.d.ts +15 -0
  229. package/mcp-server/Tool.js +53 -0
  230. package/mcp-server/server.js +43 -3
  231. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +4 -2
  232. package/mcp-server/tools/cms/HsCreateFunctionTool.js +9 -7
  233. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -2
  234. package/mcp-server/tools/cms/HsCreateModuleTool.js +9 -7
  235. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +4 -2
  236. package/mcp-server/tools/cms/HsCreateTemplateTool.js +9 -7
  237. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -2
  238. package/mcp-server/tools/cms/HsFunctionLogsTool.js +9 -7
  239. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +4 -2
  240. package/mcp-server/tools/cms/HsListFunctionsTool.js +9 -7
  241. package/mcp-server/tools/cms/HsListTool.d.ts +4 -2
  242. package/mcp-server/tools/cms/HsListTool.js +9 -7
  243. package/mcp-server/tools/index.d.ts +3 -2
  244. package/mcp-server/tools/index.js +24 -22
  245. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +25 -5
  246. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -18
  247. package/mcp-server/tools/project/CreateProjectTool.d.ts +29 -6
  248. package/mcp-server/tools/project/CreateProjectTool.js +16 -18
  249. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +4 -2
  250. package/mcp-server/tools/project/CreateTestAccountTool.js +22 -10
  251. package/mcp-server/tools/project/DeployProjectTool.d.ts +4 -2
  252. package/mcp-server/tools/project/DeployProjectTool.js +6 -8
  253. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  254. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  255. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  256. package/mcp-server/tools/project/DocsSearchTool.js +32 -9
  257. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  258. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  259. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +4 -2
  260. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +13 -14
  261. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +4 -2
  262. package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
  263. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +6 -4
  264. package/mcp-server/tools/project/GetBuildLogsTool.js +15 -14
  265. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +5 -3
  266. package/mcp-server/tools/project/GetBuildStatusTool.js +12 -11
  267. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -2
  268. package/mcp-server/tools/project/GetConfigValuesTool.js +12 -7
  269. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +10 -3
  270. package/mcp-server/tools/project/GuidedWalkthroughTool.js +5 -12
  271. package/mcp-server/tools/project/UploadProjectTools.d.ts +4 -2
  272. package/mcp-server/tools/project/UploadProjectTools.js +11 -9
  273. package/mcp-server/tools/project/ValidateProjectTool.d.ts +4 -2
  274. package/mcp-server/tools/project/ValidateProjectTool.js +10 -8
  275. package/mcp-server/tools/project/constants.d.ts +13 -1
  276. package/mcp-server/tools/project/constants.js +13 -16
  277. package/mcp-server/types.d.ts +0 -7
  278. package/mcp-server/types.js +1 -13
  279. package/mcp-server/utils/command.d.ts +5 -0
  280. package/mcp-server/utils/command.js +24 -0
  281. package/mcp-server/utils/feedbackTracking.js +2 -17
  282. package/mcp-server/utils/logger.d.ts +10 -0
  283. package/mcp-server/utils/logger.js +29 -0
  284. package/mcp-server/utils/toolUsageTracking.js +0 -2
  285. package/package.json +15 -11
  286. package/types/Link.d.ts +32 -0
  287. package/types/Link.js +5 -0
  288. package/types/LocalDev.d.ts +5 -0
  289. package/types/PackageJson.d.ts +1 -0
  290. package/types/Projects.d.ts +19 -0
  291. package/types/Prompts.d.ts +1 -0
  292. package/types/Yargs.d.ts +19 -1
  293. package/ui/components/getStarted/GetStartedFlow.js +79 -2
  294. package/ui/components/getStarted/reducer.d.ts +20 -0
  295. package/ui/components/getStarted/reducer.js +36 -0
  296. package/ui/components/getStarted/screens/InstallationScreen.d.ts +7 -0
  297. package/ui/components/getStarted/screens/InstallationScreen.js +16 -0
  298. package/ui/components/getStarted/screens/ProjectSetupScreen.js +2 -1
  299. package/ui/lib/constants.d.ts +1 -0
  300. package/ui/lib/constants.js +1 -0
  301. package/api/__tests__/migrate.test.d.ts +0 -1
  302. package/api/__tests__/migrate.test.js +0 -199
  303. package/commands/__tests__/account.test.d.ts +0 -1
  304. package/commands/__tests__/account.test.js +0 -69
  305. package/commands/__tests__/auth.test.d.ts +0 -1
  306. package/commands/__tests__/auth.test.js +0 -43
  307. package/commands/__tests__/cms.test.d.ts +0 -1
  308. package/commands/__tests__/cms.test.js +0 -87
  309. package/commands/__tests__/config.test.d.ts +0 -1
  310. package/commands/__tests__/config.test.js +0 -44
  311. package/commands/__tests__/customObject.test.d.ts +0 -1
  312. package/commands/__tests__/customObject.test.js +0 -68
  313. package/commands/__tests__/doctor.test.d.ts +0 -1
  314. package/commands/__tests__/doctor.test.js +0 -132
  315. package/commands/__tests__/feedback.test.d.ts +0 -1
  316. package/commands/__tests__/feedback.test.js +0 -24
  317. package/commands/__tests__/filemanager.test.d.ts +0 -1
  318. package/commands/__tests__/filemanager.test.js +0 -45
  319. package/commands/__tests__/getStarted.test.d.ts +0 -1
  320. package/commands/__tests__/getStarted.test.js +0 -173
  321. package/commands/__tests__/hubdb.test.d.ts +0 -1
  322. package/commands/__tests__/hubdb.test.js +0 -50
  323. package/commands/__tests__/init.test.d.ts +0 -1
  324. package/commands/__tests__/init.test.js +0 -42
  325. package/commands/__tests__/mcp.test.d.ts +0 -1
  326. package/commands/__tests__/mcp.test.js +0 -46
  327. package/commands/__tests__/open.test.d.ts +0 -1
  328. package/commands/__tests__/open.test.js +0 -58
  329. package/commands/__tests__/project.test.d.ts +0 -1
  330. package/commands/__tests__/project.test.js +0 -125
  331. package/commands/__tests__/sandbox.test.d.ts +0 -1
  332. package/commands/__tests__/sandbox.test.js +0 -44
  333. package/commands/__tests__/secret.test.d.ts +0 -1
  334. package/commands/__tests__/secret.test.js +0 -49
  335. package/commands/__tests__/testAccount.test.d.ts +0 -1
  336. package/commands/__tests__/testAccount.test.js +0 -57
  337. package/commands/__tests__/upgrade.test.d.ts +0 -1
  338. package/commands/__tests__/upgrade.test.js +0 -309
  339. package/commands/account/__tests__/auth.test.d.ts +0 -1
  340. package/commands/account/__tests__/auth.test.js +0 -206
  341. package/commands/account/__tests__/clean.test.d.ts +0 -1
  342. package/commands/account/__tests__/clean.test.js +0 -28
  343. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  344. package/commands/account/__tests__/createOverride.test.js +0 -32
  345. package/commands/account/__tests__/info.test.d.ts +0 -1
  346. package/commands/account/__tests__/info.test.js +0 -28
  347. package/commands/account/__tests__/list.test.d.ts +0 -1
  348. package/commands/account/__tests__/list.test.js +0 -153
  349. package/commands/account/__tests__/remove.test.d.ts +0 -1
  350. package/commands/account/__tests__/remove.test.js +0 -36
  351. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  352. package/commands/account/__tests__/removeOverride.js +0 -25
  353. package/commands/account/__tests__/rename.test.d.ts +0 -1
  354. package/commands/account/__tests__/rename.test.js +0 -82
  355. package/commands/account/__tests__/use.test.d.ts +0 -1
  356. package/commands/account/__tests__/use.test.js +0 -170
  357. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  358. package/commands/app/__tests__/migrate.test.js +0 -111
  359. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  360. package/commands/app/secret/__tests__/add.test.js +0 -140
  361. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  362. package/commands/app/secret/__tests__/delete.test.js +0 -28
  363. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  364. package/commands/app/secret/__tests__/list.test.js +0 -25
  365. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  366. package/commands/app/secret/__tests__/update.test.js +0 -28
  367. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  368. package/commands/cms/__tests__/delete.test.js +0 -39
  369. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  370. package/commands/cms/__tests__/fetch.test.js +0 -156
  371. package/commands/cms/__tests__/function.test.d.ts +0 -1
  372. package/commands/cms/__tests__/function.test.js +0 -50
  373. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  374. package/commands/cms/__tests__/lint.test.js +0 -33
  375. package/commands/cms/__tests__/list.test.d.ts +0 -1
  376. package/commands/cms/__tests__/list.test.js +0 -42
  377. package/commands/cms/__tests__/module.test.d.ts +0 -1
  378. package/commands/cms/__tests__/module.test.js +0 -45
  379. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  380. package/commands/cms/__tests__/mv.test.js +0 -46
  381. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  382. package/commands/cms/__tests__/theme.test.js +0 -54
  383. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  384. package/commands/cms/__tests__/upload.test.js +0 -308
  385. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  386. package/commands/cms/__tests__/watch.test.js +0 -212
  387. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  388. package/commands/cms/function/__tests__/logs.test.js +0 -70
  389. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  390. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  391. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  392. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  393. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  394. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  395. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  396. package/commands/customObject/__tests__/create.test.js +0 -40
  397. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  398. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  399. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  400. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  401. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  402. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  403. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  404. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  405. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  406. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  407. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  408. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  409. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  410. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  411. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  412. package/commands/filemanager/__tests__/upload.test.js +0 -191
  413. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  414. package/commands/hubdb/__tests__/clear.test.js +0 -28
  415. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  416. package/commands/hubdb/__tests__/create.test.js +0 -28
  417. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  418. package/commands/hubdb/__tests__/delete.test.js +0 -28
  419. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  420. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  421. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  422. package/commands/hubdb/__tests__/list.test.js +0 -88
  423. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  424. package/commands/mcp/__tests__/setup.test.js +0 -26
  425. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  426. package/commands/mcp/__tests__/start.test.js +0 -137
  427. package/commands/project/__tests__/add.test.d.ts +0 -1
  428. package/commands/project/__tests__/add.test.js +0 -107
  429. package/commands/project/__tests__/create.test.d.ts +0 -1
  430. package/commands/project/__tests__/create.test.js +0 -97
  431. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  432. package/commands/project/__tests__/deploy.test.js +0 -307
  433. package/commands/project/__tests__/dev.test.d.ts +0 -1
  434. package/commands/project/__tests__/dev.test.js +0 -273
  435. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  436. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  437. package/commands/project/__tests__/download.test.d.ts +0 -1
  438. package/commands/project/__tests__/download.test.js +0 -39
  439. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  440. package/commands/project/__tests__/installDeps.test.js +0 -140
  441. package/commands/project/__tests__/lint.test.d.ts +0 -1
  442. package/commands/project/__tests__/lint.test.js +0 -704
  443. package/commands/project/__tests__/list.test.d.ts +0 -1
  444. package/commands/project/__tests__/list.test.js +0 -31
  445. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  446. package/commands/project/__tests__/listBuilds.test.js +0 -38
  447. package/commands/project/__tests__/logs.test.d.ts +0 -1
  448. package/commands/project/__tests__/logs.test.js +0 -202
  449. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  450. package/commands/project/__tests__/migrate.test.js +0 -106
  451. package/commands/project/__tests__/open.test.d.ts +0 -1
  452. package/commands/project/__tests__/open.test.js +0 -39
  453. package/commands/project/__tests__/profile.test.d.ts +0 -1
  454. package/commands/project/__tests__/profile.test.js +0 -42
  455. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  456. package/commands/project/__tests__/updateDeps.test.js +0 -140
  457. package/commands/project/__tests__/upload.test.d.ts +0 -1
  458. package/commands/project/__tests__/upload.test.js +0 -234
  459. package/commands/project/__tests__/validate.test.d.ts +0 -1
  460. package/commands/project/__tests__/validate.test.js +0 -381
  461. package/commands/project/__tests__/watch.test.d.ts +0 -1
  462. package/commands/project/__tests__/watch.test.js +0 -35
  463. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  464. package/commands/sandbox/__tests__/create.test.js +0 -245
  465. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  466. package/commands/sandbox/__tests__/delete.test.js +0 -31
  467. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  468. package/commands/secret/__tests__/addSecret.test.js +0 -162
  469. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  470. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  471. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  472. package/commands/secret/__tests__/listSecret.test.js +0 -29
  473. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  474. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  475. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  476. package/commands/testAccount/__tests__/create.test.js +0 -106
  477. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  478. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  479. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  480. package/commands/testAccount/__tests__/delete.test.js +0 -29
  481. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  482. package/commands/testAccount/__tests__/importData.test.js +0 -92
  483. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  484. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  485. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  486. package/lib/__tests__/accountAuth.test.js +0 -258
  487. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  488. package/lib/__tests__/accountTypes.test.js +0 -98
  489. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  490. package/lib/__tests__/buildAccount.test.js +0 -262
  491. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  492. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  493. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  494. package/lib/__tests__/commandSuggestion.test.js +0 -119
  495. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  496. package/lib/__tests__/commonOpts.test.js +0 -80
  497. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  498. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  499. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  500. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  501. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  502. package/lib/__tests__/hasFeature.test.js +0 -167
  503. package/lib/__tests__/http.test.d.ts +0 -1
  504. package/lib/__tests__/http.test.js +0 -40
  505. package/lib/__tests__/importData.test.d.ts +0 -1
  506. package/lib/__tests__/importData.test.js +0 -98
  507. package/lib/__tests__/npmCli.test.d.ts +0 -1
  508. package/lib/__tests__/npmCli.test.js +0 -84
  509. package/lib/__tests__/oauth.test.d.ts +0 -1
  510. package/lib/__tests__/oauth.test.js +0 -109
  511. package/lib/__tests__/parsing.test.d.ts +0 -1
  512. package/lib/__tests__/parsing.test.js +0 -34
  513. package/lib/__tests__/polling.test.d.ts +0 -1
  514. package/lib/__tests__/polling.test.js +0 -76
  515. package/lib/__tests__/process.test.d.ts +0 -1
  516. package/lib/__tests__/process.test.js +0 -89
  517. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  518. package/lib/__tests__/sandboxSync.test.js +0 -147
  519. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  520. package/lib/__tests__/sandboxes.test.js +0 -156
  521. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  522. package/lib/__tests__/serverlessLogs.test.js +0 -148
  523. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  524. package/lib/__tests__/usageTracking.test.js +0 -197
  525. package/lib/__tests__/validation.test.d.ts +0 -1
  526. package/lib/__tests__/validation.test.js +0 -143
  527. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  528. package/lib/__tests__/yargsUtils.test.js +0 -124
  529. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  530. package/lib/app/__tests__/migrate.test.js +0 -638
  531. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  532. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  533. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  534. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  535. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  536. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  537. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  538. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  539. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  540. package/lib/mcp/__tests__/setup.test.js +0 -194
  541. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  542. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  543. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  544. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  545. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  546. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  547. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  548. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  549. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  550. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  551. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  552. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  553. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  554. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  555. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  556. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  557. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  558. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  559. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  560. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  561. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  562. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  563. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  564. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  565. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  566. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  567. package/lib/projects/__tests__/components.test.d.ts +0 -1
  568. package/lib/projects/__tests__/components.test.js +0 -426
  569. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  570. package/lib/projects/__tests__/deploy.test.js +0 -231
  571. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  572. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  573. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  574. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  575. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  576. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  577. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  578. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  579. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  580. package/lib/projects/__tests__/projects.test.js +0 -58
  581. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  582. package/lib/projects/__tests__/structure.test.js +0 -210
  583. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  584. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  585. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  586. package/lib/projects/__tests__/upload.test.js +0 -183
  587. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  588. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  589. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  590. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  591. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  592. package/lib/projects/create/__tests__/legacy.test.js +0 -90
  593. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  594. package/lib/projects/create/__tests__/v2.test.js +0 -257
  595. package/lib/projects/platformVersion.d.ts +0 -9
  596. package/lib/projects/platformVersion.js +0 -39
  597. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  598. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  599. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  600. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  601. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  602. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  603. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  604. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  605. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  606. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  607. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  608. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  609. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  610. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  611. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  612. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  613. package/lib/sandboxSync.d.ts +0 -4
  614. package/lib/sandboxSync.js +0 -102
  615. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  616. package/lib/theme/__tests__/migrate.test.js +0 -256
  617. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  618. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  619. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  620. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  621. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  622. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -255
  623. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  624. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -228
  625. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  626. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -209
  627. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  628. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -187
  629. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  630. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -125
  631. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  632. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -125
  633. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  634. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -158
  635. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  636. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -133
  637. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  638. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -462
  639. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  640. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -126
  641. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  642. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  643. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  644. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  645. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  646. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -178
  647. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  648. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  649. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  650. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  651. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  652. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  653. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  654. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  655. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  656. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  657. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  658. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -179
  659. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  660. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  661. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  662. package/mcp-server/utils/__tests__/command.test.js +0 -45
  663. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  664. package/mcp-server/utils/__tests__/content.test.js +0 -164
  665. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  666. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -124
  667. package/mcp-server/utils/__tests__/project.test.d.ts +0 -1
  668. package/mcp-server/utils/__tests__/project.test.js +0 -140
  669. package/mcp-server/utils/project.d.ts +0 -5
  670. package/mcp-server/utils/project.js +0 -18
@@ -4,7 +4,7 @@ import { fetchProjectComponentsMetadata } from '@hubspot/local-dev-lib/api/proje
4
4
  import { fetchAppMetadataBySourceId } from '@hubspot/local-dev-lib/api/appsDev';
5
5
  import { uiLogger } from '../ui/logger.js';
6
6
  import { commands } from '../../lang/en.js';
7
- import { isV2Project } from './platformVersion.js';
7
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
8
8
  import { getDeployedProjectNodes } from './localDev/helpers/project.js';
9
9
  import { debugError } from '../errorHandlers/index.js';
10
10
  class _ProjectLogsManager {
@@ -51,7 +51,7 @@ class _ProjectLogsManager {
51
51
  throw new Error(commands.project.logs.errors.failedToFetchProjectDetails);
52
52
  }
53
53
  this.projectId = project.id;
54
- if (isV2Project(projectConfig.platformVersion)) {
54
+ if (!isLegacyProject(projectConfig.platformVersion)) {
55
55
  const deployedBuildId = project.deployedBuild.buildId;
56
56
  if (!deployedBuildId) {
57
57
  throw new Error(commands.project.logs.errors.noDeployedBuild);
@@ -134,9 +134,12 @@ class _ProjectLogsManager {
134
134
  return this.functions.map(serverlessFunction => serverlessFunction.componentName);
135
135
  }
136
136
  setFunction(functionName) {
137
- if (!functionName || this.functions.length === 0) {
137
+ if (this.functions.length === 0) {
138
138
  throw new Error(commands.project.logs.errors.noFunctionsInProject);
139
139
  }
140
+ if (!functionName) {
141
+ throw new Error(commands.project.logs.errors.functionNameRequired);
142
+ }
140
143
  this.selectedFunction = this.functions.find(serverlessFunction => serverlessFunction.componentName === functionName);
141
144
  if (!this.selectedFunction) {
142
145
  throw new Error(commands.project.logs.errors.noFunctionWithName(functionName));
@@ -114,9 +114,19 @@ export function handleComponentCollision({ dest, src, collisions }) {
114
114
  }
115
115
  });
116
116
  const filenameDifferentiator = generateSafeFilenameDifferentiator(sourceFiles, hsMetaFiles);
117
- // Exclude markdown files fromthe rename process because they should not be duplicated
118
117
  const sourceFilenameMapping = sourceFiles
119
- .filter(filename => !filename.endsWith('.md'))
118
+ .filter(filename => {
119
+ // Exclude markdown files from the rename process because they should not be duplicated
120
+ if (filename.endsWith('.md')) {
121
+ return false;
122
+ }
123
+ // Also exclude the tooling config we add to new projects
124
+ const base = path.parse(filename).base;
125
+ if (base === '.prettierrc.json' || base === 'eslint.config.js') {
126
+ return false;
127
+ }
128
+ return true;
129
+ })
120
130
  .reduce((acc, filename) => {
121
131
  return {
122
132
  ...acc,
@@ -183,12 +193,13 @@ export async function updateHsMetaFilesWithAutoGeneratedFields(projectName, hsMe
183
193
  return component.uid;
184
194
  };
185
195
  let uid = getBaseUid();
186
- let differentiator = 1;
196
+ let differentiator = 2;
187
197
  while (existingUids.includes(uid)) {
188
- differentiator++;
189
198
  uid = `${getBaseUid()}_${differentiator}`;
199
+ differentiator++;
190
200
  }
191
201
  component.uid = uid;
202
+ existingUids.push(uid);
192
203
  if (component.type === AppKey && component.config) {
193
204
  component.config.name = `${projectName}-App`;
194
205
  }
@@ -1,17 +1,15 @@
1
1
  import { selectProjectTemplatePrompt, } from '../../prompts/selectProjectTemplatePrompt.js';
2
2
  import { projectNameAndDestPrompt } from '../../prompts/projectNameAndDestPrompt.js';
3
3
  import { DEFAULT_PROJECT_TEMPLATE_BRANCH, HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, EMPTY_PROJECT, } from '../../constants.js';
4
- import { isV2Project } from '../platformVersion.js';
4
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
5
5
  import { v2ComponentFlow } from './v2.js';
6
6
  import { getProjectTemplateListFromRepo } from './legacy.js';
7
- import { uiLogger } from '../../ui/logger.js';
8
7
  import { commands } from '../../../lang/en.js';
9
- import { EXIT_CODES } from '../../enums/exitCodes.js';
10
8
  export async function handleProjectCreationFlow(args) {
11
9
  const { platformVersion, templateSource, projectBase, auth: providedAuth, distribution: providedDistribution, } = args;
12
10
  const repo = templateSource || HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH;
13
11
  const projectNameAndDestPromptResponse = await projectNameAndDestPrompt(args);
14
- if (isV2Project(platformVersion)) {
12
+ if (!isLegacyProject(platformVersion)) {
15
13
  const { componentTemplateChoices, authType, distribution, repoConfig, projectContents, } = await v2ComponentFlow(platformVersion, projectBase, providedAuth, providedDistribution, args.derivedAccountId);
16
14
  const selectProjectTemplatePromptResponse = await selectProjectTemplatePrompt(args, undefined, projectContents !== EMPTY_PROJECT ? componentTemplateChoices : undefined);
17
15
  return {
@@ -25,8 +23,7 @@ export async function handleProjectCreationFlow(args) {
25
23
  }
26
24
  const projectTemplates = await getProjectTemplateListFromRepo(repo, DEFAULT_PROJECT_TEMPLATE_BRANCH);
27
25
  if (!projectTemplates.length) {
28
- uiLogger.error(commands.project.create.errors.failedToFetchProjectList);
29
- process.exit(EXIT_CODES.ERROR);
26
+ throw new Error(commands.project.create.errors.failedToFetchProjectList);
30
27
  }
31
28
  const selectProjectTemplatePromptResponse = await selectProjectTemplatePrompt(args, projectTemplates);
32
29
  return {
@@ -1,15 +1,13 @@
1
1
  import { fetchRepoFile } from '@hubspot/local-dev-lib/api/github';
2
2
  import { DEFAULT_PROJECT_TEMPLATE_BRANCH, HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, PROJECT_COMPONENT_TYPES, } from '../../constants.js';
3
- import { EXIT_CODES } from '../../enums/exitCodes.js';
4
3
  import { debugError } from '../../errorHandlers/index.js';
5
- import { uiLogger } from '../../ui/logger.js';
6
- import { isV2Project } from '../platformVersion.js';
4
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
7
5
  import { lib } from '../../../lang/en.js';
8
6
  const PROJECT_TEMPLATE_PROPERTIES = ['name', 'label', 'path'];
9
7
  export const EMPTY_PROJECT_TEMPLATE_NAME = 'no-template';
10
8
  export async function getConfigForPlatformVersion(platformVersion) {
11
9
  let path = '';
12
- if (isV2Project(platformVersion)) {
10
+ if (!isLegacyProject(platformVersion)) {
13
11
  path = `${platformVersion}/`;
14
12
  }
15
13
  const { data } = await fetchRepoFile(HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, `${path}config.json`, DEFAULT_PROJECT_TEMPLATE_BRANCH);
@@ -36,18 +34,15 @@ export async function getProjectTemplateListFromRepo(templateSource, githubRef)
36
34
  }
37
35
  catch (e) {
38
36
  debugError(e);
39
- uiLogger.error(lib.projects.create.errors.missingConfigFileTemplateSource);
40
- return process.exit(EXIT_CODES.ERROR);
37
+ throw new Error(lib.projects.create.errors.missingConfigFileTemplateSource);
41
38
  }
42
39
  if (!config || !config[PROJECT_COMPONENT_TYPES.PROJECTS]) {
43
- uiLogger.error(lib.projects.create.errors.noProjectsInConfig);
44
- return process.exit(EXIT_CODES.ERROR);
40
+ throw new Error(lib.projects.create.errors.noProjectsInConfig);
45
41
  }
46
42
  const templates = config[PROJECT_COMPONENT_TYPES.PROJECTS];
47
43
  const templatesContainAllProperties = templates.every(config => PROJECT_TEMPLATE_PROPERTIES.every(p => Object.prototype.hasOwnProperty.call(config, p)));
48
44
  if (!templatesContainAllProperties) {
49
- uiLogger.error(lib.projects.create.errors.missingPropertiesInConfig);
50
- return process.exit(EXIT_CODES.ERROR);
45
+ throw new Error(lib.projects.create.errors.missingPropertiesInConfig);
51
46
  }
52
47
  return templates;
53
48
  }
@@ -1,12 +1,10 @@
1
1
  import { marketplaceDistribution, oAuth, privateDistribution, staticAuth, EMPTY_PROJECT, PROJECT_WITH_APP, FEATURES, } from '../../constants.js';
2
2
  import { commands, lib } from '../../../lang/en.js';
3
3
  import { listPrompt } from '../../prompts/promptUtils.js';
4
- import { APP_EVENTS_KEY as AppEventsKey, PAGES_KEY as PagesKey, } from '@hubspot/project-parsing-lib/constants';
5
- import { isV2Project } from '../platformVersion.js';
4
+ import { APP_EVENTS_KEY as AppEventsKey } from '@hubspot/project-parsing-lib/constants';
5
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
6
6
  import path from 'path';
7
7
  import { getConfigForPlatformVersion } from './legacy.js';
8
- import { logError } from '../../errorHandlers/index.js';
9
- import { EXIT_CODES } from '../../enums/exitCodes.js';
10
8
  import { hasFeature } from '../../hasFeature.js';
11
9
  export async function createV2App(providedAuth, providedDistribution) {
12
10
  let authType;
@@ -49,7 +47,6 @@ export async function createV2App(providedAuth, providedDistribution) {
49
47
  }
50
48
  const componentTypeToGateMap = {
51
49
  [AppEventsKey]: FEATURES.APP_EVENTS,
52
- [PagesKey]: FEATURES.APPS_HOME,
53
50
  'workflow-action-tool': FEATURES.AGENT_TOOLS,
54
51
  };
55
52
  export async function calculateComponentTemplateChoices(components, authType, distribution, accountId, projectMetadata) {
@@ -111,21 +108,15 @@ export async function v2ComponentFlow(platformVersion, projectBase, providedAuth
111
108
  let repoConfig = undefined;
112
109
  let authType;
113
110
  let distribution;
114
- try {
115
- repoConfig = await getConfigForPlatformVersion(platformVersion);
116
- }
117
- catch (error) {
118
- logError(error);
119
- return process.exit(EXIT_CODES.SUCCESS);
120
- }
111
+ repoConfig = await getConfigForPlatformVersion(platformVersion);
121
112
  const projectContentsChoice = projectBase ||
122
113
  (await listPrompt(commands.project.create.prompts.parentComponents, {
123
114
  choices: [
115
+ { name: commands.project.create.prompts.app, value: PROJECT_WITH_APP },
124
116
  {
125
117
  name: commands.project.create.prompts.emptyProject,
126
118
  value: EMPTY_PROJECT,
127
119
  },
128
- { name: commands.project.create.prompts.app, value: PROJECT_WITH_APP },
129
120
  ],
130
121
  }));
131
122
  if (projectContentsChoice === PROJECT_WITH_APP) {
@@ -143,7 +134,7 @@ export async function v2ComponentFlow(platformVersion, projectBase, providedAuth
143
134
  };
144
135
  }
145
136
  export function generateComponentPaths({ selectProjectTemplatePromptResponse, platformVersion, repoConfig, projectContents, authType, distribution, }) {
146
- if (!isV2Project(platformVersion)) {
137
+ if (isLegacyProject(platformVersion)) {
147
138
  return [];
148
139
  }
149
140
  const components = selectProjectTemplatePromptResponse.componentTemplates?.map((componentTemplate) => {
@@ -0,0 +1,13 @@
1
+ export declare const DELETION_POLL_TIMEOUT_MS: number;
2
+ export declare const DELETION_DEPLOY_SUCCESS_STATES: string[];
3
+ export declare const DELETION_DEPLOY_ERROR_STATES: ("FAILURE" | "ERROR" | "REVERTED")[];
4
+ export declare function resolveProjectName(accountId: number, projectArg: string | undefined): Promise<string>;
5
+ export declare function fetchProjectInstallCount(accountId: number, projectId: number): Promise<number>;
6
+ export declare function checkDeployedComponents(accountId: number, projectName: string): Promise<{
7
+ platformVersion: string;
8
+ hasUnifiedComponents: boolean;
9
+ projectId: number;
10
+ }>;
11
+ export declare function deleteDeployedComponents(accountId: number, projectName: string): Promise<void>;
12
+ export declare function handleProjectDeletion(accountId: number, projectName: string): Promise<void>;
13
+ export declare function confirmDeletion(projectName: string, accountId: number, projectId: number): Promise<void>;
@@ -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') {
@@ -2,7 +2,6 @@ import { createProject, fetchProject, } from '@hubspot/local-dev-lib/api/project
2
2
  import { isSpecifiedError } from '@hubspot/local-dev-lib/errors/index';
3
3
  import { DEFAULT_POLLING_DELAY } from '../constants.js';
4
4
  import { promptUser } from '../prompts/promptUtils.js';
5
- import { EXIT_CODES } from '../enums/exitCodes.js';
6
5
  import { uiAccountDescription } from '../ui/index.js';
7
6
  import SpinniesManager from '../ui/SpinniesManager.js';
8
7
  import { logError, ApiErrorContext } from '../errorHandlers/index.js';
@@ -85,6 +84,6 @@ export async function ensureProjectExists(accountId, projectName, { forceCreate
85
84
  }
86
85
  }
87
86
  logError(err, new ApiErrorContext({ accountId }));
88
- process.exit(EXIT_CODES.ERROR);
87
+ return { projectExists: false };
89
88
  }
90
89
  }
@@ -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>;