@hubspot/cli 7.7.21-experimental.1 → 7.7.23-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 (568) hide show
  1. package/api/__tests__/migrate.test.js +27 -29
  2. package/api/migrate.js +14 -22
  3. package/bin/cli.js +92 -97
  4. package/bin/hs +2 -2
  5. package/bin/hscms +2 -2
  6. package/bin/silenceErrors.js +1 -2
  7. package/commands/__tests__/account.test.js +29 -34
  8. package/commands/__tests__/auth.test.js +11 -16
  9. package/commands/__tests__/cms.test.js +15 -20
  10. package/commands/__tests__/config.test.js +14 -19
  11. package/commands/__tests__/create.test.js +10 -15
  12. package/commands/__tests__/customObject.test.js +14 -19
  13. package/commands/__tests__/doctor.test.js +43 -48
  14. package/commands/__tests__/feedback.test.js +7 -45
  15. package/commands/__tests__/fetch.test.js +29 -28
  16. package/commands/__tests__/filemanager.test.js +14 -19
  17. package/commands/__tests__/function.test.js +16 -21
  18. package/commands/__tests__/getStarted.test.js +45 -50
  19. package/commands/__tests__/hubdb.test.js +17 -22
  20. package/commands/__tests__/init.test.js +12 -17
  21. package/commands/__tests__/lint.test.js +13 -18
  22. package/commands/__tests__/list.test.js +18 -23
  23. package/commands/__tests__/logs.test.js +28 -27
  24. package/commands/__tests__/mcp.test.js +14 -19
  25. package/commands/__tests__/mv.test.js +14 -52
  26. package/commands/__tests__/open.test.js +13 -51
  27. package/commands/__tests__/project.test.js +44 -49
  28. package/commands/__tests__/remove.test.js +13 -51
  29. package/commands/__tests__/sandbox.test.js +14 -19
  30. package/commands/__tests__/secret.test.js +16 -21
  31. package/commands/__tests__/testAccount.test.js +16 -21
  32. package/commands/__tests__/theme.test.js +15 -20
  33. package/commands/account/__tests__/auth.test.js +11 -16
  34. package/commands/account/__tests__/clean.test.js +12 -17
  35. package/commands/account/__tests__/createOverride.test.js +10 -15
  36. package/commands/account/__tests__/info.test.js +11 -16
  37. package/commands/account/__tests__/list.test.js +11 -16
  38. package/commands/account/__tests__/remove.test.js +13 -18
  39. package/commands/account/__tests__/removeOverride.js +8 -13
  40. package/commands/account/__tests__/rename.test.js +15 -20
  41. package/commands/account/__tests__/use.test.js +10 -15
  42. package/commands/account/auth.d.ts +1 -1
  43. package/commands/account/auth.js +65 -67
  44. package/commands/account/clean.d.ts +1 -1
  45. package/commands/account/clean.js +55 -60
  46. package/commands/account/createOverride.d.ts +1 -1
  47. package/commands/account/createOverride.js +52 -57
  48. package/commands/account/info.d.ts +1 -1
  49. package/commands/account/info.js +33 -35
  50. package/commands/account/list.d.ts +1 -1
  51. package/commands/account/list.js +43 -45
  52. package/commands/account/remove.d.ts +1 -1
  53. package/commands/account/remove.js +37 -42
  54. package/commands/account/removeOverride.d.ts +1 -1
  55. package/commands/account/removeOverride.js +38 -43
  56. package/commands/account/rename.d.ts +1 -1
  57. package/commands/account/rename.js +18 -20
  58. package/commands/account/use.d.ts +1 -1
  59. package/commands/account/use.js +29 -31
  60. package/commands/account.d.ts +1 -1
  61. package/commands/account.js +23 -28
  62. package/commands/app/__tests__/migrate.test.js +29 -34
  63. package/commands/app/migrate.d.ts +2 -2
  64. package/commands/app/migrate.js +40 -43
  65. package/commands/app/secret/__tests__/add.test.js +6 -11
  66. package/commands/app/secret/__tests__/delete.test.js +6 -11
  67. package/commands/app/secret/__tests__/list.test.js +6 -11
  68. package/commands/app/secret/__tests__/update.test.js +6 -11
  69. package/commands/app/secret/add.d.ts +1 -1
  70. package/commands/app/secret/add.js +28 -30
  71. package/commands/app/secret/delete.d.ts +1 -1
  72. package/commands/app/secret/delete.js +34 -36
  73. package/commands/app/secret/list.d.ts +1 -1
  74. package/commands/app/secret/list.js +25 -27
  75. package/commands/app/secret/update.d.ts +1 -1
  76. package/commands/app/secret/update.js +32 -34
  77. package/commands/app/secret.d.ts +1 -1
  78. package/commands/app/secret.js +12 -17
  79. package/commands/app.d.ts +1 -1
  80. package/commands/app.js +6 -16
  81. package/commands/auth.d.ts +1 -1
  82. package/commands/auth.js +70 -72
  83. package/commands/cms/convertFields.d.ts +1 -1
  84. package/commands/cms/convertFields.js +34 -39
  85. package/commands/cms/getReactModule.d.ts +1 -1
  86. package/commands/cms/getReactModule.js +32 -37
  87. package/commands/cms/lighthouseScore.d.ts +1 -1
  88. package/commands/cms/lighthouseScore.js +67 -72
  89. package/commands/cms.d.ts +1 -1
  90. package/commands/cms.js +11 -16
  91. package/commands/completion.d.ts +1 -1
  92. package/commands/completion.js +10 -15
  93. package/commands/config/migrate.d.ts +1 -1
  94. package/commands/config/migrate.js +27 -32
  95. package/commands/config/set.d.ts +2 -1
  96. package/commands/config/set.js +40 -32
  97. package/commands/config.d.ts +1 -1
  98. package/commands/config.js +8 -13
  99. package/commands/create/api-sample.d.ts +1 -1
  100. package/commands/create/api-sample.js +28 -33
  101. package/commands/create/app.d.ts +1 -1
  102. package/commands/create/app.js +3 -5
  103. package/commands/create/function.d.ts +1 -1
  104. package/commands/create/function.js +9 -11
  105. package/commands/create/index.d.ts +1 -1
  106. package/commands/create/index.js +19 -24
  107. package/commands/create/module.d.ts +1 -1
  108. package/commands/create/module.js +12 -14
  109. package/commands/create/react-app.d.ts +1 -1
  110. package/commands/create/react-app.js +3 -5
  111. package/commands/create/template.d.ts +1 -1
  112. package/commands/create/template.js +12 -14
  113. package/commands/create/vue-app.d.ts +1 -1
  114. package/commands/create/vue-app.js +3 -5
  115. package/commands/create/webpack-serverless.d.ts +1 -1
  116. package/commands/create/webpack-serverless.js +3 -5
  117. package/commands/create/website-theme.d.ts +1 -1
  118. package/commands/create/website-theme.js +5 -7
  119. package/commands/create.d.ts +2 -2
  120. package/commands/create.js +30 -35
  121. package/commands/customObject/__tests__/create.test.js +13 -18
  122. package/commands/customObject/__tests__/schema.test.js +18 -23
  123. package/commands/customObject/create.d.ts +1 -1
  124. package/commands/customObject/create.js +28 -30
  125. package/commands/customObject/schema/__tests__/create.test.js +13 -18
  126. package/commands/customObject/schema/__tests__/delete.test.js +13 -18
  127. package/commands/customObject/schema/__tests__/fetch-all.test.js +13 -18
  128. package/commands/customObject/schema/__tests__/fetch.test.js +13 -18
  129. package/commands/customObject/schema/__tests__/list.test.js +13 -18
  130. package/commands/customObject/schema/__tests__/update.test.js +13 -18
  131. package/commands/customObject/schema/create.d.ts +1 -1
  132. package/commands/customObject/schema/create.js +28 -30
  133. package/commands/customObject/schema/delete.d.ts +1 -1
  134. package/commands/customObject/schema/delete.js +24 -26
  135. package/commands/customObject/schema/fetch-all.d.ts +1 -1
  136. package/commands/customObject/schema/fetch-all.js +22 -24
  137. package/commands/customObject/schema/fetch.d.ts +1 -1
  138. package/commands/customObject/schema/fetch.js +24 -26
  139. package/commands/customObject/schema/list.d.ts +1 -1
  140. package/commands/customObject/schema/list.js +13 -15
  141. package/commands/customObject/schema/update.d.ts +1 -1
  142. package/commands/customObject/schema/update.js +32 -34
  143. package/commands/customObject/schema.d.ts +1 -1
  144. package/commands/customObject/schema.js +17 -22
  145. package/commands/customObject.d.ts +1 -1
  146. package/commands/customObject.js +13 -18
  147. package/commands/doctor.d.ts +1 -1
  148. package/commands/doctor.js +28 -33
  149. package/commands/feedback.d.ts +1 -1
  150. package/commands/feedback.js +19 -24
  151. package/commands/fetch.d.ts +1 -1
  152. package/commands/fetch.js +28 -30
  153. package/commands/filemanager/__tests__/fetch.test.js +17 -22
  154. package/commands/filemanager/__tests__/upload.test.js +15 -20
  155. package/commands/filemanager/fetch.d.ts +1 -1
  156. package/commands/filemanager/fetch.js +23 -25
  157. package/commands/filemanager/upload.d.ts +1 -1
  158. package/commands/filemanager/upload.js +39 -44
  159. package/commands/filemanager.d.ts +1 -1
  160. package/commands/filemanager.js +8 -13
  161. package/commands/function/deploy.d.ts +1 -1
  162. package/commands/function/deploy.js +35 -40
  163. package/commands/function/list.d.ts +1 -1
  164. package/commands/function/list.js +24 -29
  165. package/commands/function/server.d.ts +1 -1
  166. package/commands/function/server.js +15 -17
  167. package/commands/function.d.ts +1 -1
  168. package/commands/function.js +12 -18
  169. package/commands/getStarted.d.ts +1 -1
  170. package/commands/getStarted.js +119 -125
  171. package/commands/hubdb/__tests__/clear.test.js +13 -18
  172. package/commands/hubdb/__tests__/create.test.js +13 -18
  173. package/commands/hubdb/__tests__/delete.test.js +13 -18
  174. package/commands/hubdb/__tests__/fetch.test.js +13 -18
  175. package/commands/hubdb/__tests__/list.test.js +23 -28
  176. package/commands/hubdb/clear.d.ts +1 -1
  177. package/commands/hubdb/clear.js +20 -22
  178. package/commands/hubdb/create.d.ts +1 -1
  179. package/commands/hubdb/create.js +30 -35
  180. package/commands/hubdb/delete.d.ts +1 -1
  181. package/commands/hubdb/delete.js +24 -26
  182. package/commands/hubdb/fetch.d.ts +1 -1
  183. package/commands/hubdb/fetch.js +17 -19
  184. package/commands/hubdb/list.d.ts +1 -1
  185. package/commands/hubdb/list.js +33 -35
  186. package/commands/hubdb.d.ts +1 -1
  187. package/commands/hubdb.js +18 -24
  188. package/commands/init.d.ts +1 -1
  189. package/commands/init.js +83 -88
  190. package/commands/lint.d.ts +1 -1
  191. package/commands/lint.js +24 -26
  192. package/commands/list.d.ts +1 -1
  193. package/commands/list.js +32 -37
  194. package/commands/logs.d.ts +1 -1
  195. package/commands/logs.js +35 -37
  196. package/commands/mcp/__tests__/setup.test.js +7 -12
  197. package/commands/mcp/__tests__/start.test.js +7 -12
  198. package/commands/mcp/setup.d.ts +1 -1
  199. package/commands/mcp/setup.js +17 -19
  200. package/commands/mcp/start.d.ts +1 -1
  201. package/commands/mcp/start.js +29 -34
  202. package/commands/mcp.d.ts +1 -1
  203. package/commands/mcp.js +7 -12
  204. package/commands/module/marketplace-validate.d.ts +1 -1
  205. package/commands/module/marketplace-validate.js +21 -26
  206. package/commands/module.d.ts +1 -1
  207. package/commands/module.js +7 -13
  208. package/commands/mv.d.ts +1 -1
  209. package/commands/mv.js +20 -22
  210. package/commands/open.d.ts +1 -1
  211. package/commands/open.js +19 -21
  212. package/commands/project/__tests__/add.test.js +10 -15
  213. package/commands/project/__tests__/create.test.js +14 -19
  214. package/commands/project/__tests__/deploy.test.js +96 -134
  215. package/commands/project/__tests__/devUnifiedFlow.test.js +133 -139
  216. package/commands/project/__tests__/download.test.js +14 -19
  217. package/commands/project/__tests__/installDeps.test.js +32 -70
  218. package/commands/project/__tests__/listBuilds.test.js +14 -19
  219. package/commands/project/__tests__/logs.test.js +56 -94
  220. package/commands/project/__tests__/migrate.test.js +25 -30
  221. package/commands/project/__tests__/migrateApp.test.js +17 -22
  222. package/commands/project/__tests__/open.test.js +16 -21
  223. package/commands/project/__tests__/profile.test.js +14 -19
  224. package/commands/project/__tests__/upload.test.js +18 -23
  225. package/commands/project/__tests__/watch.test.js +14 -19
  226. package/commands/project/add.d.ts +1 -1
  227. package/commands/project/add.js +34 -36
  228. package/commands/project/cloneApp.d.ts +1 -1
  229. package/commands/project/cloneApp.js +67 -72
  230. package/commands/project/create.d.ts +2 -2
  231. package/commands/project/create.js +63 -68
  232. package/commands/project/deploy.d.ts +1 -1
  233. package/commands/project/deploy.js +67 -69
  234. package/commands/project/dev/deprecatedFlow.d.ts +2 -2
  235. package/commands/project/dev/deprecatedFlow.js +52 -58
  236. package/commands/project/dev/index.d.ts +1 -1
  237. package/commands/project/dev/index.js +44 -47
  238. package/commands/project/dev/unifiedFlow.d.ts +3 -3
  239. package/commands/project/dev/unifiedFlow.js +62 -68
  240. package/commands/project/download.d.ts +1 -1
  241. package/commands/project/download.js +35 -40
  242. package/commands/project/installDeps.d.ts +1 -1
  243. package/commands/project/installDeps.js +29 -34
  244. package/commands/project/listBuilds.d.ts +1 -1
  245. package/commands/project/listBuilds.js +40 -45
  246. package/commands/project/logs.d.ts +1 -1
  247. package/commands/project/logs.js +52 -54
  248. package/commands/project/migrate.d.ts +1 -1
  249. package/commands/project/migrate.js +24 -26
  250. package/commands/project/migrateApp.d.ts +2 -2
  251. package/commands/project/migrateApp.js +18 -20
  252. package/commands/project/open.d.ts +1 -1
  253. package/commands/project/open.js +25 -30
  254. package/commands/project/profile/add.d.ts +1 -1
  255. package/commands/project/profile/add.js +68 -73
  256. package/commands/project/profile/delete.d.ts +1 -1
  257. package/commands/project/profile/delete.js +51 -56
  258. package/commands/project/profile.d.ts +1 -1
  259. package/commands/project/profile.js +9 -14
  260. package/commands/project/upload.d.ts +1 -1
  261. package/commands/project/upload.js +50 -55
  262. package/commands/project/validate.d.ts +1 -1
  263. package/commands/project/validate.js +35 -40
  264. package/commands/project/watch.d.ts +1 -1
  265. package/commands/project/watch.js +59 -61
  266. package/commands/project.d.ts +1 -1
  267. package/commands/project.js +38 -43
  268. package/commands/remove.d.ts +1 -1
  269. package/commands/remove.js +15 -17
  270. package/commands/sandbox/__tests__/create.test.js +15 -20
  271. package/commands/sandbox/__tests__/delete.test.js +15 -20
  272. package/commands/sandbox/create.d.ts +1 -1
  273. package/commands/sandbox/create.js +67 -69
  274. package/commands/sandbox/delete.d.ts +1 -1
  275. package/commands/sandbox/delete.js +94 -96
  276. package/commands/sandbox.d.ts +1 -1
  277. package/commands/sandbox.js +9 -14
  278. package/commands/secret/__tests__/addSecret.test.js +13 -18
  279. package/commands/secret/__tests__/deleteSecret.test.js +13 -18
  280. package/commands/secret/__tests__/listSecret.test.js +13 -18
  281. package/commands/secret/__tests__/updateSecret.test.js +13 -18
  282. package/commands/secret/addSecret.d.ts +1 -1
  283. package/commands/secret/addSecret.js +26 -28
  284. package/commands/secret/deleteSecret.d.ts +1 -1
  285. package/commands/secret/deleteSecret.js +27 -29
  286. package/commands/secret/listSecret.d.ts +1 -1
  287. package/commands/secret/listSecret.js +19 -21
  288. package/commands/secret/updateSecret.d.ts +1 -1
  289. package/commands/secret/updateSecret.js +25 -27
  290. package/commands/secret.d.ts +1 -1
  291. package/commands/secret.js +13 -18
  292. package/commands/testAccount/__tests__/create.test.js +17 -22
  293. package/commands/testAccount/__tests__/createConfig.test.js +6 -11
  294. package/commands/testAccount/__tests__/delete.test.js +15 -20
  295. package/commands/testAccount/create.d.ts +1 -1
  296. package/commands/testAccount/create.js +45 -53
  297. package/commands/testAccount/createConfig.d.ts +1 -1
  298. package/commands/testAccount/createConfig.js +36 -41
  299. package/commands/testAccount/delete.d.ts +1 -1
  300. package/commands/testAccount/delete.js +17 -19
  301. package/commands/testAccount.d.ts +1 -1
  302. package/commands/testAccount.js +10 -15
  303. package/commands/theme/__tests__/generate-selectors.test.js +7 -12
  304. package/commands/theme/__tests__/marketplace-validate.test.js +14 -19
  305. package/commands/theme/__tests__/preview.test.js +12 -17
  306. package/commands/theme/generate-selectors.d.ts +1 -1
  307. package/commands/theme/generate-selectors.js +23 -28
  308. package/commands/theme/marketplace-validate.d.ts +1 -1
  309. package/commands/theme/marketplace-validate.js +19 -24
  310. package/commands/theme/preview.d.ts +1 -1
  311. package/commands/theme/preview.js +60 -65
  312. package/commands/theme.d.ts +1 -1
  313. package/commands/theme.js +11 -16
  314. package/commands/upload.d.ts +1 -1
  315. package/commands/upload.js +77 -82
  316. package/commands/watch.d.ts +1 -1
  317. package/commands/watch.js +45 -51
  318. package/lang/en.d.ts +10 -23
  319. package/lang/en.js +380 -399
  320. package/lib/__tests__/accountTypes.test.js +20 -22
  321. package/lib/__tests__/buildAccount.test.js +28 -63
  322. package/lib/__tests__/commonOpts.test.js +20 -22
  323. package/lib/__tests__/dependencyManagement.test.js +46 -51
  324. package/lib/__tests__/developerTestAccounts.test.js +27 -62
  325. package/lib/__tests__/hasFeature.test.js +6 -8
  326. package/lib/__tests__/npm.test.js +15 -20
  327. package/lib/__tests__/oauth.test.js +23 -28
  328. package/lib/__tests__/parsing.test.js +18 -20
  329. package/lib/__tests__/polling.test.js +24 -26
  330. package/lib/__tests__/process.test.js +14 -19
  331. package/lib/__tests__/projectProfiles.test.js +34 -39
  332. package/lib/__tests__/sandboxSync.test.js +30 -35
  333. package/lib/__tests__/sandboxes.test.js +29 -31
  334. package/lib/__tests__/serverlessLogs.test.js +8 -13
  335. package/lib/__tests__/usageTracking.test.js +33 -34
  336. package/lib/__tests__/validation.test.js +18 -20
  337. package/lib/__tests__/yargsUtils.test.js +17 -41
  338. package/lib/accountTypes.js +24 -34
  339. package/lib/app/__tests__/migrate.test.js +94 -99
  340. package/lib/app/__tests__/migrate_legacy.test.js +29 -31
  341. package/lib/app/migrate.d.ts +3 -3
  342. package/lib/app/migrate.js +127 -145
  343. package/lib/app/migrate_legacy.d.ts +1 -1
  344. package/lib/app/migrate_legacy.js +72 -78
  345. package/lib/app/urls.js +5 -9
  346. package/lib/buildAccount.d.ts +1 -1
  347. package/lib/buildAccount.js +71 -80
  348. package/lib/commonOpts.d.ts +1 -1
  349. package/lib/commonOpts.js +42 -59
  350. package/lib/configMigrate.js +34 -38
  351. package/lib/configOptions.d.ts +5 -0
  352. package/lib/configOptions.js +44 -40
  353. package/lib/constants.d.ts +4 -0
  354. package/lib/constants.js +35 -34
  355. package/lib/customObject.js +2 -6
  356. package/lib/dependencyManagement.js +37 -45
  357. package/lib/developerTestAccounts.d.ts +1 -1
  358. package/lib/developerTestAccounts.js +34 -39
  359. package/lib/doctor/Diagnosis.d.ts +1 -1
  360. package/lib/doctor/Diagnosis.js +25 -29
  361. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  362. package/lib/doctor/DiagnosticInfoBuilder.js +30 -37
  363. package/lib/doctor/Doctor.d.ts +1 -1
  364. package/lib/doctor/Doctor.js +94 -101
  365. package/lib/doctor/__tests__/Diagnosis.test.js +9 -14
  366. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +29 -34
  367. package/lib/doctor/__tests__/Doctor.test.js +24 -26
  368. package/lib/enums/exitCodes.js +1 -4
  369. package/lib/errorHandlers/index.js +32 -41
  370. package/lib/errorHandlers/suppressError.d.ts +1 -1
  371. package/lib/errorHandlers/suppressError.js +28 -31
  372. package/lib/filesystem.js +8 -15
  373. package/lib/generateSelectors.js +18 -29
  374. package/lib/hasFeature.d.ts +1 -1
  375. package/lib/hasFeature.js +3 -6
  376. package/lib/interpolation.js +11 -18
  377. package/lib/lang.d.ts +1 -1
  378. package/lib/lang.js +22 -27
  379. package/lib/links.js +16 -24
  380. package/lib/marketplaceValidate.js +29 -39
  381. package/lib/mcp/setup.js +70 -82
  382. package/lib/middleware/__test__/configMiddleware.test.js +20 -55
  383. package/lib/middleware/__test__/gitMiddleware.test.js +7 -42
  384. package/lib/middleware/__test__/notificationsMiddleware.test.js +2 -4
  385. package/lib/middleware/__test__/requestMiddleware.test.js +6 -11
  386. package/lib/middleware/__test__/utils.test.js +9 -11
  387. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +9 -44
  388. package/lib/middleware/autoUpdateMiddleware.js +33 -40
  389. package/lib/middleware/configMiddleware.js +36 -42
  390. package/lib/middleware/fireAlarmMiddleware.js +12 -18
  391. package/lib/middleware/gitMiddleware.js +5 -8
  392. package/lib/middleware/notificationsMiddleware.js +16 -23
  393. package/lib/middleware/requestMiddleware.js +4 -10
  394. package/lib/middleware/utils.js +1 -4
  395. package/lib/middleware/yargsChecksMiddleware.js +10 -13
  396. package/lib/npm.js +14 -23
  397. package/lib/oauth.js +29 -35
  398. package/lib/parsing.js +3 -6
  399. package/lib/polling.js +11 -15
  400. package/lib/process.js +11 -19
  401. package/lib/projectProfiles.d.ts +2 -2
  402. package/lib/projectProfiles.js +32 -42
  403. package/lib/projects/ProjectLogsManager.js +18 -21
  404. package/lib/projects/__tests__/AppDevModeInterface.test.js +140 -145
  405. package/lib/projects/__tests__/LocalDevProcess.test.js +68 -73
  406. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +32 -37
  407. package/lib/projects/__tests__/ProjectLogsManager.test.js +56 -58
  408. package/lib/projects/__tests__/buildAndDeploy.test.js +7 -9
  409. package/lib/projects/__tests__/components.test.js +9 -14
  410. package/lib/projects/__tests__/projects.test.js +35 -40
  411. package/lib/projects/__tests__/structure.test.js +43 -81
  412. package/lib/projects/add/__tests__/legacyAddComponent.test.js +26 -28
  413. package/lib/projects/add/__tests__/v3AddComponent.test.js +25 -30
  414. package/lib/projects/add/legacyAddComponent.d.ts +1 -1
  415. package/lib/projects/add/legacyAddComponent.js +24 -30
  416. package/lib/projects/add/v3AddComponent.d.ts +1 -1
  417. package/lib/projects/add/v3AddComponent.js +36 -42
  418. package/lib/projects/buildAndDeploy.d.ts +1 -1
  419. package/lib/projects/buildAndDeploy.js +88 -97
  420. package/lib/projects/components.js +19 -25
  421. package/lib/projects/config.d.ts +1 -1
  422. package/lib/projects/config.js +32 -41
  423. package/lib/projects/create/__tests__/legacy.test.js +22 -57
  424. package/lib/projects/create/__tests__/v3.test.js +5 -7
  425. package/lib/projects/create/index.d.ts +3 -3
  426. package/lib/projects/create/index.js +19 -22
  427. package/lib/projects/create/legacy.d.ts +1 -1
  428. package/lib/projects/create/legacy.js +25 -31
  429. package/lib/projects/create/v3.d.ts +3 -3
  430. package/lib/projects/create/v3.js +49 -59
  431. package/lib/projects/ensureProjectExists.js +31 -37
  432. package/lib/projects/localDev/AppDevModeInterface.d.ts +3 -3
  433. package/lib/projects/localDev/AppDevModeInterface.js +58 -60
  434. package/lib/projects/localDev/DevServerManager.d.ts +1 -1
  435. package/lib/projects/localDev/DevServerManager.js +22 -24
  436. package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
  437. package/lib/projects/localDev/DevServerManagerV2.js +15 -20
  438. package/lib/projects/localDev/LocalDevLogger.d.ts +1 -1
  439. package/lib/projects/localDev/LocalDevLogger.js +68 -64
  440. package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
  441. package/lib/projects/localDev/LocalDevManager.js +106 -111
  442. package/lib/projects/localDev/LocalDevProcess.d.ts +5 -4
  443. package/lib/projects/localDev/LocalDevProcess.js +37 -30
  444. package/lib/projects/localDev/LocalDevState.d.ts +3 -3
  445. package/lib/projects/localDev/LocalDevState.js +3 -5
  446. package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
  447. package/lib/projects/localDev/LocalDevWatcher.js +6 -11
  448. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +1 -1
  449. package/lib/projects/localDev/LocalDevWebsocketServer.js +29 -27
  450. package/lib/projects/localDev/helpers.d.ts +3 -3
  451. package/lib/projects/localDev/helpers.js +156 -174
  452. package/lib/projects/structure.d.ts +4 -4
  453. package/lib/projects/structure.js +32 -78
  454. package/lib/projects/ui.js +10 -13
  455. package/lib/projects/upload.d.ts +2 -3
  456. package/lib/projects/upload.js +55 -65
  457. package/lib/projects/urls.d.ts +1 -1
  458. package/lib/projects/urls.js +15 -25
  459. package/lib/projects/watch.d.ts +1 -1
  460. package/lib/projects/watch.js +48 -54
  461. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +9 -11
  462. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +11 -16
  463. package/lib/prompts/accountNamePrompt.d.ts +1 -1
  464. package/lib/prompts/accountNamePrompt.js +26 -31
  465. package/lib/prompts/accountsPrompt.js +12 -15
  466. package/lib/prompts/cmsFieldPrompt.js +13 -19
  467. package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
  468. package/lib/prompts/createApiSamplePrompt.js +9 -12
  469. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +1 -1
  470. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +23 -26
  471. package/lib/prompts/createFunctionPrompt.js +17 -20
  472. package/lib/prompts/createModulePrompt.js +12 -15
  473. package/lib/prompts/createTemplatePrompt.js +5 -8
  474. package/lib/prompts/downloadProjectPrompt.js +17 -20
  475. package/lib/prompts/installAppPrompt.js +19 -26
  476. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
  477. package/lib/prompts/personalAccessKeyPrompt.js +40 -47
  478. package/lib/prompts/previewPrompt.js +15 -22
  479. package/lib/prompts/projectAddPrompt.d.ts +1 -1
  480. package/lib/prompts/projectAddPrompt.js +14 -18
  481. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
  482. package/lib/prompts/projectDevTargetAccountPrompt.js +48 -54
  483. package/lib/prompts/projectNameAndDestPrompt.d.ts +1 -1
  484. package/lib/prompts/projectNameAndDestPrompt.js +22 -29
  485. package/lib/prompts/projectNamePrompt.js +11 -14
  486. package/lib/prompts/projectsLogsPrompt.js +5 -8
  487. package/lib/prompts/promptUtils.d.ts +1 -1
  488. package/lib/prompts/promptUtils.js +17 -24
  489. package/lib/prompts/sandboxesPrompt.d.ts +1 -1
  490. package/lib/prompts/sandboxesPrompt.js +26 -30
  491. package/lib/prompts/secretPrompt.js +10 -15
  492. package/lib/prompts/selectAppPrompt.js +11 -14
  493. package/lib/prompts/selectHubDBTablePrompt.js +24 -30
  494. package/lib/prompts/selectProjectTemplatePrompt.d.ts +1 -1
  495. package/lib/prompts/selectProjectTemplatePrompt.js +10 -13
  496. package/lib/prompts/selectPublicAppForMigrationPrompt.js +22 -25
  497. package/lib/prompts/setAsDefaultAccountPrompt.js +13 -16
  498. package/lib/prompts/uploadPrompt.js +11 -17
  499. package/lib/sandboxSync.d.ts +1 -1
  500. package/lib/sandboxSync.js +58 -65
  501. package/lib/sandboxes.d.ts +1 -1
  502. package/lib/sandboxes.js +68 -76
  503. package/lib/schema.js +13 -20
  504. package/lib/serverlessLogs.js +45 -52
  505. package/lib/testUtils.js +4 -8
  506. package/lib/ui/SpinniesManager.d.ts +1 -1
  507. package/lib/ui/SpinniesManager.js +29 -34
  508. package/lib/ui/boxen.js +11 -14
  509. package/lib/ui/git.js +14 -20
  510. package/lib/ui/index.js +55 -73
  511. package/lib/ui/logger.js +10 -13
  512. package/lib/ui/serverlessFunctionLogs.js +14 -20
  513. package/lib/ui/spinniesUtils.js +24 -39
  514. package/lib/ui/supportHyperlinks.js +3 -6
  515. package/lib/ui/supportsColor.js +11 -17
  516. package/lib/ui/table.js +6 -13
  517. package/lib/upload.js +15 -21
  518. package/lib/usageTracking.js +35 -44
  519. package/lib/utils/hasFlag.js +2 -8
  520. package/lib/validation.js +48 -87
  521. package/lib/yargsUtils.d.ts +2 -1
  522. package/lib/yargsUtils.js +19 -16
  523. package/mcp-server/server.js +6 -8
  524. package/mcp-server/tools/index.js +13 -16
  525. package/mcp-server/tools/project/AddFeatureToProject.d.ts +1 -1
  526. package/mcp-server/tools/project/AddFeatureToProject.js +35 -39
  527. package/mcp-server/tools/project/CreateProjectTool.d.ts +1 -1
  528. package/mcp-server/tools/project/CreateProjectTool.js +46 -50
  529. package/mcp-server/tools/project/DeployProject.d.ts +1 -1
  530. package/mcp-server/tools/project/DeployProject.js +18 -22
  531. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  532. package/mcp-server/tools/project/GuidedWalkthroughTool.js +21 -25
  533. package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
  534. package/mcp-server/tools/project/UploadProjectTools.js +12 -19
  535. package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
  536. package/mcp-server/tools/project/ValidateProjectTool.js +13 -17
  537. package/mcp-server/tools/project/__tests__/AddFeatureToProject.test.js +12 -14
  538. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +13 -15
  539. package/mcp-server/tools/project/__tests__/DeployProject.test.js +6 -8
  540. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +4 -6
  541. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +4 -6
  542. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +4 -6
  543. package/mcp-server/tools/project/constants.js +3 -9
  544. package/mcp-server/types.js +1 -5
  545. package/mcp-server/utils/__tests__/command.test.js +9 -11
  546. package/mcp-server/utils/__tests__/project.test.js +12 -17
  547. package/mcp-server/utils/command.d.ts +1 -1
  548. package/mcp-server/utils/command.js +4 -11
  549. package/mcp-server/utils/content.d.ts +1 -1
  550. package/mcp-server/utils/content.js +2 -6
  551. package/mcp-server/utils/project.js +8 -14
  552. package/mcp-server/utils/toolUsageTracking.js +11 -14
  553. package/package.json +15 -11
  554. package/types/Cms.d.ts +1 -1
  555. package/types/Cms.js +1 -2
  556. package/types/LocalDev.d.ts +4 -4
  557. package/types/LocalDev.js +1 -2
  558. package/types/ProjectComponents.d.ts +2 -2
  559. package/types/ProjectComponents.js +1 -2
  560. package/types/Projects.d.ts +1 -1
  561. package/types/Projects.js +2 -5
  562. package/types/Prompts.js +1 -2
  563. package/types/Sandboxes.js +1 -2
  564. package/types/Yargs.js +1 -2
  565. package/commands/app/__tests__/install.test.d.ts +0 -1
  566. package/commands/app/__tests__/install.test.js +0 -52
  567. package/commands/app/install.d.ts +0 -8
  568. package/commands/app/install.js +0 -127
