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

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