@hubspot/cli 8.1.0 → 8.1.1-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 (676) 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.d.ts +2 -2
  91. package/commands/project/list.js +15 -14
  92. package/commands/project/listBuilds.js +8 -6
  93. package/commands/project/logs.js +5 -6
  94. package/commands/project/migrate.js +18 -18
  95. package/commands/project/open.js +5 -6
  96. package/commands/project/profile/add.js +12 -8
  97. package/commands/project/profile/delete.js +15 -11
  98. package/commands/project/updateDeps.js +9 -6
  99. package/commands/project/upload.d.ts +1 -0
  100. package/commands/project/upload.js +39 -19
  101. package/commands/project/validate.js +12 -12
  102. package/commands/project/watch.js +32 -19
  103. package/commands/project.js +12 -3
  104. package/commands/sandbox/create.js +18 -45
  105. package/commands/sandbox/delete.js +13 -14
  106. package/commands/secret/addSecret.js +6 -7
  107. package/commands/secret/deleteSecret.js +5 -6
  108. package/commands/secret/listSecret.js +2 -3
  109. package/commands/secret/updateSecret.js +4 -5
  110. package/commands/testAccount/create.d.ts +1 -1
  111. package/commands/testAccount/create.js +25 -17
  112. package/commands/testAccount/createConfig.js +7 -8
  113. package/commands/testAccount/delete.js +27 -18
  114. package/commands/testAccount/importData.js +6 -7
  115. package/commands/upgrade.js +9 -10
  116. package/lang/en.d.ts +258 -14
  117. package/lang/en.js +275 -28
  118. package/lib/accountAuth.js +4 -0
  119. package/lib/api/usageTracking.d.ts +29 -0
  120. package/lib/api/usageTracking.js +28 -0
  121. package/lib/app/migrate.js +18 -5
  122. package/lib/buildAccount.d.ts +1 -6
  123. package/lib/buildAccount.js +9 -42
  124. package/lib/commandSuggestion.js +1 -7
  125. package/lib/constants.d.ts +2 -4
  126. package/lib/constants.js +4 -4
  127. package/lib/doctor/Diagnosis.js +5 -5
  128. package/lib/doctor/Doctor.js +7 -7
  129. package/lib/errorHandlers/index.js +4 -3
  130. package/lib/errorHandlers/suppressError.js +4 -0
  131. package/lib/errors/PromptExitError.d.ts +6 -0
  132. package/lib/errors/PromptExitError.js +11 -0
  133. package/lib/generateSelectors.js +1 -2
  134. package/lib/getStartedV2Actions.d.ts +13 -0
  135. package/lib/getStartedV2Actions.js +56 -3
  136. package/lib/hasFeature.js +1 -2
  137. package/lib/link/accountTableUtils.d.ts +10 -0
  138. package/lib/link/accountTableUtils.js +39 -0
  139. package/lib/link/index.d.ts +18 -0
  140. package/lib/link/index.js +185 -0
  141. package/lib/link/linkUtils.d.ts +5 -0
  142. package/lib/link/linkUtils.js +49 -0
  143. package/lib/link/prompts.d.ts +7 -0
  144. package/lib/link/prompts.js +126 -0
  145. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  146. package/lib/link/renderLinkedAccountsTable.js +14 -0
  147. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  148. package/lib/link/warnIfLinkedDirectory.js +9 -0
  149. package/lib/mcp/setup.d.ts +1 -0
  150. package/lib/mcp/setup.js +77 -30
  151. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  152. package/lib/process.d.ts +1 -1
  153. package/lib/process.js +10 -3
  154. package/lib/projects/ProjectLogsManager.js +6 -3
  155. package/lib/projects/components.js +15 -4
  156. package/lib/projects/create/index.js +3 -6
  157. package/lib/projects/create/legacy.js +5 -10
  158. package/lib/projects/create/v2.js +5 -14
  159. package/lib/projects/delete.d.ts +13 -0
  160. package/lib/projects/delete.js +193 -0
  161. package/lib/projects/deploy.d.ts +1 -1
  162. package/lib/projects/deploy.js +2 -2
  163. package/lib/projects/ensureProjectExists.js +1 -2
  164. package/lib/projects/localDev/AppDevModeInterface.js +13 -9
  165. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +4 -1
  166. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +3 -3
  167. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  168. package/lib/projects/localDev/DevSessionManager.js +31 -19
  169. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +5 -0
  170. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +21 -10
  171. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  172. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  173. package/lib/projects/localDev/LocalDevState.js +3 -1
  174. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  175. package/lib/projects/localDev/helpers/account.js +21 -30
  176. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  177. package/lib/projects/localDev/helpers/process.js +4 -10
  178. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  179. package/lib/projects/localDev/helpers/project.js +31 -15
  180. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  181. package/lib/projects/npmAuditOnUpload.js +73 -0
  182. package/lib/projects/pollProjectBuildAndDeploy.js +90 -85
  183. package/lib/projects/projectInfo.d.ts +5 -0
  184. package/lib/projects/projectInfo.js +82 -0
  185. package/lib/projects/projectProfiles.d.ts +1 -2
  186. package/lib/projects/projectProfiles.js +5 -17
  187. package/lib/projects/uieLinting.d.ts +17 -3
  188. package/lib/projects/uieLinting.js +93 -28
  189. package/lib/projects/upload.d.ts +3 -1
  190. package/lib/projects/upload.js +70 -50
  191. package/lib/projects/watch.d.ts +2 -1
  192. package/lib/projects/watch.js +32 -24
  193. package/lib/projects/workspaces.d.ts +42 -0
  194. package/lib/projects/workspaces.js +350 -0
  195. package/lib/prompts/createApiSamplePrompt.js +4 -0
  196. package/lib/prompts/downloadProjectPrompt.js +11 -10
  197. package/lib/prompts/installAppPrompt.js +3 -2
  198. package/lib/prompts/personalAccessKeyPrompt.js +3 -2
  199. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  200. package/lib/prompts/projectDevTargetAccountPrompt.js +23 -16
  201. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  202. package/lib/prompts/projectProfilePrompt.js +46 -0
  203. package/lib/prompts/projectsLogsPrompt.js +3 -0
  204. package/lib/prompts/promptUtils.js +4 -2
  205. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  206. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  207. package/lib/sandboxes.d.ts +1 -9
  208. package/lib/sandboxes.js +0 -21
  209. package/lib/serverlessLogs.js +50 -44
  210. package/lib/theme/cmsDevServerProcess.d.ts +14 -0
  211. package/lib/theme/cmsDevServerProcess.js +149 -0
  212. package/lib/theme/cmsDevServerRunner.d.ts +14 -0
  213. package/lib/theme/cmsDevServerRunner.js +90 -0
  214. package/lib/theme/migrate.d.ts +1 -1
  215. package/lib/theme/migrate.js +1 -5
  216. package/lib/ui/SpinniesManager.d.ts +1 -0
  217. package/lib/ui/SpinniesManager.js +22 -6
  218. package/lib/ui/accountTable.d.ts +8 -0
  219. package/lib/ui/accountTable.js +67 -0
  220. package/lib/ui/spinniesUtils.d.ts +0 -1
  221. package/lib/ui/spinniesUtils.js +6 -16
  222. package/lib/usageTracking.d.ts +9 -20
  223. package/lib/usageTracking.js +51 -34
  224. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  225. package/lib/yargs/makeYargsBuilder.js +33 -0
  226. package/lib/yargs/makeYargsHandlerWithUsageTracking.d.ts +3 -0
  227. package/lib/yargs/makeYargsHandlerWithUsageTracking.js +121 -0
  228. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  229. package/lib/yargs/parseYargsOrExit.js +25 -0
  230. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  231. package/lib/yargs/strictEnforceBoolean.js +13 -0
  232. package/lib/yargsUtils.d.ts +3 -16
  233. package/lib/yargsUtils.js +3 -48
  234. package/mcp-server/Tool.d.ts +15 -0
  235. package/mcp-server/Tool.js +53 -0
  236. package/mcp-server/server.js +43 -3
  237. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +4 -2
  238. package/mcp-server/tools/cms/HsCreateFunctionTool.js +9 -7
  239. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -2
  240. package/mcp-server/tools/cms/HsCreateModuleTool.js +9 -7
  241. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +4 -2
  242. package/mcp-server/tools/cms/HsCreateTemplateTool.js +9 -7
  243. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -2
  244. package/mcp-server/tools/cms/HsFunctionLogsTool.js +9 -7
  245. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +4 -2
  246. package/mcp-server/tools/cms/HsListFunctionsTool.js +9 -7
  247. package/mcp-server/tools/cms/HsListTool.d.ts +4 -2
  248. package/mcp-server/tools/cms/HsListTool.js +9 -7
  249. package/mcp-server/tools/index.d.ts +3 -2
  250. package/mcp-server/tools/index.js +24 -22
  251. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +25 -5
  252. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -18
  253. package/mcp-server/tools/project/CreateProjectTool.d.ts +29 -6
  254. package/mcp-server/tools/project/CreateProjectTool.js +16 -18
  255. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +4 -2
  256. package/mcp-server/tools/project/CreateTestAccountTool.js +22 -10
  257. package/mcp-server/tools/project/DeployProjectTool.d.ts +4 -2
  258. package/mcp-server/tools/project/DeployProjectTool.js +6 -8
  259. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  260. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  261. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  262. package/mcp-server/tools/project/DocsSearchTool.js +32 -9
  263. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  264. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  265. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +4 -2
  266. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +13 -14
  267. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +4 -2
  268. package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
  269. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +6 -4
  270. package/mcp-server/tools/project/GetBuildLogsTool.js +15 -14
  271. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +5 -3
  272. package/mcp-server/tools/project/GetBuildStatusTool.js +12 -11
  273. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -2
  274. package/mcp-server/tools/project/GetConfigValuesTool.js +12 -7
  275. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +10 -3
  276. package/mcp-server/tools/project/GuidedWalkthroughTool.js +5 -12
  277. package/mcp-server/tools/project/UploadProjectTools.d.ts +4 -2
  278. package/mcp-server/tools/project/UploadProjectTools.js +11 -9
  279. package/mcp-server/tools/project/ValidateProjectTool.d.ts +4 -2
  280. package/mcp-server/tools/project/ValidateProjectTool.js +10 -8
  281. package/mcp-server/tools/project/constants.d.ts +13 -1
  282. package/mcp-server/tools/project/constants.js +13 -16
  283. package/mcp-server/types.d.ts +0 -7
  284. package/mcp-server/types.js +1 -13
  285. package/mcp-server/utils/command.d.ts +5 -0
  286. package/mcp-server/utils/command.js +24 -0
  287. package/mcp-server/utils/feedbackTracking.js +2 -17
  288. package/mcp-server/utils/logger.d.ts +10 -0
  289. package/mcp-server/utils/logger.js +29 -0
  290. package/mcp-server/utils/toolUsageTracking.js +10 -8
  291. package/package.json +15 -11
  292. package/types/Link.d.ts +32 -0
  293. package/types/Link.js +5 -0
  294. package/types/LocalDev.d.ts +5 -0
  295. package/types/PackageJson.d.ts +1 -0
  296. package/types/Projects.d.ts +19 -0
  297. package/types/Prompts.d.ts +1 -0
  298. package/types/Yargs.d.ts +19 -1
  299. package/ui/components/getStarted/GetStartedFlow.js +79 -2
  300. package/ui/components/getStarted/reducer.d.ts +20 -0
  301. package/ui/components/getStarted/reducer.js +36 -0
  302. package/ui/components/getStarted/screens/InstallationScreen.d.ts +7 -0
  303. package/ui/components/getStarted/screens/InstallationScreen.js +16 -0
  304. package/ui/components/getStarted/screens/ProjectSetupScreen.js +2 -1
  305. package/ui/lib/constants.d.ts +1 -0
  306. package/ui/lib/constants.js +1 -0
  307. package/api/__tests__/migrate.test.d.ts +0 -1
  308. package/api/__tests__/migrate.test.js +0 -199
  309. package/commands/__tests__/account.test.d.ts +0 -1
  310. package/commands/__tests__/account.test.js +0 -69
  311. package/commands/__tests__/auth.test.d.ts +0 -1
  312. package/commands/__tests__/auth.test.js +0 -43
  313. package/commands/__tests__/cms.test.d.ts +0 -1
  314. package/commands/__tests__/cms.test.js +0 -87
  315. package/commands/__tests__/config.test.d.ts +0 -1
  316. package/commands/__tests__/config.test.js +0 -44
  317. package/commands/__tests__/customObject.test.d.ts +0 -1
  318. package/commands/__tests__/customObject.test.js +0 -68
  319. package/commands/__tests__/doctor.test.d.ts +0 -1
  320. package/commands/__tests__/doctor.test.js +0 -132
  321. package/commands/__tests__/feedback.test.d.ts +0 -1
  322. package/commands/__tests__/feedback.test.js +0 -24
  323. package/commands/__tests__/filemanager.test.d.ts +0 -1
  324. package/commands/__tests__/filemanager.test.js +0 -45
  325. package/commands/__tests__/getStarted.test.d.ts +0 -1
  326. package/commands/__tests__/getStarted.test.js +0 -173
  327. package/commands/__tests__/hubdb.test.d.ts +0 -1
  328. package/commands/__tests__/hubdb.test.js +0 -50
  329. package/commands/__tests__/init.test.d.ts +0 -1
  330. package/commands/__tests__/init.test.js +0 -42
  331. package/commands/__tests__/mcp.test.d.ts +0 -1
  332. package/commands/__tests__/mcp.test.js +0 -46
  333. package/commands/__tests__/open.test.d.ts +0 -1
  334. package/commands/__tests__/open.test.js +0 -58
  335. package/commands/__tests__/project.test.d.ts +0 -1
  336. package/commands/__tests__/project.test.js +0 -125
  337. package/commands/__tests__/sandbox.test.d.ts +0 -1
  338. package/commands/__tests__/sandbox.test.js +0 -44
  339. package/commands/__tests__/secret.test.d.ts +0 -1
  340. package/commands/__tests__/secret.test.js +0 -49
  341. package/commands/__tests__/testAccount.test.d.ts +0 -1
  342. package/commands/__tests__/testAccount.test.js +0 -57
  343. package/commands/__tests__/upgrade.test.d.ts +0 -1
  344. package/commands/__tests__/upgrade.test.js +0 -309
  345. package/commands/account/__tests__/auth.test.d.ts +0 -1
  346. package/commands/account/__tests__/auth.test.js +0 -206
  347. package/commands/account/__tests__/clean.test.d.ts +0 -1
  348. package/commands/account/__tests__/clean.test.js +0 -28
  349. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  350. package/commands/account/__tests__/createOverride.test.js +0 -32
  351. package/commands/account/__tests__/info.test.d.ts +0 -1
  352. package/commands/account/__tests__/info.test.js +0 -28
  353. package/commands/account/__tests__/list.test.d.ts +0 -1
  354. package/commands/account/__tests__/list.test.js +0 -153
  355. package/commands/account/__tests__/remove.test.d.ts +0 -1
  356. package/commands/account/__tests__/remove.test.js +0 -36
  357. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  358. package/commands/account/__tests__/removeOverride.js +0 -25
  359. package/commands/account/__tests__/rename.test.d.ts +0 -1
  360. package/commands/account/__tests__/rename.test.js +0 -82
  361. package/commands/account/__tests__/use.test.d.ts +0 -1
  362. package/commands/account/__tests__/use.test.js +0 -170
  363. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  364. package/commands/app/__tests__/migrate.test.js +0 -111
  365. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  366. package/commands/app/secret/__tests__/add.test.js +0 -140
  367. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  368. package/commands/app/secret/__tests__/delete.test.js +0 -28
  369. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  370. package/commands/app/secret/__tests__/list.test.js +0 -25
  371. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  372. package/commands/app/secret/__tests__/update.test.js +0 -28
  373. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  374. package/commands/cms/__tests__/delete.test.js +0 -39
  375. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  376. package/commands/cms/__tests__/fetch.test.js +0 -156
  377. package/commands/cms/__tests__/function.test.d.ts +0 -1
  378. package/commands/cms/__tests__/function.test.js +0 -50
  379. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  380. package/commands/cms/__tests__/lint.test.js +0 -33
  381. package/commands/cms/__tests__/list.test.d.ts +0 -1
  382. package/commands/cms/__tests__/list.test.js +0 -42
  383. package/commands/cms/__tests__/module.test.d.ts +0 -1
  384. package/commands/cms/__tests__/module.test.js +0 -45
  385. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  386. package/commands/cms/__tests__/mv.test.js +0 -46
  387. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  388. package/commands/cms/__tests__/theme.test.js +0 -54
  389. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  390. package/commands/cms/__tests__/upload.test.js +0 -308
  391. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  392. package/commands/cms/__tests__/watch.test.js +0 -212
  393. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  394. package/commands/cms/function/__tests__/logs.test.js +0 -70
  395. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  396. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  397. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  398. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  399. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  400. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  401. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  402. package/commands/customObject/__tests__/create.test.js +0 -40
  403. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  404. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  405. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  406. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  407. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  408. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  409. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  410. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  411. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  412. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  413. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  414. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  415. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  416. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  417. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  418. package/commands/filemanager/__tests__/upload.test.js +0 -191
  419. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  420. package/commands/hubdb/__tests__/clear.test.js +0 -28
  421. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  422. package/commands/hubdb/__tests__/create.test.js +0 -28
  423. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  424. package/commands/hubdb/__tests__/delete.test.js +0 -28
  425. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  426. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  427. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  428. package/commands/hubdb/__tests__/list.test.js +0 -88
  429. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  430. package/commands/mcp/__tests__/setup.test.js +0 -26
  431. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  432. package/commands/mcp/__tests__/start.test.js +0 -137
  433. package/commands/project/__tests__/add.test.d.ts +0 -1
  434. package/commands/project/__tests__/add.test.js +0 -107
  435. package/commands/project/__tests__/create.test.d.ts +0 -1
  436. package/commands/project/__tests__/create.test.js +0 -97
  437. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  438. package/commands/project/__tests__/deploy.test.js +0 -307
  439. package/commands/project/__tests__/dev.test.d.ts +0 -1
  440. package/commands/project/__tests__/dev.test.js +0 -273
  441. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  442. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  443. package/commands/project/__tests__/download.test.d.ts +0 -1
  444. package/commands/project/__tests__/download.test.js +0 -39
  445. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  446. package/commands/project/__tests__/installDeps.test.js +0 -140
  447. package/commands/project/__tests__/lint.test.d.ts +0 -1
  448. package/commands/project/__tests__/lint.test.js +0 -704
  449. package/commands/project/__tests__/list.test.d.ts +0 -1
  450. package/commands/project/__tests__/list.test.js +0 -31
  451. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  452. package/commands/project/__tests__/listBuilds.test.js +0 -38
  453. package/commands/project/__tests__/logs.test.d.ts +0 -1
  454. package/commands/project/__tests__/logs.test.js +0 -202
  455. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  456. package/commands/project/__tests__/migrate.test.js +0 -106
  457. package/commands/project/__tests__/open.test.d.ts +0 -1
  458. package/commands/project/__tests__/open.test.js +0 -39
  459. package/commands/project/__tests__/profile.test.d.ts +0 -1
  460. package/commands/project/__tests__/profile.test.js +0 -42
  461. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  462. package/commands/project/__tests__/updateDeps.test.js +0 -140
  463. package/commands/project/__tests__/upload.test.d.ts +0 -1
  464. package/commands/project/__tests__/upload.test.js +0 -234
  465. package/commands/project/__tests__/validate.test.d.ts +0 -1
  466. package/commands/project/__tests__/validate.test.js +0 -381
  467. package/commands/project/__tests__/watch.test.d.ts +0 -1
  468. package/commands/project/__tests__/watch.test.js +0 -35
  469. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  470. package/commands/sandbox/__tests__/create.test.js +0 -245
  471. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  472. package/commands/sandbox/__tests__/delete.test.js +0 -31
  473. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  474. package/commands/secret/__tests__/addSecret.test.js +0 -162
  475. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  476. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  477. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  478. package/commands/secret/__tests__/listSecret.test.js +0 -29
  479. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  480. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  481. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  482. package/commands/testAccount/__tests__/create.test.js +0 -106
  483. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  484. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  485. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  486. package/commands/testAccount/__tests__/delete.test.js +0 -29
  487. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  488. package/commands/testAccount/__tests__/importData.test.js +0 -92
  489. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  490. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  491. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  492. package/lib/__tests__/accountAuth.test.js +0 -258
  493. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  494. package/lib/__tests__/accountTypes.test.js +0 -98
  495. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  496. package/lib/__tests__/buildAccount.test.js +0 -262
  497. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  498. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  499. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  500. package/lib/__tests__/commandSuggestion.test.js +0 -119
  501. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  502. package/lib/__tests__/commonOpts.test.js +0 -80
  503. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  504. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  505. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  506. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  507. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  508. package/lib/__tests__/hasFeature.test.js +0 -167
  509. package/lib/__tests__/http.test.d.ts +0 -1
  510. package/lib/__tests__/http.test.js +0 -40
  511. package/lib/__tests__/importData.test.d.ts +0 -1
  512. package/lib/__tests__/importData.test.js +0 -98
  513. package/lib/__tests__/npmCli.test.d.ts +0 -1
  514. package/lib/__tests__/npmCli.test.js +0 -84
  515. package/lib/__tests__/oauth.test.d.ts +0 -1
  516. package/lib/__tests__/oauth.test.js +0 -109
  517. package/lib/__tests__/parsing.test.d.ts +0 -1
  518. package/lib/__tests__/parsing.test.js +0 -34
  519. package/lib/__tests__/polling.test.d.ts +0 -1
  520. package/lib/__tests__/polling.test.js +0 -76
  521. package/lib/__tests__/process.test.d.ts +0 -1
  522. package/lib/__tests__/process.test.js +0 -89
  523. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  524. package/lib/__tests__/sandboxSync.test.js +0 -147
  525. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  526. package/lib/__tests__/sandboxes.test.js +0 -156
  527. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  528. package/lib/__tests__/serverlessLogs.test.js +0 -148
  529. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  530. package/lib/__tests__/usageTracking.test.js +0 -197
  531. package/lib/__tests__/validation.test.d.ts +0 -1
  532. package/lib/__tests__/validation.test.js +0 -143
  533. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  534. package/lib/__tests__/yargsUtils.test.js +0 -124
  535. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  536. package/lib/app/__tests__/migrate.test.js +0 -638
  537. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  538. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  539. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  540. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  541. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  542. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  543. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  544. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  545. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  546. package/lib/mcp/__tests__/setup.test.js +0 -194
  547. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  548. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  549. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  550. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  551. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  552. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  553. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  554. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  555. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  556. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  557. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  558. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  559. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  560. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  561. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  562. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  563. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  564. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  565. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  566. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  567. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  568. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  569. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  570. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  571. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  572. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  573. package/lib/projects/__tests__/components.test.d.ts +0 -1
  574. package/lib/projects/__tests__/components.test.js +0 -426
  575. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  576. package/lib/projects/__tests__/deploy.test.js +0 -231
  577. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  578. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  579. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  580. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  581. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  582. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  583. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  584. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  585. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  586. package/lib/projects/__tests__/projects.test.js +0 -58
  587. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  588. package/lib/projects/__tests__/structure.test.js +0 -210
  589. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  590. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  591. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  592. package/lib/projects/__tests__/upload.test.js +0 -183
  593. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  594. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  595. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  596. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  597. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  598. package/lib/projects/create/__tests__/legacy.test.js +0 -90
  599. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  600. package/lib/projects/create/__tests__/v2.test.js +0 -257
  601. package/lib/projects/platformVersion.d.ts +0 -9
  602. package/lib/projects/platformVersion.js +0 -39
  603. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  604. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  605. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  606. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  607. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  608. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  609. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  610. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  611. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  612. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  613. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  614. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  615. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  616. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  617. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  618. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  619. package/lib/sandboxSync.d.ts +0 -4
  620. package/lib/sandboxSync.js +0 -102
  621. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  622. package/lib/theme/__tests__/migrate.test.js +0 -256
  623. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  624. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  625. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  626. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  627. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  628. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -255
  629. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  630. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -228
  631. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  632. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -209
  633. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  634. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -187
  635. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  636. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -125
  637. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  638. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -125
  639. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  640. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -158
  641. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  642. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -133
  643. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  644. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -462
  645. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  646. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -126
  647. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  648. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  649. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  650. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  651. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  652. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -178
  653. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  654. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  655. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  656. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  657. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  658. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  659. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  660. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  661. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  662. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  663. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  664. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -179
  665. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  666. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  667. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  668. package/mcp-server/utils/__tests__/command.test.js +0 -45
  669. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  670. package/mcp-server/utils/__tests__/content.test.js +0 -164
  671. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  672. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -124
  673. package/mcp-server/utils/__tests__/project.test.d.ts +0 -1
  674. package/mcp-server/utils/__tests__/project.test.js +0 -140
  675. package/mcp-server/utils/project.d.ts +0 -5
  676. package/mcp-server/utils/project.js +0 -18
