@hubspot/cli 7.4.9-experimental.0 → 7.4.10-beta.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 (366) hide show
  1. package/api/migrate.d.ts +14 -4
  2. package/api/migrate.js +16 -2
  3. package/bin/cli.js +9 -187
  4. package/commands/account/auth.d.ts +6 -0
  5. package/commands/account/auth.js +198 -0
  6. package/commands/account/clean.d.ts +3 -7
  7. package/commands/account/clean.js +54 -14
  8. package/commands/account/createOverride.d.ts +6 -0
  9. package/commands/account/createOverride.js +121 -0
  10. package/commands/account/info.d.ts +3 -7
  11. package/commands/account/info.js +51 -9
  12. package/commands/account/list.d.ts +3 -7
  13. package/commands/account/list.js +38 -13
  14. package/commands/account/remove.d.ts +3 -7
  15. package/commands/account/remove.js +57 -11
  16. package/commands/account/removeOverride.d.ts +6 -0
  17. package/commands/account/removeOverride.js +93 -0
  18. package/commands/account/rename.d.ts +3 -7
  19. package/commands/account/rename.js +16 -9
  20. package/commands/account/use.d.ts +5 -9
  21. package/commands/account/use.js +39 -9
  22. package/commands/account.d.ts +3 -4
  23. package/commands/account.js +35 -53
  24. package/commands/app/migrate.d.ts +5 -6
  25. package/commands/app/migrate.js +60 -44
  26. package/commands/app.d.ts +2 -5
  27. package/commands/app.js +9 -9
  28. package/commands/auth.d.ts +3 -7
  29. package/commands/auth.js +25 -15
  30. package/commands/cms/convertFields.d.ts +7 -1
  31. package/commands/cms/convertFields.js +57 -41
  32. package/commands/cms/getReactModule.d.ts +7 -1
  33. package/commands/cms/getReactModule.js +52 -34
  34. package/commands/cms/lighthouseScore.d.ts +8 -1
  35. package/commands/cms/lighthouseScore.js +133 -100
  36. package/commands/cms.d.ts +3 -1
  37. package/commands/cms.js +24 -16
  38. package/commands/completion.d.ts +3 -1
  39. package/commands/completion.js +25 -13
  40. package/commands/config/migrate.d.ts +6 -0
  41. package/commands/config/migrate.js +94 -0
  42. package/commands/config/set.d.ts +10 -1
  43. package/commands/config/set.js +61 -32
  44. package/commands/config.d.ts +3 -1
  45. package/commands/config.js +21 -11
  46. package/commands/create/api-sample.d.ts +3 -1
  47. package/commands/create/api-sample.js +34 -36
  48. package/commands/create/app.d.ts +3 -1
  49. package/commands/create/app.js +9 -7
  50. package/commands/create/function.d.ts +3 -1
  51. package/commands/create/function.js +11 -10
  52. package/commands/create/index.d.ts +5 -1
  53. package/commands/create/index.js +23 -11
  54. package/commands/create/module.d.ts +3 -1
  55. package/commands/create/module.js +14 -13
  56. package/commands/create/react-app.d.ts +3 -1
  57. package/commands/create/react-app.js +10 -7
  58. package/commands/create/template.d.ts +3 -1
  59. package/commands/create/template.js +14 -14
  60. package/commands/create/vue-app.d.ts +3 -1
  61. package/commands/create/vue-app.js +10 -7
  62. package/commands/create/webpack-serverless.d.ts +3 -1
  63. package/commands/create/webpack-serverless.js +10 -7
  64. package/commands/create/website-theme.d.ts +3 -1
  65. package/commands/create/website-theme.js +10 -9
  66. package/commands/create.d.ts +4 -24
  67. package/commands/create.js +64 -75
  68. package/commands/customObject/create.d.ts +4 -9
  69. package/commands/customObject/create.js +17 -10
  70. package/commands/customObject/schema/create.d.ts +4 -9
  71. package/commands/customObject/schema/create.js +18 -11
  72. package/commands/customObject/schema/delete.d.ts +4 -9
  73. package/commands/customObject/schema/delete.js +21 -11
  74. package/commands/customObject/schema/fetch-all.d.ts +4 -9
  75. package/commands/customObject/schema/fetch-all.js +19 -11
  76. package/commands/customObject/schema/fetch.d.ts +4 -9
  77. package/commands/customObject/schema/fetch.js +19 -11
  78. package/commands/customObject/schema/list.d.ts +4 -8
  79. package/commands/customObject/schema/list.js +17 -10
  80. package/commands/customObject/schema/update.d.ts +4 -9
  81. package/commands/customObject/schema/update.js +18 -11
  82. package/commands/customObject/schema.d.ts +3 -5
  83. package/commands/customObject/schema.js +27 -54
  84. package/commands/customObject.d.ts +3 -4
  85. package/commands/customObject.js +22 -48
  86. package/commands/doctor.d.ts +6 -8
  87. package/commands/doctor.js +32 -22
  88. package/commands/feedback.d.ts +4 -1
  89. package/commands/feedback.js +40 -48
  90. package/commands/fetch.d.ts +12 -1
  91. package/commands/fetch.js +49 -34
  92. package/commands/filemanager/fetch.d.ts +4 -9
  93. package/commands/filemanager/fetch.js +18 -11
  94. package/commands/filemanager/upload.d.ts +4 -9
  95. package/commands/filemanager/upload.js +17 -11
  96. package/commands/filemanager.d.ts +3 -4
  97. package/commands/filemanager.js +20 -42
  98. package/commands/function/deploy.d.ts +6 -1
  99. package/commands/function/deploy.js +70 -50
  100. package/commands/function/list.d.ts +6 -1
  101. package/commands/function/list.js +44 -32
  102. package/commands/function/server.d.ts +10 -1
  103. package/commands/function/server.js +49 -38
  104. package/commands/function.d.ts +5 -1
  105. package/commands/function.js +24 -11
  106. package/commands/hubdb/clear.d.ts +4 -9
  107. package/commands/hubdb/clear.js +21 -15
  108. package/commands/hubdb/create.d.ts +4 -9
  109. package/commands/hubdb/create.js +23 -17
  110. package/commands/hubdb/delete.d.ts +4 -9
  111. package/commands/hubdb/delete.js +24 -16
  112. package/commands/hubdb/fetch.d.ts +4 -9
  113. package/commands/hubdb/fetch.js +20 -14
  114. package/commands/hubdb.d.ts +3 -2
  115. package/commands/hubdb.js +24 -47
  116. package/commands/init.d.ts +3 -7
  117. package/commands/init.js +28 -23
  118. package/commands/lint.d.ts +6 -4
  119. package/commands/lint.js +44 -44
  120. package/commands/list.d.ts +3 -7
  121. package/commands/list.js +23 -16
  122. package/commands/logs.d.ts +10 -1
  123. package/commands/logs.js +53 -45
  124. package/commands/module/marketplace-validate.d.ts +6 -1
  125. package/commands/module/marketplace-validate.js +39 -28
  126. package/commands/module.d.ts +3 -1
  127. package/commands/module.js +22 -12
  128. package/commands/mv.d.ts +3 -7
  129. package/commands/mv.js +22 -15
  130. package/commands/open.d.ts +3 -7
  131. package/commands/open.js +22 -15
  132. package/commands/project/add.d.ts +3 -7
  133. package/commands/project/add.js +28 -23
  134. package/commands/project/cloneApp.d.ts +6 -8
  135. package/commands/project/cloneApp.js +49 -45
  136. package/commands/project/create.d.ts +10 -1
  137. package/commands/project/create.js +85 -63
  138. package/commands/project/deploy.d.ts +4 -6
  139. package/commands/project/deploy.js +66 -36
  140. package/commands/project/dev/deprecatedFlow.js +32 -25
  141. package/commands/project/dev/index.d.ts +4 -5
  142. package/commands/project/dev/index.js +70 -25
  143. package/commands/project/dev/unifiedFlow.d.ts +2 -1
  144. package/commands/project/dev/unifiedFlow.js +58 -27
  145. package/commands/project/download.d.ts +3 -7
  146. package/commands/project/download.js +18 -19
  147. package/commands/project/installDeps.d.ts +6 -1
  148. package/commands/project/installDeps.js +48 -32
  149. package/commands/project/listBuilds.d.ts +3 -7
  150. package/commands/project/listBuilds.js +32 -27
  151. package/commands/project/logs.d.ts +10 -1
  152. package/commands/project/logs.js +73 -65
  153. package/commands/project/migrate.d.ts +7 -0
  154. package/commands/project/migrate.js +71 -0
  155. package/commands/project/migrateApp.d.ts +3 -8
  156. package/commands/project/migrateApp.js +23 -20
  157. package/commands/project/open.d.ts +3 -7
  158. package/commands/project/open.js +29 -21
  159. package/commands/project/profile/add.d.ts +7 -0
  160. package/commands/project/profile/add.js +190 -0
  161. package/commands/project/profile/remove.d.ts +6 -0
  162. package/commands/project/profile/remove.js +119 -0
  163. package/commands/project/profile.d.ts +3 -0
  164. package/commands/project/profile.js +25 -0
  165. package/commands/project/upload.d.ts +10 -1
  166. package/commands/project/upload.js +110 -56
  167. package/commands/project/watch.d.ts +6 -1
  168. package/commands/project/watch.js +95 -61
  169. package/commands/project.d.ts +3 -1
  170. package/commands/project.js +49 -35
  171. package/commands/remove.d.ts +3 -7
  172. package/commands/remove.js +25 -15
  173. package/commands/sandbox/create.d.ts +4 -9
  174. package/commands/sandbox/create.js +27 -21
  175. package/commands/sandbox/delete.d.ts +4 -9
  176. package/commands/sandbox/delete.js +35 -29
  177. package/commands/sandbox.d.ts +3 -4
  178. package/commands/sandbox.js +20 -44
  179. package/commands/secret/addSecret.d.ts +4 -9
  180. package/commands/secret/addSecret.js +21 -15
  181. package/commands/secret/deleteSecret.d.ts +4 -9
  182. package/commands/secret/deleteSecret.js +28 -18
  183. package/commands/secret/listSecret.d.ts +4 -9
  184. package/commands/secret/listSecret.js +19 -13
  185. package/commands/secret/updateSecret.d.ts +4 -9
  186. package/commands/secret/updateSecret.js +25 -17
  187. package/commands/secret.d.ts +3 -4
  188. package/commands/secret.js +25 -49
  189. package/commands/theme/generate-selectors.d.ts +3 -7
  190. package/commands/theme/generate-selectors.js +18 -11
  191. package/commands/theme/marketplace-validate.d.ts +4 -9
  192. package/commands/theme/marketplace-validate.js +21 -15
  193. package/commands/theme/preview.d.ts +4 -9
  194. package/commands/theme/preview.js +31 -24
  195. package/commands/theme.d.ts +3 -4
  196. package/commands/theme.js +23 -47
  197. package/commands/upload.d.ts +12 -1
  198. package/commands/upload.js +118 -98
  199. package/commands/watch.d.ts +14 -1
  200. package/commands/watch.js +76 -66
  201. package/lang/en.d.ts +2932 -0
  202. package/lang/en.js +2796 -3318
  203. package/lang/en.lyaml +120 -58
  204. package/lib/accountTypes.d.ts +1 -0
  205. package/lib/accountTypes.js +12 -0
  206. package/lib/app/migrate.d.ts +33 -4
  207. package/lib/app/migrate.js +218 -93
  208. package/lib/app/migrate_legacy.d.ts +2 -2
  209. package/lib/app/migrate_legacy.js +15 -12
  210. package/lib/app/urls.d.ts +16 -0
  211. package/lib/app/urls.js +16 -0
  212. package/lib/buildAccount.d.ts +1 -2
  213. package/lib/buildAccount.js +11 -10
  214. package/lib/commonOpts.d.ts +3 -4
  215. package/lib/commonOpts.js +46 -18
  216. package/lib/configMigrate.d.ts +2 -0
  217. package/lib/configMigrate.js +118 -0
  218. package/lib/configOptions.d.ts +4 -0
  219. package/lib/configOptions.js +41 -45
  220. package/lib/constants.d.ts +10 -0
  221. package/lib/constants.js +11 -1
  222. package/lib/dependencyManagement.d.ts +0 -5
  223. package/lib/dependencyManagement.js +14 -40
  224. package/lib/doctor/Diagnosis.d.ts +1 -2
  225. package/lib/doctor/Diagnosis.js +19 -16
  226. package/lib/doctor/DiagnosticInfoBuilder.d.ts +2 -1
  227. package/lib/doctor/DiagnosticInfoBuilder.js +10 -9
  228. package/lib/doctor/Doctor.d.ts +1 -0
  229. package/lib/doctor/Doctor.js +59 -45
  230. package/lib/errorHandlers/index.js +6 -7
  231. package/lib/errorHandlers/suppressError.js +18 -26
  232. package/lib/filesystem.d.ts +1 -1
  233. package/lib/generateSelectors.js +1 -2
  234. package/lib/hasFeature.d.ts +3 -1
  235. package/lib/interpolation.d.ts +2 -3
  236. package/lib/lang.d.ts +2 -3
  237. package/lib/middleware/__test__/configMiddleware.test.d.ts +1 -0
  238. package/lib/middleware/__test__/configMiddleware.test.js +194 -0
  239. package/lib/middleware/__test__/gitMiddleware.test.d.ts +1 -0
  240. package/lib/middleware/__test__/gitMiddleware.test.js +76 -0
  241. package/lib/middleware/__test__/notificationsMiddleware.test.d.ts +1 -0
  242. package/lib/middleware/__test__/notificationsMiddleware.test.js +10 -0
  243. package/lib/middleware/__test__/requestMiddleware.test.d.ts +1 -0
  244. package/lib/middleware/__test__/requestMiddleware.test.js +20 -0
  245. package/lib/middleware/__test__/utils.test.d.ts +1 -0
  246. package/lib/middleware/__test__/utils.test.js +53 -0
  247. package/lib/middleware/__test__/yargsChecksMiddleware.test.d.ts +1 -0
  248. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +81 -0
  249. package/lib/middleware/autoUpdateMiddleware.d.ts +1 -0
  250. package/lib/middleware/autoUpdateMiddleware.js +89 -0
  251. package/lib/middleware/configMiddleware.d.ts +13 -0
  252. package/lib/middleware/configMiddleware.js +124 -0
  253. package/lib/middleware/fireAlarmMiddleware.d.ts +4 -0
  254. package/lib/middleware/fireAlarmMiddleware.js +123 -0
  255. package/lib/middleware/gitMiddleware.d.ts +2 -0
  256. package/lib/middleware/gitMiddleware.js +14 -0
  257. package/lib/middleware/notificationsMiddleware.d.ts +1 -0
  258. package/lib/middleware/notificationsMiddleware.js +38 -0
  259. package/lib/middleware/requestMiddleware.d.ts +1 -0
  260. package/lib/middleware/requestMiddleware.js +11 -0
  261. package/lib/middleware/utils.d.ts +8 -0
  262. package/lib/middleware/utils.js +17 -0
  263. package/lib/middleware/yargsChecksMiddleware.d.ts +4 -0
  264. package/lib/middleware/yargsChecksMiddleware.js +24 -0
  265. package/lib/npm.d.ts +9 -0
  266. package/lib/npm.js +36 -0
  267. package/lib/oauth.js +1 -2
  268. package/lib/process.js +1 -2
  269. package/lib/projectProfiles.d.ts +6 -0
  270. package/lib/projectProfiles.js +65 -0
  271. package/lib/projects/ProjectLogsManager.d.ts +1 -1
  272. package/lib/projects/ProjectLogsManager.js +16 -21
  273. package/lib/projects/buildAndDeploy.js +45 -41
  274. package/lib/projects/config.d.ts +9 -0
  275. package/lib/projects/config.js +79 -0
  276. package/lib/projects/create.js +5 -6
  277. package/lib/projects/ensureProjectExists.d.ts +11 -0
  278. package/lib/projects/ensureProjectExists.js +97 -0
  279. package/lib/projects/localDev/AppDevModeInterface.d.ts +26 -0
  280. package/lib/projects/localDev/AppDevModeInterface.js +156 -0
  281. package/lib/{DevServerManager.d.ts → projects/localDev/DevServerManager.d.ts} +1 -1
  282. package/lib/{DevServerManager.js → projects/localDev/DevServerManager.js} +6 -6
  283. package/lib/projects/localDev/DevServerManagerV2.d.ts +22 -0
  284. package/lib/{DevServerManagerV2.js → projects/localDev/DevServerManagerV2.js} +22 -19
  285. package/lib/projects/localDev/LocalDevLogger.d.ts +30 -0
  286. package/lib/projects/localDev/LocalDevLogger.js +158 -0
  287. package/lib/{LocalDevManager.d.ts → projects/localDev/LocalDevManager.d.ts} +1 -1
  288. package/lib/{LocalDevManager.js → projects/localDev/LocalDevManager.js} +57 -83
  289. package/lib/projects/localDev/LocalDevProcess.d.ts +27 -0
  290. package/lib/projects/localDev/LocalDevProcess.js +171 -0
  291. package/lib/projects/localDev/LocalDevState.d.ts +37 -0
  292. package/lib/projects/localDev/LocalDevState.js +78 -0
  293. package/lib/projects/localDev/LocalDevWatcher.d.ts +10 -0
  294. package/lib/projects/localDev/LocalDevWatcher.js +56 -0
  295. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +17 -0
  296. package/lib/projects/localDev/LocalDevWebsocketServer.js +92 -0
  297. package/lib/{localDev.d.ts → projects/localDev/helpers.d.ts} +5 -4
  298. package/lib/{localDev.js → projects/localDev/helpers.js} +98 -114
  299. package/lib/projects/ui.d.ts +1 -0
  300. package/lib/projects/ui.js +15 -0
  301. package/lib/projects/upload.d.ts +14 -2
  302. package/lib/projects/upload.js +19 -35
  303. package/lib/projects/urls.d.ts +1 -0
  304. package/lib/projects/urls.js +6 -0
  305. package/lib/projects/watch.d.ts +1 -1
  306. package/lib/projects/watch.js +21 -18
  307. package/lib/prompts/accountNamePrompt.js +16 -13
  308. package/lib/prompts/accountsPrompt.js +1 -2
  309. package/lib/prompts/cmsFieldPrompt.js +1 -2
  310. package/lib/prompts/createApiSamplePrompt.d.ts +2 -10
  311. package/lib/prompts/createApiSamplePrompt.js +4 -5
  312. package/lib/prompts/createFunctionPrompt.js +13 -14
  313. package/lib/prompts/createModulePrompt.js +8 -9
  314. package/lib/prompts/createProjectPrompt.d.ts +11 -4
  315. package/lib/prompts/createProjectPrompt.js +14 -9
  316. package/lib/prompts/createTemplatePrompt.d.ts +22 -4
  317. package/lib/prompts/createTemplatePrompt.js +1 -2
  318. package/lib/prompts/downloadProjectPrompt.js +3 -4
  319. package/lib/prompts/installAppPrompt.d.ts +1 -0
  320. package/lib/prompts/installAppPrompt.js +35 -0
  321. package/lib/prompts/personalAccessKeyPrompt.js +17 -18
  322. package/lib/prompts/previewPrompt.js +5 -6
  323. package/lib/prompts/projectAddPrompt.js +4 -5
  324. package/lib/prompts/projectDevTargetAccountPrompt.js +18 -12
  325. package/lib/prompts/projectNamePrompt.js +5 -6
  326. package/lib/prompts/projectsLogsPrompt.js +3 -2
  327. package/lib/prompts/promptUtils.d.ts +3 -2
  328. package/lib/prompts/promptUtils.js +2 -1
  329. package/lib/prompts/sandboxesPrompt.js +5 -6
  330. package/lib/prompts/secretPrompt.js +2 -3
  331. package/lib/prompts/selectHubDBTablePrompt.js +11 -8
  332. package/lib/prompts/selectPublicAppPrompt.js +6 -7
  333. package/lib/prompts/setAsDefaultAccountPrompt.js +1 -2
  334. package/lib/prompts/uploadPrompt.js +4 -5
  335. package/lib/sandboxSync.js +15 -14
  336. package/lib/sandboxes.js +12 -13
  337. package/lib/serverlessLogs.js +4 -6
  338. package/lib/testUtils.d.ts +3 -3
  339. package/lib/testUtils.js +8 -9
  340. package/lib/ui/SpinniesManager.d.ts +1 -1
  341. package/lib/ui/boxen.d.ts +5 -0
  342. package/lib/ui/boxen.js +30 -0
  343. package/lib/ui/git.js +8 -9
  344. package/lib/ui/index.d.ts +4 -2
  345. package/lib/ui/index.js +20 -17
  346. package/lib/ui/logger.d.ts +10 -0
  347. package/lib/ui/logger.js +15 -0
  348. package/lib/ui/serverlessFunctionLogs.js +2 -3
  349. package/lib/ui/spinniesUtils.d.ts +5 -5
  350. package/lib/upload.d.ts +1 -1
  351. package/lib/validation.js +4 -5
  352. package/lib/yargsUtils.d.ts +5 -1
  353. package/lib/yargsUtils.js +6 -0
  354. package/package.json +10 -6
  355. package/types/Cms.d.ts +30 -0
  356. package/types/Cms.js +2 -0
  357. package/types/LocalDev.d.ts +24 -0
  358. package/types/LocalDev.js +2 -0
  359. package/types/Yargs.d.ts +12 -11
  360. package/lib/DevServerManagerV2.d.ts +0 -33
  361. package/lib/LocalDevManagerV2.d.ts +0 -64
  362. package/lib/LocalDevManagerV2.js +0 -377
  363. package/lib/projects/index.d.ts +0 -20
  364. package/lib/projects/index.js +0 -194
  365. package/lib/prompts/installPublicAppPrompt.d.ts +0 -1
  366. package/lib/prompts/installPublicAppPrompt.js +0 -40
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@hubspot/cli",
3
- "version": "7.4.9-experimental.0",
3
+ "version": "7.4.10-beta.0",
4
4
  "description": "The official CLI for developing on HubSpot",
