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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/api/__tests__/migrate.test.js +27 -29
  2. package/api/migrate.js +14 -22
  3. package/bin/cli.js +92 -97
  4. package/bin/hs +2 -2
  5. package/bin/hscms +2 -2
  6. package/bin/silenceErrors.js +1 -2
  7. package/commands/__tests__/account.test.js +29 -34
  8. package/commands/__tests__/auth.test.js +11 -16
  9. package/commands/__tests__/cms.test.js +15 -20
  10. package/commands/__tests__/config.test.js +14 -19
  11. package/commands/__tests__/create.test.js +10 -15
  12. package/commands/__tests__/customObject.test.js +14 -19
  13. package/commands/__tests__/doctor.test.js +43 -48
  14. package/commands/__tests__/feedback.test.js +7 -45
  15. package/commands/__tests__/fetch.test.js +29 -28
  16. package/commands/__tests__/filemanager.test.js +14 -19
  17. package/commands/__tests__/function.test.js +16 -21
  18. package/commands/__tests__/getStarted.test.js +45 -50
  19. package/commands/__tests__/hubdb.test.js +17 -22
  20. package/commands/__tests__/init.test.js +12 -17
  21. package/commands/__tests__/lint.test.js +13 -18
  22. package/commands/__tests__/list.test.js +18 -23
  23. package/commands/__tests__/logs.test.js +28 -27
  24. package/commands/__tests__/mcp.test.js +14 -19
  25. package/commands/__tests__/mv.test.js +14 -52
  26. package/commands/__tests__/open.test.js +13 -51
  27. package/commands/__tests__/project.test.js +44 -49
  28. package/commands/__tests__/remove.test.js +13 -51
  29. package/commands/__tests__/sandbox.test.js +14 -19
  30. package/commands/__tests__/secret.test.js +16 -21
  31. package/commands/__tests__/testAccount.test.js +16 -21
  32. package/commands/__tests__/theme.test.js +15 -20
  33. package/commands/account/__tests__/auth.test.js +11 -16
  34. package/commands/account/__tests__/clean.test.js +12 -17
  35. package/commands/account/__tests__/createOverride.test.js +10 -15
  36. package/commands/account/__tests__/info.test.js +11 -16
  37. package/commands/account/__tests__/list.test.js +11 -16
  38. package/commands/account/__tests__/remove.test.js +13 -18
  39. package/commands/account/__tests__/removeOverride.js +8 -13
  40. package/commands/account/__tests__/rename.test.js +15 -20
  41. package/commands/account/__tests__/use.test.js +10 -15
  42. package/commands/account/auth.d.ts +1 -1
  43. package/commands/account/auth.js +65 -67
  44. package/commands/account/clean.d.ts +1 -1
  45. package/commands/account/clean.js +55 -60
  46. package/commands/account/createOverride.d.ts +1 -1
  47. package/commands/account/createOverride.js +52 -57
  48. package/commands/account/info.d.ts +1 -1
  49. package/commands/account/info.js +33 -35
  50. package/commands/account/list.d.ts +1 -1
  51. package/commands/account/list.js +43 -45
  52. package/commands/account/remove.d.ts +1 -1
  53. package/commands/account/remove.js +37 -42
  54. package/commands/account/removeOverride.d.ts +1 -1
  55. package/commands/account/removeOverride.js +38 -43
  56. package/commands/account/rename.d.ts +1 -1
  57. package/commands/account/rename.js +18 -20
  58. package/commands/account/use.d.ts +1 -1
  59. package/commands/account/use.js +29 -31
  60. package/commands/account.d.ts +1 -1
  61. package/commands/account.js +23 -28
  62. package/commands/app/__tests__/migrate.test.js +29 -34
  63. package/commands/app/migrate.d.ts +2 -2
  64. package/commands/app/migrate.js +40 -43
  65. package/commands/app/secret/__tests__/add.test.js +6 -11
  66. package/commands/app/secret/__tests__/delete.test.js +6 -11
  67. package/commands/app/secret/__tests__/list.test.js +6 -11
  68. package/commands/app/secret/__tests__/update.test.js +6 -11
  69. package/commands/app/secret/add.d.ts +1 -1
  70. package/commands/app/secret/add.js +28 -30
  71. package/commands/app/secret/delete.d.ts +1 -1
  72. package/commands/app/secret/delete.js +34 -36
  73. package/commands/app/secret/list.d.ts +1 -1
  74. package/commands/app/secret/list.js +25 -27
  75. package/commands/app/secret/update.d.ts +1 -1
  76. package/commands/app/secret/update.js +32 -34
  77. package/commands/app/secret.d.ts +1 -1
  78. package/commands/app/secret.js +12 -17
  79. package/commands/app.d.ts +1 -1
  80. package/commands/app.js +6 -16
  81. package/commands/auth.d.ts +1 -1
  82. package/commands/auth.js +70 -72
  83. package/commands/cms/convertFields.d.ts +1 -1
  84. package/commands/cms/convertFields.js +34 -39
  85. package/commands/cms/getReactModule.d.ts +1 -1
  86. package/commands/cms/getReactModule.js +32 -37
  87. package/commands/cms/lighthouseScore.d.ts +1 -1
  88. package/commands/cms/lighthouseScore.js +67 -72
  89. package/commands/cms.d.ts +1 -1
  90. package/commands/cms.js +11 -16
  91. package/commands/completion.d.ts +1 -1
  92. package/commands/completion.js +10 -15
  93. package/commands/config/migrate.d.ts +1 -1
  94. package/commands/config/migrate.js +27 -32
  95. package/commands/config/set.d.ts +2 -1
  96. package/commands/config/set.js +40 -32
  97. package/commands/config.d.ts +1 -1
  98. package/commands/config.js +8 -13
  99. package/commands/create/api-sample.d.ts +1 -1
  100. package/commands/create/api-sample.js +28 -33
  101. package/commands/create/app.d.ts +1 -1
  102. package/commands/create/app.js +3 -5
  103. package/commands/create/function.d.ts +1 -1
  104. package/commands/create/function.js +9 -11
  105. package/commands/create/index.d.ts +1 -1
  106. package/commands/create/index.js +19 -24
  107. package/commands/create/module.d.ts +1 -1
  108. package/commands/create/module.js +12 -14
  109. package/commands/create/react-app.d.ts +1 -1
  110. package/commands/create/react-app.js +3 -5
  111. package/commands/create/template.d.ts +1 -1
  112. package/commands/create/template.js +12 -14
  113. package/commands/create/vue-app.d.ts +1 -1
  114. package/commands/create/vue-app.js +3 -5
  115. package/commands/create/webpack-serverless.d.ts +1 -1
  116. package/commands/create/webpack-serverless.js +3 -5
  117. package/commands/create/website-theme.d.ts +1 -1
  118. package/commands/create/website-theme.js +5 -7
  119. package/commands/create.d.ts +2 -2
  120. package/commands/create.js +30 -35
  121. package/commands/customObject/__tests__/create.test.js +13 -18
  122. package/commands/customObject/__tests__/schema.test.js +18 -23
  123. package/commands/customObject/create.d.ts +1 -1
  124. package/commands/customObject/create.js +28 -30
  125. package/commands/customObject/schema/__tests__/create.test.js +13 -18
  126. package/commands/customObject/schema/__tests__/delete.test.js +13 -18
  127. package/commands/customObject/schema/__tests__/fetch-all.test.js +13 -18
  128. package/commands/customObject/schema/__tests__/fetch.test.js +13 -18
  129. package/commands/customObject/schema/__tests__/list.test.js +13 -18
  130. package/commands/customObject/schema/__tests__/update.test.js +13 -18
  131. package/commands/customObject/schema/create.d.ts +1 -1
  132. package/commands/customObject/schema/create.js +28 -30
  133. package/commands/customObject/schema/delete.d.ts +1 -1
  134. package/commands/customObject/schema/delete.js +24 -26
  135. package/commands/customObject/schema/fetch-all.d.ts +1 -1
  136. package/commands/customObject/schema/fetch-all.js +22 -24
  137. package/commands/customObject/schema/fetch.d.ts +1 -1
  138. package/commands/customObject/schema/fetch.js +24 -26
  139. package/commands/customObject/schema/list.d.ts +1 -1
  140. package/commands/customObject/schema/list.js +13 -15
  141. package/commands/customObject/schema/update.d.ts +1 -1
  142. package/commands/customObject/schema/update.js +32 -34
  143. package/commands/customObject/schema.d.ts +1 -1
  144. package/commands/customObject/schema.js +17 -22
  145. package/commands/customObject.d.ts +1 -1
  146. package/commands/customObject.js +13 -18
  147. package/commands/doctor.d.ts +1 -1
  148. package/commands/doctor.js +28 -33
  149. package/commands/feedback.d.ts +1 -1
  150. package/commands/feedback.js +19 -24
  151. package/commands/fetch.d.ts +1 -1
  152. package/commands/fetch.js +28 -30
  153. package/commands/filemanager/__tests__/fetch.test.js +17 -22
  154. package/commands/filemanager/__tests__/upload.test.js +15 -20
  155. package/commands/filemanager/fetch.d.ts +1 -1
  156. package/commands/filemanager/fetch.js +23 -25
  157. package/commands/filemanager/upload.d.ts +1 -1
  158. package/commands/filemanager/upload.js +39 -44
  159. package/commands/filemanager.d.ts +1 -1
  160. package/commands/filemanager.js +8 -13
  161. package/commands/function/deploy.d.ts +1 -1
  162. package/commands/function/deploy.js +35 -40
  163. package/commands/function/list.d.ts +1 -1
  164. package/commands/function/list.js +24 -29
  165. package/commands/function/server.d.ts +1 -1
  166. package/commands/function/server.js +15 -17
  167. package/commands/function.d.ts +1 -1
  168. package/commands/function.js +12 -18
  169. package/commands/getStarted.d.ts +1 -1
  170. package/commands/getStarted.js +119 -125
  171. package/commands/hubdb/__tests__/clear.test.js +13 -18
  172. package/commands/hubdb/__tests__/create.test.js +13 -18
  173. package/commands/hubdb/__tests__/delete.test.js +13 -18
  174. package/commands/hubdb/__tests__/fetch.test.js +13 -18
  175. package/commands/hubdb/__tests__/list.test.js +23 -28
  176. package/commands/hubdb/clear.d.ts +1 -1
  177. package/commands/hubdb/clear.js +20 -22
  178. package/commands/hubdb/create.d.ts +1 -1
  179. package/commands/hubdb/create.js +30 -35
  180. package/commands/hubdb/delete.d.ts +1 -1
  181. package/commands/hubdb/delete.js +24 -26
  182. package/commands/hubdb/fetch.d.ts +1 -1
  183. package/commands/hubdb/fetch.js +17 -19
  184. package/commands/hubdb/list.d.ts +1 -1
  185. package/commands/hubdb/list.js +33 -35
  186. package/commands/hubdb.d.ts +1 -1
  187. package/commands/hubdb.js +18 -24
  188. package/commands/init.d.ts +1 -1
  189. package/commands/init.js +83 -88
  190. package/commands/lint.d.ts +1 -1
  191. package/commands/lint.js +24 -26
  192. package/commands/list.d.ts +1 -1
  193. package/commands/list.js +32 -37
  194. package/commands/logs.d.ts +1 -1
  195. package/commands/logs.js +35 -37
  196. package/commands/mcp/__tests__/setup.test.js +7 -12
  197. package/commands/mcp/__tests__/start.test.js +7 -12
  198. package/commands/mcp/setup.d.ts +1 -1
  199. package/commands/mcp/setup.js +17 -19
  200. package/commands/mcp/start.d.ts +1 -1
  201. package/commands/mcp/start.js +29 -34
  202. package/commands/mcp.d.ts +1 -1
  203. package/commands/mcp.js +7 -12
  204. package/commands/module/marketplace-validate.d.ts +1 -1
  205. package/commands/module/marketplace-validate.js +21 -26
  206. package/commands/module.d.ts +1 -1
  207. package/commands/module.js +7 -13
  208. package/commands/mv.d.ts +1 -1
  209. package/commands/mv.js +20 -22
  210. package/commands/open.d.ts +1 -1
  211. package/commands/open.js +19 -21
  212. package/commands/project/__tests__/add.test.js +10 -15
  213. package/commands/project/__tests__/create.test.js +14 -19
  214. package/commands/project/__tests__/deploy.test.js +96 -134
  215. package/commands/project/__tests__/devUnifiedFlow.test.js +133 -139
  216. package/commands/project/__tests__/download.test.js +14 -19
  217. package/commands/project/__tests__/installDeps.test.js +32 -70
  218. package/commands/project/__tests__/listBuilds.test.js +14 -19
  219. package/commands/project/__tests__/logs.test.js +56 -94
  220. package/commands/project/__tests__/migrate.test.js +25 -30
  221. package/commands/project/__tests__/migrateApp.test.js +17 -22
  222. package/commands/project/__tests__/open.test.js +16 -21
  223. package/commands/project/__tests__/profile.test.js +14 -19
  224. package/commands/project/__tests__/upload.test.js +18 -23
  225. package/commands/project/__tests__/watch.test.js +14 -19
  226. package/commands/project/add.d.ts +1 -1
  227. package/commands/project/add.js +34 -36
  228. package/commands/project/cloneApp.d.ts +1 -1
  229. package/commands/project/cloneApp.js +67 -72
  230. package/commands/project/create.d.ts +2 -2
  231. package/commands/project/create.js +63 -68
  232. package/commands/project/deploy.d.ts +1 -1
  233. package/commands/project/deploy.js +67 -69
  234. package/commands/project/dev/deprecatedFlow.d.ts +2 -2
  235. package/commands/project/dev/deprecatedFlow.js +52 -58
  236. package/commands/project/dev/index.d.ts +1 -1
  237. package/commands/project/dev/index.js +44 -47
  238. package/commands/project/dev/unifiedFlow.d.ts +3 -3
  239. package/commands/project/dev/unifiedFlow.js +62 -68
  240. package/commands/project/download.d.ts +1 -1
  241. package/commands/project/download.js +35 -40
  242. package/commands/project/installDeps.d.ts +1 -1
  243. package/commands/project/installDeps.js +29 -34
  244. package/commands/project/listBuilds.d.ts +1 -1
  245. package/commands/project/listBuilds.js +40 -45
  246. package/commands/project/logs.d.ts +1 -1
  247. package/commands/project/logs.js +52 -54
  248. package/commands/project/migrate.d.ts +1 -1
  249. package/commands/project/migrate.js +24 -26
  250. package/commands/project/migrateApp.d.ts +2 -2
  251. package/commands/project/migrateApp.js +18 -20
  252. package/commands/project/open.d.ts +1 -1
  253. package/commands/project/open.js +25 -30
  254. package/commands/project/profile/add.d.ts +1 -1
  255. package/commands/project/profile/add.js +68 -73
  256. package/commands/project/profile/delete.d.ts +1 -1
  257. package/commands/project/profile/delete.js +51 -56
  258. package/commands/project/profile.d.ts +1 -1
  259. package/commands/project/profile.js +9 -14
  260. package/commands/project/upload.d.ts +1 -1
  261. package/commands/project/upload.js +50 -55
  262. package/commands/project/validate.d.ts +1 -1
  263. package/commands/project/validate.js +35 -40
  264. package/commands/project/watch.d.ts +1 -1
  265. package/commands/project/watch.js +59 -61
  266. package/commands/project.d.ts +1 -1
  267. package/commands/project.js +38 -43
  268. package/commands/remove.d.ts +1 -1
  269. package/commands/remove.js +15 -17
  270. package/commands/sandbox/__tests__/create.test.js +15 -20
  271. package/commands/sandbox/__tests__/delete.test.js +15 -20
  272. package/commands/sandbox/create.d.ts +1 -1
  273. package/commands/sandbox/create.js +67 -69
  274. package/commands/sandbox/delete.d.ts +1 -1
  275. package/commands/sandbox/delete.js +94 -96
  276. package/commands/sandbox.d.ts +1 -1
  277. package/commands/sandbox.js +9 -14
  278. package/commands/secret/__tests__/addSecret.test.js +13 -18
  279. package/commands/secret/__tests__/deleteSecret.test.js +13 -18
  280. package/commands/secret/__tests__/listSecret.test.js +13 -18
  281. package/commands/secret/__tests__/updateSecret.test.js +13 -18
  282. package/commands/secret/addSecret.d.ts +1 -1
  283. package/commands/secret/addSecret.js +26 -28
  284. package/commands/secret/deleteSecret.d.ts +1 -1
  285. package/commands/secret/deleteSecret.js +27 -29
  286. package/commands/secret/listSecret.d.ts +1 -1
  287. package/commands/secret/listSecret.js +19 -21
  288. package/commands/secret/updateSecret.d.ts +1 -1
  289. package/commands/secret/updateSecret.js +25 -27
  290. package/commands/secret.d.ts +1 -1
  291. package/commands/secret.js +13 -18
  292. package/commands/testAccount/__tests__/create.test.js +17 -22
  293. package/commands/testAccount/__tests__/createConfig.test.js +6 -11
  294. package/commands/testAccount/__tests__/delete.test.js +15 -20
  295. package/commands/testAccount/create.d.ts +1 -1
  296. package/commands/testAccount/create.js +45 -53
  297. package/commands/testAccount/createConfig.d.ts +1 -1
  298. package/commands/testAccount/createConfig.js +36 -41
  299. package/commands/testAccount/delete.d.ts +1 -1
  300. package/commands/testAccount/delete.js +17 -19
  301. package/commands/testAccount.d.ts +1 -1
  302. package/commands/testAccount.js +10 -15
  303. package/commands/theme/__tests__/generate-selectors.test.js +7 -12
  304. package/commands/theme/__tests__/marketplace-validate.test.js +14 -19
  305. package/commands/theme/__tests__/preview.test.js +12 -17
  306. package/commands/theme/generate-selectors.d.ts +1 -1
  307. package/commands/theme/generate-selectors.js +23 -28
  308. package/commands/theme/marketplace-validate.d.ts +1 -1
  309. package/commands/theme/marketplace-validate.js +19 -24
  310. package/commands/theme/preview.d.ts +1 -1
  311. package/commands/theme/preview.js +60 -65
  312. package/commands/theme.d.ts +1 -1
  313. package/commands/theme.js +11 -16
  314. package/commands/upload.d.ts +1 -1
  315. package/commands/upload.js +77 -82
  316. package/commands/watch.d.ts +1 -1
  317. package/commands/watch.js +45 -51
  318. package/lang/en.d.ts +10 -23
  319. package/lang/en.js +380 -399
  320. package/lib/__tests__/accountTypes.test.js +20 -22
  321. package/lib/__tests__/buildAccount.test.js +28 -63
  322. package/lib/__tests__/commonOpts.test.js +20 -22
  323. package/lib/__tests__/dependencyManagement.test.js +46 -51
  324. package/lib/__tests__/developerTestAccounts.test.js +27 -62
  325. package/lib/__tests__/hasFeature.test.js +6 -8
  326. package/lib/__tests__/npm.test.js +15 -20
  327. package/lib/__tests__/oauth.test.js +23 -28
  328. package/lib/__tests__/parsing.test.js +18 -20
  329. package/lib/__tests__/polling.test.js +24 -26
  330. package/lib/__tests__/process.test.js +14 -19
  331. package/lib/__tests__/projectProfiles.test.js +34 -39
  332. package/lib/__tests__/sandboxSync.test.js +30 -35
  333. package/lib/__tests__/sandboxes.test.js +29 -31
  334. package/lib/__tests__/serverlessLogs.test.js +8 -13
  335. package/lib/__tests__/usageTracking.test.js +33 -34
  336. package/lib/__tests__/validation.test.js +18 -20
  337. package/lib/__tests__/yargsUtils.test.js +17 -41
  338. package/lib/accountTypes.js +24 -34
  339. package/lib/app/__tests__/migrate.test.js +94 -99
  340. package/lib/app/__tests__/migrate_legacy.test.js +29 -31
  341. package/lib/app/migrate.d.ts +3 -3
  342. package/lib/app/migrate.js +127 -145
  343. package/lib/app/migrate_legacy.d.ts +1 -1
  344. package/lib/app/migrate_legacy.js +72 -78
  345. package/lib/app/urls.js +5 -9
  346. package/lib/buildAccount.d.ts +1 -1
  347. package/lib/buildAccount.js +71 -80
  348. package/lib/commonOpts.d.ts +1 -1
  349. package/lib/commonOpts.js +42 -59
  350. package/lib/configMigrate.js +34 -38
  351. package/lib/configOptions.d.ts +5 -0
  352. package/lib/configOptions.js +44 -40
  353. package/lib/constants.d.ts +4 -0
  354. package/lib/constants.js +35 -34
  355. package/lib/customObject.js +2 -6
  356. package/lib/dependencyManagement.js +37 -45
  357. package/lib/developerTestAccounts.d.ts +1 -1
  358. package/lib/developerTestAccounts.js +34 -39
  359. package/lib/doctor/Diagnosis.d.ts +1 -1
  360. package/lib/doctor/Diagnosis.js +25 -29
  361. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  362. package/lib/doctor/DiagnosticInfoBuilder.js +30 -37
  363. package/lib/doctor/Doctor.d.ts +1 -1
  364. package/lib/doctor/Doctor.js +94 -101
  365. package/lib/doctor/__tests__/Diagnosis.test.js +9 -14
  366. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +29 -34
  367. package/lib/doctor/__tests__/Doctor.test.js +24 -26
  368. package/lib/enums/exitCodes.js +1 -4
  369. package/lib/errorHandlers/index.js +32 -41
  370. package/lib/errorHandlers/suppressError.d.ts +1 -1
  371. package/lib/errorHandlers/suppressError.js +28 -31
  372. package/lib/filesystem.js +8 -15
  373. package/lib/generateSelectors.js +18 -29
  374. package/lib/hasFeature.d.ts +1 -1
  375. package/lib/hasFeature.js +3 -6
  376. package/lib/interpolation.js +11 -18
  377. package/lib/lang.d.ts +1 -1
  378. package/lib/lang.js +22 -27
  379. package/lib/links.js +16 -24
  380. package/lib/marketplaceValidate.js +29 -39
  381. package/lib/mcp/setup.js +70 -82
  382. package/lib/middleware/__test__/configMiddleware.test.js +20 -55
  383. package/lib/middleware/__test__/gitMiddleware.test.js +7 -42
  384. package/lib/middleware/__test__/notificationsMiddleware.test.js +2 -4
  385. package/lib/middleware/__test__/requestMiddleware.test.js +6 -11
  386. package/lib/middleware/__test__/utils.test.js +9 -11
  387. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +9 -44
  388. package/lib/middleware/autoUpdateMiddleware.js +33 -40
  389. package/lib/middleware/configMiddleware.js +36 -42
  390. package/lib/middleware/fireAlarmMiddleware.js +12 -18
  391. package/lib/middleware/gitMiddleware.js +5 -8
  392. package/lib/middleware/notificationsMiddleware.js +16 -23
  393. package/lib/middleware/requestMiddleware.js +4 -10
  394. package/lib/middleware/utils.js +1 -4
  395. package/lib/middleware/yargsChecksMiddleware.js +10 -13
  396. package/lib/npm.js +14 -23
  397. package/lib/oauth.js +29 -35
  398. package/lib/parsing.js +3 -6
  399. package/lib/polling.js +11 -15
  400. package/lib/process.js +11 -19
  401. package/lib/projectProfiles.d.ts +2 -2
  402. package/lib/projectProfiles.js +32 -42
  403. package/lib/projects/ProjectLogsManager.js +18 -21
  404. package/lib/projects/__tests__/AppDevModeInterface.test.js +140 -145
  405. package/lib/projects/__tests__/LocalDevProcess.test.js +68 -73
  406. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +32 -37
  407. package/lib/projects/__tests__/ProjectLogsManager.test.js +56 -58
  408. package/lib/projects/__tests__/buildAndDeploy.test.js +7 -9
  409. package/lib/projects/__tests__/components.test.js +9 -14
  410. package/lib/projects/__tests__/projects.test.js +35 -40
  411. package/lib/projects/__tests__/structure.test.js +43 -81
  412. package/lib/projects/add/__tests__/legacyAddComponent.test.js +26 -28
  413. package/lib/projects/add/__tests__/v3AddComponent.test.js +25 -30
  414. package/lib/projects/add/legacyAddComponent.d.ts +1 -1
  415. package/lib/projects/add/legacyAddComponent.js +24 -30
  416. package/lib/projects/add/v3AddComponent.d.ts +1 -1
  417. package/lib/projects/add/v3AddComponent.js +36 -42
  418. package/lib/projects/buildAndDeploy.d.ts +1 -1
  419. package/lib/projects/buildAndDeploy.js +88 -97
  420. package/lib/projects/components.js +19 -25
  421. package/lib/projects/config.d.ts +1 -1
  422. package/lib/projects/config.js +32 -41
  423. package/lib/projects/create/__tests__/legacy.test.js +22 -57
  424. package/lib/projects/create/__tests__/v3.test.js +5 -7
  425. package/lib/projects/create/index.d.ts +3 -3
  426. package/lib/projects/create/index.js +19 -22
  427. package/lib/projects/create/legacy.d.ts +1 -1
  428. package/lib/projects/create/legacy.js +25 -31
  429. package/lib/projects/create/v3.d.ts +3 -3
  430. package/lib/projects/create/v3.js +49 -59
  431. package/lib/projects/ensureProjectExists.js +31 -37
  432. package/lib/projects/localDev/AppDevModeInterface.d.ts +3 -3
  433. package/lib/projects/localDev/AppDevModeInterface.js +58 -60
  434. package/lib/projects/localDev/DevServerManager.d.ts +1 -1
  435. package/lib/projects/localDev/DevServerManager.js +22 -24
  436. package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
  437. package/lib/projects/localDev/DevServerManagerV2.js +15 -20
  438. package/lib/projects/localDev/LocalDevLogger.d.ts +1 -1
  439. package/lib/projects/localDev/LocalDevLogger.js +68 -64
  440. package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
  441. package/lib/projects/localDev/LocalDevManager.js +106 -111
  442. package/lib/projects/localDev/LocalDevProcess.d.ts +5 -4
  443. package/lib/projects/localDev/LocalDevProcess.js +37 -30
  444. package/lib/projects/localDev/LocalDevState.d.ts +3 -3
  445. package/lib/projects/localDev/LocalDevState.js +3 -5
  446. package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
  447. package/lib/projects/localDev/LocalDevWatcher.js +6 -11
  448. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +1 -1
  449. package/lib/projects/localDev/LocalDevWebsocketServer.js +29 -27
  450. package/lib/projects/localDev/helpers.d.ts +3 -3
  451. package/lib/projects/localDev/helpers.js +156 -174
  452. package/lib/projects/structure.d.ts +4 -4
  453. package/lib/projects/structure.js +32 -78
  454. package/lib/projects/ui.js +10 -13
  455. package/lib/projects/upload.d.ts +2 -3
  456. package/lib/projects/upload.js +55 -65
  457. package/lib/projects/urls.d.ts +1 -1
  458. package/lib/projects/urls.js +15 -25
  459. package/lib/projects/watch.d.ts +1 -1
  460. package/lib/projects/watch.js +48 -54
  461. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +9 -11
  462. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +11 -16
  463. package/lib/prompts/accountNamePrompt.d.ts +1 -1
  464. package/lib/prompts/accountNamePrompt.js +26 -31
  465. package/lib/prompts/accountsPrompt.js +12 -15
  466. package/lib/prompts/cmsFieldPrompt.js +13 -19
  467. package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
  468. package/lib/prompts/createApiSamplePrompt.js +9 -12
  469. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +1 -1
  470. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +23 -26
  471. package/lib/prompts/createFunctionPrompt.js +17 -20
  472. package/lib/prompts/createModulePrompt.js +12 -15
  473. package/lib/prompts/createTemplatePrompt.js +5 -8
  474. package/lib/prompts/downloadProjectPrompt.js +17 -20
  475. package/lib/prompts/installAppPrompt.js +19 -26
  476. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
  477. package/lib/prompts/personalAccessKeyPrompt.js +40 -47
  478. package/lib/prompts/previewPrompt.js +15 -22
  479. package/lib/prompts/projectAddPrompt.d.ts +1 -1
  480. package/lib/prompts/projectAddPrompt.js +14 -18
  481. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
  482. package/lib/prompts/projectDevTargetAccountPrompt.js +48 -54
  483. package/lib/prompts/projectNameAndDestPrompt.d.ts +1 -1
  484. package/lib/prompts/projectNameAndDestPrompt.js +22 -29
  485. package/lib/prompts/projectNamePrompt.js +11 -14
  486. package/lib/prompts/projectsLogsPrompt.js +5 -8
  487. package/lib/prompts/promptUtils.d.ts +1 -1
  488. package/lib/prompts/promptUtils.js +17 -24
  489. package/lib/prompts/sandboxesPrompt.d.ts +1 -1
  490. package/lib/prompts/sandboxesPrompt.js +26 -30
  491. package/lib/prompts/secretPrompt.js +10 -15
  492. package/lib/prompts/selectAppPrompt.js +11 -14
  493. package/lib/prompts/selectHubDBTablePrompt.js +24 -30
  494. package/lib/prompts/selectProjectTemplatePrompt.d.ts +1 -1
  495. package/lib/prompts/selectProjectTemplatePrompt.js +10 -13
  496. package/lib/prompts/selectPublicAppForMigrationPrompt.js +22 -25
  497. package/lib/prompts/setAsDefaultAccountPrompt.js +13 -16
  498. package/lib/prompts/uploadPrompt.js +11 -17
  499. package/lib/sandboxSync.d.ts +1 -1
  500. package/lib/sandboxSync.js +58 -65
  501. package/lib/sandboxes.d.ts +1 -1
  502. package/lib/sandboxes.js +68 -76
  503. package/lib/schema.js +13 -20
  504. package/lib/serverlessLogs.js +45 -52
  505. package/lib/testUtils.js +4 -8
  506. package/lib/ui/SpinniesManager.d.ts +1 -1
  507. package/lib/ui/SpinniesManager.js +29 -34
  508. package/lib/ui/boxen.js +11 -14
  509. package/lib/ui/git.js +14 -20
  510. package/lib/ui/index.js +55 -73
  511. package/lib/ui/logger.js +10 -13
  512. package/lib/ui/serverlessFunctionLogs.js +14 -20
  513. package/lib/ui/spinniesUtils.js +24 -39
  514. package/lib/ui/supportHyperlinks.js +3 -6
  515. package/lib/ui/supportsColor.js +11 -17
  516. package/lib/ui/table.js +6 -13
  517. package/lib/upload.js +15 -21
  518. package/lib/usageTracking.js +35 -44
  519. package/lib/utils/hasFlag.js +2 -8
  520. package/lib/validation.js +48 -87
  521. package/lib/yargsUtils.d.ts +2 -1
  522. package/lib/yargsUtils.js +19 -16
  523. package/mcp-server/server.js +6 -8
  524. package/mcp-server/tools/index.js +13 -16
  525. package/mcp-server/tools/project/AddFeatureToProject.d.ts +1 -1
  526. package/mcp-server/tools/project/AddFeatureToProject.js +35 -39
  527. package/mcp-server/tools/project/CreateProjectTool.d.ts +1 -1
  528. package/mcp-server/tools/project/CreateProjectTool.js +46 -50
  529. package/mcp-server/tools/project/DeployProject.d.ts +1 -1
  530. package/mcp-server/tools/project/DeployProject.js +18 -22
  531. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  532. package/mcp-server/tools/project/GuidedWalkthroughTool.js +21 -25
  533. package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
  534. package/mcp-server/tools/project/UploadProjectTools.js +12 -19
  535. package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
  536. package/mcp-server/tools/project/ValidateProjectTool.js +13 -17
  537. package/mcp-server/tools/project/__tests__/AddFeatureToProject.test.js +12 -14
  538. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +13 -15
  539. package/mcp-server/tools/project/__tests__/DeployProject.test.js +6 -8
  540. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +4 -6
  541. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +4 -6
  542. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +4 -6
  543. package/mcp-server/tools/project/constants.js +3 -9
  544. package/mcp-server/types.js +1 -5
  545. package/mcp-server/utils/__tests__/command.test.js +9 -11
  546. package/mcp-server/utils/__tests__/project.test.js +12 -17
  547. package/mcp-server/utils/command.d.ts +1 -1
  548. package/mcp-server/utils/command.js +4 -11
  549. package/mcp-server/utils/content.d.ts +1 -1
  550. package/mcp-server/utils/content.js +2 -6
  551. package/mcp-server/utils/project.js +8 -14
  552. package/mcp-server/utils/toolUsageTracking.js +11 -14
  553. package/package.json +15 -11
  554. package/types/Cms.d.ts +1 -1
  555. package/types/Cms.js +1 -2
  556. package/types/LocalDev.d.ts +4 -4
  557. package/types/LocalDev.js +1 -2
  558. package/types/ProjectComponents.d.ts +2 -2
  559. package/types/ProjectComponents.js +1 -2
  560. package/types/Projects.d.ts +1 -1
  561. package/types/Projects.js +2 -5
  562. package/types/Prompts.js +1 -2
  563. package/types/Sandboxes.js +1 -2
  564. package/types/Yargs.js +1 -2
  565. package/commands/app/__tests__/install.test.d.ts +0 -1
  566. package/commands/app/__tests__/install.test.js +0 -52
  567. package/commands/app/install.d.ts +0 -8
  568. package/commands/app/install.js +0 -127
