@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,44 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isStandardAccount = isStandardAccount;
4
- exports.isSandbox = isSandbox;
5
- exports.isStandardSandbox = isStandardSandbox;
6
- exports.isDevelopmentSandbox = isDevelopmentSandbox;
7
- exports.isDeveloperTestAccount = isDeveloperTestAccount;
8
- exports.isAppDeveloperAccount = isAppDeveloperAccount;
9
- exports.isTestAccountOrSandbox = isTestAccountOrSandbox;
10
- exports.isUnifiedAccount = isUnifiedAccount;
11
- const config_1 = require("@hubspot/local-dev-lib/constants/config");
12
- const hasFeature_1 = require("./hasFeature");
13
- const constants_1 = require("./constants");
14
- const getAccountIdentifier_1 = require("@hubspot/local-dev-lib/config/getAccountIdentifier");
1
+ import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
2
+ import { hasFeature } from './hasFeature.js';
3
+ import { FEATURES } from './constants.js';
4
+ import { getAccountIdentifier } from '@hubspot/local-dev-lib/config/getAccountIdentifier';
15
5
  function isAccountType(accountConfig, accountType) {
16
6
  return Boolean(accountConfig.accountType && accountType.includes(accountConfig.accountType));
17
7
  }
18
- function isStandardAccount(accountConfig) {
19
- return isAccountType(accountConfig, [config_1.HUBSPOT_ACCOUNT_TYPES.STANDARD]);
8
+ export function isStandardAccount(accountConfig) {
9
+ return isAccountType(accountConfig, [HUBSPOT_ACCOUNT_TYPES.STANDARD]);
20
10
  }
21
- function isSandbox(accountConfig) {
11
+ export function isSandbox(accountConfig) {
22
12
  return isAccountType(accountConfig, [
23
- config_1.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
24
- config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
13
+ HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
14
+ HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
25
15
  ]);
26
16
  }
27
- function isStandardSandbox(accountConfig) {
28
- return isAccountType(accountConfig, [config_1.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX]);
17
+ export function isStandardSandbox(accountConfig) {
18
+ return isAccountType(accountConfig, [HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX]);
29
19
  }
30
- function isDevelopmentSandbox(accountConfig) {
20
+ export function isDevelopmentSandbox(accountConfig) {
31
21
  return isAccountType(accountConfig, [
32
- config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
22
+ HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
33
23
  ]);
34
24
  }
35
- function isDeveloperTestAccount(accountConfig) {
36
- return isAccountType(accountConfig, [config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST]);
25
+ export function isDeveloperTestAccount(accountConfig) {
26
+ return isAccountType(accountConfig, [HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST]);
37
27
  }
38
- function isAppDeveloperAccount(accountConfig) {
39
- return isAccountType(accountConfig, [config_1.HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER]);
28
+ export function isAppDeveloperAccount(accountConfig) {
29
+ return isAccountType(accountConfig, [HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER]);
40
30
  }
41
- function isTestAccountOrSandbox(accountConfig) {
31
+ export function isTestAccountOrSandbox(accountConfig) {
42
32
  return isAccountType(accountConfig, [
43
- config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
44
- config_1.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
45
- config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
33
+ HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
34
+ HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
35
+ HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
46
36
  ]);
47
37
  }
48
- async function isUnifiedAccount(account) {
49
- const accountId = (0, getAccountIdentifier_1.getAccountIdentifier)(account);
38
+ export async function isUnifiedAccount(account) {
39
+ const accountId = getAccountIdentifier(account);
50
40
  if (!accountId) {
51
41
  return false;
52
42
  }
53
- return (0, hasFeature_1.hasFeature)(accountId, constants_1.FEATURES.UNIFIED_APPS);
43
+ return hasFeature(accountId, FEATURES.UNIFIED_APPS);
54
44
  }
@@ -1,23 +1,18 @@
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 logger_1 = require("@hubspot/local-dev-lib/logger");
7
- const path_1 = require("@hubspot/local-dev-lib/path");
8
- const archive_1 = require("@hubspot/local-dev-lib/archive");
9
- const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
10
- const projects_1 = require("@hubspot/local-dev-lib/constants/projects");
11
- const Migration_1 = require("@hubspot/local-dev-lib/types/Migration");
12
- const projects_2 = require("@hubspot/local-dev-lib/api/projects");
13
- const fs_1 = __importDefault(require("fs"));
14
- const promptUtils_1 = require("../../prompts/promptUtils");
15
- const ensureProjectExists_1 = require("../../projects/ensureProjectExists");
16
- const polling_1 = require("../../polling");
17
- const migrate_1 = require("../../../api/migrate");
18
- const en_1 = require("../../../lang/en");
19
- const hasFeature_1 = require("../../hasFeature");
20
- const migrate_2 = require("../migrate");
1
+ import { logger } from '@hubspot/local-dev-lib/logger';
2
+ import { getCwd, sanitizeFileName } from '@hubspot/local-dev-lib/path';
3
+ import { extractZipArchive } from '@hubspot/local-dev-lib/archive';
4
+ import { validateUid } from '@hubspot/project-parsing-lib';
5
+ import { UNMIGRATABLE_REASONS } from '@hubspot/local-dev-lib/constants/projects';
6
+ import { MIGRATION_STATUS } from '@hubspot/local-dev-lib/types/Migration';
7
+ import { downloadProject } from '@hubspot/local-dev-lib/api/projects';
8
+ import fs from 'fs';
9
+ import { confirmPrompt, inputPrompt, listPrompt, } from '../../prompts/promptUtils.js';
10
+ import { ensureProjectExists } from '../../projects/ensureProjectExists.js';
11
+ import { poll } from '../../polling.js';
12
+ import { CLI_UNMIGRATABLE_REASONS, continueMigration, initializeMigration, listAppsForMigration, listThemesForMigration, } from '../../../api/migrate.js';
13
+ import { lib } from '../../../lang/en.js';
14
+ import { hasFeature } from '../../hasFeature.js';
15
+ import { getUnmigratableReason, generateFilterAppsByProjectNameFunction, buildErrorMessageFromMigrationStatus, fetchMigrationApps, promptForAppToMigrate, selectAppToMigrate, handleMigrationSetup, beginMigration, pollMigrationStatus, finalizeMigration, downloadProjectFiles, migrateApp2025_2, logInvalidAccountError, validateMigrationAppsAndThemes, } from '../migrate.js';
21
16
  vi.mock('@hubspot/local-dev-lib/logger');
22
17
  vi.mock('@hubspot/local-dev-lib/path');
23
18
  vi.mock('@hubspot/local-dev-lib/archive');
@@ -33,22 +28,23 @@ vi.mock('../../../api/migrate');
33
28
  vi.mock('../../hasFeature');
34
29
  vi.mock('../../projects/urls');
35
30
  vi.mock('fs');
36
- const mockedLogger = logger_1.logger;
37
- const mockedGetCwd = path_1.getCwd;
38
- const mockedSanitizeFileName = path_1.sanitizeFileName;
39
- const mockedExtractZipArchive = archive_1.extractZipArchive;
40
- const mockedValidateUid = project_parsing_lib_1.validateUid;
41
- const mockedDownloadProject = projects_2.downloadProject;
42
- const mockedConfirmPrompt = promptUtils_1.confirmPrompt;
43
- const mockedInputPrompt = promptUtils_1.inputPrompt;
44
- const mockedListPrompt = promptUtils_1.listPrompt;
45
- const mockedEnsureProjectExists = ensureProjectExists_1.ensureProjectExists;
46
- const mockedPoll = polling_1.poll;
47
- const mockedListAppsForMigration = migrate_1.listAppsForMigration;
48
- const mockedInitializeMigration = migrate_1.initializeMigration;
49
- const mockedContinueMigration = migrate_1.continueMigration;
50
- const mockedHasFeature = hasFeature_1.hasFeature;
51
- const mockedFs = fs_1.default;
31
+ const mockedLogger = logger;
32
+ const mockedGetCwd = getCwd;
33
+ const mockedSanitizeFileName = sanitizeFileName;
34
+ const mockedExtractZipArchive = extractZipArchive;
35
+ const mockedValidateUid = validateUid;
36
+ const mockedDownloadProject = downloadProject;
37
+ const mockedConfirmPrompt = confirmPrompt;
38
+ const mockedInputPrompt = inputPrompt;
39
+ const mockedListPrompt = listPrompt;
40
+ const mockedEnsureProjectExists = ensureProjectExists;
41
+ const mockedPoll = poll;
42
+ const mockedListAppsForMigration = listAppsForMigration;
43
+ const mockedListThemesForMigration = listThemesForMigration;
44
+ const mockedInitializeMigration = initializeMigration;
45
+ const mockedContinueMigration = continueMigration;
46
+ const mockedHasFeature = hasFeature;
47
+ const mockedFs = fs;
52
48
  const createMockMigratableApp = (id, name, projectName) => ({
53
49
  appId: id,
54
50
  appName: name,
@@ -78,8 +74,8 @@ const PROJECT_DEST = '/mock/dest';
78
74
  const MOCK_CWD = '/mock/cwd';
79
75
  const MOCK_PROJECT_DIR = '/mock/project/dir';
80
76
  const mockUnmigratableApps = [
81
- createMockUnmigratableApp(3, 'App 3', projects_1.UNMIGRATABLE_REASONS.UP_TO_DATE),
82
- createMockUnmigratableApp(4, 'App 4', projects_1.UNMIGRATABLE_REASONS.IS_A_PRIVATE_APP),
77
+ createMockUnmigratableApp(3, 'App 3', UNMIGRATABLE_REASONS.UP_TO_DATE),
78
+ createMockUnmigratableApp(4, 'App 4', UNMIGRATABLE_REASONS.IS_A_PRIVATE_APP),
83
79
  ];
84
80
  describe('lib/app/migrate', () => {
85
81
  beforeEach(() => {
@@ -93,38 +89,38 @@ describe('lib/app/migrate', () => {
93
89
  const testCases = [
94
90
  {
95
91
  name: 'UP_TO_DATE',
96
- reason: projects_1.UNMIGRATABLE_REASONS.UP_TO_DATE,
97
- expected: en_1.lib.migrate.errors.unmigratableReasons.upToDate,
92
+ reason: UNMIGRATABLE_REASONS.UP_TO_DATE,
93
+ expected: lib.migrate.errors.unmigratableReasons.upToDate,
98
94
  },
99
95
  {
100
96
  name: 'IS_A_PRIVATE_APP',
101
- reason: projects_1.UNMIGRATABLE_REASONS.IS_A_PRIVATE_APP,
102
- expected: en_1.lib.migrate.errors.unmigratableReasons.isPrivateApp,
97
+ reason: UNMIGRATABLE_REASONS.IS_A_PRIVATE_APP,
98
+ expected: lib.migrate.errors.unmigratableReasons.isPrivateApp,
103
99
  },
104
100
  {
105
101
  name: 'LISTED_IN_MARKETPLACE',
106
- reason: projects_1.UNMIGRATABLE_REASONS.LISTED_IN_MARKETPLACE,
107
- expected: en_1.lib.migrate.errors.unmigratableReasons.listedInMarketplace,
102
+ reason: UNMIGRATABLE_REASONS.LISTED_IN_MARKETPLACE,
103
+ expected: lib.migrate.errors.unmigratableReasons.listedInMarketplace,
108
104
  },
109
105
  {
110
106
  name: 'PROJECT_CONNECTED_TO_GITHUB',
111
- reason: projects_1.UNMIGRATABLE_REASONS.PROJECT_CONNECTED_TO_GITHUB,
112
- expected: en_1.lib.migrate.errors.unmigratableReasons.projectConnectedToGitHub(PROJECT_NAME, ACCOUNT_ID),
107
+ reason: UNMIGRATABLE_REASONS.PROJECT_CONNECTED_TO_GITHUB,
108
+ expected: lib.migrate.errors.unmigratableReasons.projectConnectedToGitHub(PROJECT_NAME, ACCOUNT_ID),
113
109
  },
114
110
  {
115
111
  name: 'PART_OF_PROJECT_ALREADY',
116
- reason: migrate_1.CLI_UNMIGRATABLE_REASONS.PART_OF_PROJECT_ALREADY,
117
- expected: en_1.lib.migrate.errors.unmigratableReasons.partOfProjectAlready,
112
+ reason: CLI_UNMIGRATABLE_REASONS.PART_OF_PROJECT_ALREADY,
113
+ expected: lib.migrate.errors.unmigratableReasons.partOfProjectAlready,
118
114
  },
119
115
  {
120
116
  name: 'UNKNOWN_REASON',
121
117
  reason: 'UNKNOWN_REASON',
122
- expected: en_1.lib.migrate.errors.unmigratableReasons.generic('UNKNOWN_REASON'),
118
+ expected: lib.migrate.errors.unmigratableReasons.generic('UNKNOWN_REASON'),
123
119
  },
124
120
  ];
125
121
  testCases.forEach(testCase => {
126
122
  it(`should return the correct message for ${testCase.name}`, () => {
127
- const result = (0, migrate_2.getUnmigratableReason)(testCase.reason, PROJECT_NAME, ACCOUNT_ID);
123
+ const result = getUnmigratableReason(testCase.reason, PROJECT_NAME, ACCOUNT_ID);
128
124
  expect(result).toBe(testCase.expected);
129
125
  });
130
126
  });
@@ -132,14 +128,14 @@ describe('lib/app/migrate', () => {
132
128
  describe('generateFilterAppsByProjectNameFunction', () => {
133
129
  it('should return a function that filters by project name when projectConfig is provided', () => {
134
130
  const projectConfig = createLoadedProjectConfig(PROJECT_NAME);
135
- const filterFn = (0, migrate_2.generateFilterAppsByProjectNameFunction)(projectConfig);
131
+ const filterFn = generateFilterAppsByProjectNameFunction(projectConfig);
136
132
  const matchingApp = createMockMigratableApp(1, 'App 1', PROJECT_NAME);
137
133
  const nonMatchingApp = createMockMigratableApp(2, 'App 2', 'Other Project');
138
134
  expect(filterFn(matchingApp)).toBe(true);
139
135
  expect(filterFn(nonMatchingApp)).toBe(false);
140
136
  });
141
137
  it('should return a function that always returns true when projectConfig is not provided', () => {
142
- const filterFn = (0, migrate_2.generateFilterAppsByProjectNameFunction)(undefined);
138
+ const filterFn = generateFilterAppsByProjectNameFunction(undefined);
143
139
  const app1 = createMockMigratableApp(1, 'App 1', PROJECT_NAME);
144
140
  const app2 = createMockMigratableApp(2, 'App 2', 'Other Project');
145
141
  expect(filterFn(app1)).toBe(true);
@@ -150,17 +146,17 @@ describe('lib/app/migrate', () => {
150
146
  it('should return projectErrorDetail when there are no component errors', () => {
151
147
  const error = {
152
148
  id: 123,
153
- status: Migration_1.MIGRATION_STATUS.FAILURE,
149
+ status: MIGRATION_STATUS.FAILURE,
154
150
  projectErrorDetail: 'Project error',
155
151
  componentErrors: [],
156
152
  };
157
- const result = (0, migrate_2.buildErrorMessageFromMigrationStatus)(error);
153
+ const result = buildErrorMessageFromMigrationStatus(error);
158
154
  expect(result).toBe('Project error');
159
155
  });
160
156
  it('should return formatted error message with component errors', () => {
161
157
  const error = {
162
158
  id: 123,
163
- status: Migration_1.MIGRATION_STATUS.FAILURE,
159
+ status: MIGRATION_STATUS.FAILURE,
164
160
  projectErrorDetail: 'Project error',
165
161
  componentErrors: [
166
162
  {
@@ -174,7 +170,7 @@ describe('lib/app/migrate', () => {
174
170
  },
175
171
  ],
176
172
  };
177
- const result = (0, migrate_2.buildErrorMessageFromMigrationStatus)(error);
173
+ const result = buildErrorMessageFromMigrationStatus(error);
178
174
  expect(result).toBe('Project error: \n\t- CARD (card1): Card error\n\t- FUNCTION: Function error');
179
175
  });
180
176
  });
@@ -192,57 +188,63 @@ describe('lib/app/migrate', () => {
192
188
  setupMockApps([
193
189
  createMockMigratableApp(1, 'App 1', PROJECT_NAME),
194
190
  createMockMigratableApp(2, 'App 2', PROJECT_NAME),
195
- ], [createMockUnmigratableApp(3, 'App 3', projects_1.UNMIGRATABLE_REASONS.UP_TO_DATE)]);
191
+ ], [createMockUnmigratableApp(3, 'App 3', UNMIGRATABLE_REASONS.UP_TO_DATE)]);
196
192
  });
197
193
  it('should return all apps when no projectConfig is provided', async () => {
198
194
  setupMockApps([createMockMigratableApp(1, 'App 1')]);
199
- const result = await (0, migrate_2.fetchMigrationApps)(undefined, ACCOUNT_ID, PLATFORM_VERSION);
200
- expect(result).toHaveLength(1);
201
- expect(result[0].appId).toBe(1);
195
+ const result = await fetchMigrationApps(ACCOUNT_ID, PLATFORM_VERSION);
196
+ expect(result.migratableApps).toHaveLength(1);
197
+ expect(result.migratableApps[0].appId).toBe(1);
198
+ expect(result.unmigratableApps).toHaveLength(0);
202
199
  });
203
200
  it('should filter apps by project name when projectConfig is provided', async () => {
204
201
  const projectConfig = createLoadedProjectConfig(PROJECT_NAME);
205
202
  setupMockApps([createMockMigratableApp(1, 'App 1', PROJECT_NAME)]);
206
- const result = await (0, migrate_2.fetchMigrationApps)(undefined, ACCOUNT_ID, PLATFORM_VERSION, projectConfig);
207
- expect(result).toHaveLength(1);
208
- expect(result[0].projectName).toBe(PROJECT_NAME);
203
+ const result = await fetchMigrationApps(ACCOUNT_ID, PLATFORM_VERSION, projectConfig);
204
+ expect(result.migratableApps).toHaveLength(1);
205
+ expect(result.migratableApps[0].projectName).toBe(PROJECT_NAME);
209
206
  });
207
+ });
208
+ describe('validateMigrationAppsAndThemes', () => {
209
+ const mockMigratableApp1 = createMockMigratableApp(1, 'App 1', PROJECT_NAME);
210
+ const mockMigratableApp2 = createMockMigratableApp(2, 'App 2', PROJECT_NAME);
210
211
  it('should throw an error when multiple apps are found for a project', async () => {
211
212
  const projectConfig = createLoadedProjectConfig(PROJECT_NAME);
212
- setupMockApps([
213
- createMockMigratableApp(1, 'App 1', PROJECT_NAME),
214
- createMockMigratableApp(2, 'App 2', PROJECT_NAME),
215
- ]);
216
- await expect((0, migrate_2.fetchMigrationApps)(undefined, ACCOUNT_ID, PLATFORM_VERSION, projectConfig)).rejects.toThrow(en_1.lib.migrate.errors.project.multipleApps);
213
+ await expect(validateMigrationAppsAndThemes(APP_ID, ACCOUNT_ID, {
214
+ migratableApps: [mockMigratableApp1, mockMigratableApp2],
215
+ unmigratableApps: [],
216
+ }, { theme: [], reactTheme: [] }, projectConfig)).rejects.toThrow(lib.migrate.errors.project.multipleApps);
217
+ });
218
+ it('should throw an error when cms themes are found for a project', async () => {
219
+ const projectConfig = createLoadedProjectConfig(PROJECT_NAME);
220
+ await expect(validateMigrationAppsAndThemes(APP_ID, ACCOUNT_ID, { migratableApps: [], unmigratableApps: [] }, { theme: ['theme1'], reactTheme: [] }, projectConfig)).rejects.toThrow(lib.migrate.errors.project.themesNotAllowed);
217
221
  });
218
222
  it('should throw an error when no apps are found for a project', async () => {
219
223
  const projectConfig = createLoadedProjectConfig(PROJECT_NAME);
220
- setupMockApps([], []);
221
- await expect((0, migrate_2.fetchMigrationApps)(undefined, ACCOUNT_ID, PLATFORM_VERSION, projectConfig)).rejects.toThrow(en_1.lib.migrate.errors.noAppsForProject(PROJECT_NAME));
224
+ await expect(validateMigrationAppsAndThemes(APP_ID, ACCOUNT_ID, { migratableApps: [], unmigratableApps: [] }, { theme: [], reactTheme: [] }, projectConfig)).rejects.toThrow(lib.migrate.errors.noAppsForProject(PROJECT_NAME));
222
225
  });
223
226
  it('should throw an error when no migratable apps are found', async () => {
224
- setupMockApps([], mockUnmigratableApps);
225
- await expect((0, migrate_2.fetchMigrationApps)(undefined, ACCOUNT_ID, PLATFORM_VERSION)).rejects.toThrow(/No apps in account/);
227
+ await expect(validateMigrationAppsAndThemes(APP_ID, ACCOUNT_ID, { migratableApps: [], unmigratableApps: mockUnmigratableApps }, { theme: [], reactTheme: [] })).rejects.toThrow(/No apps in account/);
226
228
  });
227
229
  it('should throw an error when appId is provided but not found', async () => {
228
- await expect((0, migrate_2.fetchMigrationApps)(999, ACCOUNT_ID, PLATFORM_VERSION)).rejects.toThrow(/No apps in account/);
230
+ await expect(validateMigrationAppsAndThemes(APP_ID, ACCOUNT_ID, { migratableApps: [], unmigratableApps: [] }, { theme: [], reactTheme: [] })).rejects.toThrow(/No apps in account/);
229
231
  });
230
232
  });
231
233
  describe('promptForAppToMigrate', () => {
232
234
  const mockApps = [
233
235
  createMockMigratableApp(1, 'App 1'),
234
- createMockUnmigratableApp(2, 'App 2', projects_1.UNMIGRATABLE_REASONS.UP_TO_DATE),
236
+ createMockUnmigratableApp(2, 'App 2', UNMIGRATABLE_REASONS.UP_TO_DATE),
235
237
  ];
236
238
  beforeEach(() => {
237
239
  mockedListPrompt.mockResolvedValue(mockApps[0]);
238
240
  });
239
241
  it('should prompt the user to select an app', async () => {
240
- await (0, migrate_2.promptForAppToMigrate)(mockApps, ACCOUNT_ID);
241
- expect(mockedListPrompt).toHaveBeenCalledWith(en_1.lib.migrate.prompt.chooseApp, expect.any(Object));
242
+ await promptForAppToMigrate(mockApps, ACCOUNT_ID);
243
+ expect(mockedListPrompt).toHaveBeenCalledWith(lib.migrate.prompt.chooseApp, expect.any(Object));
242
244
  });
243
245
  it('should return the selected app', async () => {
244
246
  mockedListPrompt.mockResolvedValue({ appId: mockApps[0].appId });
245
- const result = await (0, migrate_2.promptForAppToMigrate)(mockApps, ACCOUNT_ID);
247
+ const result = await promptForAppToMigrate(mockApps, ACCOUNT_ID);
246
248
  expect(result).toBe(mockApps[0].appId);
247
249
  });
248
250
  });
@@ -257,26 +259,26 @@ describe('lib/app/migrate', () => {
257
259
  { id: '2', componentType: 'FUNCTION', isSupported: false },
258
260
  ],
259
261
  },
260
- createMockUnmigratableApp(2, 'App 2', projects_1.UNMIGRATABLE_REASONS.UP_TO_DATE),
262
+ createMockUnmigratableApp(2, 'App 2', UNMIGRATABLE_REASONS.UP_TO_DATE),
261
263
  ];
262
264
  beforeEach(() => {
263
265
  mockedListPrompt.mockResolvedValue({ appId: 1 });
264
266
  mockedConfirmPrompt.mockResolvedValue(true);
265
267
  });
266
268
  it('should throw an error when appId is provided but not found', async () => {
267
- await expect((0, migrate_2.selectAppToMigrate)(mockApps, ACCOUNT_ID, 999)).rejects.toThrow(en_1.lib.migrate.errors.appWithAppIdNotFound(999));
269
+ await expect(selectAppToMigrate(mockApps, ACCOUNT_ID, 999)).rejects.toThrow(lib.migrate.errors.appWithAppIdNotFound(999));
268
270
  });
269
271
  it('should call listPrompt when appId is not provided', async () => {
270
- await (0, migrate_2.selectAppToMigrate)(mockApps, ACCOUNT_ID);
271
- expect(mockedListPrompt).toHaveBeenCalledWith(en_1.lib.migrate.prompt.chooseApp, expect.any(Object));
272
+ await selectAppToMigrate(mockApps, ACCOUNT_ID);
273
+ expect(mockedListPrompt).toHaveBeenCalledWith(lib.migrate.prompt.chooseApp, expect.any(Object));
272
274
  });
273
275
  it('should return proceed: false and appIdToMigrate when user cancels', async () => {
274
276
  mockedConfirmPrompt.mockResolvedValue(false);
275
- const result = await (0, migrate_2.selectAppToMigrate)(mockApps, ACCOUNT_ID);
277
+ const result = await selectAppToMigrate(mockApps, ACCOUNT_ID);
276
278
  expect(result).toEqual({ proceed: false, appIdToMigrate: 1 });
277
279
  });
278
280
  it('should return proceed: true and appIdToMigrate when user confirms', async () => {
279
- const result = await (0, migrate_2.selectAppToMigrate)(mockApps, ACCOUNT_ID);
281
+ const result = await selectAppToMigrate(mockApps, ACCOUNT_ID);
280
282
  expect(result).toEqual({ proceed: true, appIdToMigrate: 1 });
281
283
  });
282
284
  });
@@ -299,13 +301,19 @@ describe('lib/app/migrate', () => {
299
301
  unmigratableApps: [],
300
302
  },
301
303
  });
304
+ // @ts-expect-error
305
+ mockedListThemesForMigration.mockResolvedValue({
306
+ data: {
307
+ migratableThemes: { THEME: [], REACT_THEME: [] },
308
+ },
309
+ });
302
310
  mockedListPrompt.mockResolvedValue({ appId: 1 });
303
311
  mockedConfirmPrompt.mockResolvedValue(true);
304
312
  mockedEnsureProjectExists.mockResolvedValue({ projectExists: false });
305
313
  }
306
314
  it('should return early when user cancels', async () => {
307
315
  mockedConfirmPrompt.mockResolvedValueOnce(false);
308
- const result = await (0, migrate_2.handleMigrationSetup)(ACCOUNT_ID, defaultOptions);
316
+ const result = await handleMigrationSetup(ACCOUNT_ID, defaultOptions);
309
317
  expect(result).toEqual({});
310
318
  });
311
319
  it('should return project details when projectConfig is provided', async () => {
@@ -317,7 +325,7 @@ describe('lib/app/migrate', () => {
317
325
  unmigratableApps: [],
318
326
  },
319
327
  });
320
- const result = await (0, migrate_2.handleMigrationSetup)(ACCOUNT_ID, defaultOptions, projectConfig);
328
+ const result = await handleMigrationSetup(ACCOUNT_ID, defaultOptions, projectConfig);
321
329
  expect(result).toEqual({
322
330
  appIdToMigrate: 1,
323
331
  projectName: PROJECT_NAME,
@@ -327,18 +335,18 @@ describe('lib/app/migrate', () => {
327
335
  it('should prompt for project name when not provided', async () => {
328
336
  const optionsWithoutName = { ...defaultOptions, name: undefined };
329
337
  mockedInputPrompt.mockResolvedValue('New Project');
330
- await (0, migrate_2.handleMigrationSetup)(ACCOUNT_ID, optionsWithoutName);
331
- expect(mockedInputPrompt).toHaveBeenCalledWith(en_1.lib.migrate.prompt.inputName, expect.any(Object));
338
+ await handleMigrationSetup(ACCOUNT_ID, optionsWithoutName);
339
+ expect(mockedInputPrompt).toHaveBeenCalledWith(lib.migrate.prompt.inputName, expect.any(Object));
332
340
  });
333
341
  it('should prompt for project destination when not provided', async () => {
334
342
  const optionsWithoutDest = { ...defaultOptions, dest: undefined };
335
343
  mockedInputPrompt.mockResolvedValue('/mock/new/dest');
336
- await (0, migrate_2.handleMigrationSetup)(ACCOUNT_ID, optionsWithoutDest);
337
- expect(mockedInputPrompt).toHaveBeenCalledWith(en_1.lib.migrate.prompt.inputDest, expect.any(Object));
344
+ await handleMigrationSetup(ACCOUNT_ID, optionsWithoutDest);
345
+ expect(mockedInputPrompt).toHaveBeenCalledWith(lib.migrate.prompt.inputDest, expect.any(Object));
338
346
  });
339
347
  it('should throw an error when project already exists', async () => {
340
348
  mockedEnsureProjectExists.mockResolvedValue({ projectExists: true });
341
- await expect((0, migrate_2.handleMigrationSetup)(ACCOUNT_ID, defaultOptions)).rejects.toThrow(en_1.lib.migrate.errors.project.alreadyExists(PROJECT_NAME));
349
+ await expect(handleMigrationSetup(ACCOUNT_ID, defaultOptions)).rejects.toThrow(lib.migrate.errors.project.alreadyExists(PROJECT_NAME));
342
350
  });
343
351
  });
344
352
  describe('beginMigration', () => {
@@ -348,14 +356,14 @@ describe('lib/app/migrate', () => {
348
356
  data: { migrationId: MIGRATION_ID },
349
357
  });
350
358
  mockedPoll.mockResolvedValue({
351
- status: Migration_1.MIGRATION_STATUS.INPUT_REQUIRED,
359
+ status: MIGRATION_STATUS.INPUT_REQUIRED,
352
360
  // @ts-expect-error
353
361
  componentsRequiringUids: {},
354
362
  });
355
363
  mockedInputPrompt.mockResolvedValue('test-uid');
356
364
  });
357
365
  it('should initialize migration and return migrationId and uidMap', async () => {
358
- const result = await (0, migrate_2.beginMigration)(ACCOUNT_ID, APP_ID, PLATFORM_VERSION);
366
+ const result = await beginMigration(ACCOUNT_ID, APP_ID, PLATFORM_VERSION);
359
367
  expect(result).toEqual({
360
368
  migrationId: MIGRATION_ID,
361
369
  uidMap: {},
@@ -364,7 +372,7 @@ describe('lib/app/migrate', () => {
364
372
  it('should prompt for UIDs when components require them', async () => {
365
373
  const componentHint = 'test-card';
366
374
  mockedPoll.mockResolvedValue({
367
- status: Migration_1.MIGRATION_STATUS.INPUT_REQUIRED,
375
+ status: MIGRATION_STATUS.INPUT_REQUIRED,
368
376
  // @ts-expect-error
369
377
  componentsRequiringUids: {
370
378
  '1': {
@@ -373,26 +381,26 @@ describe('lib/app/migrate', () => {
373
381
  },
374
382
  },
375
383
  });
376
- await (0, migrate_2.beginMigration)(ACCOUNT_ID, APP_ID, PLATFORM_VERSION);
377
- expect(mockedInputPrompt).toHaveBeenCalledWith(en_1.lib.migrate.prompt.uidForComponent("card 'test-card' (ID: 1)"), {
384
+ await beginMigration(ACCOUNT_ID, APP_ID, PLATFORM_VERSION);
385
+ expect(mockedInputPrompt).toHaveBeenCalledWith(lib.migrate.prompt.uidForComponent("card 'test-card' (ID: 1)"), {
378
386
  defaultAnswer: componentHint,
379
387
  validate: expect.any(Function),
380
388
  });
381
389
  });
382
390
  it('should throw an error when migration fails', async () => {
383
391
  mockedPoll.mockRejectedValue(new Error('Failed'));
384
- await expect((0, migrate_2.beginMigration)(ACCOUNT_ID, APP_ID, PLATFORM_VERSION)).rejects.toThrow(/Migration Failed/);
392
+ await expect(beginMigration(ACCOUNT_ID, APP_ID, PLATFORM_VERSION)).rejects.toThrow(/Migration Failed/);
385
393
  });
386
394
  });
387
395
  describe('pollMigrationStatus', () => {
388
396
  it('should call poll with checkMigrationStatusV2', async () => {
389
397
  const mockStatus = {
390
398
  id: MIGRATION_ID,
391
- status: Migration_1.MIGRATION_STATUS.SUCCESS,
399
+ status: MIGRATION_STATUS.SUCCESS,
392
400
  buildId: BUILD_ID,
393
401
  };
394
402
  mockedPoll.mockResolvedValue(mockStatus);
395
- const result = await (0, migrate_2.pollMigrationStatus)(ACCOUNT_ID, MIGRATION_ID);
403
+ const result = await pollMigrationStatus(ACCOUNT_ID, MIGRATION_ID);
396
404
  expect(mockedPoll).toHaveBeenCalledWith(expect.any(Function), expect.any(Object));
397
405
  expect(result).toBe(mockStatus);
398
406
  });
@@ -405,18 +413,18 @@ describe('lib/app/migrate', () => {
405
413
  data: { migrationId: MIGRATION_ID },
406
414
  });
407
415
  mockedPoll.mockResolvedValue({
408
- status: Migration_1.MIGRATION_STATUS.SUCCESS,
416
+ status: MIGRATION_STATUS.SUCCESS,
409
417
  // @ts-expect-error
410
418
  buildId: BUILD_ID,
411
419
  });
412
420
  });
413
421
  it('should continue migration and return buildId', async () => {
414
- const result = await (0, migrate_2.finalizeMigration)(ACCOUNT_ID, MIGRATION_ID, uidMap, PROJECT_NAME);
422
+ const result = await finalizeMigration(ACCOUNT_ID, MIGRATION_ID, uidMap, PROJECT_NAME);
415
423
  expect(result).toBe(BUILD_ID);
416
424
  });
417
425
  it('should throw an error when migration fails', async () => {
418
426
  mockedPoll.mockRejectedValue(new Error('Test error'));
419
- await expect((0, migrate_2.finalizeMigration)(ACCOUNT_ID, MIGRATION_ID, uidMap, PROJECT_NAME)).rejects.toThrow(/Migration Failed/);
427
+ await expect(finalizeMigration(ACCOUNT_ID, MIGRATION_ID, uidMap, PROJECT_NAME)).rejects.toThrow(/Migration Failed/);
420
428
  });
421
429
  });
422
430
  describe('downloadProjectFiles', () => {
@@ -430,7 +438,7 @@ describe('lib/app/migrate', () => {
430
438
  mockedSanitizeFileName.mockReturnValue(PROJECT_NAME);
431
439
  });
432
440
  it('should download and extract project files', async () => {
433
- await (0, migrate_2.downloadProjectFiles)(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST);
441
+ await downloadProjectFiles(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST);
434
442
  expect(mockedDownloadProject).toHaveBeenCalledWith(ACCOUNT_ID, PROJECT_NAME, BUILD_ID);
435
443
  expect(mockedExtractZipArchive).toHaveBeenCalledWith(expect.any(Buffer), PROJECT_NAME, expect.stringContaining(PROJECT_DEST), {
436
444
  includesRootDir: true,
@@ -442,7 +450,7 @@ describe('lib/app/migrate', () => {
442
450
  projectConfig: { name: PROJECT_NAME, srcDir: 'src' },
443
451
  projectDir: MOCK_PROJECT_DIR,
444
452
  };
445
- await (0, migrate_2.downloadProjectFiles)(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST, projectConfig);
453
+ await downloadProjectFiles(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST, projectConfig);
446
454
  expect(mockedFs.renameSync).toHaveBeenCalledWith(`${MOCK_PROJECT_DIR}/src`, `${MOCK_PROJECT_DIR}/archive`);
447
455
  expect(mockedExtractZipArchive).toHaveBeenCalledWith(expect.any(Buffer), PROJECT_NAME, MOCK_PROJECT_DIR, {
448
456
  includesRootDir: true,
@@ -452,7 +460,7 @@ describe('lib/app/migrate', () => {
452
460
  it('should throw an error when download fails', async () => {
453
461
  const error = new Error('Download failed');
454
462
  mockedDownloadProject.mockRejectedValue(error);
455
- await expect((0, migrate_2.downloadProjectFiles)(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST)).rejects.toThrow(error);
463
+ await expect(downloadProjectFiles(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST)).rejects.toThrow(error);
456
464
  });
457
465
  });
458
466
  describe('migrateApp2025_2', () => {
@@ -468,27 +476,27 @@ describe('lib/app/migrate', () => {
468
476
  });
469
477
  it('should throw an error when account is not ungated for unified apps', async () => {
470
478
  mockedHasFeature.mockResolvedValueOnce(false);
471
- await expect((0, migrate_2.migrateApp2025_2)(ACCOUNT_ID, options)).rejects.toThrowError(/isn't enrolled in the required product beta to access this command./);
479
+ await expect(migrateApp2025_2(ACCOUNT_ID, options)).rejects.toThrowError(/isn't enrolled in the required product beta to access this command./);
472
480
  });
473
481
  it('should throw an error when projectConfig is invalid', async () => {
474
482
  const invalidProjectConfig = {
475
483
  projectConfig: undefined,
476
484
  projectDir: '/mock/project/dir',
477
485
  };
478
- await expect((0, migrate_2.migrateApp2025_2)(ACCOUNT_ID, options, invalidProjectConfig)).rejects.toThrow(/The project configuration file is invalid/);
486
+ await expect(migrateApp2025_2(ACCOUNT_ID, options, invalidProjectConfig)).rejects.toThrow(/The project configuration file is invalid/);
479
487
  });
480
488
  it('should throw an error when project does not exist', async () => {
481
489
  const projectConfig = createLoadedProjectConfig(PROJECT_NAME);
482
490
  mockedEnsureProjectExists.mockResolvedValueOnce({
483
491
  projectExists: false,
484
492
  });
485
- await expect((0, migrate_2.migrateApp2025_2)(ACCOUNT_ID, options, projectConfig)).rejects.toThrow(/Migrations are only supported for existing projects/);
493
+ await expect(migrateApp2025_2(ACCOUNT_ID, options, projectConfig)).rejects.toThrow(/Migrations are only supported for existing projects/);
486
494
  });
487
495
  });
488
496
  describe('logInvalidAccountError', () => {
489
497
  it('should log the invalid account error message', () => {
490
- (0, migrate_2.logInvalidAccountError)();
491
- expect(mockedLogger.error).toHaveBeenCalledWith(en_1.lib.migrate.errors.invalidAccountTypeTitle);
498
+ logInvalidAccountError();
499
+ expect(mockedLogger.error).toHaveBeenCalledWith(lib.migrate.errors.invalidAccountTypeTitle);
492
500
  expect(mockedLogger.log).toHaveBeenCalledWith(expect.stringContaining('Only public apps created in a developer account can be converted to a project component'));
493
501
  });
494
502
  });