5
5
  "license": "Apache-2.0",
6
6
  "repository": "https://github.com/HubSpot/hubspot-cli",
7
7
  "dependencies": {
8
- "@hubspot/local-dev-lib": "3.5.1",
9
- "@hubspot/project-parsing-lib": "0.1.5",
8
+ "@hubspot/local-dev-lib": "3.6.1",
9
+ "@hubspot/project-parsing-lib": "0.2.0",
10
10
  "@hubspot/serverless-dev-runtime": "7.0.2",
11
11
  "@hubspot/theme-preview-dev-server": "0.0.10",
12
12
  "@hubspot/ui-extensions-dev-server": "0.8.52",
13
13
  "archiver": "7.0.1",
14
+ "boxen": "8.0.1",
14
15
  "chalk": "4.1.2",
15
16
  "chokidar": "3.6.0",
16
17
  "cli-cursor": "3.1.0",
@@ -27,6 +28,7 @@
27
28
  "table": "6.9.0",
28
29
  "tmp": "0.2.3",
29
30
  "update-notifier": "5.1.0",
31
+ "ws": "^8.18.2",
30
32
  "yargs": "17.7.2",
31
33
  "yargs-parser": "21.1.1"
32
34
  },
@@ -40,8 +42,9 @@
40
42
  "@types/js-yaml": "^4.0.9",