@@ -1,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, } 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, } 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,22 @@ 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 mockedInitializeMigration = initializeMigration;
44
+ const mockedContinueMigration = continueMigration;
45
+ const mockedHasFeature = hasFeature;
46
+ const mockedFs = fs;
52
47
  const createMockMigratableApp = (id, name, projectName) => ({
53
48
  appId: id,
54
49
  appName: name,
@@ -78,8 +73,8 @@ const PROJECT_DEST = '/mock/dest';
78
73
  const MOCK_CWD = '/mock/cwd';
79
74
  const MOCK_PROJECT_DIR = '/mock/project/dir';
80
75
  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),
76
+ createMockUnmigratableApp(3, 'App 3', UNMIGRATABLE_REASONS.UP_TO_DATE),
77
+ createMockUnmigratableApp(4, 'App 4', UNMIGRATABLE_REASONS.IS_A_PRIVATE_APP),
83
78
  ];
84
79
  describe('lib/app/migrate', () => {
85
80
  beforeEach(() => {
@@ -93,38 +88,38 @@ describe('lib/app/migrate', () => {
93
88
  const testCases = [
94
89
  {
95
90
  name: 'UP_TO_DATE',
96
- reason: projects_1.UNMIGRATABLE_REASONS.UP_TO_DATE,
97
- expected: en_1.lib.migrate.errors.unmigratableReasons.upToDate,
91
+ reason: UNMIGRATABLE_REASONS.UP_TO_DATE,
92
+ expected: lib.migrate.errors.unmigratableReasons.upToDate,
98
93
  },
99
94
  {
100
95
  name: 'IS_A_PRIVATE_APP',
101
- reason: projects_1.UNMIGRATABLE_REASONS.IS_A_PRIVATE_APP,
102
- expected: en_1.lib.migrate.errors.unmigratableReasons.isPrivateApp,
96
+ reason: UNMIGRATABLE_REASONS.IS_A_PRIVATE_APP,
97
+ expected: lib.migrate.errors.unmigratableReasons.isPrivateApp,
103
98
  },
104
99
  {
105
100
  name: 'LISTED_IN_MARKETPLACE',
106
- reason: projects_1.UNMIGRATABLE_REASONS.LISTED_IN_MARKETPLACE,
107
- expected: en_1.lib.migrate.errors.unmigratableReasons.listedInMarketplace,
101
+ reason: UNMIGRATABLE_REASONS.LISTED_IN_MARKETPLACE,
102
+ expected: lib.migrate.errors.unmigratableReasons.listedInMarketplace,
108
103
  },
109
104
  {
110
105
  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),
106
+ reason: UNMIGRATABLE_REASONS.PROJECT_CONNECTED_TO_GITHUB,
107
+ expected: lib.migrate.errors.unmigratableReasons.projectConnectedToGitHub(PROJECT_NAME, ACCOUNT_ID),
113
108
  },
114
109
  {
115
110
  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,
111
+ reason: CLI_UNMIGRATABLE_REASONS.PART_OF_PROJECT_ALREADY,
112
+ expected: lib.migrate.errors.unmigratableReasons.partOfProjectAlready,
118
113
  },
119
114
  {
120
115
  name: 'UNKNOWN_REASON',
121
116
  reason: 'UNKNOWN_REASON',
122
- expected: en_1.lib.migrate.errors.unmigratableReasons.generic('UNKNOWN_REASON'),
117
+ expected: lib.migrate.errors.unmigratableReasons.generic('UNKNOWN_REASON'),
123
118
  },
124
119
  ];
125
120
  testCases.forEach(testCase => {
126
121
  it(`should return the correct message for ${testCase.name}`, () => {
127
- const result = (0, migrate_2.getUnmigratableReason)(testCase.reason, PROJECT_NAME, ACCOUNT_ID);
122
+ const result = getUnmigratableReason(testCase.reason, PROJECT_NAME, ACCOUNT_ID);
128
123
  expect(result).toBe(testCase.expected);
129
124
  });
130
125
  });
@@ -132,14 +127,14 @@ describe('lib/app/migrate', () => {
132
127
  describe('generateFilterAppsByProjectNameFunction', () => {
133
128
  it('should return a function that filters by project name when projectConfig is provided', () => {
134
129
  const projectConfig = createLoadedProjectConfig(PROJECT_NAME);
135
- const filterFn = (0, migrate_2.generateFilterAppsByProjectNameFunction)(projectConfig);
130
+ const filterFn = generateFilterAppsByProjectNameFunction(projectConfig);
136
131
  const matchingApp = createMockMigratableApp(1, 'App 1', PROJECT_NAME);
137
132
  const nonMatchingApp = createMockMigratableApp(2, 'App 2', 'Other Project');
138
133
  expect(filterFn(matchingApp)).toBe(true);
139
134
  expect(filterFn(nonMatchingApp)).toBe(false);
140
135
  });
141
136
  it('should return a function that always returns true when projectConfig is not provided', () => {
142
- const filterFn = (0, migrate_2.generateFilterAppsByProjectNameFunction)(undefined);
137
+ const filterFn = generateFilterAppsByProjectNameFunction(undefined);
143
138
  const app1 = createMockMigratableApp(1, 'App 1', PROJECT_NAME);
144
139
  const app2 = createMockMigratableApp(2, 'App 2', 'Other Project');
145
140
  expect(filterFn(app1)).toBe(true);
@@ -150,17 +145,17 @@ describe('lib/app/migrate', () => {
150
145
  it('should return projectErrorDetail when there are no component errors', () => {
151
146
  const error = {
152
147
  id: 123,
153
- status: Migration_1.MIGRATION_STATUS.FAILURE,
148
+ status: MIGRATION_STATUS.FAILURE,
154
149
  projectErrorDetail: 'Project error',
155
150
  componentErrors: [],
156
151
  };
157
- const result = (0, migrate_2.buildErrorMessageFromMigrationStatus)(error);
152
+ const result = buildErrorMessageFromMigrationStatus(error);
158
153
  expect(result).toBe('Project error');
159
154
  });
160
155
  it('should return formatted error message with component errors', () => {
161
156
  const error = {
162
157
  id: 123,
163
- status: Migration_1.MIGRATION_STATUS.FAILURE,
158
+ status: MIGRATION_STATUS.FAILURE,
164
159
  projectErrorDetail: 'Project error',
165
160
  componentErrors: [
166
161
  {
@@ -174,7 +169,7 @@ describe('lib/app/migrate', () => {
174
169
  },
175
170
  ],
176
171
  };
177
- const result = (0, migrate_2.buildErrorMessageFromMigrationStatus)(error);
172
+ const result = buildErrorMessageFromMigrationStatus(error);
178
173
  expect(result).toBe('Project error: \n\t- CARD (card1): Card error\n\t- FUNCTION: Function error');
179
174
  });
180
175
  });
@@ -192,18 +187,18 @@ describe('lib/app/migrate', () => {
192
187
  setupMockApps([
193
188
  createMockMigratableApp(1, 'App 1', PROJECT_NAME),
194
189
  createMockMigratableApp(2, 'App 2', PROJECT_NAME),
195
- ], [createMockUnmigratableApp(3, 'App 3', projects_1.UNMIGRATABLE_REASONS.UP_TO_DATE)]);
190
+ ], [createMockUnmigratableApp(3, 'App 3', UNMIGRATABLE_REASONS.UP_TO_DATE)]);
196
191
  });
197
192
  it('should return all apps when no projectConfig is provided', async () => {
198
193
  setupMockApps([createMockMigratableApp(1, 'App 1')]);
199
- const result = await (0, migrate_2.fetchMigrationApps)(undefined, ACCOUNT_ID, PLATFORM_VERSION);
194
+ const result = await fetchMigrationApps(undefined, ACCOUNT_ID, PLATFORM_VERSION);
200
195
  expect(result).toHaveLength(1);
201
196
  expect(result[0].appId).toBe(1);
202
197
  });
203
198
  it('should filter apps by project name when projectConfig is provided', async () => {
204
199
  const projectConfig = createLoadedProjectConfig(PROJECT_NAME);
205
200
  setupMockApps([createMockMigratableApp(1, 'App 1', PROJECT_NAME)]);
206
- const result = await (0, migrate_2.fetchMigrationApps)(undefined, ACCOUNT_ID, PLATFORM_VERSION, projectConfig);
201
+ const result = await fetchMigrationApps(undefined, ACCOUNT_ID, PLATFORM_VERSION, projectConfig);
207
202
  expect(result).toHaveLength(1);
208
203
  expect(result[0].projectName).toBe(PROJECT_NAME);
209
204
  });
@@ -213,36 +208,36 @@ describe('lib/app/migrate', () => {
213
208
  createMockMigratableApp(1, 'App 1', PROJECT_NAME),
214
209
  createMockMigratableApp(2, 'App 2', PROJECT_NAME),
215
210
  ]);
216
- await expect((0, migrate_2.fetchMigrationApps)(undefined, ACCOUNT_ID, PLATFORM_VERSION, projectConfig)).rejects.toThrow(en_1.lib.migrate.errors.project.multipleApps);
211
+ await expect(fetchMigrationApps(undefined, ACCOUNT_ID, PLATFORM_VERSION, projectConfig)).rejects.toThrow(lib.migrate.errors.project.multipleApps);
217
212
  });
218
213
  it('should throw an error when no apps are found for a project', async () => {
219
214
  const projectConfig = createLoadedProjectConfig(PROJECT_NAME);
220
215
  setupMockApps([], []);
221
- await expect((0, migrate_2.fetchMigrationApps)(undefined, ACCOUNT_ID, PLATFORM_VERSION, projectConfig)).rejects.toThrow(en_1.lib.migrate.errors.noAppsForProject(PROJECT_NAME));
216
+ await expect(fetchMigrationApps(undefined, ACCOUNT_ID, PLATFORM_VERSION, projectConfig)).rejects.toThrow(lib.migrate.errors.noAppsForProject(PROJECT_NAME));
222
217
  });
223
218
  it('should throw an error when no migratable apps are found', async () => {
224
219
  setupMockApps([], mockUnmigratableApps);
225
- await expect((0, migrate_2.fetchMigrationApps)(undefined, ACCOUNT_ID, PLATFORM_VERSION)).rejects.toThrow(/No apps in account/);
220
+ await expect(fetchMigrationApps(undefined, ACCOUNT_ID, PLATFORM_VERSION)).rejects.toThrow(/No apps in account/);
226
221
  });
227
222
  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/);
223
+ await expect(fetchMigrationApps(999, ACCOUNT_ID, PLATFORM_VERSION)).rejects.toThrow(/No apps in account/);
229
224
  });
230
225
  });
231
226
  describe('promptForAppToMigrate', () => {
232
227
  const mockApps = [
233
228
  createMockMigratableApp(1, 'App 1'),
234
- createMockUnmigratableApp(2, 'App 2', projects_1.UNMIGRATABLE_REASONS.UP_TO_DATE),
229
+ createMockUnmigratableApp(2, 'App 2', UNMIGRATABLE_REASONS.UP_TO_DATE),
235
230
  ];
236
231
  beforeEach(() => {
237
232
  mockedListPrompt.mockResolvedValue(mockApps[0]);
238
233
  });
239
234
  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));
235
+ await promptForAppToMigrate(mockApps, ACCOUNT_ID);
236
+ expect(mockedListPrompt).toHaveBeenCalledWith(lib.migrate.prompt.chooseApp, expect.any(Object));
242
237
  });
243
238
  it('should return the selected app', async () => {
244
239
  mockedListPrompt.mockResolvedValue({ appId: mockApps[0].appId });
245
- const result = await (0, migrate_2.promptForAppToMigrate)(mockApps, ACCOUNT_ID);
240
+ const result = await promptForAppToMigrate(mockApps, ACCOUNT_ID);
246
241
  expect(result).toBe(mockApps[0].appId);
247
242
  });
248
243
  });
