@hubspot/cli 7.8.0-experimental.0 → 7.8.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 (357) hide show
  1. package/bin/cli.js +31 -27
  2. package/commands/__tests__/auth.test.js +5 -0
  3. package/commands/__tests__/doctor.test.js +16 -16
  4. package/commands/__tests__/getStarted.test.js +2 -2
  5. package/commands/__tests__/mcp.test.js +1 -1
  6. package/commands/__tests__/project.test.js +2 -3
  7. package/commands/account/auth.js +1 -0
  8. package/commands/account/clean.js +18 -27
  9. package/commands/account/createOverride.js +13 -31
  10. package/commands/account/info.js +20 -31
  11. package/commands/account/list.js +16 -22
  12. package/commands/account/remove.js +12 -20
  13. package/commands/account/removeOverride.js +11 -21
  14. package/commands/account/rename.js +6 -9
  15. package/commands/account/use.js +12 -26
  16. package/commands/account.js +2 -2
  17. package/commands/app/__tests__/migrate.test.js +5 -6
  18. package/commands/app/migrate.js +13 -19
  19. package/commands/app/secret/add.js +2 -1
  20. package/commands/app/secret/delete.js +2 -1
  21. package/commands/app/secret/list.js +2 -1
  22. package/commands/app/secret/update.js +2 -1
  23. package/commands/app/secret.js +2 -1
  24. package/commands/app.js +2 -2
  25. package/commands/auth.d.ts +1 -0
  26. package/commands/auth.js +17 -7
  27. package/commands/cms/convertFields.js +7 -9
  28. package/commands/cms/getReactModule.js +9 -14
  29. package/commands/cms/lighthouseScore.js +33 -36
  30. package/commands/cms.js +2 -2
  31. package/commands/completion.js +3 -3
  32. package/commands/config/set.d.ts +1 -1
  33. package/commands/config/set.js +64 -37
  34. package/commands/config.js +2 -2
  35. package/commands/create.js +2 -2
  36. package/commands/customObject/create.js +10 -12
  37. package/commands/customObject/schema/create.js +9 -11
  38. package/commands/customObject/schema/delete.js +16 -16
  39. package/commands/customObject/schema/fetch-all.js +12 -11
  40. package/commands/customObject/schema/fetch.js +15 -15
  41. package/commands/customObject/schema/list.js +4 -4
  42. package/commands/customObject/schema/update.js +13 -13
  43. package/commands/customObject/schema.js +2 -2
  44. package/commands/customObject.js +6 -7
  45. package/commands/doctor.js +8 -11
  46. package/commands/feedback.js +8 -13
  47. package/commands/fetch.js +8 -8
  48. package/commands/filemanager/fetch.js +7 -7
  49. package/commands/filemanager/upload.js +15 -34
  50. package/commands/filemanager.js +2 -2
  51. package/commands/function/deploy.js +11 -29
  52. package/commands/function/list.js +8 -8
  53. package/commands/function/server.js +9 -11
  54. package/commands/function.d.ts +1 -1
  55. package/commands/function.js +2 -2
  56. package/commands/getStarted.d.ts +1 -3
  57. package/commands/getStarted.js +68 -20
  58. package/commands/hubdb/clear.js +7 -15
  59. package/commands/hubdb/create.js +9 -15
  60. package/commands/hubdb/delete.js +8 -15
  61. package/commands/hubdb/fetch.js +6 -9
  62. package/commands/hubdb.d.ts +1 -1
  63. package/commands/hubdb.js +2 -2
  64. package/commands/init.js +2 -3
  65. package/commands/lint.js +16 -16
  66. package/commands/list.js +8 -14
  67. package/commands/logs.js +14 -20
  68. package/commands/mcp/__tests__/setup.test.js +2 -2
  69. package/commands/mcp/setup.js +11 -2
  70. package/commands/mcp.js +3 -3
  71. package/commands/mv.js +6 -17
  72. package/commands/open.js +5 -5
  73. package/commands/project/__tests__/add.test.js +15 -13
  74. package/commands/project/__tests__/create.test.js +6 -6
  75. package/commands/project/__tests__/deploy.test.js +3 -7
  76. package/commands/project/__tests__/devUnifiedFlow.test.js +2 -4
  77. package/commands/project/__tests__/installDeps.test.js +8 -8
  78. package/commands/project/__tests__/list.test.js +31 -0
  79. package/commands/project/__tests__/logs.test.js +1 -4
  80. package/commands/project/__tests__/migrate.test.js +7 -7
  81. package/commands/project/__tests__/migrateApp.test.js +3 -7
  82. package/commands/project/__tests__/profile.test.js +1 -1
  83. package/commands/project/__tests__/validate.test.js +98 -0
  84. package/commands/project/add.d.ts +2 -2
  85. package/commands/project/add.js +7 -10
  86. package/commands/project/cloneApp.js +14 -19
  87. package/commands/project/create.js +4 -11
  88. package/commands/project/deploy.js +5 -5
  89. package/commands/project/dev/deprecatedFlow.js +9 -18
  90. package/commands/project/dev/index.js +21 -18
  91. package/commands/project/dev/unifiedFlow.js +15 -8
  92. package/commands/project/download.js +15 -16
  93. package/commands/project/installDeps.d.ts +2 -2
  94. package/commands/project/installDeps.js +9 -9
  95. package/commands/project/list.d.ts +4 -0
  96. package/commands/project/list.js +62 -0
  97. package/commands/project/listBuilds.js +12 -21
  98. package/commands/project/logs.js +21 -24
  99. package/commands/project/migrate.js +33 -12
  100. package/commands/project/migrateApp.js +10 -17
  101. package/commands/project/open.js +6 -14
  102. package/commands/project/profile/add.js +3 -3
  103. package/commands/project/profile/delete.js +1 -2
  104. package/commands/project/profile.js +2 -3
  105. package/commands/project/upload.js +16 -25
  106. package/commands/project/validate.js +7 -7
  107. package/commands/project/watch.js +13 -22
  108. package/commands/project.js +4 -3
  109. package/commands/sandbox/__tests__/create.test.js +5 -5
  110. package/commands/sandbox/create.js +22 -32
  111. package/commands/sandbox/delete.js +39 -64
  112. package/commands/sandbox.js +2 -2
  113. package/commands/secret/addSecret.js +7 -17
  114. package/commands/secret/deleteSecret.js +10 -20
  115. package/commands/secret/listSecret.js +8 -10
  116. package/commands/secret/updateSecret.js +9 -17
  117. package/commands/secret.js +2 -2
  118. package/commands/testAccount/__tests__/delete.test.js +2 -4
  119. package/commands/testAccount/create.js +2 -2
  120. package/commands/testAccount/delete.d.ts +4 -3
  121. package/commands/testAccount/delete.js +155 -14
  122. package/commands/testAccount/importData.d.ts +1 -1
  123. package/commands/testAccount/importData.js +1 -1
  124. package/commands/testAccount.js +1 -1
  125. package/commands/theme/preview.js +1 -4
  126. package/lang/en.d.ts +365 -111
  127. package/lang/en.js +409 -158
  128. package/lang/en.lyaml +4 -4
  129. package/lib/__tests__/buildAccount.test.js +4 -3
  130. package/lib/__tests__/commonOpts.test.js +1 -1
  131. package/lib/__tests__/dependencyManagement.test.js +1 -1
  132. package/lib/__tests__/developerTestAccounts.test.js +3 -3
  133. package/lib/__tests__/hasFeature.test.js +145 -7
  134. package/lib/__tests__/npm.test.js +1 -1
  135. package/lib/__tests__/oauth.test.js +4 -4
  136. package/lib/__tests__/process.test.js +10 -5
  137. package/lib/__tests__/sandboxSync.test.js +8 -8
  138. package/lib/__tests__/sandboxes.test.js +8 -8
  139. package/lib/__tests__/serverlessLogs.test.js +1 -1
  140. package/lib/__tests__/usageTracking.test.js +5 -5
  141. package/lib/__tests__/validation.test.js +2 -1
  142. package/lib/__tests__/yargsUtils.test.js +83 -9
  143. package/lib/app/__tests__/migrate.test.js +19 -56
  144. package/lib/app/__tests__/migrate_legacy.test.js +1 -1
  145. package/lib/app/migrate.d.ts +2 -8
  146. package/lib/app/migrate.js +6 -81
  147. package/lib/app/migrate_legacy.js +20 -24
  148. package/lib/buildAccount.d.ts +2 -2
  149. package/lib/buildAccount.js +32 -64
  150. package/lib/commonOpts.d.ts +1 -1
  151. package/lib/commonOpts.js +25 -22
  152. package/lib/configMigrate.js +88 -9
  153. package/lib/configOptions.js +7 -0
  154. package/lib/constants.d.ts +22 -1
  155. package/lib/constants.js +26 -1
  156. package/lib/dependencyManagement.d.ts +0 -5
  157. package/lib/dependencyManagement.js +9 -36
  158. package/lib/developerTestAccounts.js +9 -23
  159. package/lib/doctor/Diagnosis.js +11 -23
  160. package/lib/doctor/DiagnosticInfoBuilder.js +12 -11
  161. package/lib/doctor/Doctor.js +42 -90
  162. package/lib/doctor/__tests__/Doctor.test.js +4 -4
  163. package/lib/errorHandlers/index.js +12 -20
  164. package/lib/errorHandlers/suppressError.js +11 -18
  165. package/lib/hasFeature.js +6 -0
  166. package/lib/lang.js +6 -5
  167. package/lib/links.d.ts +1 -0
  168. package/lib/links.js +14 -7
  169. package/lib/mcp/setup.js +1 -1
  170. package/lib/middleware/__test__/commandTargetingUtils.test.js +99 -0
  171. package/lib/middleware/__test__/configMiddleware.test.js +11 -11
  172. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +6 -8
  173. package/lib/middleware/commandTargetingUtils.d.ts +8 -0
  174. package/lib/middleware/commandTargetingUtils.js +74 -0
  175. package/lib/middleware/configMiddleware.d.ts +1 -1
  176. package/lib/middleware/configMiddleware.js +21 -81
  177. package/lib/middleware/fireAlarmMiddleware.js +15 -5
  178. package/lib/middleware/gitMiddleware.js +5 -1
  179. package/lib/middleware/notificationsMiddleware.js +5 -11
  180. package/lib/middleware/yargsChecksMiddleware.js +6 -9
  181. package/lib/npm.js +2 -2
  182. package/lib/oauth.js +5 -5
  183. package/lib/process.js +5 -4
  184. package/lib/projects/__tests__/AppDevModeInterface.test.js +87 -90
  185. package/lib/projects/__tests__/LocalDevProcess.test.js +231 -19
  186. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +89 -63
  187. package/lib/projects/__tests__/deploy.test.js +73 -8
  188. package/lib/projects/__tests__/localDevProjectHelpers.test.js +6 -2
  189. package/lib/projects/__tests__/platformVersion.test.js +8 -8
  190. package/lib/projects/__tests__/projects.test.js +12 -12
  191. package/lib/projects/__tests__/structure.test.js +3 -3
  192. package/lib/projects/__tests__/upload.test.d.ts +1 -0
  193. package/lib/projects/__tests__/upload.test.js +82 -0
  194. package/lib/projects/add/__tests__/legacyAddComponent.test.js +6 -6
  195. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +1 -0
  196. package/lib/projects/add/__tests__/{v3AddComponent.test.js → v2AddComponent.test.js} +39 -39
  197. package/lib/projects/add/{v3AddComponent.d.ts → v2AddComponent.d.ts} +1 -1
  198. package/lib/projects/add/{v3AddComponent.js → v2AddComponent.js} +5 -5
  199. package/lib/projects/create/__tests__/legacy.test.js +5 -5
  200. package/lib/projects/create/__tests__/v2.test.d.ts +1 -0
  201. package/lib/projects/create/__tests__/{v3.test.js → v2.test.js} +82 -7
  202. package/lib/projects/create/index.js +4 -4
  203. package/lib/projects/create/legacy.js +2 -2
  204. package/lib/projects/create/{v3.d.ts → v2.d.ts} +3 -3
  205. package/lib/projects/create/{v3.js → v2.js} +16 -13
  206. package/lib/projects/deploy.d.ts +1 -1
  207. package/lib/projects/deploy.js +2 -2
  208. package/lib/projects/localDev/AppDevModeInterface.d.ts +10 -1
  209. package/lib/projects/localDev/AppDevModeInterface.js +118 -89
  210. package/lib/projects/localDev/DevServerManager.d.ts +11 -29
  211. package/lib/projects/localDev/DevServerManager.js +19 -61
  212. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +40 -0
  213. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +120 -0
  214. package/lib/projects/localDev/LocalDevLogger.d.ts +4 -0
  215. package/lib/projects/localDev/LocalDevLogger.js +27 -6
  216. package/lib/projects/localDev/{LocalDevManager.js → LocalDevManager_DEPRECATED.js} +10 -11
  217. package/lib/projects/localDev/LocalDevProcess.d.ts +7 -5
  218. package/lib/projects/localDev/LocalDevProcess.js +93 -21
  219. package/lib/projects/localDev/LocalDevState.d.ts +12 -8
  220. package/lib/projects/localDev/LocalDevState.js +27 -17
  221. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +6 -1
  222. package/lib/projects/localDev/LocalDevWebsocketServer.js +94 -33
  223. package/lib/projects/localDev/helpers/account.d.ts +1 -1
  224. package/lib/projects/localDev/helpers/account.js +2 -2
  225. package/lib/projects/localDev/helpers/project.d.ts +3 -2
  226. package/lib/projects/localDev/helpers/project.js +49 -10
  227. package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +7 -0
  228. package/lib/projects/localDev/localDevWebsocketServerUtils.js +19 -0
  229. package/lib/projects/platformVersion.d.ts +1 -1
  230. package/lib/projects/platformVersion.js +1 -1
  231. package/lib/projects/pollProjectBuildAndDeploy.js +4 -4
  232. package/lib/projects/structure.js +6 -6
  233. package/lib/projects/upload.d.ts +1 -1
  234. package/lib/projects/upload.js +17 -8
  235. package/lib/projects/urls.d.ts +0 -1
  236. package/lib/projects/urls.js +0 -3
  237. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +1 -0
  238. package/lib/prompts/__tests__/projectAddPrompt.test.js +10 -10
  239. package/lib/prompts/accountNamePrompt.js +14 -19
  240. package/lib/prompts/accountsPrompt.js +2 -2
  241. package/lib/prompts/cmsFieldPrompt.js +2 -2
  242. package/lib/prompts/createApiSamplePrompt.js +5 -5
  243. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +10 -1
  244. package/lib/prompts/createFunctionPrompt.js +14 -14
  245. package/lib/prompts/createModulePrompt.js +9 -9
  246. package/lib/prompts/createTemplatePrompt.js +2 -2
  247. package/lib/prompts/downloadProjectPrompt.js +5 -8
  248. package/lib/prompts/installAppPrompt.d.ts +1 -6
  249. package/lib/prompts/installAppPrompt.js +1 -6
  250. package/lib/prompts/personalAccessKeyPrompt.js +3 -3
  251. package/lib/prompts/previewPrompt.js +6 -6
  252. package/lib/prompts/projectAddPrompt.d.ts +2 -2
  253. package/lib/prompts/projectAddPrompt.js +9 -2
  254. package/lib/prompts/projectDevTargetAccountPrompt.js +20 -32
  255. package/lib/prompts/projectNamePrompt.js +4 -8
  256. package/lib/prompts/projectsLogsPrompt.js +2 -4
  257. package/lib/prompts/promptUtils.js +30 -9
  258. package/lib/prompts/sandboxesPrompt.js +7 -7
  259. package/lib/prompts/secretPrompt.js +3 -3
  260. package/lib/prompts/selectAppPrompt.js +3 -3
  261. package/lib/prompts/selectHubDBTablePrompt.js +9 -13
  262. package/lib/prompts/selectProjectTemplatePrompt.js +2 -0
  263. package/lib/prompts/selectPublicAppForMigrationPrompt.js +15 -19
  264. package/lib/prompts/setAsDefaultAccountPrompt.js +4 -8
  265. package/lib/prompts/uploadPrompt.js +5 -5
  266. package/lib/sandboxSync.js +24 -41
  267. package/lib/sandboxes.js +19 -47
  268. package/lib/schema.js +3 -3
  269. package/lib/serverlessLogs.js +11 -13
  270. package/lib/theme/__tests__/migrate.test.d.ts +1 -0
  271. package/lib/theme/__tests__/migrate.test.js +233 -0
  272. package/lib/theme/migrate.d.ts +13 -0
  273. package/lib/theme/migrate.js +90 -0
  274. package/lib/ui/SpinniesManager.d.ts +2 -0
  275. package/lib/ui/SpinniesManager.js +112 -8
  276. package/lib/ui/boxen.js +1 -2
  277. package/lib/ui/git.js +13 -10
  278. package/lib/ui/index.d.ts +4 -0
  279. package/lib/ui/index.js +47 -38
  280. package/lib/ui/serverlessFunctionLogs.js +9 -7
  281. package/lib/ui/uiMessages.d.ts +72 -0
  282. package/lib/ui/uiMessages.js +75 -0
  283. package/lib/usageTracking.js +8 -8
  284. package/lib/validation.js +20 -23
  285. package/lib/yargsUtils.d.ts +1 -1
  286. package/lib/yargsUtils.js +12 -5
  287. package/mcp-server/tools/cms/HsCreateFunctionTool.js +1 -1
  288. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +2 -2
  289. package/mcp-server/tools/cms/HsCreateModuleTool.js +1 -1
  290. package/mcp-server/tools/cms/HsCreateTemplateTool.js +1 -1
  291. package/mcp-server/tools/cms/HsFunctionLogsTool.js +2 -2
  292. package/mcp-server/tools/cms/HsListFunctionsTool.js +1 -1
  293. package/mcp-server/tools/cms/HsListTool.js +1 -1
  294. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +1 -1
  295. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +1 -1
  296. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +1 -1
  297. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +2 -2
  298. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +1 -1
  299. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +1 -1
  300. package/mcp-server/tools/index.js +4 -0
  301. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +3 -3
  302. package/mcp-server/tools/project/AddFeatureToProjectTool.js +3 -3
  303. package/mcp-server/tools/project/CreateProjectTool.d.ts +3 -3
  304. package/mcp-server/tools/project/CreateProjectTool.js +5 -5
  305. package/mcp-server/tools/project/DeployProjectTool.js +1 -1
  306. package/mcp-server/tools/project/DocFetchTool.js +2 -2
  307. package/mcp-server/tools/project/DocsSearchTool.d.ts +4 -1
  308. package/mcp-server/tools/project/DocsSearchTool.js +7 -7
  309. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +23 -0
  310. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +68 -0
  311. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +11 -0
  312. package/mcp-server/tools/project/GetApplicationInfoTool.js +49 -0
  313. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -1
  314. package/mcp-server/tools/project/GetConfigValuesTool.js +13 -7
  315. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +2 -2
  316. package/mcp-server/tools/project/GuidedWalkthroughTool.js +1 -1
  317. package/mcp-server/tools/project/UploadProjectTools.js +2 -2
  318. package/mcp-server/tools/project/ValidateProjectTool.js +1 -1
  319. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +1 -1
  320. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +2 -2
  321. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +1 -1
  322. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +2 -2
  323. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +14 -12
  324. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +1 -0
  325. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +169 -0
  326. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +1 -0
  327. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +115 -0
  328. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +9 -8
  329. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +1 -1
  330. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +1 -1
  331. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +1 -1
  332. package/mcp-server/tools/project/constants.d.ts +1 -1
  333. package/mcp-server/tools/project/constants.js +9 -3
  334. package/mcp-server/utils/__tests__/cliConfig.test.d.ts +1 -0
  335. package/mcp-server/utils/__tests__/cliConfig.test.js +110 -0
  336. package/mcp-server/utils/cliConfig.d.ts +1 -0
  337. package/mcp-server/utils/cliConfig.js +12 -0
  338. package/mcp-server/utils/toolUsageTracking.js +2 -2
  339. package/package.json +8 -12
  340. package/types/LocalDev.d.ts +19 -3
  341. package/ui/components/HorizontalSelectPrompt.js +1 -1
  342. package/ui/index.js +1 -1
  343. package/commands/getStartedV2.d.ts +0 -9
  344. package/commands/getStartedV2.js +0 -39
  345. package/lib/middleware/__test__/utils.test.js +0 -51
  346. package/lib/middleware/utils.d.ts +0 -8
  347. package/lib/middleware/utils.js +0 -14
  348. package/lib/projects/localDev/DevServerManagerV2.d.ts +0 -22
  349. package/lib/projects/localDev/DevServerManagerV2.js +0 -81
  350. package/ui/components/Ascii.d.ts +0 -10
  351. package/ui/components/Ascii.js +0 -11
  352. package/ui/views/GetStarted.d.ts +0 -7
  353. package/ui/views/GetStarted.js +0 -157
  354. /package/{lib/middleware/__test__/utils.test.d.ts → commands/project/__tests__/list.test.d.ts} +0 -0
  355. /package/{lib/projects/add/__tests__/v3AddComponent.test.d.ts → commands/project/__tests__/validate.test.d.ts} +0 -0
  356. /package/lib/{projects/create/__tests__/v3.test.d.ts → middleware/__test__/commandTargetingUtils.test.d.ts} +0 -0
  357. /package/lib/projects/localDev/{LocalDevManager.d.ts → LocalDevManager_DEPRECATED.d.ts} +0 -0