41
43
  "@types/semver": "^7.5.8",
42
44
  "@types/tmp": "^0.2.6",
45
+ "@types/ws": "^8.18.1",
43
46
  "@types/yargs": "^17.0.33",
44
- "@typescript-eslint/eslint-plugin": "^8.11.0",
47
+ "@typescript-eslint/eslint-plugin": "^8.30.1",
45
48
  "@typescript-eslint/parser": "^8.11.0",
46
49
  "axios": "^1.7.2",
47
50
  "eslint": "^8.56.0",
@@ -62,9 +65,10 @@
62
65
  },
63
66
  "scripts": {
64
67
  "build": "ts-node ./scripts/build.ts",
65
- "lint": "eslint . && prettier --list-different ./**/*.{js,json}",
68
+ "lint": "eslint . && prettier --list-different './**/*.{ts,js,json}'",
66
69
  "list-all-commands": "yarn ts-node ./scripts/get-all-commands.ts",
67
- "prettier:write": "prettier --write ./**/*.{ts,js,json}",
70
+ "local-link": "yarn ts-node ./scripts/linking.ts",
71
+ "prettier:write": "prettier --write './**/*.{ts,js,json}'",
68
72
  "test": "yarn node --experimental-vm-modules $(yarn bin jest)",
69
73
  "test-cli": "yarn build && yarn --cwd 'acceptance-tests' test-ci",
70
74
  "test-cli-debug": "yarn build && yarn --cwd 'acceptance-tests' test-debug",
package/types/Cms.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ import { CommonArgs, ConfigArgs } from './Yargs';
2
+ export type CreateArgs = CommonArgs & ConfigArgs & {
3
+ branch?: string;
4
+ type: string;
5
+ dest: string;
6
+ name: string;
7
+ internal?: boolean;
8
+ };
9
+ export type CmsAssetOperationArgs = {
10
+ assetType: string;
11
+ name: string;
12
+ dest: string;
13
+ getInternalVersion: boolean;
14
+ commandArgs: CreateArgs;
15
+ };
16
+ export type CreatableCmsAsset = {
17
+ hidden: boolean;
18
+ dest: (args: CmsAssetOperationArgs) => string;
19
+ validate?: (args: CmsAssetOperationArgs) => boolean;
20
+ execute: (args: CmsAssetOperationArgs) => Promise<void>;
21
+ };
22
+ export type ApiSampleChoice = {
23
+ name: string;
24
+ description: string;
25
+ id: string;
26
+ languages: string[];
27
+ };
28
+ export type ApiSampleConfig = {
29
+ samples: ApiSampleChoice[];
30
+ };
package/types/Cms.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,24 @@
1
+ import { IntermediateRepresentationNodeLocalDev } from '@hubspot/project-parsing-lib/src/lib/types';
2
+ import { Build } from '@hubspot/local-dev-lib/types/Build';
3
+ import { Environment } from '@hubspot/local-dev-lib/types/Config';
4
+ import { ProjectConfig } from './Projects';
5
+ import LocalDevState from '../lib/projects/localDev/LocalDevState';
6
+ export type LocalDevStateConstructorOptions = {
7
+ targetProjectAccountId: number;
8
+ targetTestingAccountId: number;
9
+ projectConfig: ProjectConfig;
10
+ projectDir: string;
11
+ projectId: number;
12
+ debug?: boolean;
13
+ deployedBuild?: Build;
14
+ isGithubLinked: boolean;
15
+ initialProjectNodes: {
16
+ [key: string]: IntermediateRepresentationNodeLocalDev;
17
+ };
18
+ env: Environment;
19
+ };
20
+ export type LocalDevWebsocketMessage = {
21
+ type: string;
22
+ data: unknown;
23
+ };
24
+ export type LocalDevStateListener<K extends keyof LocalDevState> = (value: LocalDevState[K]) => void;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/types/Yargs.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { Options } from 'yargs';
1
+ import { Options, CommandModule, Argv } from 'yargs';
2
+ import { CmsPublishMode } from '@hubspot/local-dev-lib/types/Files';
2
3
  export type CommonArgs = {
3
4
  derivedAccountId: number;
4
5
  providedAccountId?: number;
@@ -23,17 +24,17 @@ export type OverwriteArgs = Options & {
23
24
  export type StringArgType = Options & {
24
25
  type: 'string';
25
26
  };
26
- export type ProjectDevArgs = CommonArgs & ConfigArgs & EnvironmentArgs;
27
+ export type ProjectDevArgs = CommonArgs & ConfigArgs & EnvironmentArgs & {
28
+ profile?: string;
29
+ };
27
30
  export type TestingArgs = {
28
31
  qa?: boolean;
29
32
  };
30
- export type MigrateAppOptions = CommonArgs & AccountArgs & EnvironmentArgs & ConfigArgs & {
31
- name: string;
32
- dest: string;
33
- appId: number;
34
- platformVersion: string;
35
- };
36
- export type CloneAppArgs = ConfigArgs & EnvironmentArgs & AccountArgs & CommonArgs & {
37
- dest: string;
38
- appId: number;
33
+ export type CmsPublishModeArgs = {
34
+ 'cms-publish-mode'?: CmsPublishMode;
35
+ m?: CmsPublishMode;
39
36
  };
37
+ export interface YargsCommandModule<T, U> extends CommandModule<T, U> {
38
+ builder: (yargs: Argv) => Promise<Argv<U>>;
39
+ }
40
+ export type YargsCommandModuleBucket = YargsCommandModule<unknown, object>;
@@ -1,33 +0,0 @@
1
- import { ProjectConfig } from '../types/Projects';
2
- import { IntermediateRepresentationNodeLocalDev } from '@hubspot/project-parsing-lib/src/lib/types';
3
- type DevServerInterface = {
4
- setup?: Function;
5
- start?: (options: object) => Promise<void>;
6
- fileChange?: (filePath: string, event: string) => Promise<void>;
7
- cleanup?: () => Promise<void>;
8
- };
9
- declare class DevServerManagerV2 {
10
- private initialized;
11
- private started;
12
- private devServers;
13
- constructor();
14
- iterateDevServers(callback: (serverInterface: DevServerInterface) => Promise<void>): Promise<void>;
15
- setup({ projectNodes, accountId, setActiveApp, }: {
16
- projectNodes: {
17
- [key: string]: IntermediateRepresentationNodeLocalDev;
18
- };
19
- accountId: number;
20
- setActiveApp: (appUid: string | undefined) => Promise<void>;
21
- }): Promise<void>;
22
- start({ accountId, projectConfig, }: {
23
- accountId: number;
24
- projectConfig: ProjectConfig;
25
- }): Promise<void>;
26
- fileChange({ filePath, event, }: {
27
- filePath: string;
28
- event: string;
29
- }): Promise<void>;
30
- cleanup(): Promise<void>;
31
- }
32
- declare const Manager: DevServerManagerV2;
33
- export default Manager;
@@ -1,64 +0,0 @@
1
- import { FSWatcher } from 'chokidar';
2
- import { Build } from '@hubspot/local-dev-lib/types/Build';
3
- import { PublicApp } from '@hubspot/local-dev-lib/types/Apps';
4
- import { Environment } from '@hubspot/local-dev-lib/types/Config';
5
- import { ProjectConfig } from '../types/Projects';
6
- import { IntermediateRepresentationNodeLocalDev } from '@hubspot/project-parsing-lib/src/lib/types';
7
- import { AppIRNode } from '../types/ProjectComponents';
8
- type LocalDevManagerConstructorOptions = {
9
- targetProjectAccountId: number;
10
- targetTestingAccountId: number;
11
- projectConfig: ProjectConfig;
12
- projectDir: string;
13
- projectId: number;
14
- debug?: boolean;
15
- deployedBuild?: Build;
16
- isGithubLinked: boolean;
17
- projectNodes: {
18
- [key: string]: IntermediateRepresentationNodeLocalDev;
19
- };
20
- env: Environment;
21
- };
22
- declare class LocalDevManagerV2 {
23
- targetProjectAccountId: number;
24
- targetTestingAccountId: number;
25
- projectConfig: ProjectConfig;
26
- projectDir: string;
27
- projectId: number;
28
- debug: boolean;
29
- deployedBuild?: Build;
30
- isGithubLinked: boolean;
31
- watcher: FSWatcher | null;
32
- uploadWarnings: {
33
- [key: string]: boolean;
34
- };
35
- projectNodes: {
36
- [key: string]: IntermediateRepresentationNodeLocalDev;
37
- };
38
- activeApp: AppIRNode | null;
39
- activePublicAppData: PublicApp | null;
40
- env: Environment;
41
- publicAppActiveInstalls: number | null;
42
- projectSourceDir: string;
43
- mostRecentUploadWarning: string | null;
44
- constructor(options: LocalDevManagerConstructorOptions);
45
- setActiveApp(appUid?: string): Promise<void>;
46
- setActivePublicAppData(): Promise<void>;
47
- checkActivePublicAppInstalls(): Promise<void>;
48
- start(): Promise<void>;
49
- stop(showProgress?: boolean): Promise<void>;
50
- checkPublicAppInstallation(): Promise<void>;
51
- updateKeypressListeners(): void;
52
- getUploadCommand(): string;
53
- logUploadWarning(reason?: string): void;
54
- monitorConsoleOutput(): void;
55
- compareLocalProjectToDeployed(): void;
56
- startWatching(): void;
57
- stopWatching(): Promise<void>;
58
- handleWatchEvent(filePath: string, event: string, configPaths: string[]): void;
59
- devServerSetup(): Promise<boolean>;
60
- devServerStart(): Promise<void>;
61
- devServerFileChange(filePath: string, event: string): void;
62
- devServerCleanup(): Promise<boolean>;
63
- }
64
- export default LocalDevManagerV2;
@@ -1,377 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const path_1 = __importDefault(require("path"));
7
- const chokidar_1 = __importDefault(require("chokidar"));
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const logger_1 = require("@hubspot/local-dev-lib/logger");
10
- const localDevAuth_1 = require("@hubspot/local-dev-lib/api/localDevAuth");
11
- const appsDev_1 = require("@hubspot/local-dev-lib/api/appsDev");
12
- const config_1 = require("@hubspot/local-dev-lib/config");
13
- const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
14
- const constants_1 = require("./constants");
15
- const SpinniesManager_1 = __importDefault(require("./ui/SpinniesManager"));
16
- const DevServerManagerV2_1 = __importDefault(require("./DevServerManagerV2"));
17
- const exitCodes_1 = require("./enums/exitCodes");
18
- const urls_1 = require("./projects/urls");
19
- const structure_1 = require("./projects/structure");
20
- const ui_1 = require("./ui");
21
- const index_1 = require("./errorHandlers/index");
22
- const installPublicAppPrompt_1 = require("./prompts/installPublicAppPrompt");
23
- const promptUtils_1 = require("./prompts/promptUtils");
24
- const lang_1 = require("./lang");
25
- const process_1 = require("./process");
26
- const WATCH_EVENTS = {
27
- add: 'add',
28
- change: 'change',
29
- unlink: 'unlink',
30
- unlinkDir: 'unlinkDir',
31
- };
32
- const i18nKey = 'lib.LocalDevManager';
33
- class LocalDevManagerV2 {
34
- targetProjectAccountId;
35
- targetTestingAccountId;
36
- projectConfig;
37
- projectDir;
38
- projectId;
39
- debug;
40
- deployedBuild;
41
- isGithubLinked;
42
- watcher;
43
- uploadWarnings;
44
- projectNodes;
45
- activeApp;
46
- activePublicAppData;
47
- env;
48
- publicAppActiveInstalls;
49
- projectSourceDir;
50
- mostRecentUploadWarning;
51
- constructor(options) {
52
- this.targetProjectAccountId = options.targetProjectAccountId;
53
- this.targetTestingAccountId = options.targetTestingAccountId;
54
- this.projectConfig = options.projectConfig;
55
- this.projectDir = options.projectDir;
56
- this.projectId = options.projectId;
57
- this.debug = options.debug || false;
58
- this.deployedBuild = options.deployedBuild;
59
- this.isGithubLinked = options.isGithubLinked;
60
- this.watcher = null;
61
- this.uploadWarnings = {};
62
- this.projectNodes = options.projectNodes;
63
- this.activeApp = null;
64
- this.activePublicAppData = null;
65
- this.env = options.env;
66
- this.publicAppActiveInstalls = null;
67
- this.mostRecentUploadWarning = null;
68
- this.projectSourceDir = path_1.default.join(this.projectDir, this.projectConfig.srcDir);
69
- if (!this.targetProjectAccountId ||
70
- !this.projectConfig ||
71
- !this.projectDir) {
72
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.failedToInitialize`));
73
- process.exit(exitCodes_1.EXIT_CODES.ERROR);
74
- }
75
- }
76
- async setActiveApp(appUid) {
77
- if (!appUid) {
78
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.missingUid`, {
79
- devCommand: (0, ui_1.uiCommandReference)('hs project dev'),
80
- }));
81
- process.exit(exitCodes_1.EXIT_CODES.ERROR);
82
- }
83
- const app = Object.values(this.projectNodes).find(component => component.uid === appUid) || null;
84
- if (app && (0, structure_1.isAppIRNode)(app)) {
85
- this.activeApp = app;
86
- if (app.config.distribution === constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE) {
87
- try {
88
- await this.setActivePublicAppData();
89
- await this.checkActivePublicAppInstalls();
90
- await this.checkPublicAppInstallation();
91
- }
92
- catch (e) {
93
- (0, index_1.logError)(e);
94
- }
95
- }
96
- }
97
- return;
98
- }
99
- async setActivePublicAppData() {
100
- const { data: { results: portalPublicApps }, } = await (0, appsDev_1.fetchPublicAppsForPortal)(this.targetProjectAccountId);
101
- const activePublicAppData = portalPublicApps.find(({ sourceId }) => sourceId === this.activeApp?.uid);
102
- if (!activePublicAppData) {
103
- return;
104
- }
105
- const { data: { uniquePortalInstallCount }, } = await (0, appsDev_1.fetchPublicAppProductionInstallCounts)(activePublicAppData.id, this.targetProjectAccountId);
106
- this.activePublicAppData = activePublicAppData;
107
- this.publicAppActiveInstalls = uniquePortalInstallCount;
108
- }
109
- async checkActivePublicAppInstalls() {
110
- if (!this.activePublicAppData ||
111
- !this.publicAppActiveInstalls ||
112
- this.publicAppActiveInstalls < 1) {
113
- return;
114
- }
115
- (0, ui_1.uiLine)();
116
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.activeInstallWarning.installCount`, {
117
- appName: this.activePublicAppData.name,
118
- installCount: this.publicAppActiveInstalls,
119
- accountText: this.publicAppActiveInstalls === 1 ? 'account' : 'accounts',
120
- }));
121
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.activeInstallWarning.explanation`));
122
- (0, ui_1.uiLine)();
123
- const proceed = await (0, promptUtils_1.confirmPrompt)((0, lang_1.i18n)(`${i18nKey}.activeInstallWarning.confirmationPrompt`), { defaultAnswer: false });
124
- if (!proceed) {
125
- process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
126
- }
127
- }
128
- async start() {
129
- SpinniesManager_1.default.stopAll();
130
- SpinniesManager_1.default.init();
131
- // Local dev currently relies on the existence of a deployed build in the target account
132
- if (!this.deployedBuild) {
133
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.noDeployedBuild`, {
134
- projectName: this.projectConfig.name,
135
- accountIdentifier: (0, ui_1.uiAccountDescription)(this.targetProjectAccountId),
136
- uploadCommand: this.getUploadCommand(),
137
- }));
138
- logger_1.logger.log();
139
- process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
140
- }
141
- const setupSucceeded = await this.devServerSetup();
142
- if (!setupSucceeded) {
143
- process.exit(exitCodes_1.EXIT_CODES.ERROR);
144
- }
145
- else if (!this.debug) {
146
- console.clear();
147
- }
148
- (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.betaMessage`));
149
- logger_1.logger.log((0, ui_1.uiLink)((0, lang_1.i18n)(`${i18nKey}.learnMoreLocalDevServer`), 'https://developers.hubspot.com/docs/platform/project-cli-commands#start-a-local-development-server'));
150
- logger_1.logger.log();
151
- logger_1.logger.log(chalk_1.default.hex(ui_1.UI_COLORS.SORBET)((0, lang_1.i18n)(`${i18nKey}.running`, {
152
- accountIdentifier: (0, ui_1.uiAccountDescription)(this.targetProjectAccountId),
153
- projectName: this.projectConfig.name,
154
- })));
155
- logger_1.logger.log((0, ui_1.uiLink)((0, lang_1.i18n)(`${i18nKey}.viewProjectLink`), (0, urls_1.getProjectDetailUrl)(this.projectConfig.name, this.targetProjectAccountId) || ''));
156
- logger_1.logger.log();
157
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.quitHelper`));
158
- (0, ui_1.uiLine)();
159
- logger_1.logger.log();
160
- await this.devServerStart();
161
- // Initialize project file watcher to detect configuration file changes
162
- this.startWatching();
163
- this.updateKeypressListeners();
164
- this.monitorConsoleOutput();
165
- // Verify that there are no mismatches between components in the local project
166
- // and components in the deployed build of the project.
167
- this.compareLocalProjectToDeployed();
168
- }
169
- async stop(showProgress = true) {
170
- if (showProgress) {
171
- SpinniesManager_1.default.add('cleanupMessage', {
172
- text: (0, lang_1.i18n)(`${i18nKey}.exitingStart`),
173
- });
174
- }
175
- await this.stopWatching();
176
- const cleanupSucceeded = await this.devServerCleanup();
177
- if (!cleanupSucceeded) {
178
- if (showProgress) {
179
- SpinniesManager_1.default.fail('cleanupMessage', {
180
- text: (0, lang_1.i18n)(`${i18nKey}.exitingFail`),
181
- });
182
- }
183
- process.exit(exitCodes_1.EXIT_CODES.ERROR);
184
- }
185
- if (showProgress) {
186
- SpinniesManager_1.default.succeed('cleanupMessage', {
187
- text: (0, lang_1.i18n)(`${i18nKey}.exitingSucceed`),
188
- });
189
- }
190
- process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
191
- }
192
- async checkPublicAppInstallation() {
193
- if (!this.activeApp || !this.activePublicAppData) {
194
- return;
195
- }
196
- const { data: { isInstalledWithScopeGroups, previouslyAuthorizedScopeGroups }, } = await (0, localDevAuth_1.fetchAppInstallationData)(this.targetTestingAccountId, this.projectId, this.activeApp.uid, this.activeApp.config.auth.requiredScopes, this.activeApp.config.auth.optionalScopes);
197
- const isReinstall = previouslyAuthorizedScopeGroups.length > 0;
198
- if (!isInstalledWithScopeGroups) {
199
- await (0, installPublicAppPrompt_1.installPublicAppPrompt)(this.env, this.targetTestingAccountId, this.activePublicAppData.clientId, this.activeApp.config.auth.requiredScopes, this.activeApp.config.auth.redirectUrls, isReinstall);
200
- }
201
- }
202
- updateKeypressListeners() {
203
- (0, process_1.handleKeypress)(async (key) => {
204
- if ((key.ctrl && key.name === 'c') || key.name === 'q') {
205
- this.stop();
206
- }
207
- });
208
- }
209
- getUploadCommand() {
210
- const currentDefaultAccount = (0, config_1.getConfigDefaultAccount)() || undefined;
211
- return this.targetProjectAccountId !== (0, config_1.getAccountId)(currentDefaultAccount)
212
- ? (0, ui_1.uiCommandReference)(`hs project upload --account=${this.targetProjectAccountId}`)
213
- : (0, ui_1.uiCommandReference)('hs project upload');
214
- }
215
- logUploadWarning(reason) {
216
- let warning = reason;
217
- if (!warning) {
218
- warning =
219
- this.publicAppActiveInstalls && this.publicAppActiveInstalls > 0
220
- ? (0, lang_1.i18n)(`${i18nKey}.uploadWarning.defaultMarketplaceAppWarning`, {
221
- installCount: this.publicAppActiveInstalls,
222
- accountText: this.publicAppActiveInstalls === 1 ? 'account' : 'accounts',
223
- })
224
- : (0, lang_1.i18n)(`${i18nKey}.uploadWarning.defaultWarning`);
225
- }
226
- // Avoid logging the warning to the console if it is currently the most
227
- // recently logged warning. We do not want to spam the console with the same message.
228
- if (!this.uploadWarnings[warning]) {
229
- logger_1.logger.log();
230
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.uploadWarning.header`, { warning }));
231
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.uploadWarning.stopDev`, {
232
- command: (0, ui_1.uiCommandReference)('hs project dev'),
233
- }));
234
- if (this.isGithubLinked) {
235
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.uploadWarning.pushToGithub`));
236
- }
237
- else {
238
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.uploadWarning.runUpload`, {
239
- command: this.getUploadCommand(),
240
- }));
241
- }
242
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.uploadWarning.restartDev`, {
243
- command: (0, ui_1.uiCommandReference)('hs project dev'),
244
- }));
245
- this.mostRecentUploadWarning = warning;
246
- this.uploadWarnings[warning] = true;
247
- }
248
- }
249
- monitorConsoleOutput() {
250
- const originalStdoutWrite = process.stdout.write.bind(process.stdout);
251
- function customStdoutWrite(chunk, encoding, callback) {
252
- // Reset the most recently logged warning
253
- if (this.mostRecentUploadWarning &&
254
- this.uploadWarnings[this.mostRecentUploadWarning]) {
255
- delete this.uploadWarnings[this.mostRecentUploadWarning];
256
- }
257
- if (typeof encoding === 'function') {
258
- return originalStdoutWrite(chunk, callback);
259
- }
260
- return originalStdoutWrite(chunk, encoding, callback);
261
- }
262
- customStdoutWrite.bind(this);
263
- process.stdout.write = customStdoutWrite;
264
- }
265
- compareLocalProjectToDeployed() {
266
- const deployedComponentNames = this.deployedBuild.subbuildStatuses.map(subbuildStatus => subbuildStatus.buildName);
267
- const missingProjectNodes = [];
268
- Object.values(this.projectNodes).forEach(node => {
269
- if (!deployedComponentNames.includes(node.uid)) {
270
- const userFriendlyName = (0, project_parsing_lib_1.mapToUserFriendlyName)(node.componentType);
271
- const label = userFriendlyName ? `[${userFriendlyName}] ` : '';
272
- missingProjectNodes.push(`${label}${node.uid}`);
273
- }
274
- });
275
- if (missingProjectNodes.length) {
276
- this.logUploadWarning((0, lang_1.i18n)(`${i18nKey}.uploadWarning.missingComponents`, {
277
- missingComponents: missingProjectNodes.join(', '),
278
- }));
279
- }
280
- }
281
- startWatching() {
282
- this.watcher = chokidar_1.default.watch(this.projectDir, {
283
- ignoreInitial: true,
284
- });
285
- const configPaths = Object.values(this.projectNodes).map(component => component.localDev.componentConfigPath);
286
- const projectConfigPath = path_1.default.join(this.projectDir, constants_1.PROJECT_CONFIG_FILE);
287
- configPaths.push(projectConfigPath);
288
- this.watcher.on('add', filePath => {
289
- this.handleWatchEvent(filePath, WATCH_EVENTS.add, configPaths);
290
- });
291
- this.watcher.on('change', filePath => {
292
- this.handleWatchEvent(filePath, WATCH_EVENTS.change, configPaths);
293
- });
294
- this.watcher.on('unlink', filePath => {
295
- this.handleWatchEvent(filePath, WATCH_EVENTS.unlink, configPaths);
296
- });
297
- this.watcher.on('unlinkDir', filePath => {
298
- this.handleWatchEvent(filePath, WATCH_EVENTS.unlinkDir, configPaths);
299
- });
300
- }
301
- async stopWatching() {
302
- await this.watcher?.close();
303
- }
304
- handleWatchEvent(filePath, event, configPaths) {
305
- if (configPaths.includes(filePath)) {
306
- this.logUploadWarning();
307
- }
308
- else {
309
- this.devServerFileChange(filePath, event);
310
- }
311
- }
312
- async devServerSetup() {
313
- try {
314
- await DevServerManagerV2_1.default.setup({
315
- projectNodes: this.projectNodes,
316
- accountId: this.targetTestingAccountId,
317
- setActiveApp: this.setActiveApp.bind(this),
318
- });
319
- return true;
320
- }
321
- catch (e) {
322
- if (this.debug) {
323
- logger_1.logger.error(e);
324
- }
325
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.devServer.setupError`, {
326
- message: e instanceof Error ? e.message : '',
327
- }));
328
- return false;
329
- }
330
- }
331
- async devServerStart() {
332
- try {
333
- await DevServerManagerV2_1.default.start({
334
- accountId: this.targetTestingAccountId,
335
- projectConfig: this.projectConfig,
336
- });
337
- }
338
- catch (e) {
339
- if (this.debug) {
340
- logger_1.logger.error(e);
341
- }
342
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.devServer.startError`, {
343
- message: e instanceof Error ? e.message : '',
344
- }));
345
- process.exit(exitCodes_1.EXIT_CODES.ERROR);
346
- }
347
- }
348
- devServerFileChange(filePath, event) {
349
- try {
350
- DevServerManagerV2_1.default.fileChange({ filePath, event });
351
- }
352
- catch (e) {
353
- if (this.debug) {
354
- logger_1.logger.error(e);
355
- }
356
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.devServer.fileChangeError`, {
357
- message: e instanceof Error ? e.message : '',
358
- }));
359
- }
360
- }
361
- async devServerCleanup() {
362
- try {
363
- await DevServerManagerV2_1.default.cleanup();
364
- return true;
365
- }
366
- catch (e) {
367
- if (this.debug) {
368
- logger_1.logger.error(e);
369
- }
370
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.devServer.cleanupError`, {
371
- message: e instanceof Error ? e.message : '',
372
- }));
373
- return false;
374
- }
375
- }
376
- }
377
- exports.default = LocalDevManagerV2;
@@ -1,20 +0,0 @@
1
- import { Project } from '@hubspot/local-dev-lib/types/Project';
2
- import { ProjectConfig } from '../../types/Projects';
3
- export declare function writeProjectConfig(configPath: string, config: ProjectConfig): boolean;
4
- export declare function getIsInProject(dir?: string): boolean;
5
- export declare function getProjectConfig(dir?: string): Promise<{
6
- projectDir: string | null;
7
- projectConfig: ProjectConfig | null;
8
- }>;
9
- export declare function validateProjectConfig(projectConfig: ProjectConfig | null, projectDir: string | null): void;
10
- export declare function ensureProjectExists(accountId: number, projectName: string, { forceCreate, allowCreate, noLogs, withPolling, uploadCommand, }?: {
11
- forceCreate?: boolean | undefined;
12
- allowCreate?: boolean | undefined;
13
- noLogs?: boolean | undefined;
14
- withPolling?: boolean | undefined;
15
- uploadCommand?: boolean | undefined;
16
- }): Promise<{
17
- projectExists: boolean;
18
- project?: Project;
19
- }>;
20
- export declare function logFeedbackMessage(buildId: number): void;