@@ -257,26 +252,26 @@ describe('lib/app/migrate', () => {
257
252
  { id: '2', componentType: 'FUNCTION', isSupported: false },
258
253
  ],
259
254
  },
260
- createMockUnmigratableApp(2, 'App 2', projects_1.UNMIGRATABLE_REASONS.UP_TO_DATE),
255
+ createMockUnmigratableApp(2, 'App 2', UNMIGRATABLE_REASONS.UP_TO_DATE),
261
256
  ];
262
257
  beforeEach(() => {
263
258
  mockedListPrompt.mockResolvedValue({ appId: 1 });
264
259
  mockedConfirmPrompt.mockResolvedValue(true);
265
260
  });
266
261
  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));
262
+ await expect(selectAppToMigrate(mockApps, ACCOUNT_ID, 999)).rejects.toThrow(lib.migrate.errors.appWithAppIdNotFound(999));
268
263
  });
269
264
  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));
265
+ await selectAppToMigrate(mockApps, ACCOUNT_ID);
266
+ expect(mockedListPrompt).toHaveBeenCalledWith(lib.migrate.prompt.chooseApp, expect.any(Object));
272
267
  });
273
268
  it('should return proceed: false and appIdToMigrate when user cancels', async () => {
274
269
  mockedConfirmPrompt.mockResolvedValue(false);
275
- const result = await (0, migrate_2.selectAppToMigrate)(mockApps, ACCOUNT_ID);
270
+ const result = await selectAppToMigrate(mockApps, ACCOUNT_ID);
276
271
  expect(result).toEqual({ proceed: false, appIdToMigrate: 1 });
277
272
  });
