@hubspot/cli 7.6.0-beta.4 → 7.6.0-beta.6

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