@@ -1,55 +1,49 @@
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 config_1 = require("@hubspot/local-dev-lib/constants/config");
8
- const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
9
- // import { HsProfileFile } from '@hubspot/project-parsing-lib/src/lib/types';
10
- const config_2 = require("@hubspot/local-dev-lib/config");
11
- const environment_1 = require("@hubspot/local-dev-lib/environment");
12
- const errorHandlers_1 = require("../../../lib/errorHandlers");
13
- const ensureProjectExists_1 = require("../../../lib/projects/ensureProjectExists");
14
- const helpers_1 = require("../../../lib/projects/localDev/helpers");
15
- const projectDevTargetAccountPrompt_1 = require("../../../lib/prompts/projectDevTargetAccountPrompt");
16
- const SpinniesManager_1 = __importDefault(require("../../../lib/ui/SpinniesManager"));
17
- const LocalDevProcess_1 = __importDefault(require("../../../lib/projects/localDev/LocalDevProcess"));
18
- const LocalDevWatcher_1 = __importDefault(require("../../../lib/projects/localDev/LocalDevWatcher"));
19
- const LocalDevWebsocketServer_1 = __importDefault(require("../../../lib/projects/localDev/LocalDevWebsocketServer"));
20
- const process_1 = require("../../../lib/process");
21
- const accountTypes_1 = require("../../../lib/accountTypes");
22
- const ui_1 = require("../../../lib/ui");
23
- const logger_1 = require("../../../lib/ui/logger");
24
- const en_1 = require("../../../lang/en");
25
- const unifiedFlow_1 = require("../dev/unifiedFlow");
26
- const environments_1 = require("@hubspot/local-dev-lib/constants/environments");
27
- const vitest_1 = require("vitest");
1
+ import path from 'path';
2
+ import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
3
+ import { translateForLocalDev } from '@hubspot/project-parsing-lib';
4
+ import { getConfigAccounts, getAccountConfig, } from '@hubspot/local-dev-lib/config';
5
+ import { getValidEnv } from '@hubspot/local-dev-lib/environment';
6
+ import { logError } from '../../../lib/errorHandlers/index.js';
7
+ import { ensureProjectExists } from '../../../lib/projects/ensureProjectExists.js';
8
+ import { createInitialBuildForNewProject, createNewProjectForLocalDev, useExistingDevTestAccount, createDeveloperTestAccountForLocalDev, selectAccountTypePrompt, } from '../../../lib/projects/localDev/helpers.js';
9
+ import { selectDeveloperTestTargetAccountPrompt, selectSandboxTargetAccountPrompt, } from '../../../lib/prompts/projectDevTargetAccountPrompt.js';
10
+ import SpinniesManager from '../../../lib/ui/SpinniesManager.js';
11
+ import LocalDevProcess from '../../../lib/projects/localDev/LocalDevProcess.js';
12
+ import LocalDevWatcher from '../../../lib/projects/localDev/LocalDevWatcher.js';
13
+ import LocalDevWebsocketServer from '../../../lib/projects/localDev/LocalDevWebsocketServer.js';
14
+ import { handleExit, handleKeypress } from '../../../lib/process.js';
15
+ import { isTestAccountOrSandbox, isUnifiedAccount, } from '../../../lib/accountTypes.js';
16
+ import { uiLine } from '../../../lib/ui/index.js';
17
+ import { uiLogger } from '../../../lib/ui/logger.js';
18
+ import { commands } from '../../../lang/en.js';
19
+ import { unifiedProjectDevFlow } from '../dev/unifiedFlow.js';
20
+ import { ENVIRONMENTS } from '@hubspot/local-dev-lib/constants/environments';
21
+ import { vi } from 'vitest';
28
22
  // Mock @hubspot/ui-extensions-dev-server