@@ -3,13 +3,13 @@ import util from 'util';
3
3
  import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
4
4
  import { startPortManagerServer, stopPortManagerServer, } from '@hubspot/local-dev-lib/portManager';
5
5
  import { isTranslationError, translateForLocalDev, } from '@hubspot/project-parsing-lib/translate';
6
- import { getConfigAccountEnvironment, getAllConfigAccounts, getConfigAccountById, } from '@hubspot/local-dev-lib/config';
6
+ import { getConfigAccountEnvironment, getLinkedOrAllConfigAccounts, getConfigAccountById, getConfigAccountIfExists, } from '@hubspot/local-dev-lib/config';
7
7
  import { logError } from '../../../lib/errorHandlers/index.js';
8
8
  import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
9
9
  import { ensureProjectExists } from '../../../lib/projects/ensureProjectExists.js';
10
10
  import { createInitialBuildForNewProject, createNewProjectForLocalDev, compareLocalProjectToDeployed, checkAndInstallDependencies, } from '../../../lib/projects/localDev/helpers/project.js';
11
11
  import { useExistingDevTestAccount, createDeveloperTestAccountForLocalDev, selectAccountTypePrompt, createSandboxForLocalDev, } from '../../../lib/projects/localDev/helpers/account.js';
12
- import { selectDeveloperTestTargetAccountPrompt, selectSandboxTargetAccountPrompt, } from '../../../lib/prompts/projectDevTargetAccountPrompt.js';
12
+ import { selectDeveloperTestTargetAccountPrompt, selectSandboxTargetAccountPrompt, confirmLinkExistingDeveloperTestAccountPrompt, } from '../../../lib/prompts/projectDevTargetAccountPrompt.js';
13
13
  import LocalDevProcess from '../../../lib/projects/localDev/LocalDevProcess.js';