@@ -1,6 +1,5 @@
1
1
  import { getAccountId, hasLocalStateFlag } from '@hubspot/local-dev-lib/config';
2
2
  import { getConfigDefaultAccount } from '@hubspot/local-dev-lib/config';
3
- import { logger } from '@hubspot/local-dev-lib/logger';
4
3
  import { uiLogger } from '../../ui/logger.js';
5
4
  import { uiBetaTag, uiLine, uiAccountDescription, uiCommandReference, } from '../../ui/index.js';
6
5
  import { lib } from '../../../lang/en.js';
@@ -26,7 +25,7 @@ class LocalDevLogger {
26
25
  }
27
26
  handleError(e, langFunction) {
28
27
  if (this.state.debug) {
29
- logger.error(e);
28
+ uiLogger.error(e instanceof Error ? e.message : String(e));
30
29
  }
31
30
  uiLogger.error(langFunction(e instanceof Error ? e.message : ''));
32
31
  }
@@ -112,20 +111,42 @@ class LocalDevLogger {
112
111
  uploadInitiated() {
113
112
  uiLogger.log(lib.LocalDevProcess.uploadInitiated);
114
113
  }
114
+ deployInitiated() {
115
+ uiLogger.log(lib.LocalDevProcess.deployInitiated);
116
+ }
115
117
  projectConfigMismatch() {
116
118
  uiLogger.log(lib.LocalDevProcess.projectConfigMismatch);
117
119
  }
118
120
  uploadError(error) {
119
- logger.log('');
121
+ uiLogger.log('');
120
122
  logError(error);
121
123
  uiLogger.log(lib.LocalDevProcess.uploadFailed);
122
- logger.log('');
124
+ uiLogger.log('');
123
125
  }
124
126
  uploadSuccess() {
125
- logger.log('');
127
+ uiLogger.log('');
126
128
  uiLogger.log(lib.LocalDevProcess.uploadSuccess);
127
129
  uiLine();
128
- logger.log('');
130
+ uiLogger.log('');
131
+ }
132
+ uploadSuccessAutoDeployDisabled() {
133
+ uiLogger.warn(lib.LocalDevProcess.uploadSuccessAutoDeployDisabled);
134
+ uiLine();
135
+ uiLogger.log('');
136
+ }
137
+ deployError(error) {
138
+ uiLogger.log('');
139
+ if (error) {
140
+ logError(error);
141
+ }
142
+ uiLogger.log(lib.LocalDevProcess.deployFailed);
143
+ uiLogger.log('');
144
+ }
145
+ deploySuccess() {
146
+ uiLogger.log('');
147
+ uiLogger.log(lib.LocalDevProcess.deploySuccess);
148
+ uiLine();
149
+ uiLogger.log('');
129
150
  }
130
151
  monitorConsoleOutput() {
131
152
  const originalStdoutWrite = process.stdout.write.bind(process.stdout);
@@ -4,13 +4,12 @@ import chalk from 'chalk';
4
4
  import { fetchAppInstallationData } from '@hubspot/local-dev-lib/api/localDevAuth';
5
5
  import { fetchPublicAppsForPortal, fetchPublicAppProductionInstallCounts, } from '@hubspot/local-dev-lib/api/appsDev';
6
6
  import { getAccountId, getConfigDefaultAccount, } from '@hubspot/local-dev-lib/config';
7
- import { logger } from '@hubspot/local-dev-lib/logger';
8
7
  import { PROJECT_CONFIG_FILE } from '../../constants.js';
9
8
  import SpinniesManager from '../../ui/SpinniesManager.js';
10
- import DevServerManager from './DevServerManager.js';
9
+ import DevServerManager_DEPRECATED from './DevServerManager_DEPRECATED.js';
11
10
  import { EXIT_CODES } from '../../enums/exitCodes.js';
12
11
  import { getAccountHomeUrl } from '../urls.js';
13
- import { componentIsApp, componentIsPublicApp, CONFIG_FILES, getAppCardConfigs, getComponentUid, } from '../../projects/structure.js';
12
+ import { componentIsApp, componentIsPublicApp, CONFIG_FILES, getAppCardConfigs, getComponentUid, } from '../structure.js';
14
13
  import { ComponentTypes, } from '../../../types/Projects.js';
15
14
  import { UI_COLORS, uiCommandReference, uiAccountDescription, uiBetaTag, uiLink, uiLine, } from '../../ui/index.js';
16
15
  import { logError } from '../../errorHandlers/index.js';
@@ -314,7 +313,7 @@ class LocalDevManager {
314
313
  }
315
314
  async devServerSetup() {
316
315
  try {
317
- await DevServerManager.setup({
316
+ await DevServerManager_DEPRECATED.setup({
318
317
  components: this.runnableComponents,
319
318
  onUploadRequired: this.logUploadWarning.bind(this),
320
319
  accountId: this.targetAccountId,
@@ -324,7 +323,7 @@ class LocalDevManager {
324
323
  }
325
324
  catch (e) {
326
325
  if (this.debug) {
327
- logger.error(e);
326
+ uiLogger.error(e instanceof Error ? e.message : String(e));
328
327
  }
329
328
  uiLogger.error(lib.LocalDevManager.devServer.setupError(e instanceof Error ? e.message : ''));
330
329
  return false;
@@ -332,14 +331,14 @@ class LocalDevManager {
332
331
  }
333
332
  async devServerStart() {
334
333
  try {
335
- await DevServerManager.start({
334
+ await DevServerManager_DEPRECATED.start({
336
335
  accountId: this.targetAccountId,
337
336
  projectConfig: this.projectConfig,
338
337
  });
339
338
  }
340
339
  catch (e) {
341
340
  if (this.debug) {
342
- logger.error(e);
341
+ uiLogger.error(e instanceof Error ? e.message : String(e));
343
342
  }
344
343
  uiLogger.error(lib.LocalDevManager.devServer.startError(e instanceof Error ? e.message : ''));
345
344
  process.exit(EXIT_CODES.ERROR);
@@ -347,23 +346,23 @@ class LocalDevManager {
347
346
  }
348
347
  devServerFileChange(filePath, event) {
349
348
  try {
350
- DevServerManager.fileChange({ filePath, event });
349
+ DevServerManager_DEPRECATED.fileChange({ filePath, event });
351
350
  }
352
351
  catch (e) {
353
352
  if (this.debug) {
354
- logger.error(e);
353
+ uiLogger.error(e instanceof Error ? e.message : String(e));
355
354
  }
356
355
  uiLogger.error(lib.LocalDevManager.devServer.fileChangeError(e instanceof Error ? e.message : ''));
357
356
  }
358
357
  }
359
358
  async devServerCleanup() {
360
359
  try {
361
- await DevServerManager.cleanup();
360
+ await DevServerManager_DEPRECATED.cleanup();
362
361
  return true;
363
362
  }
364
363
  catch (e) {
365
364
  if (this.debug) {
366
- logger.error(e);
365
+ uiLogger.error(e instanceof Error ? e.message : String(e));
367
366
  }
368
367
  uiLogger.error(lib.LocalDevManager.devServer.cleanupError(e instanceof Error ? e.message : ''));
369
368
  return false;
@@ -1,15 +1,15 @@
1
1
  import { IntermediateRepresentationNodeLocalDev } from '@hubspot/project-parsing-lib/src/lib/types.js';
2
+ import { Project } from '@hubspot/local-dev-lib/types/Project';
2
3
  import LocalDevState from './LocalDevState.js';
3
4
  import LocalDevLogger from './LocalDevLogger.js';
4
- import { LocalDevStateConstructorOptions, LocalDevStateListener, LocalDevServerMessage } from '../../../types/LocalDev.js';
5
+ import { LocalDevStateConstructorOptions, LocalDevStateListener, LocalDevServerMessage, LocalDevProjectUploadResult, LocalDevProjectDeployResult } from '../../../types/LocalDev.js';
5
6
  declare class LocalDevProcess {
6
7
  private state;
7
8
  private _logger;
8
9
  private devServerManager;
9
10
  constructor(options: LocalDevStateConstructorOptions);
10
11
  get projectDir(): string;
11
- get projectId(): number;
12
- get projectName(): string;
12
+ get projectData(): Project;
13
13
  get targetProjectAccountId(): number;
14
14
  get targetTestingAccountId(): number;
15
15
  get projectNodes(): {
@@ -22,13 +22,15 @@ declare class LocalDevProcess {
22
22
  private projectConfigValidForUpload;
23
23
  private getIntermediateRepresentation;
24
24
  private updateProjectNodes;
25
- private updateProjectNodesAfterUpload;
25
+ private updateProjectNodesAfterDeploy;
26
26
  private openLocalDevUi;
27
+ private updateProjectData;
27
28
  handleFileChange(filePath: string, event: string): Promise<void>;
28
29
  handleConfigFileChange(): Promise<void>;
29
30
  start(): Promise<void>;
30
31
  stop(showProgress?: boolean): Promise<void>;
31
- uploadProject(): Promise<boolean>;
32
+ uploadProject(): Promise<LocalDevProjectUploadResult>;
33
+ deployLatestBuild(force?: boolean): Promise<LocalDevProjectDeployResult>;
32
34
  addStateListener<K extends keyof LocalDevState>(key: K, listener: LocalDevStateListener<K>): void;
33
35
  sendDevServerMessage(message: LocalDevServerMessage): void;
34
36
  removeStateListener<K extends keyof LocalDevState>(key: K, listener: LocalDevStateListener<K>): void;
@@ -1,17 +1,21 @@
1
1
  import { translateForLocalDev } from '@hubspot/project-parsing-lib';
2
2
  import { hasLocalStateFlag } from '@hubspot/local-dev-lib/config';
3
+ import { fetchProject } from '@hubspot/local-dev-lib/api/projects';
3
4
  import path from 'path';
4
5
  import open from 'open';
5
6
  import LocalDevState from './LocalDevState.js';
6
7
  import LocalDevLogger from './LocalDevLogger.js';
7
- import DevServerManagerV2 from './DevServerManagerV2.js';
8
+ import DevServerManager from './DevServerManager.js';
8
9
  import { EXIT_CODES } from '../../enums/exitCodes.js';
9
10
  import { getProjectConfig } from '../config.js';
10
11
  import { handleProjectUpload } from '../upload.js';
12
+ import { handleProjectDeploy } from '../deploy.js';
11
13
  import { pollProjectBuildAndDeploy } from '../pollProjectBuildAndDeploy.js';
12
14
  import { getLocalDevUiUrl } from '../urls.js';
13
- import { CONFIG_LOCAL_STATE_FLAGS } from '../../constants.js';
15
+ import { CONFIG_LOCAL_STATE_FLAGS, PROJECT_DEPLOY_STATES, } from '../../constants.js';
14
16
  import { isAutoOpenBrowserEnabled } from '../../configOptions.js';
17
+ import { lib } from '../../../lang/en.js';
18
+ import { debugError } from '../../errorHandlers/index.js';
15
19
  class LocalDevProcess {
16
20
  state;
17
21
  _logger;
@@ -19,7 +23,7 @@ class LocalDevProcess {
19
23
  constructor(options) {
20
24
  this.state = new LocalDevState(options);
21
25
  this._logger = new LocalDevLogger(this.state);
22
- this.devServerManager = new DevServerManagerV2({
26
+ this.devServerManager = new DevServerManager({
23
27
  localDevState: this.state,
24
28
  logger: this._logger,
25
29
  });
@@ -27,11 +31,8 @@ class LocalDevProcess {
27
31
  get projectDir() {
28
32
  return this.state.projectDir;
29
33
  }
30
- get projectId() {
31
- return this.state.projectId;
32
- }
33
- get projectName() {
34
- return this.state.projectName;
34
+ get projectData() {
35
+ return this.state.projectData;
35
36
  }
36
37
  get targetProjectAccountId() {
37
38
  return this.state.targetProjectAccountId;
@@ -87,34 +88,43 @@ class LocalDevProcess {
87
88
  });
88
89
  return true;
89
90
  }
90
- getIntermediateRepresentation(projectNodesAtLastUpload) {
91
+ getIntermediateRepresentation(projectNodesAtLastDeploy) {
91
92
  return translateForLocalDev({
92
93
  projectSourceDir: path.join(this.state.projectDir, this.state.projectConfig.srcDir),
93
94
  platformVersion: this.state.projectConfig.platformVersion,
94
95
  accountId: this.state.targetProjectAccountId,
95
96
  }, {
96
- projectNodesAtLastUpload,
97
+ projectNodesAtLastUpload: projectNodesAtLastDeploy,
97
98
  profile: this.state.profile,
98
99
  });
99
100
  }
100
101
  async updateProjectNodes() {
101
- const intermediateRepresentation = await this.getIntermediateRepresentation(this.state.projectNodesAtLastUpload);
102
+ const intermediateRepresentation = await this.getIntermediateRepresentation(this.state.projectNodesAtLastDeploy);
102
103
  this.state.projectNodes =
103
104
  intermediateRepresentation.intermediateNodesIndexedByUid;
104
105
  this.state.projectProfileData = intermediateRepresentation.profileData;
105
106
  }
106
- async updateProjectNodesAfterUpload() {
107
+ async updateProjectNodesAfterDeploy() {
107
108
  const intermediateRepresentation = await this.getIntermediateRepresentation();
108
109
  this.state.projectNodes =
109
110
  intermediateRepresentation.intermediateNodesIndexedByUid;
110
111
  this.state.projectProfileData = intermediateRepresentation.profileData;
111
- this.state.projectNodesAtLastUpload =
112
+ this.state.projectNodesAtLastDeploy =
112
113
  intermediateRepresentation.intermediateNodesIndexedByUid;
113
114
  }
114
115
  openLocalDevUi() {
115
116
  const showWelcomeScreen = !hasLocalStateFlag(CONFIG_LOCAL_STATE_FLAGS.LOCAL_DEV_UI_WELCOME);
116
117
  open(getLocalDevUiUrl(this.state.targetTestingAccountId, showWelcomeScreen));
117
118
  }
119
+ async updateProjectData() {
120
+ try {
121
+ const { data: projectData } = await fetchProject(this.state.targetProjectAccountId, this.state.projectConfig.name);
122
+ this.state.projectData = projectData;
123
+ }
124
+ catch (e) {
125
+ debugError(e);
126
+ }
127
+ }
118
128
  async handleFileChange(filePath, event) {
119
129
  await this.updateProjectNodes();
120
130
  try {
@@ -139,6 +149,7 @@ class LocalDevProcess {
139
149
  this.openLocalDevUi();
140
150
  }
141
151
  await this.startDevServers();
152
+ this.state.devServersStarted = true;
142
153
  this.logger.monitorConsoleOutput();
143
154
  }
144
155
  async stop(showProgress = true) {
@@ -162,24 +173,85 @@ class LocalDevProcess {
162
173
  const isUploadable = await this.projectConfigValidForUpload();
163
174
  if (!isUploadable) {
164
175
  this.logger.projectConfigMismatch();
165
- return false;
176
+ return {
177
+ uploadSuccess: false,
178
+ buildSuccess: false,
179
+ deploySuccess: false,
180
+ };
166
181
  }
167
- const { uploadError } = await handleProjectUpload({
182
+ const { uploadError, result } = await handleProjectUpload({
168
183
  accountId: this.state.targetProjectAccountId,
169
184
  projectConfig: this.state.projectConfig,
170
185
  projectDir: this.state.projectDir,
171
186
  callbackFunc: pollProjectBuildAndDeploy,
172
187
  sendIR: true,
173
- skipValidation: true,
174
188
  });
189
+ const deploy = result?.deployResult;
175
190
  if (uploadError) {
176
191
  this.logger.uploadError(uploadError);
177
- return false;
192
+ return {
193
+ uploadSuccess: false,
194
+ buildSuccess: false,
195
+ deploySuccess: false,
196
+ deployId: deploy?.deployId,
197
+ };
178
198
  }
179
- await this.updateProjectNodesAfterUpload();
180
- this.logger.uploadSuccess();
181
- this.state.clearUploadWarnings();
182
- return true;
199
+ await this.updateProjectData();
200
+ if (deploy && deploy.status === PROJECT_DEPLOY_STATES.FAILURE) {
201
+ return {
202
+ uploadSuccess: false,
203
+ buildSuccess: true,
204
+ deploySuccess: false,
205
+ deployId: deploy.deployId,
206
+ };
207
+ }
208
+ else if (!deploy) {
209
+ this.logger.uploadSuccessAutoDeployDisabled();
210
+ }
211
+ else {
212
+ await this.updateProjectNodesAfterDeploy();
213
+ this.state.clearUploadWarnings();
214
+ this.logger.uploadSuccess();
215
+ }
216
+ return {
217
+ uploadSuccess: true,
218
+ buildSuccess: true,
219
+ deploySuccess: Boolean(deploy),
220
+ deployId: deploy?.deployId,
221
+ };
222
+ }
223
+ async deployLatestBuild(force = false) {
224
+ this.logger.deployInitiated();
225
+ if (!this.state.projectData.latestBuild) {
226
+ this.logger.deployError(lib.LocalDevProcess.noBuildToDeploy);
227
+ return {
228
+ success: false,
229
+ };
230
+ }
231
+ let deploy;
232
+ try {
233
+ deploy = await handleProjectDeploy(this.state.targetProjectAccountId, this.state.projectConfig.name, this.state.projectData.latestBuild.buildId, true, force);
234
+ }
235
+ catch (error) {
236
+ this.logger.deployError(error);
237
+ return {
238
+ success: false,
239
+ };
240
+ }
241
+ const success = deploy?.status === PROJECT_DEPLOY_STATES.SUCCESS;
242
+ if (success) {
243
+ await this.updateProjectData();
244
+ this.logger.deploySuccess();
245
+ await this.updateProjectNodesAfterDeploy();
246
+ this.state.clearUploadWarnings();
247
+ }
248
+ else {
249
+ this.logger.deployError();
250
+ }
251
+ return {
252
+ success,
253
+ deployId: deploy?.deployId,
254
+ };
183
255
  }
184
256
  addStateListener(key, listener) {
185
257
  this.state.addListener(key, listener);
@@ -1,5 +1,6 @@
1
1
  import { IntermediateRepresentationNodeLocalDev, HSProfileVariables } from '@hubspot/project-parsing-lib/src/lib/types.js';
2
2
  import { Environment } from '@hubspot/local-dev-lib/types/Config';
3
+ import { Project } from '@hubspot/local-dev-lib/types/Project';
3
4
  import { ProjectConfig } from '../../../types/Projects.js';
4
5
  import { LocalDevStateConstructorOptions, LocalDevStateListener, AppLocalDevData, LocalDevServerMessage } from '../../../types/LocalDev.js';
5
6
  declare class LocalDevState {
@@ -8,26 +9,24 @@ declare class LocalDevState {
8
9
  private _profile?;
9
10
  private _projectConfig;
10
11
  private _projectDir;
11
- private _projectId;
12
- private _projectName;
12
+ private _projectData;
13
13
  private _debug;
14
14
  private _projectNodes;
15
15
  private _projectProfileData;
16
- private _projectNodesAtLastUpload;
16
+ private _projectNodesAtLastDeploy;
17
17
  private _env;
18
18
  private _listeners;
19
19
  private _appData;
20
20
  private _devServerMessage;
21
21
  private _uploadWarnings;
22
- constructor({ targetProjectAccountId, targetTestingAccountId, projectConfig, projectDir, projectId, projectName, debug, initialProjectNodes, initialProjectProfileData, profile, env, }: LocalDevStateConstructorOptions);
22
+ private _devServersStarted;
23
+ constructor({ targetProjectAccountId, targetTestingAccountId, projectConfig, projectDir, projectData, debug, initialProjectNodes, initialProjectProfileData, profile, env, }: LocalDevStateConstructorOptions);
23
24
  private runListeners;
24
25
  get targetProjectAccountId(): number;
25
26
  get targetTestingAccountId(): number;
26
27
  get profile(): string | undefined;
27
28
  get projectConfig(): ProjectConfig;
28
29
  get projectDir(): string;
29
- get projectId(): number;
30
- get projectName(): string;
31
30
  get debug(): boolean;
32
31
  get projectNodes(): {
33
32
  [key: string]: IntermediateRepresentationNodeLocalDev;
@@ -37,12 +36,15 @@ declare class LocalDevState {
37
36
  });
38
37
  get projectProfileData(): HSProfileVariables;
39
38
  set projectProfileData(profileData: HSProfileVariables);
40
- get projectNodesAtLastUpload(): {
39
+ get projectNodesAtLastDeploy(): {
41
40
  [key: string]: IntermediateRepresentationNodeLocalDev;
42
41
  };
43
- set projectNodesAtLastUpload(nodes: {
42
+ set projectNodesAtLastDeploy(nodes: {
44
43
  [key: string]: IntermediateRepresentationNodeLocalDev;
45
44
  });
45
+ get projectData(): Project;
46
+ get projectId(): number;
47
+ set projectData(projectData: Project);
46
48
  get env(): Environment;
47
49
  get appData(): Record<string, AppLocalDevData>;
48
50
  getAppDataByUid(uid: string): AppLocalDevData | undefined;
@@ -50,6 +52,8 @@ declare class LocalDevState {
50
52
  get devServerMessage(): string;
51
53
  set devServerMessage(message: LocalDevServerMessage);
52
54
  get uploadWarnings(): Set<string>;
55
+ get devServersStarted(): boolean;
56
+ set devServersStarted(started: boolean);
53
57
  addUploadWarning(warning: string): void;
54
58
  clearUploadWarnings(): void;
55
59
  addListener<K extends keyof LocalDevState>(key: K, listener: LocalDevStateListener<K>): void;
@@ -5,33 +5,33 @@ class LocalDevState {
5
5
  _profile;
6
6
  _projectConfig;
7
7
  _projectDir;
8
- _projectId;
9
- _projectName;
8
+ _projectData;
10
9
  _debug;
11
10
  _projectNodes;
12
11
  _projectProfileData;
13
- _projectNodesAtLastUpload;
12
+ _projectNodesAtLastDeploy;
14
13
  _env;
15
14
  _listeners;
16
15
  _appData;
17
16
  _devServerMessage;
18
17
  _uploadWarnings;
19
- constructor({ targetProjectAccountId, targetTestingAccountId, projectConfig, projectDir, projectId, projectName, debug, initialProjectNodes, initialProjectProfileData, profile, env, }) {
18
+ _devServersStarted;
19
+ constructor({ targetProjectAccountId, targetTestingAccountId, projectConfig, projectDir, projectData, debug, initialProjectNodes, initialProjectProfileData, profile, env, }) {
20
20
  this._targetProjectAccountId = targetProjectAccountId;
21
21
  this._targetTestingAccountId = targetTestingAccountId;
22
22
  this._profile = profile;
23
23
  this._projectConfig = projectConfig;
24
24
  this._projectDir = projectDir;
25
- this._projectId = projectId;
26
- this._projectName = projectName;
25
+ this._projectData = projectData;
27
26
  this._debug = debug || false;
28
27
  this._projectNodes = initialProjectNodes;
29
- this._projectNodesAtLastUpload = initialProjectNodes;
28
+ this._projectNodesAtLastDeploy = initialProjectNodes;
30
29
  this._projectProfileData = initialProjectProfileData;
31
30
  this._env = env;
32
31
  this._appData = {};
33
32
  this._devServerMessage = LOCAL_DEV_SERVER_MESSAGE_TYPES.INITIAL;
34
33
  this._uploadWarnings = new Set();
34
+ this._devServersStarted = false;
35
35
  this._listeners = {};
36
36
  }
37
37
  runListeners(key) {
@@ -54,12 +54,6 @@ class LocalDevState {
54
54
  get projectDir() {
55
55
  return this._projectDir;
56
56
  }
57
- get projectId() {
58
- return this._projectId;
59
- }
60
- get projectName() {
61
- return this._projectName;
62
- }
63
57
  get debug() {
64
58
  return this._debug;
65
59
  }
@@ -76,11 +70,20 @@ class LocalDevState {
76
70
  set projectProfileData(profileData) {
77
71
  this._projectProfileData = profileData;
78
72
  }
79
- get projectNodesAtLastUpload() {
80
- return structuredClone(this._projectNodesAtLastUpload);
73
+ get projectNodesAtLastDeploy() {
74
+ return structuredClone(this._projectNodesAtLastDeploy);
81
75
  }
82
- set projectNodesAtLastUpload(nodes) {
83
- this._projectNodesAtLastUpload = nodes;
76
+ set projectNodesAtLastDeploy(nodes) {
77
+ this._projectNodesAtLastDeploy = nodes;
78
+ }
79
+ get projectData() {
80
+ return structuredClone(this._projectData);
81
+ }
82
+ get projectId() {
83
+ return this.projectData.id;
84
+ }
85
+ set projectData(projectData) {
86
+ this._projectData = projectData;
84
87
  }
85
88
  get env() {
86
89
  return this._env;
@@ -105,6 +108,13 @@ class LocalDevState {
105
108
  get uploadWarnings() {
106
109
  return this._uploadWarnings;
107
110
  }
111
+ get devServersStarted() {
112
+ return this._devServersStarted;
113
+ }
114
+ set devServersStarted(started) {
115
+ this._devServersStarted = started;
116
+ this.runListeners('devServersStarted');
117
+ }
108
118
  addUploadWarning(warning) {
109
119
  this.uploadWarnings.add(warning);
110
120
  this.runListeners('uploadWarnings');
@@ -3,17 +3,22 @@ declare class LocalDevWebsocketServer {
3
3
  private server?;
4
4
  private debug?;
5
5
  private localDevProcess;
6
- private ALLOWED_ORIGINS;
7
6
  constructor(localDevProcess: LocalDevProcess, debug?: boolean);
8
7
  private log;
9
8
  private logError;
10
9
  private sendMessage;
11
10
  private handleUpload;
11
+ private handleDeploy;
12
+ private handleAppInstallSuccess;
13
+ private handleAppInstallFailure;
14
+ private handleAppInstallInitiated;
12
15
  private setupMessageHandlers;
16
+ private sendCliMetadata;
13
17
  private sendProjectData;
14
18
  private setupProjectNodesListener;
15
19
  private setupAppDataListener;
16
20
  private setupUploadWarningsListener;
21
+ private setupDevServersStartedListener;
17
22
  private setupStateListeners;
18
23
  start(): Promise<void>;
19
24
  shutdown(): void;