@hubspot/cli 7.7.21-experimental.0 → 7.7.21-experimental.1

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