278
273
  it('should return proceed: true and appIdToMigrate when user confirms', async () => {
279
- const result = await (0, migrate_2.selectAppToMigrate)(mockApps, ACCOUNT_ID);
274
+ const result = await selectAppToMigrate(mockApps, ACCOUNT_ID);
280
275
  expect(result).toEqual({ proceed: true, appIdToMigrate: 1 });
281
276
  });
282
277
  });
@@ -305,7 +300,7 @@ describe('lib/app/migrate', () => {
305
300
  }
306
301
  it('should return early when user cancels', async () => {
307
302
  mockedConfirmPrompt.mockResolvedValueOnce(false);
308
- const result = await (0, migrate_2.handleMigrationSetup)(ACCOUNT_ID, defaultOptions);
303
+ const result = await handleMigrationSetup(ACCOUNT_ID, defaultOptions);
309
304
  expect(result).toEqual({});
310
305
  });
311
306
  it('should return project details when projectConfig is provided', async () => {
@@ -317,7 +312,7 @@ describe('lib/app/migrate', () => {
317
312
  unmigratableApps: [],
318
313
  },
319
314
  });
320
- const result = await (0, migrate_2.handleMigrationSetup)(ACCOUNT_ID, defaultOptions, projectConfig);
315
+ const result = await handleMigrationSetup(ACCOUNT_ID, defaultOptions, projectConfig);
321
316
  expect(result).toEqual({
322
317
  appIdToMigrate: 1,
323
318
  projectName: PROJECT_NAME,
@@ -327,18 +322,18 @@ describe('lib/app/migrate', () => {
327
322
  it('should prompt for project name when not provided', async () => {
328
323
  const optionsWithoutName = { ...defaultOptions, name: undefined };
329
324
  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));
325
+ await handleMigrationSetup(ACCOUNT_ID, optionsWithoutName);
326
+ expect(mockedInputPrompt).toHaveBeenCalledWith(lib.migrate.prompt.inputName, expect.any(Object));
332
327
  });
333
328
  it('should prompt for project destination when not provided', async () => {
334
329
  const optionsWithoutDest = { ...defaultOptions, dest: undefined };
335
330
  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));
331
+ await handleMigrationSetup(ACCOUNT_ID, optionsWithoutDest);
332
+ expect(mockedInputPrompt).toHaveBeenCalledWith(lib.migrate.prompt.inputDest, expect.any(Object));
338
333
  });
339
334
  it('should throw an error when project already exists', async () => {
340
335
  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));
336
+ await expect(handleMigrationSetup(ACCOUNT_ID, defaultOptions)).rejects.toThrow(lib.migrate.errors.project.alreadyExists(PROJECT_NAME));
342
337
  });