29
- vitest_1.vi.mock('@hubspot/ui-extensions-dev-server', () => ({
23
+ vi.mock('@hubspot/ui-extensions-dev-server', () => ({
30
24
  DevModeUnifiedInterface: {
31
- setup: vitest_1.vi.fn().mockResolvedValue(undefined),
32
- start: vitest_1.vi.fn().mockResolvedValue(undefined),
33
- fileChange: vitest_1.vi.fn().mockResolvedValue(undefined),
34
- cleanup: vitest_1.vi.fn().mockResolvedValue(undefined),
25
+ setup: vi.fn().mockResolvedValue(undefined),
26
+ start: vi.fn().mockResolvedValue(undefined),
27
+ fileChange: vi.fn().mockResolvedValue(undefined),
28
+ cleanup: vi.fn().mockResolvedValue(undefined),
35
29
  },
36
30
  }));
37
31
  // Mock all dependencies
38
- vitest_1.vi.mock('@hubspot/project-parsing-lib');
39
- vitest_1.vi.mock('@hubspot/local-dev-lib/config');
40
- vitest_1.vi.mock('@hubspot/local-dev-lib/environment');
41
- vitest_1.vi.mock('../../../lib/errorHandlers');
42
- vitest_1.vi.mock('../../../lib/projects/ensureProjectExists');
43
- vitest_1.vi.mock('../../../lib/projects/localDev/helpers');
44
- vitest_1.vi.mock('../../../lib/prompts/projectDevTargetAccountPrompt');
45
- vitest_1.vi.mock('../../../lib/ui/SpinniesManager');
46
- vitest_1.vi.mock('../../../lib/projects/localDev/LocalDevProcess');
47
- vitest_1.vi.mock('../../../lib/projects/localDev/LocalDevWatcher');
48
- vitest_1.vi.mock('../../../lib/projects/localDev/LocalDevWebsocketServer');
49
- vitest_1.vi.mock('../../../lib/process');
50
- vitest_1.vi.mock('../../../lib/accountTypes');
51
- vitest_1.vi.mock('../../../lib/ui');
52
- vitest_1.vi.mock('../../../lib/ui/logger');
32
+ vi.mock('@hubspot/project-parsing-lib');
33
+ vi.mock('@hubspot/local-dev-lib/config');
34
+ vi.mock('@hubspot/local-dev-lib/environment');
35
+ vi.mock('../../../lib/errorHandlers');
36
+ vi.mock('../../../lib/projects/ensureProjectExists');
37
+ vi.mock('../../../lib/projects/localDev/helpers');
38
+ vi.mock('../../../lib/prompts/projectDevTargetAccountPrompt');
39
+ vi.mock('../../../lib/ui/SpinniesManager');
40
+ vi.mock('../../../lib/projects/localDev/LocalDevProcess');
41
+ vi.mock('../../../lib/projects/localDev/LocalDevWatcher');
42
+ vi.mock('../../../lib/projects/localDev/LocalDevWebsocketServer');
43
+ vi.mock('../../../lib/process');
44
+ vi.mock('../../../lib/accountTypes');
45
+ vi.mock('../../../lib/ui');
46
+ vi.mock('../../../lib/ui/logger');
53
47
  describe('unifiedProjectDevFlow', () => {
54
48
  const mockArgs = {
55
49
  profile: 'test-profile',
@@ -67,7 +61,7 @@ describe('unifiedProjectDevFlow', () => {
67
61
  srcDir: 'src',
68
62
  platformVersion: '1.0.0',
69
63
  };
70
- const mockProjectDir = '/test/project';
64
+ const mockProjectDir = '/test/project.js';
71
65
  const mockTargetProjectAccountId = 123;
72
66
  const mockProvidedTargetTestingAccountId = 456;
73
67
  // const mockProfileConfig: HsProfileFile = {
@@ -76,7 +70,7 @@ describe('unifiedProjectDevFlow', () => {
76
70
  const mockAccountConfig = {
77
71
  accountId: 123,
78
72
  name: 'test-account',
79
- accountType: config_1.HUBSPOT_ACCOUNT_TYPES.STANDARD,
73
+ accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
80
74
  };
81
75
  const mockProject = {
82
76
  id: 1,
@@ -99,58 +93,58 @@ describe('unifiedProjectDevFlow', () => {
99
93
  },
100
94
  };
101
95
  const mockLocalDevProcess = {
102
- start: vitest_1.vi.fn().mockResolvedValue(undefined),
103
- stop: vitest_1.vi.fn().mockResolvedValue(undefined),
96
+ start: vi.fn().mockResolvedValue(undefined),
97
+ stop: vi.fn().mockResolvedValue(undefined),
104
98
  };
105
99
  const mockLocalDevWatcher = {
106
- start: vitest_1.vi.fn(),
107
- stop: vitest_1.vi.fn().mockResolvedValue(undefined),
100
+ start: vi.fn(),
101
+ stop: vi.fn().mockResolvedValue(undefined),
108
102
  };
109
103
  const mockWebsocketServer = {
110
- start: vitest_1.vi.fn().mockResolvedValue(undefined),
111
- shutdown: vitest_1.vi.fn().mockResolvedValue(undefined),
104
+ start: vi.fn().mockResolvedValue(undefined),
105
+ shutdown: vi.fn().mockResolvedValue(undefined),
112
106
  };
113
107
  beforeEach(() => {
114
- vitest_1.vi.clearAllMocks();
108
+ vi.clearAllMocks();
115
109
  // Mock process.exit
116
- vitest_1.vi.spyOn(global.process, 'exit').mockImplementation((code) => {
110
+ vi.spyOn(global.process, 'exit').mockImplementation((code) => {
117
111
  throw new Error(`Process.exit called with code ${code}`);
118
112
  });
119
113
  // Setup default mocks
120
- environment_1.getValidEnv.mockReturnValue(environments_1.ENVIRONMENTS.PROD);
121
- project_parsing_lib_1.translateForLocalDev.mockResolvedValue({
114
+ getValidEnv.mockReturnValue(ENVIRONMENTS.PROD);
115
+ translateForLocalDev.mockResolvedValue({
122
116
  intermediateNodesIndexedByUid: mockProjectNodes,
123
117
  });
124
- config_2.getAccountConfig.mockReturnValue(mockAccountConfig);
125
- config_2.getConfigAccounts.mockReturnValue([mockAccountConfig]);
126
- accountTypes_1.isUnifiedAccount.mockResolvedValue(true);
127
- accountTypes_1.isTestAccountOrSandbox.mockReturnValue(false);
128
- ensureProjectExists_1.ensureProjectExists.mockResolvedValue({
118
+ getAccountConfig.mockReturnValue(mockAccountConfig);
119
+ getConfigAccounts.mockReturnValue([mockAccountConfig]);
120
+ isUnifiedAccount.mockResolvedValue(true);
121
+ isTestAccountOrSandbox.mockReturnValue(false);
122
+ ensureProjectExists.mockResolvedValue({
129
123
  projectExists: true,
130
124
  project: mockProject,
131
125
  });
132
- SpinniesManager_1.default.init.mockImplementation(() => { });
133
- LocalDevProcess_1.default.mockImplementation(() => mockLocalDevProcess);
134
- LocalDevWatcher_1.default.mockImplementation(() => mockLocalDevWatcher);
135
- LocalDevWebsocketServer_1.default.mockImplementation(() => mockWebsocketServer);
136
- process_1.handleKeypress.mockImplementation(() => { });
137
- process_1.handleExit.mockImplementation(() => { });
138
- logger_1.uiLogger.debug.mockImplementation(() => { });
139
- logger_1.uiLogger.error.mockImplementation(() => { });
140
- logger_1.uiLogger.log.mockImplementation(() => { });
141
- ui_1.uiLine.mockImplementation(() => { });
126
+ SpinniesManager.init.mockImplementation(() => { });
127
+ LocalDevProcess.mockImplementation(() => mockLocalDevProcess);
128
+ LocalDevWatcher.mockImplementation(() => mockLocalDevWatcher);
129
+ LocalDevWebsocketServer.mockImplementation(() => mockWebsocketServer);
130
+ handleKeypress.mockImplementation(() => { });
131
+ handleExit.mockImplementation(() => { });
132
+ uiLogger.debug.mockImplementation(() => { });
133
+ uiLogger.error.mockImplementation(() => { });
134
+ uiLogger.log.mockImplementation(() => { });
135
+ uiLine.mockImplementation(() => { });
142
136
  });
143
137
  describe('successful flow', () => {
144
138
  it('should complete successfully with existing project and provided testing account', async () => {
145
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
139
+ await unifiedProjectDevFlow({
146
140
  args: mockArgs,
147
141
  targetProjectAccountId: mockTargetProjectAccountId,
148
142
  providedTargetTestingAccountId: mockProvidedTargetTestingAccountId,
149
143
  projectConfig: mockProjectConfig,
150
144
  projectDir: mockProjectDir,
151
145
  });
152
- expect(project_parsing_lib_1.translateForLocalDev).toHaveBeenCalledWith({
153
- projectSourceDir: path_1.default.join(mockProjectDir, mockProjectConfig.srcDir),
146
+ expect(translateForLocalDev).toHaveBeenCalledWith({
147
+ projectSourceDir: path.join(mockProjectDir, mockProjectConfig.srcDir),
154
148
  platformVersion: mockProjectConfig.platformVersion,
155
149
  accountId: mockTargetProjectAccountId,
156
150
  }, { profile: mockArgs.profile });
@@ -174,14 +168,14 @@ describe('unifiedProjectDevFlow', () => {
174
168
  // );
175
169
  // });
176
170
  it('should use target project account as testing account when it is a test account', async () => {
177
- accountTypes_1.isTestAccountOrSandbox.mockReturnValue(true);
178
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
171
+ isTestAccountOrSandbox.mockReturnValue(true);
172
+ await unifiedProjectDevFlow({
179
173
  args: mockArgs,
180
174
  targetProjectAccountId: mockTargetProjectAccountId,
181
175
  projectConfig: mockProjectConfig,
182
176
  projectDir: mockProjectDir,
183
177
  });
184
- expect(LocalDevProcess_1.default).toHaveBeenCalledWith(expect.objectContaining({
178
+ expect(LocalDevProcess).toHaveBeenCalledWith(expect.objectContaining({
185
179
  targetTestingAccountId: mockTargetProjectAccountId,
186
180
  }));
187
181
  });
@@ -189,145 +183,145 @@ describe('unifiedProjectDevFlow', () => {
189
183
  describe('error handling', () => {
190
184
  it('should exit with error code when translation fails', async () => {
191
185
  const translationError = new Error('Translation failed');
192
- project_parsing_lib_1.translateForLocalDev.mockRejectedValue(translationError);
193
- await expect((0, unifiedFlow_1.unifiedProjectDevFlow)({
186
+ translateForLocalDev.mockRejectedValue(translationError);
187
+ await expect(unifiedProjectDevFlow({
194
188
  args: mockArgs,
195
189
  targetProjectAccountId: mockTargetProjectAccountId,
196
190
  projectConfig: mockProjectConfig,
197
191
  projectDir: mockProjectDir,
198
192
  })).rejects.toThrow('Process.exit called with code 1');
199
- expect(errorHandlers_1.logError).toHaveBeenCalledWith(translationError);
193
+ expect(logError).toHaveBeenCalledWith(translationError);
200
194
  });
201
195
  it('should exit with success when no runnable components found', async () => {
202
- project_parsing_lib_1.translateForLocalDev.mockResolvedValue({
196
+ translateForLocalDev.mockResolvedValue({
203
197
  intermediateNodesIndexedByUid: {},
204
198
  });
205
- await expect((0, unifiedFlow_1.unifiedProjectDevFlow)({
199
+ await expect(unifiedProjectDevFlow({
206
200
  args: mockArgs,
207
201
  targetProjectAccountId: mockTargetProjectAccountId,
208
202
  projectConfig: mockProjectConfig,
209
203
  projectDir: mockProjectDir,
210
204
  })).rejects.toThrow('Process.exit called with code 0');
211
- expect(logger_1.uiLogger.error).toHaveBeenCalledWith(en_1.commands.project.dev.errors.noRunnableComponents);
205
+ expect(uiLogger.error).toHaveBeenCalledWith(commands.project.dev.errors.noRunnableComponents);
212
206
  });
213
207
  it('should exit with error when account config not found', async () => {
214
- config_2.getAccountConfig.mockReturnValue(null);
215
- await expect((0, unifiedFlow_1.unifiedProjectDevFlow)({
208
+ getAccountConfig.mockReturnValue(null);
209
+ await expect(unifiedProjectDevFlow({
216
210
  args: mockArgs,
217
211
  targetProjectAccountId: mockTargetProjectAccountId,
218
212
  projectConfig: mockProjectConfig,
219
213
  projectDir: mockProjectDir,
220
214
  })).rejects.toThrow('Process.exit called with code 1');
221
- expect(logger_1.uiLogger.error).toHaveBeenCalledWith(en_1.commands.project.dev.errors.noAccount(mockTargetProjectAccountId));
215
+ expect(uiLogger.error).toHaveBeenCalledWith(commands.project.dev.errors.noAccount(mockTargetProjectAccountId));
222
216
  });
223
217
  it('should exit with error when account is not combined and no profile', async () => {
224
- accountTypes_1.isUnifiedAccount.mockResolvedValue(false);
225
- await expect((0, unifiedFlow_1.unifiedProjectDevFlow)({
218
+ isUnifiedAccount.mockResolvedValue(false);
219
+ await expect(unifiedProjectDevFlow({
226
220
  args: mockArgs,
227
221
  targetProjectAccountId: mockTargetProjectAccountId,
228
222
  projectConfig: mockProjectConfig,
229
223
  projectDir: mockProjectDir,
230
224
  })).rejects.toThrow('Process.exit called with code 1');
231
- expect(logger_1.uiLogger.error).toHaveBeenCalledWith(en_1.commands.project.dev.errors.accountNotCombined);
225
+ expect(uiLogger.error).toHaveBeenCalledWith(commands.project.dev.errors.accountNotCombined);
232
226
  });
233
227
  });
234
228
  describe('account type selection and prompting', () => {
235
229
  beforeEach(() => {
236
230
  // Reset to require prompting
237
- accountTypes_1.isTestAccountOrSandbox.mockReturnValue(false);
231
+ isTestAccountOrSandbox.mockReturnValue(false);
238
232
  });
239
233
  it('should prompt for account type when no testing account provided', async () => {
240
- helpers_1.selectAccountTypePrompt.mockResolvedValue(config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST);
241
- projectDevTargetAccountPrompt_1.selectDeveloperTestTargetAccountPrompt.mockResolvedValue({
234
+ selectAccountTypePrompt.mockResolvedValue(HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST);
235
+ selectDeveloperTestTargetAccountPrompt.mockResolvedValue({
242
236
  targetAccountId: 456,
243
237
  });
244
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
238
+ await unifiedProjectDevFlow({
245
239
  args: mockArgs,
246
240
  targetProjectAccountId: mockTargetProjectAccountId,
247
241
  projectConfig: mockProjectConfig,
248
242
  projectDir: mockProjectDir,
249
243
  });
250
- expect(helpers_1.selectAccountTypePrompt).toHaveBeenCalledWith(mockAccountConfig);
251
- expect(projectDevTargetAccountPrompt_1.selectDeveloperTestTargetAccountPrompt).toHaveBeenCalled();
244
+ expect(selectAccountTypePrompt).toHaveBeenCalledWith(mockAccountConfig);
245
+ expect(selectDeveloperTestTargetAccountPrompt).toHaveBeenCalled();
252
246
  });
253
247
  it('should handle developer test account creation', async () => {
254
- helpers_1.selectAccountTypePrompt.mockResolvedValue(config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST);
255
- projectDevTargetAccountPrompt_1.selectDeveloperTestTargetAccountPrompt.mockResolvedValue({
248
+ selectAccountTypePrompt.mockResolvedValue(HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST);
249
+ selectDeveloperTestTargetAccountPrompt.mockResolvedValue({
256
250
  createNestedAccount: true,
257
251
  });
258
- helpers_1.createDeveloperTestAccountForLocalDev.mockResolvedValue(999);
259
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
252
+ createDeveloperTestAccountForLocalDev.mockResolvedValue(999);
253
+ await unifiedProjectDevFlow({
260
254
  args: mockArgs,
261
255
  targetProjectAccountId: mockTargetProjectAccountId,
262
256
  projectConfig: mockProjectConfig,
263
257
  projectDir: mockProjectDir,
264
258
  });
265
- expect(helpers_1.createDeveloperTestAccountForLocalDev).toHaveBeenCalledWith(mockTargetProjectAccountId, mockAccountConfig, environments_1.ENVIRONMENTS.PROD, true);
266
- expect(LocalDevProcess_1.default).toHaveBeenCalledWith(expect.objectContaining({
259
+ expect(createDeveloperTestAccountForLocalDev).toHaveBeenCalledWith(mockTargetProjectAccountId, mockAccountConfig, ENVIRONMENTS.PROD, true);
260
+ expect(LocalDevProcess).toHaveBeenCalledWith(expect.objectContaining({
267
261
  targetTestingAccountId: 999,
268
262
  }));
269
263
  });
270
264
  it('should handle existing developer test account not in config', async () => {
271
265
  const notInConfigAccount = { accountId: 777, name: 'external-account' };
272
- helpers_1.selectAccountTypePrompt.mockResolvedValue(config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST);
273
- projectDevTargetAccountPrompt_1.selectDeveloperTestTargetAccountPrompt.mockResolvedValue({
266
+ selectAccountTypePrompt.mockResolvedValue(HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST);
267
+ selectDeveloperTestTargetAccountPrompt.mockResolvedValue({
274
268
  notInConfigAccount,
275
269
  });
276
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
270
+ await unifiedProjectDevFlow({
277
271
  args: mockArgs,
278
272
  targetProjectAccountId: mockTargetProjectAccountId,
279
273
  projectConfig: mockProjectConfig,
280
274
  projectDir: mockProjectDir,
281
275
  });
282
- expect(helpers_1.useExistingDevTestAccount).toHaveBeenCalledWith(environments_1.ENVIRONMENTS.PROD, notInConfigAccount);
276
+ expect(useExistingDevTestAccount).toHaveBeenCalledWith(ENVIRONMENTS.PROD, notInConfigAccount);
283
277
  });
284
278
  it('should handle sandbox account selection', async () => {
285
- helpers_1.selectAccountTypePrompt.mockResolvedValue(config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX);
286
- projectDevTargetAccountPrompt_1.selectSandboxTargetAccountPrompt.mockResolvedValue({
279
+ selectAccountTypePrompt.mockResolvedValue(HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX);
280
+ selectSandboxTargetAccountPrompt.mockResolvedValue({
287
281
  targetAccountId: 888,
288
282
  });
289
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
283
+ await unifiedProjectDevFlow({
290
284
  args: mockArgs,
291
285
  targetProjectAccountId: mockTargetProjectAccountId,
292
286
  projectConfig: mockProjectConfig,
293
287
  projectDir: mockProjectDir,
294
288
  });
295
- expect(projectDevTargetAccountPrompt_1.selectSandboxTargetAccountPrompt).toHaveBeenCalled();
296
- expect(LocalDevProcess_1.default).toHaveBeenCalledWith(expect.objectContaining({
289
+ expect(selectSandboxTargetAccountPrompt).toHaveBeenCalled();
290
+ expect(LocalDevProcess).toHaveBeenCalledWith(expect.objectContaining({
297
291
  targetTestingAccountId: 888,
298
292
  }));
299
293
  });
300
294
  });
301
295
  describe('project creation', () => {
302
296
  it('should create new project when project does not exist', async () => {
303
- ensureProjectExists_1.ensureProjectExists.mockResolvedValue({
297
+ ensureProjectExists.mockResolvedValue({
304
298
  projectExists: false,
305
299
  project: null,
306
300
  });
307
- helpers_1.createNewProjectForLocalDev.mockResolvedValue(mockProject);
308
- helpers_1.createInitialBuildForNewProject.mockResolvedValue({
301
+ createNewProjectForLocalDev.mockResolvedValue(mockProject);
302
+ createInitialBuildForNewProject.mockResolvedValue({
309
303
  buildId: 456,
310
304
  });
311
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
305
+ await unifiedProjectDevFlow({
312
306
  args: mockArgs,
313
307
  targetProjectAccountId: mockTargetProjectAccountId,
314
308
  providedTargetTestingAccountId: mockProvidedTargetTestingAccountId,
315
309
  projectConfig: mockProjectConfig,
316
310
  projectDir: mockProjectDir,
317
311
  });
318
- expect(helpers_1.createNewProjectForLocalDev).toHaveBeenCalledWith(mockProjectConfig, mockTargetProjectAccountId, false, false);
319
- expect(helpers_1.createInitialBuildForNewProject).toHaveBeenCalledWith(mockProjectConfig, mockProjectDir, mockTargetProjectAccountId, true, mockArgs.profile);
312
+ expect(createNewProjectForLocalDev).toHaveBeenCalledWith(mockProjectConfig, mockTargetProjectAccountId, false, false);
313
+ expect(createInitialBuildForNewProject).toHaveBeenCalledWith(mockProjectConfig, mockProjectDir, mockTargetProjectAccountId, true, mockArgs.profile);
320
314
  });
321
315
  it('should use existing project and build when project exists', async () => {
322
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
316
+ await unifiedProjectDevFlow({
323
317
  args: mockArgs,
324
318
  targetProjectAccountId: mockTargetProjectAccountId,
325
319
  providedTargetTestingAccountId: mockProvidedTargetTestingAccountId,
326
320
  projectConfig: mockProjectConfig,
327
321
  projectDir: mockProjectDir,
328
322
  });
329
- expect(helpers_1.createNewProjectForLocalDev).not.toHaveBeenCalled();
330
- expect(LocalDevProcess_1.default).toHaveBeenCalledWith(expect.objectContaining({
323
+ expect(createNewProjectForLocalDev).not.toHaveBeenCalled();
324
+ expect(LocalDevProcess).toHaveBeenCalledWith(expect.objectContaining({
331
325
  deployedBuild: mockProject.deployedBuild,
332
326
  projectId: mockProject.id,
333
327
  projectName: mockProject.name,
@@ -338,32 +332,32 @@ describe('unifiedProjectDevFlow', () => {
338
332
  ...mockProject,
339
333
  sourceIntegration: { source: 'GITHUB' },
340
334
  };
341
- ensureProjectExists_1.ensureProjectExists.mockResolvedValue({
335
+ ensureProjectExists.mockResolvedValue({
342
336
  projectExists: true,
343
337
  project: githubLinkedProject,
344
338
  });
345
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
339
+ await unifiedProjectDevFlow({
346
340
  args: mockArgs,
347
341
  targetProjectAccountId: mockTargetProjectAccountId,
348
342
  providedTargetTestingAccountId: mockProvidedTargetTestingAccountId,
349
343
  projectConfig: mockProjectConfig,
350
344
  projectDir: mockProjectDir,
351
345
  });
352
- expect(LocalDevProcess_1.default).toHaveBeenCalledWith(expect.objectContaining({
346
+ expect(LocalDevProcess).toHaveBeenCalledWith(expect.objectContaining({
353
347
  isGithubLinked: true,
354
348
  }));
355
349
  });
356
350
  });
357
351
  describe('local dev process setup', () => {
358
352
  it('should initialize LocalDevProcess with correct parameters', async () => {
359
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
353
+ await unifiedProjectDevFlow({
360
354
  args: mockArgs,
361
355
  targetProjectAccountId: mockTargetProjectAccountId,
362
356
  providedTargetTestingAccountId: mockProvidedTargetTestingAccountId,
363
357
  projectConfig: mockProjectConfig,
364
358
  projectDir: mockProjectDir,
365
359
  });
366
- expect(LocalDevProcess_1.default).toHaveBeenCalledWith({
360
+ expect(LocalDevProcess).toHaveBeenCalledWith({
367
361
  initialProjectNodes: mockProjectNodes,
368
362
  debug: mockArgs.debug,
369
363
  deployedBuild: mockProject.deployedBuild,
@@ -375,22 +369,22 @@ describe('unifiedProjectDevFlow', () => {
375
369
  projectDir: mockProjectDir,
376
370
  projectName: mockProject.name,
377
371
  projectId: mockProject.id,
378
- env: environments_1.ENVIRONMENTS.PROD,
372
+ env: ENVIRONMENTS.PROD,
379
373
  });
380
374
  });
381
375
  it('should set up keypress and exit handlers', async () => {
382
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
376
+ await unifiedProjectDevFlow({
383
377
  args: mockArgs,
384
378
  targetProjectAccountId: mockTargetProjectAccountId,
385
379
  providedTargetTestingAccountId: mockProvidedTargetTestingAccountId,
386
380
  projectConfig: mockProjectConfig,
387
381
  projectDir: mockProjectDir,
388
382
  });
389
- expect(process_1.handleKeypress).toHaveBeenCalledWith(expect.any(Function));
390
- expect(process_1.handleExit).toHaveBeenCalledWith(expect.any(Function));
383
+ expect(handleKeypress).toHaveBeenCalledWith(expect.any(Function));
384
+ expect(handleExit).toHaveBeenCalledWith(expect.any(Function));
391
385
  });
392
386
  it('should start all required services', async () => {
393
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
387
+ await unifiedProjectDevFlow({
394
388
  args: mockArgs,
395
389
  targetProjectAccountId: mockTargetProjectAccountId,
396
390
  providedTargetTestingAccountId: mockProvidedTargetTestingAccountId,
@@ -400,24 +394,24 @@ describe('unifiedProjectDevFlow', () => {
400
394
  expect(mockLocalDevProcess.start).toHaveBeenCalled();
401
395
  expect(mockLocalDevWatcher.start).toHaveBeenCalled();
402
396
  expect(mockWebsocketServer.start).toHaveBeenCalled();
403
- expect(SpinniesManager_1.default.init).toHaveBeenCalled();
397
+ expect(SpinniesManager.init).toHaveBeenCalled();
404
398
  });
405
399
  });
406
400
  describe('UI messaging', () => {
407
401
  beforeEach(() => {
408
- accountTypes_1.isTestAccountOrSandbox.mockReturnValue(false);
402
+ isTestAccountOrSandbox.mockReturnValue(false);
409
403
  });
410
404
  it('should display account type information when prompting', async () => {
411
- helpers_1.selectAccountTypePrompt.mockResolvedValue(config_1.HUBSPOT_ACCOUNT_TYPES.STANDARD);
412
- await (0, unifiedFlow_1.unifiedProjectDevFlow)({
405
+ selectAccountTypePrompt.mockResolvedValue(HUBSPOT_ACCOUNT_TYPES.STANDARD);
406
+ await unifiedProjectDevFlow({
413
407
  args: mockArgs,
414
408
  targetProjectAccountId: mockTargetProjectAccountId,
415
409
  projectConfig: mockProjectConfig,
416
410
  projectDir: mockProjectDir,
417
411
  });
418
- expect(ui_1.uiLine).toHaveBeenCalled();
419
- expect(logger_1.uiLogger.log).toHaveBeenCalledWith(en_1.commands.project.dev.logs.accountTypeInformation);
420
- expect(logger_1.uiLogger.log).toHaveBeenCalledWith(en_1.commands.project.dev.logs.learnMoreMessage);
412
+ expect(uiLine).toHaveBeenCalled();
413
+ expect(uiLogger.log).toHaveBeenCalledWith(commands.project.dev.logs.accountTypeInformation);
414
+ expect(uiLogger.log).toHaveBeenCalledWith(commands.project.dev.logs.learnMoreMessage);
421
415
  });
422
416
  });
423
417
  });
@@ -1,38 +1,33 @@
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 yargs_1 = __importDefault(require("yargs"));
7
- const commonOpts_1 = require("../../../lib/commonOpts");
8
- const download_1 = __importDefault(require("../download"));
1
+ import yargs from 'yargs';
2
+ import { addAccountOptions, addConfigOptions, addUseEnvironmentOptions, } from '../../../lib/commonOpts.js';
3
+ import projectDownloadCommand from '../download.js';
9
4
  vi.mock('../../../lib/commonOpts');
10
5
  describe('commands/project/download', () => {
11
- const yargsMock = yargs_1.default;
6
+ const yargsMock = yargs;
12
7
  describe('command', () => {
13
8
  it('should have the correct command structure', () => {
14
- expect(download_1.default.command).toEqual('download');
9
+ expect(projectDownloadCommand.command).toEqual('download');
15
10
  });
16
11
  });
17
12
  describe('describe', () => {
18
13
  it('should provide a description', () => {
19
- expect(download_1.default.describe).toBeDefined();
14
+ expect(projectDownloadCommand.describe).toBeDefined();
20
15
  });
21
16
  });
22
17
  describe('builder', () => {
23
18
  it('should support the correct options', () => {
24
- download_1.default.builder(yargsMock);
25
- expect(commonOpts_1.addAccountOptions).toHaveBeenCalledTimes(1);
26
- expect(commonOpts_1.addAccountOptions).toHaveBeenCalledWith(yargsMock);
27
- expect(commonOpts_1.addConfigOptions).toHaveBeenCalledTimes(1);
28
- expect(commonOpts_1.addConfigOptions).toHaveBeenCalledWith(yargsMock);
29
- expect(commonOpts_1.addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
30
- expect(commonOpts_1.addUseEnvironmentOptions).toHaveBeenCalledWith(yargsMock);
19
+ projectDownloadCommand.builder(yargsMock);
20
+ expect(addAccountOptions).toHaveBeenCalledTimes(1);
21
+ expect(addAccountOptions).toHaveBeenCalledWith(yargsMock);
22
+ expect(addConfigOptions).toHaveBeenCalledTimes(1);
23
+ expect(addConfigOptions).toHaveBeenCalledWith(yargsMock);
24
+ expect(addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
25
+ expect(addUseEnvironmentOptions).toHaveBeenCalledWith(yargsMock);
31
26
  });
32
27
  it('should define project, dest, and build options', () => {
33
28
  const optionsSpy = vi.spyOn(yargsMock, 'options');
34
29
  const exampleSpy = vi.spyOn(yargsMock, 'example');
35
- download_1.default.builder(yargsMock);
30
+ projectDownloadCommand.builder(yargsMock);
36
31
  expect(optionsSpy).toHaveBeenCalledWith(expect.objectContaining({
37
32
  project: expect.any(Object),
38
33
  dest: expect.any(Object),