14
14
  import LocalDevWatcher from '../../../lib/projects/localDev/LocalDevWatcher.js';
15
15
  import { handleExit, handleKeypress } from '../../../lib/process.js';
@@ -17,9 +17,15 @@ import { isTestAccountOrSandbox, isUnifiedAccount, } from '../../../lib/accountT
17
17
  import { uiLogger } from '../../../lib/ui/logger.js';
18
18
  import { commands } from '../../../lang/en.js';
19
19
  import LocalDevWebsocketServer from '../../../lib/projects/localDev/LocalDevWebsocketServer.js';
20
- import { confirmLocalDevIsNotRunning } from '../../../lib/projects/localDev/helpers/process.js';
20
+ import { isLocalDevRunning } from '../../../lib/projects/localDev/helpers/process.js';
21
+ import { getHsSettingsFileIfExists, getHsSettingsFilePath, } from '@hubspot/local-dev-lib/config/hsSettings';
22
+ import { isDirectoryLinked, addAccountToLinkedSettings, } from '../../../lib/link/linkUtils.js';
21
23
  export async function unifiedProjectDevFlow({ args, targetProjectAccountId, providedTargetTestingAccountId, projectConfig, projectDir, }) {
22
- await confirmLocalDevIsNotRunning();
24
+ const { exit } = args;
25
+ if (await isLocalDevRunning()) {
26
+ uiLogger.error(commands.project.dev.errors.localDevAlreadyRunning);
27
+ return exit(EXIT_CODES.ERROR);
28
+ }
23
29
  const env = getConfigAccountEnvironment(targetProjectAccountId);
24
30
  let projectNodes;
25
31
  let projectProfileData;
@@ -41,23 +47,29 @@ export async function unifiedProjectDevFlow({ args, targetProjectAccountId, prov
41
47
  else {
42
48
  logError(e);
43
49
  }
44
- return process.exit(EXIT_CODES.ERROR);
50
+ return exit(EXIT_CODES.ERROR);
45
51
  }
46
52
  if (!Object.keys(projectNodes).length) {
47
53
  uiLogger.error(commands.project.dev.errors.noRunnableComponents);
48
- process.exit(EXIT_CODES.SUCCESS);
54
+ return exit(EXIT_CODES.SUCCESS);
49
55
  }
50
56
  const targetProjectAccountConfig = getConfigAccountById(targetProjectAccountId);
51
57
  if (!targetProjectAccountConfig) {
52
58
  uiLogger.error(commands.project.dev.errors.noAccount(targetProjectAccountId));
53
- process.exit(EXIT_CODES.ERROR);
59
+ return exit(EXIT_CODES.ERROR);
54
60
  }
55
- const accounts = getAllConfigAccounts();
61
+ const hsSettings = getHsSettingsFileIfExists();
62
+ const directoryIsLinked = isDirectoryLinked(hsSettings);
63
+ const accounts = getLinkedOrAllConfigAccounts();
56
64
  const accountIsCombined = await isUnifiedAccount(targetProjectAccountConfig);
57
65
  const targetProjectAccountIsTestAccountOrSandbox = isTestAccountOrSandbox(targetProjectAccountConfig);
58
66
  if (!accountIsCombined) {
59
67
  uiLogger.error(commands.project.dev.errors.accountNotCombined);
60
- process.exit(EXIT_CODES.ERROR);
68
+ return exit(EXIT_CODES.ERROR);
69
+ }
70
+ if (directoryIsLinked && !providedTargetTestingAccountId) {
71
+ uiLogger.log('');
72
+ uiLogger.info(commands.account.subcommands.link.shared.usingLinkedAccounts(getHsSettingsFilePath()));
61
73
  }
62
74
  let targetTestingAccountId = providedTargetTestingAccountId;
63
75
  // Temporarily removing logic to use profile account as testing account
@@ -77,16 +89,39 @@ export async function unifiedProjectDevFlow({ args, targetProjectAccountId, prov
77
89
  const accountType = await selectAccountTypePrompt(targetProjectAccountConfig);
78
90
  if (accountType === HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST) {
79
91
  const devAccountPromptResponse = await selectDeveloperTestTargetAccountPrompt(accounts, targetProjectAccountConfig);
92
+ const { notInConfigAccount } = devAccountPromptResponse;
80
93
  targetTestingAccountId =
81
94
  devAccountPromptResponse.targetAccountId || undefined;
82
- if (!!devAccountPromptResponse.notInConfigAccount) {
83
- // When the developer test account isn't configured in the CLI config yet
84
- // Walk the user through adding the account's PAK to the config
85
- await useExistingDevTestAccount(env, devAccountPromptResponse.notInConfigAccount);
95
+ if (notInConfigAccount) {
96
+ const existingGlobalConfig = getConfigAccountIfExists(notInConfigAccount.id);
97
+ if (directoryIsLinked && existingGlobalConfig) {
98
+ const shouldLink = await confirmLinkExistingDeveloperTestAccountPrompt(notInConfigAccount.accountName);
99
+ if (!shouldLink) {
100
+ return exit(EXIT_CODES.SUCCESS);
101
+ }
102
+ addAccountToLinkedSettings(notInConfigAccount.id);
103
+ }
104
+ else {
105
+ const accountAdded = await useExistingDevTestAccount(env, notInConfigAccount);
106
+ if (!accountAdded) {
107
+ return exit(EXIT_CODES.SUCCESS);
108
+ }
109
+ if (directoryIsLinked) {
110
+ addAccountToLinkedSettings(notInConfigAccount.id);
111
+ }
112
+ }
86
113
  }
87
114
  else if (devAccountPromptResponse.createNestedAccount) {
88
115
  // Create a new developer test account and automatically add it to the CLI config
89
- targetTestingAccountId = await createDeveloperTestAccountForLocalDev(targetProjectAccountId, targetProjectAccountConfig, env, true);
116
+ try {
117
+ targetTestingAccountId = await createDeveloperTestAccountForLocalDev(targetProjectAccountId, targetProjectAccountConfig, env, true);
118
+ }
119
+ catch {
120
+ return exit(EXIT_CODES.ERROR);
121
+ }
122
+ if (directoryIsLinked) {
123
+ addAccountToLinkedSettings(targetTestingAccountId);
124
+ }
90
125
  }
91
126
  }
92
127
  else if (accountType === HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX) {
@@ -94,7 +129,15 @@ export async function unifiedProjectDevFlow({ args, targetProjectAccountId, prov
94
129
  targetTestingAccountId =
95
130
  sandboxAccountPromptResponse.targetAccountId || undefined;
96
131
  if (sandboxAccountPromptResponse.createNestedAccount) {
97
- targetTestingAccountId = await createSandboxForLocalDev(targetProjectAccountId, targetProjectAccountConfig, env);
132
+ try {
133
+ targetTestingAccountId = await createSandboxForLocalDev(targetProjectAccountId, targetProjectAccountConfig, env);
134
+ }
135
+ catch {
136
+ return exit(EXIT_CODES.ERROR);
137
+ }
138
+ if (directoryIsLinked) {
139
+ addAccountToLinkedSettings(targetTestingAccountId);
140
+ }
98
141
  }
99
142
  }
100
143
  else {
@@ -111,21 +154,26 @@ export async function unifiedProjectDevFlow({ args, targetProjectAccountId, prov
111
154
  });
112
155
  let project = uploadedProject;
113
156
  if (projectExists && project) {
114
- await compareLocalProjectToDeployed(projectConfig, targetProjectAccountId, project.deployedBuild?.buildId, projectNodes, args.profile);
157
+ await compareLocalProjectToDeployed(projectConfig, targetProjectAccountId, project.deployedBuild?.buildId, projectNodes, exit, args.profile);
115
158
  }
116
159
  else {
117
- project = await createNewProjectForLocalDev(projectConfig, targetProjectAccountId, false, false);
118
- await createInitialBuildForNewProject(projectConfig, projectDir, targetProjectAccountId, true, args.profile);
160
+ project = await createNewProjectForLocalDev(projectConfig, targetProjectAccountId, false, false, exit);
161
+ await createInitialBuildForNewProject(projectConfig, projectDir, targetProjectAccountId, exit, true, args.profile);
119
162
  }
120
163
  // Check for missing/outdated dependencies
121
- await checkAndInstallDependencies();
164
+ try {
165
+ await checkAndInstallDependencies();
166
+ }
167
+ catch {
168
+ return exit(EXIT_CODES.ERROR);
169
+ }
122
170
  // End setup, start local dev process
123
171
  try {
124
- await startPortManagerServer();
172
+ await startPortManagerServer(args.port);
125
173
  }
126
174
  catch (e) {
127
175
  logError(e);
128
- process.exit(EXIT_CODES.ERROR);
176
+ return exit(EXIT_CODES.ERROR);
129
177
  }
130
178
  const localDevProcess = new LocalDevProcess({
131
179
  initialProjectNodes: projectNodes,
@@ -138,6 +186,7 @@ export async function unifiedProjectDevFlow({ args, targetProjectAccountId, prov
138
186
  projectDir,
139
187
  projectData: project,
140
188
  env,
189
+ actions: { exit },
141
190
  });
142
191
  const websocketServer = new LocalDevWebsocketServer(localDevProcess, args.debug);
143
192
  const watcher = new LocalDevWatcher(localDevProcess);
@@ -3,26 +3,26 @@ import { getCwd, sanitizeFileName } from '@hubspot/local-dev-lib/path';
3
3
  import { extractZipArchive } from '@hubspot/local-dev-lib/archive';
4
4
  import { downloadProject, fetchProjectBuilds, } from '@hubspot/local-dev-lib/api/projects';
5
5
  import { logError, ApiErrorContext } from '../../lib/errorHandlers/index.js';
6
+ import { isPromptExitError } from '../../lib/errors/PromptExitError.js';
6
7
  import { getProjectConfig } from '../../lib/projects/config.js';
7
8
  import { downloadProjectPrompt } from '../../lib/prompts/downloadProjectPrompt.js';
8
9
  import { commands } from '../../lang/en.js';
9
10
  import { uiLogger } from '../../lib/ui/logger.js';
10
- import { trackCommandUsage } from '../../lib/usageTracking.js';
11
11
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
12
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
12
13
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
13
14
  const command = 'download';
14
15
  const describe = commands.project.download.describe;
15
16
  async function handler(args) {
17
+ const { dest, build, derivedAccountId, exit } = args;
16
18
  const { projectConfig } = await getProjectConfig();
17
19
  if (projectConfig) {
18
20
  uiLogger.error(commands.project.download.warnings.cannotDownloadWithinProject);
19
- process.exit(EXIT_CODES.ERROR);
21
+ return exit(EXIT_CODES.ERROR);
20
22
  }
21
- const { dest, build, derivedAccountId } = args;
22
- const { project: projectName } = await downloadProjectPrompt(args);
23
23
  let buildNumberToDownload = build;
24
- trackCommandUsage('project-download', undefined, derivedAccountId);
25
24
  try {
25
+ const { project: projectName } = await downloadProjectPrompt(args);
26
26
  if (!buildNumberToDownload) {
27
27
  const { data: projectBuildsResult } = await fetchProjectBuilds(derivedAccountId, projectName);
28
28
  const { results: projectBuilds } = projectBuildsResult;
@@ -33,7 +33,7 @@ async function handler(args) {
33
33
  }
34
34
  if (!buildNumberToDownload) {
35
35
  uiLogger.error(commands.project.download.errors.noBuildIdToDownload);
36
- process.exit(EXIT_CODES.ERROR);
36
+ return exit(EXIT_CODES.ERROR);
37
37
  }
38
38
  const sanitizedProjectName = sanitizeFileName(projectName);
39
39
  const absoluteDestPath = dest
@@ -42,14 +42,17 @@ async function handler(args) {
42
42
  const { data: zippedProject } = await downloadProject(derivedAccountId, projectName, buildNumberToDownload);
43
43
  await extractZipArchive(zippedProject, sanitizeFileName(projectName), path.resolve(absoluteDestPath));
44
44
  uiLogger.log(commands.project.download.logs.downloadSucceeded(buildNumberToDownload, projectName));
45
- process.exit(EXIT_CODES.SUCCESS);
45
+ return exit(EXIT_CODES.SUCCESS);
46
46
  }
47
47
  catch (e) {
48
+ if (isPromptExitError(e)) {
49
+ throw e;
50
+ }
48
51
  logError(e, new ApiErrorContext({
49
52
  accountId: derivedAccountId,
50
53
  request: 'project download',
51
54
  }));
52
- process.exit(EXIT_CODES.ERROR);
55
+ return exit(EXIT_CODES.ERROR);
53
56
  }
54
57
  }
55
58
  function projectDownloadBuilder(yargs) {
@@ -85,7 +88,7 @@ const builder = makeYargsBuilder(projectDownloadBuilder, command, describe, {
85
88
  const projectDownloadCommand = {
86
89
  command,
87
90
  describe,
88
- handler,
91
+ handler: makeYargsHandlerWithUsageTracking('project-download', handler),
89
92
  builder,
90
93
  };
91
94
  export default projectDownloadCommand;
@@ -0,0 +1,4 @@
1
+ import { AccountArgs, CommonArgs, ConfigArgs, JSONOutputArgs, YargsCommandModule } from '../../types/Yargs.js';
2
+ type ProjectInfoArgs = CommonArgs & ConfigArgs & AccountArgs & JSONOutputArgs;
3
+ declare const projectInfoCommand: YargsCommandModule<unknown, ProjectInfoArgs>;
4
+ export default projectInfoCommand;
@@ -0,0 +1,67 @@
1
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
2
+ import { makeYargsBuilder } from '../../lib/yargsUtils.js';
3
+ import { fetchProject } from '@hubspot/local-dev-lib/api/projects';
4
+ import { debugError } from '../../lib/errorHandlers/index.js';
5
+ import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
6
+ import { uiLogger } from '../../lib/ui/logger.js';
7
+ import { commands } from '../../lang/en.js';
8
+ import { getProjectConfig } from '../../lib/projects/config.js';
9
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
10
+ import { getProjectInfo, logProjectInfo, } from '../../lib/projects/projectInfo.js';
11
+ const command = 'info';
12
+ const describe = commands.project.info.describe;
13
+ const verboseDescribe = commands.project.info.verboseDescribe;
14
+ async function handler(args) {
15
+ const { derivedAccountId, formatOutputAsJson, exit } = args;
16
+ const { projectConfig } = await getProjectConfig();
17
+ if (!projectConfig) {
18
+ uiLogger.error(commands.project.info.errors.noProjectConfig);
19
+ return exit(EXIT_CODES.ERROR);
20
+ }
21
+ if (isLegacyProject(projectConfig.platformVersion)) {
22
+ uiLogger.error(commands.project.info.errors.unsupportedPlatformVersion(projectConfig.platformVersion));
23
+ return exit(EXIT_CODES.ERROR);
24
+ }
25
+ const projectName = projectConfig.name;
26
+ let project;
27
+ try {
28
+ const response = await fetchProject(derivedAccountId, projectName);
29
+ project = response.data;
30
+ }
31
+ catch (error) {
32
+ debugError(error);
33
+ uiLogger.error(commands.project.info.errors.projectNotFound(projectName, derivedAccountId));
34
+ return exit(EXIT_CODES.ERROR);
35
+ }
36
+ const deployedBuild = project.deployedBuild;
37
+ if (!deployedBuild) {
38
+ uiLogger.error(commands.project.info.errors.noDeployedBuild);
39
+ return exit(EXIT_CODES.ERROR);
40
+ }
41
+ const projectInfo = await getProjectInfo(project, projectConfig.platformVersion, derivedAccountId);
42
+ if (formatOutputAsJson) {
43
+ uiLogger.json(projectInfo);
44
+ return;
45
+ }
46
+ logProjectInfo(projectInfo);
47
+ }
48
+ function projectInfoBuilder(yargs) {
49
+ yargs.example([
50
+ ['$0 project info', commands.project.info.examples.default],
51
+ ['$0 project info --json', commands.project.info.examples.json],
52
+ ]);
53
+ return yargs;
54
+ }
55
+ const builder = makeYargsBuilder(projectInfoBuilder, command, verboseDescribe, {
56
+ useGlobalOptions: true,
57
+ useConfigOptions: true,
58
+ useAccountOptions: true,
59
+ useJSONOutputOptions: true,
60
+ });
61
+ const projectInfoCommand = {
62
+ command,
63
+ describe,
64
+ handler: makeYargsHandlerWithUsageTracking('project-info', handler),
65
+ builder,
66
+ };
67
+ export default projectInfoCommand;
@@ -1,23 +1,23 @@
1
1
  import { installPackages, getProjectPackageJsonLocations, } from '../../lib/dependencyManagement.js';
2
2
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
3
+ import { isPromptExitError } from '../../lib/errors/PromptExitError.js';
3
4
  import { getProjectConfig } from '../../lib/projects/config.js';
4
5
  import { promptUser } from '../../lib/prompts/promptUtils.js';
5
6
  import path from 'path';
6
7
  import { commands } from '../../lang/en.js';
7
8
  import { uiLogger } from '../../lib/ui/logger.js';
8
- import { trackCommandUsage } from '../../lib/usageTracking.js';
9
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
9
10
  import { logError } from '../../lib/errorHandlers/index.js';
10
11
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
11
12
  const command = 'install-deps [packages..]';
12
13
  const describe = commands.project.installDeps.help.describe;
13
14
  async function handler(args) {
14
- const { derivedAccountId, packages } = args;
15
+ const { packages, exit } = args;
15
16
  try {
16
- trackCommandUsage('project-install-deps', undefined, derivedAccountId);
17
17
  const projectConfig = await getProjectConfig();
18
18
  if (!projectConfig || !projectConfig.projectDir) {
19
19
  uiLogger.error(commands.project.installDeps.noProjectConfig);
20
- return process.exit(EXIT_CODES.ERROR);
20
+ return exit(EXIT_CODES.ERROR);
21
21
  }
22
22
  const { projectDir } = projectConfig;
23
23
  let installLocations = await getProjectPackageJsonLocations();
@@ -50,8 +50,11 @@ async function handler(args) {
50
50
  });
51
51
  }
52
52
  catch (e) {
53
+ if (isPromptExitError(e)) {
54
+ throw e;
55
+ }
53
56
  logError(e);
54
- return process.exit(EXIT_CODES.ERROR);
57
+ return exit(EXIT_CODES.ERROR);
55
58
  }
56
59
  }
57
60
  function projectInstallDepsBuilder(yargs) {
@@ -74,7 +77,7 @@ const builder = makeYargsBuilder(projectInstallDepsBuilder, command, describe, {
74
77
  const projectInstallDepsCommand = {
75
78
  command,
76
79
  describe,
77
- handler,
80
+ handler: makeYargsHandlerWithUsageTracking('project-install-deps', handler),
78
81
  builder,
79
82
  };
80
83
  export default projectInstallDepsCommand;
@@ -1,25 +1,25 @@
1
1
  import path from 'path';
2
2
  import { getProjectPackageJsonLocations, installPackages, } from '../../lib/dependencyManagement.js';
3
3
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
4
+ import { isPromptExitError } from '../../lib/errors/PromptExitError.js';
4
5
  import { getProjectConfig } from '../../lib/projects/config.js';
5
6
  import { commands } from '../../lang/en.js';
6
7
  import { uiLogger } from '../../lib/ui/logger.js';
7
- import { trackCommandUsage } from '../../lib/usageTracking.js';
8
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
8
9
  import { logError } from '../../lib/errorHandlers/index.js';
9
10
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
10
11
  import { promptUser } from '../../lib/prompts/promptUtils.js';
11
12
  import SpinniesManager from '../../lib/ui/SpinniesManager.js';
12
- import { areAllLintPackagesInstalled, getMissingLintPackages, lintPackages, displayLintResults, hasEslintConfig, hasDeprecatedEslintConfig, getDeprecatedEslintConfigFiles, createEslintConfig, REQUIRED_PACKAGES_AND_MIN_VERSIONS, } from '../../lib/projects/uieLinting.js';
13
+ import { areAllLintPackagesInstalled, getMissingLintPackages, getMissingLintScripts, addLintScriptsToPackageJson, lintPackages, displayLintResults, hasEslintConfig, hasDeprecatedEslintConfig, getDeprecatedEslintConfigFiles, createEslintConfig, REQUIRED_PACKAGES_AND_MIN_VERSIONS, } from '../../lib/projects/uieLinting.js';
13
14
  const command = 'lint';
14
15
  const describe = commands.project.lint.help.describe;
15
16
  async function handler(args) {
16
- const { derivedAccountId, installMissingDeps } = args;
17
+ const { installMissingDeps, exit } = args;
17
18
  try {
18
- trackCommandUsage('project-lint', undefined, derivedAccountId);
19
19
  const projectConfig = await getProjectConfig();
20
20
  if (!projectConfig || !projectConfig.projectDir) {
21
21
  uiLogger.error(commands.project.lint.noProjectConfig);
22
- return process.exit(EXIT_CODES.ERROR);
22
+ return exit(EXIT_CODES.ERROR);
23
23
  }
24
24
  SpinniesManager.init({ succeedColor: 'white' });
25
25
  SpinniesManager.add('lintCheck', {
@@ -117,9 +117,10 @@ async function handler(args) {
117
117
  SpinniesManager.add('lintConfigCreate', {
118
118
  text: commands.project.lint.loading.creatingConfig,
119
119
  });
120
+ const platformVersion = projectConfig.projectConfig?.platformVersion ?? null;
120
121
  const createdConfigs = [];
121
122
  for (const location of locationsNeedingConfig) {
122
- const configPath = createEslintConfig(location);
123
+ const configPath = await createEslintConfig(location, platformVersion);
123
124
  createdConfigs.push(configPath);
124
125
  }
125
126
  SpinniesManager.succeed('lintConfigCreate');
@@ -129,9 +130,26 @@ async function handler(args) {
129
130
  }
130
131
  else {
131
132
  uiLogger.error(commands.project.lint.eslintConfigRequired);
132
- return process.exit(EXIT_CODES.ERROR);
133
+ return exit(EXIT_CODES.ERROR);
133
134
  }
134
135
  }
136
+ const locationsNeedingScripts = locationsReadyToLint.filter(location => getMissingLintScripts(location).length > 0);
137
+ if (locationsNeedingScripts.length > 0) {
138
+ SpinniesManager.add('lintScriptsAdd', {
139
+ text: commands.project.lint.loading.addingLintScripts,
140
+ });
141
+ const addedResults = [];
142
+ for (const location of locationsNeedingScripts) {
143
+ const result = addLintScriptsToPackageJson(location);
144
+ if (result.added.length > 0) {
145
+ addedResults.push(result);
146
+ }
147
+ }
148
+ SpinniesManager.succeed('lintScriptsAdd');
149
+ addedResults.forEach(({ added, relativePath }) => {
150
+ uiLogger.success(commands.project.lint.lintScriptsAdded(added, relativePath));
151
+ });
152
+ }
135
153
  SpinniesManager.add('lintRun', {
136
154
  text: commands.project.lint.loading.linting,
137
155
  });
@@ -139,13 +157,16 @@ async function handler(args) {
139
157
  SpinniesManager.succeed('lintRun');
140
158
  displayLintResults(results);
141
159
  if (!success) {
142
- return process.exit(EXIT_CODES.ERROR);
160
+ return exit(EXIT_CODES.ERROR);
143
161
  }
144
162
  }
145
163
  }
146
164
  catch (e) {
165
+ if (isPromptExitError(e)) {
166
+ throw e;
167
+ }
147
168
  logError(e);
148
- return process.exit(EXIT_CODES.ERROR);
169
+ return exit(EXIT_CODES.ERROR);
149
170
  }
150
171
  }
151
172
  function projectLintBuilder(yargs) {
@@ -172,7 +193,7 @@ const builder = makeYargsBuilder(projectLintBuilder, command, describe, {
172
193
  const projectLintCommand = {
173
194
  command,
174
195
  describe,
175
- handler,
196
+ handler: makeYargsHandlerWithUsageTracking('project-lint', handler),
176
197
  builder,
177
198
  };
178
199
  export default projectLintCommand;
@@ -1,4 +1,4 @@
1
- import { AccountArgs, CommonArgs, ConfigArgs, YargsCommandModule } from '../../types/Yargs.js';
2
- type ProjectListArgs = CommonArgs & ConfigArgs & AccountArgs;
1
+ import { AccountArgs, CommonArgs, ConfigArgs, EnvironmentArgs, YargsCommandModule } from '../../types/Yargs.js';
2
+ type ProjectListArgs = CommonArgs & ConfigArgs & AccountArgs & EnvironmentArgs;
3
3
  declare const projectListCommand: YargsCommandModule<unknown, ProjectListArgs>;
4
4
  export default projectListCommand;
@@ -1,4 +1,4 @@
1
- import { trackCommandUsage } from '../../lib/usageTracking.js';
1
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
2
2
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
3
3
  import { fetchProjects } from '@hubspot/local-dev-lib/api/projects';
4
4
  import { logError } from '../../lib/errorHandlers/index.js';
@@ -9,14 +9,8 @@ import { renderTable } from '../../ui/render.js';
9
9
  const command = ['list', 'ls'];
10
10
  const describe = commands.project.list.describe;
11
11
  async function getProjectData(accountId) {
12
- try {
13
- const { data: projects } = await fetchProjects(accountId);
14
- return projects.results;
15
- }
16
- catch (e) {
17
- logError(e);
18
- process.exit(EXIT_CODES.ERROR);
19
- }
12
+ const { data: projects } = await fetchProjects(accountId);
13
+ return projects.results;
20
14
  }
21
15
  function formatProjectsAsTableRows(projects) {
22
16
  const projectListData = [];
@@ -29,12 +23,18 @@ function formatProjectsAsTableRows(projects) {
29
23
  return projectListData;
30
24
  }
31
25
  async function handler(args) {
32
- const { derivedAccountId } = args;
33
- trackCommandUsage('projects-list', undefined, derivedAccountId);
34
- const projectData = await getProjectData(derivedAccountId);
26
+ const { derivedAccountId, exit } = args;
27
+ let projectData;
28
+ try {
29
+ projectData = await getProjectData(derivedAccountId);
30
+ }
31
+ catch (e) {
32
+ logError(e);
33
+ return exit(EXIT_CODES.ERROR);
34
+ }
35
35
  if (projectData.length === 0) {
36
36
  uiLogger.error(commands.project.list.errors.noProjectsFound(derivedAccountId));
37
- process.exit(EXIT_CODES.ERROR);
37
+ return exit(EXIT_CODES.ERROR);
38
38
  }
39
39
  const projectListData = formatProjectsAsTableRows(projectData);
40
40
  const tableHeader = [
@@ -52,11 +52,12 @@ const builder = makeYargsBuilder(projectListBuilder, command, describe, {
52
52
  useGlobalOptions: true,
53
53
  useConfigOptions: true,
54
54
  useAccountOptions: true,
55
+ useEnvironmentOptions: true,
55
56
  });
56
57
  const projectListCommand = {
57
58
  command,
58
59
  describe,
59
- handler,
60
+ handler: makeYargsHandlerWithUsageTracking('projects-list', handler),
60
61
  builder,
61
62
  };
62
63
  export default projectListCommand;
@@ -5,9 +5,9 @@ import { getProjectConfig, validateProjectConfig, } from '../../lib/projects/con
5
5
  import { getProjectDetailUrl } from '../../lib/projects/urls.js';
6
6
  import moment from 'moment';
7
7
  import { promptUser } from '../../lib/prompts/promptUtils.js';
8
- import { trackCommandUsage } from '../../lib/usageTracking.js';
9
8
  import { uiLogger } from '../../lib/ui/logger.js';
10
9
  import { logError, ApiErrorContext } from '../../lib/errorHandlers/index.js';
10
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
11
11
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
12
12
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
13
13
  import { commands } from '../../lang/en.js';
@@ -58,8 +58,7 @@ async function fetchAndDisplayBuilds(accountId, project, options) {
58
58
  }
59
59
  }
60
60
  async function handler(args) {
61
- const { project: projectFlagValue, limit, derivedAccountId } = args;
62
- trackCommandUsage('project-list-builds', undefined, derivedAccountId);
61
+ const { project: projectFlagValue, limit, derivedAccountId, exit } = args;
63
62
  let projectName = projectFlagValue;
64
63
  if (!projectName) {
65
64
  const { projectConfig, projectDir } = await getProjectConfig();
@@ -68,7 +67,10 @@ async function handler(args) {
68
67
  }
69
68
  catch (error) {
70
69
  logError(error);
71
- process.exit(EXIT_CODES.ERROR);
70
+ return exit(EXIT_CODES.ERROR);
71
+ }
72
+ if (!projectConfig) {
73
+ return exit(EXIT_CODES.ERROR);
72
74
  }
73
75
  projectName = projectConfig.name;
74
76
  }
@@ -87,7 +89,7 @@ async function handler(args) {
87
89
  }));
88
90
  }
89
91
  }
90
- process.exit(EXIT_CODES.SUCCESS);
92
+ return exit(EXIT_CODES.SUCCESS);
91
93
  }
92
94
  function projectListBuildsBuilder(yargs) {
93
95
  yargs.options({
@@ -114,7 +116,7 @@ const builder = makeYargsBuilder(projectListBuildsBuilder, command, describe, {
114
116
  const projectListBuildsCommand = {
115
117
  command,
116
118
  describe,
117
- handler,
119
+ handler: makeYargsHandlerWithUsageTracking('project-list-builds', handler),
118
120
  builder,
119
121
  };
120
122
  export default projectListBuildsCommand;
@@ -1,6 +1,5 @@
1
1
  import { getConfigAccountEnvironment } from '@hubspot/local-dev-lib/config';
2
2
  import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
3
- import { trackCommandUsage } from '../../lib/usageTracking.js';
4
3
  import { logError } from '../../lib/errorHandlers/index.js';
5
4
  import { uiLine } from '../../lib/ui/index.js';
6
5
  import { projectLogsPrompt } from '../../lib/prompts/projectsLogsPrompt.js';
@@ -8,6 +7,7 @@ import { commands } from '../../lang/en.js';
8
7
  import { uiLogger } from '../../lib/ui/logger.js';
9
8
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
10
9
  import { ProjectLogsManager } from '../../lib/projects/ProjectLogsManager.js';
10
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
11
11
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
12
12
  import { renderTable } from '../../ui/render.js';
13
13
  function getPrivateAppsUrl(accountId) {
@@ -51,8 +51,7 @@ function logPreamble() {
51
51
  const command = 'logs';
52
52
  const describe = commands.project.logs.describe;
53
53
  async function handler(args) {
54
- const { derivedAccountId } = args;
55
- trackCommandUsage('project-logs', undefined, derivedAccountId);
54
+ const { derivedAccountId, exit } = args;
56
55
  try {
57
56
  await ProjectLogsManager.init(derivedAccountId);
58
57
  const { functionName } = await projectLogsPrompt({
@@ -68,9 +67,9 @@ async function handler(args) {
68
67
  accountId: derivedAccountId,
69
68
  projectName: ProjectLogsManager.projectName,
70
69
  });
71
- return process.exit(EXIT_CODES.ERROR);
70
+ return exit(EXIT_CODES.ERROR);
72
71
  }
73
- process.exit(EXIT_CODES.SUCCESS);
72
+ return exit(EXIT_CODES.SUCCESS);
74
73
  }
75
74
  function projectLogsBuilder(yargs) {
76
75
  yargs.options({
@@ -113,7 +112,7 @@ const builder = makeYargsBuilder(projectLogsBuilder, command, describe, { useGlo
113
112
  const projectLogsCommand = {
114
113
  command,
115
114
  describe,
116
- handler,
115
+ handler: makeYargsHandlerWithUsageTracking('project-logs', handler),
117
116
  builder,
118
117
  };
119
118
  export default projectLogsCommand;