343
338
  });
344
339
  describe('beginMigration', () => {
@@ -348,14 +343,14 @@ describe('lib/app/migrate', () => {
348
343
  data: { migrationId: MIGRATION_ID },
349
344
  });
350
345
  mockedPoll.mockResolvedValue({
351
- status: Migration_1.MIGRATION_STATUS.INPUT_REQUIRED,
346
+ status: MIGRATION_STATUS.INPUT_REQUIRED,
352
347
  // @ts-expect-error
353
348
  componentsRequiringUids: {},
354
349
  });
355
350
  mockedInputPrompt.mockResolvedValue('test-uid');
356
351
  });
357
352
  it('should initialize migration and return migrationId and uidMap', async () => {
358
- const result = await (0, migrate_2.beginMigration)(ACCOUNT_ID, APP_ID, PLATFORM_VERSION);
353
+ const result = await beginMigration(ACCOUNT_ID, APP_ID, PLATFORM_VERSION);
359
354
  expect(result).toEqual({
360
355
  migrationId: MIGRATION_ID,
361
356
  uidMap: {},
@@ -364,7 +359,7 @@ describe('lib/app/migrate', () => {
364
359
  it('should prompt for UIDs when components require them', async () => {
365
360
  const componentHint = 'test-card';
366
361
  mockedPoll.mockResolvedValue({
367
- status: Migration_1.MIGRATION_STATUS.INPUT_REQUIRED,
362
+ status: MIGRATION_STATUS.INPUT_REQUIRED,
368
363
  // @ts-expect-error
369
364
  componentsRequiringUids: {
370
365
  '1': {
@@ -373,26 +368,26 @@ describe('lib/app/migrate', () => {
373
368
  },
374
369
  },
375
370
  });
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)"), {
371
+ await beginMigration(ACCOUNT_ID, APP_ID, PLATFORM_VERSION);
372
+ expect(mockedInputPrompt).toHaveBeenCalledWith(lib.migrate.prompt.uidForComponent("card 'test-card' (ID: 1)"), {
378
373
  defaultAnswer: componentHint,
379
374
  validate: expect.any(Function),
380
375
  });
381
376
  });
382
377
  it('should throw an error when migration fails', async () => {
383
378
  mockedPoll.mockRejectedValue(new Error('Failed'));
384
- await expect((0, migrate_2.beginMigration)(ACCOUNT_ID, APP_ID, PLATFORM_VERSION)).rejects.toThrow(/Migration Failed/);
379
+ await expect(beginMigration(ACCOUNT_ID, APP_ID, PLATFORM_VERSION)).rejects.toThrow(/Migration Failed/);
385
380
  });
386
381
  });
387
382
  describe('pollMigrationStatus', () => {
388
383
  it('should call poll with checkMigrationStatusV2', async () => {
389
384
  const mockStatus = {
390
385
  id: MIGRATION_ID,
391
- status: Migration_1.MIGRATION_STATUS.SUCCESS,
386
+ status: MIGRATION_STATUS.SUCCESS,
392
387
  buildId: BUILD_ID,
393
388
  };
394
389
  mockedPoll.mockResolvedValue(mockStatus);
395
- const result = await (0, migrate_2.pollMigrationStatus)(ACCOUNT_ID, MIGRATION_ID);
390
+ const result = await pollMigrationStatus(ACCOUNT_ID, MIGRATION_ID);
396
391
  expect(mockedPoll).toHaveBeenCalledWith(expect.any(Function), expect.any(Object));
397
392
  expect(result).toBe(mockStatus);
398
393
  });
@@ -405,18 +400,18 @@ describe('lib/app/migrate', () => {
405
400
  data: { migrationId: MIGRATION_ID },
406
401
  });
407
402
  mockedPoll.mockResolvedValue({
408
- status: Migration_1.MIGRATION_STATUS.SUCCESS,
403
+ status: MIGRATION_STATUS.SUCCESS,
409
404
  // @ts-expect-error
410
405
  buildId: BUILD_ID,
411
406
  });
412
407
  });
413
408
  it('should continue migration and return buildId', async () => {
414
- const result = await (0, migrate_2.finalizeMigration)(ACCOUNT_ID, MIGRATION_ID, uidMap, PROJECT_NAME);
409
+ const result = await finalizeMigration(ACCOUNT_ID, MIGRATION_ID, uidMap, PROJECT_NAME);
415
410
  expect(result).toBe(BUILD_ID);
416
411
  });
417
412
  it('should throw an error when migration fails', async () => {
418
413
  mockedPoll.mockRejectedValue(new Error('Test error'));
419
- await expect((0, migrate_2.finalizeMigration)(ACCOUNT_ID, MIGRATION_ID, uidMap, PROJECT_NAME)).rejects.toThrow(/Migration Failed/);
414
+ await expect(finalizeMigration(ACCOUNT_ID, MIGRATION_ID, uidMap, PROJECT_NAME)).rejects.toThrow(/Migration Failed/);
420
415
  });
421
416
  });
422
417
  describe('downloadProjectFiles', () => {
@@ -430,7 +425,7 @@ describe('lib/app/migrate', () => {
430
425
  mockedSanitizeFileName.mockReturnValue(PROJECT_NAME);
431
426
  });
432
427
  it('should download and extract project files', async () => {
433
- await (0, migrate_2.downloadProjectFiles)(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST);
428
+ await downloadProjectFiles(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST);
434
429
  expect(mockedDownloadProject).toHaveBeenCalledWith(ACCOUNT_ID, PROJECT_NAME, BUILD_ID);
435
430
  expect(mockedExtractZipArchive).toHaveBeenCalledWith(expect.any(Buffer), PROJECT_NAME, expect.stringContaining(PROJECT_DEST), {
436
431
  includesRootDir: true,
@@ -442,7 +437,7 @@ describe('lib/app/migrate', () => {
442
437
  projectConfig: { name: PROJECT_NAME, srcDir: 'src' },
443
438
  projectDir: MOCK_PROJECT_DIR,
444
439
  };
445
- await (0, migrate_2.downloadProjectFiles)(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST, projectConfig);
440
+ await downloadProjectFiles(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST, projectConfig);
446
441
  expect(mockedFs.renameSync).toHaveBeenCalledWith(`${MOCK_PROJECT_DIR}/src`, `${MOCK_PROJECT_DIR}/archive`);
447
442
  expect(mockedExtractZipArchive).toHaveBeenCalledWith(expect.any(Buffer), PROJECT_NAME, MOCK_PROJECT_DIR, {
448
443
  includesRootDir: true,
@@ -452,7 +447,7 @@ describe('lib/app/migrate', () => {
452
447
  it('should throw an error when download fails', async () => {
453
448
  const error = new Error('Download failed');
454
449
  mockedDownloadProject.mockRejectedValue(error);
455
- await expect((0, migrate_2.downloadProjectFiles)(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST)).rejects.toThrow(error);
450
+ await expect(downloadProjectFiles(ACCOUNT_ID, PROJECT_NAME, BUILD_ID, PROJECT_DEST)).rejects.toThrow(error);
456
451
  });
457
452
  });
458
453
  describe('migrateApp2025_2', () => {
@@ -468,27 +463,27 @@ describe('lib/app/migrate', () => {
468
463
  });
469
464
  it('should throw an error when account is not ungated for unified apps', async () => {
470
465
  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./);
466
+ await expect(migrateApp2025_2(ACCOUNT_ID, options)).rejects.toThrowError(/isn't enrolled in the required product beta to access this command./);
472
467
  });
473
468
  it('should throw an error when projectConfig is invalid', async () => {
474
469
  const invalidProjectConfig = {
475
470
  projectConfig: undefined,
476
471
  projectDir: '/mock/project/dir',
477
472
  };
478
- await expect((0, migrate_2.migrateApp2025_2)(ACCOUNT_ID, options, invalidProjectConfig)).rejects.toThrow(/The project configuration file is invalid/);
473
+ await expect(migrateApp2025_2(ACCOUNT_ID, options, invalidProjectConfig)).rejects.toThrow(/The project configuration file is invalid/);
479
474
  });
480
475
  it('should throw an error when project does not exist', async () => {
481
476
  const projectConfig = createLoadedProjectConfig(PROJECT_NAME);
482
477
  mockedEnsureProjectExists.mockResolvedValueOnce({
483
478
  projectExists: false,
484
479
  });
485
- await expect((0, migrate_2.migrateApp2025_2)(ACCOUNT_ID, options, projectConfig)).rejects.toThrow(/Migrations are only supported for existing projects/);
480
+ await expect(migrateApp2025_2(ACCOUNT_ID, options, projectConfig)).rejects.toThrow(/Migrations are only supported for existing projects/);
486
481
  });
487
482
  });
488
483
  describe('logInvalidAccountError', () => {
489
484
  it('should log the invalid account error message', () => {
490
- (0, migrate_2.logInvalidAccountError)();
491
- expect(mockedLogger.error).toHaveBeenCalledWith(en_1.lib.migrate.errors.invalidAccountTypeTitle);
485
+ logInvalidAccountError();
486
+ expect(mockedLogger.error).toHaveBeenCalledWith(lib.migrate.errors.invalidAccountTypeTitle);
492
487
  expect(mockedLogger.log).toHaveBeenCalledWith(expect.stringContaining('Only public apps created in a developer account can be converted to a project component'));
493
488
  });
494
489
  });
@@ -1,16 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const appsDev_1 = require("@hubspot/local-dev-lib/api/appsDev");
4
- const projects_1 = require("@hubspot/local-dev-lib/api/projects");
5
- const archive_1 = require("@hubspot/local-dev-lib/archive");
6
- const promptUtils_1 = require("../../prompts/promptUtils");
7
- const exitCodes_1 = require("../../enums/exitCodes");
8
- const accountTypes_1 = require("../../accountTypes");
9
- const selectPublicAppForMigrationPrompt_1 = require("../../prompts/selectPublicAppForMigrationPrompt");
10
- const projectNameAndDestPrompt_1 = require("../../prompts/projectNameAndDestPrompt");
11
- const ensureProjectExists_1 = require("../../projects/ensureProjectExists");
12
- const polling_1 = require("../../polling");
13
- const migrate_legacy_1 = require("../migrate_legacy");
1
+ import { fetchPublicAppMetadata as _fetchPublicAppMetadata } from '@hubspot/local-dev-lib/api/appsDev';
2
+ import { downloadProject as _downloadProject, migrateApp as _migrateNonProjectApp_v2023_2, } from '@hubspot/local-dev-lib/api/projects';
3
+ import { extractZipArchive } from '@hubspot/local-dev-lib/archive';
4
+ import { promptUser as _promptUser } from '../../prompts/promptUtils.js';
5
+ import { EXIT_CODES } from '../../enums/exitCodes.js';
6
+ import { isAppDeveloperAccount as _isAppDeveloperAccount, isUnifiedAccount as _isUnifiedAccount, } from '../../accountTypes.js';
7
+ import { selectPublicAppForMigrationPrompt as _selectPublicAppForMigrationPrompt } from '../../prompts/selectPublicAppForMigrationPrompt.js';
8
+ import { projectNameAndDestPrompt as _projectNameAndDestPrompt } from '../../prompts/projectNameAndDestPrompt.js';
9
+ import { ensureProjectExists as _ensureProjectExists } from '../../projects/ensureProjectExists.js';
10
+ import { poll as _poll } from '../../polling.js';
11
+ import { migrateApp2023_2 } from '../migrate_legacy.js';
14
12
  // Mock all external dependencies
15
13
  vi.mock('@hubspot/local-dev-lib/api/appsDev');
16
14
  vi.mock('@hubspot/local-dev-lib/logger');
@@ -28,16 +26,16 @@ vi.mock('../../usageTracking');
28
26
  vi.mock('../../ui/SpinniesManager');
29
27
  vi.mock('../../process');
30
28
  vi.mock('../../polling');
31
- const isAppDeveloperAccount = accountTypes_1.isAppDeveloperAccount;
32
- const isUnifiedAccount = accountTypes_1.isUnifiedAccount;
33
- const selectPublicAppForMigrationPrompt = selectPublicAppForMigrationPrompt_1.selectPublicAppForMigrationPrompt;
34
- const projectNameAndDestPrompt = projectNameAndDestPrompt_1.projectNameAndDestPrompt;
35
- const ensureProjectExists = ensureProjectExists_1.ensureProjectExists;
36
- const poll = polling_1.poll;
37
- const fetchPublicAppMetadata = appsDev_1.fetchPublicAppMetadata;
38
- const migrateNonProjectApp_v2023_2 = projects_1.migrateApp;
39
- const downloadProject = projects_1.downloadProject;
40
- const promptUser = promptUtils_1.promptUser;
29
+ const isAppDeveloperAccount = _isAppDeveloperAccount;
30
+ const isUnifiedAccount = _isUnifiedAccount;
31
+ const selectPublicAppForMigrationPrompt = _selectPublicAppForMigrationPrompt;
32
+ const projectNameAndDestPrompt = _projectNameAndDestPrompt;
33
+ const ensureProjectExists = _ensureProjectExists;
34
+ const poll = _poll;
35
+ const fetchPublicAppMetadata = _fetchPublicAppMetadata;
36
+ const migrateNonProjectApp_v2023_2 = _migrateNonProjectApp_v2023_2;
37
+ const downloadProject = _downloadProject;
38
+ const promptUser = _promptUser;
41
39
  describe('migrateApp2023_2', () => {
42
40
  const mockDerivedAccountId = 123;
43
41
  const mockOptions = {
@@ -96,12 +94,12 @@ describe('migrateApp2023_2', () => {
96
94
  });
97
95
  it('should exit if account is not an app developer account and not unified', async () => {
98
96
  isAppDeveloperAccount.mockReturnValue(false);
99
- await (0, migrate_legacy_1.migrateApp2023_2)(mockDerivedAccountId, mockOptions, mockAccountConfig);
97
+ await migrateApp2023_2(mockDerivedAccountId, mockOptions, mockAccountConfig);
100
98
  expect(migrateNonProjectApp_v2023_2).not.toHaveBeenCalled();
101
- expect(process.exit).toHaveBeenCalledWith(exitCodes_1.EXIT_CODES.SUCCESS);
99
+ expect(process.exit).toHaveBeenCalledWith(EXIT_CODES.SUCCESS);
102
100
  });
103
101
  it('should proceed with migration for valid app developer account', async () => {
104
- await (0, migrate_legacy_1.migrateApp2023_2)(mockDerivedAccountId, mockOptions, mockAccountConfig);
102
+ await migrateApp2023_2(mockDerivedAccountId, mockOptions, mockAccountConfig);
105
103
  expect(selectPublicAppForMigrationPrompt).toHaveBeenCalled();
106
104
  expect(fetchPublicAppMetadata).toHaveBeenCalledWith(appId, mockDerivedAccountId);
107
105
  expect(projectNameAndDestPrompt).toHaveBeenCalled();
@@ -109,12 +107,12 @@ describe('migrateApp2023_2', () => {
109
107
  expect(migrateNonProjectApp_v2023_2).toHaveBeenCalled();
110
108
  expect(poll).toHaveBeenCalled();
111
109
  expect(downloadProject).toHaveBeenCalled();
112
- expect(archive_1.extractZipArchive).toHaveBeenCalled();
110
+ expect(extractZipArchive).toHaveBeenCalled();
113
111
  });
114
112
  it('should handle migration failure gracefully', async () => {
115
113
  const errorMessage = 'Migration failed';
116
114
  migrateNonProjectApp_v2023_2.mockRejectedValue(new Error(errorMessage));
117
- await expect((0, migrate_legacy_1.migrateApp2023_2)(mockDerivedAccountId, mockOptions, mockAccountConfig)).rejects.toThrow(errorMessage);
115
+ await expect(migrateApp2023_2(mockDerivedAccountId, mockOptions, mockAccountConfig)).rejects.toThrow(errorMessage);
118
116
  });
119
117
  it('should handle non-migratable apps', async () => {
120
118
  fetchPublicAppMetadata.mockResolvedValue({
@@ -124,13 +122,13 @@ describe('migrateApp2023_2', () => {
124
122
  listingInfo: { someInfo: 'test' },
125
123
  },
126
124
  });
127
- await (0, migrate_legacy_1.migrateApp2023_2)(mockDerivedAccountId, mockOptions, mockAccountConfig);
128
- expect(process.exit).toHaveBeenCalledWith(exitCodes_1.EXIT_CODES.ERROR);
125
+ await migrateApp2023_2(mockDerivedAccountId, mockOptions, mockAccountConfig);
126
+ expect(process.exit).toHaveBeenCalledWith(EXIT_CODES.ERROR);
129
127
  });
130
128
  it('should handle existing project error', async () => {
131
129
  ensureProjectExists.mockResolvedValue({
132
130
  projectExists: true,
133
131
  });
134
- await expect((0, migrate_legacy_1.migrateApp2023_2)(mockDerivedAccountId, mockOptions, mockAccountConfig)).rejects.toThrow('A project with name test-project already exists');
132
+ await expect(migrateApp2023_2(mockDerivedAccountId, mockOptions, mockAccountConfig)).rejects.toThrow('A project with name test-project already exists');
135
133
  });
136
134
  });
@@ -1,7 +1,7 @@
1
1
  import { ArgumentsCamelCase } from 'yargs';
2
- import { LoadedProjectConfig } from '../projects/config';
3
- import { MigrationApp, MigrationFailed, MigrationStatus } from '../../api/migrate';
4
- import { AccountArgs, CommonArgs, ConfigArgs, EnvironmentArgs } from '../../types/Yargs';
2
+ import { LoadedProjectConfig } from '../projects/config.js';
3
+ import { MigrationApp, MigrationFailed, MigrationStatus } from '../../api/migrate.js';
4
+ import { AccountArgs, CommonArgs, ConfigArgs, EnvironmentArgs } from '../../types/Yargs.js';
5
5
  export type MigrateAppArgs = CommonArgs & AccountArgs & EnvironmentArgs & ConfigArgs & {
6
6
  name?: string;
7
7
  dest?: string;