@hubspot/cli 7.6.0-beta.1 → 7.6.0-beta.10

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 (764) hide show
  1. package/README.md +0 -4
  2. package/api/__tests__/migrate.test.d.ts +1 -0
  3. package/api/__tests__/migrate.test.js +181 -0
  4. package/api/migrate.d.ts +10 -4
  5. package/api/migrate.js +14 -22
  6. package/bin/cli.js +96 -97
  7. package/bin/hs +2 -2
  8. package/bin/hscms +2 -2
  9. package/bin/silenceErrors.js +1 -2
  10. package/commands/__tests__/account.test.d.ts +1 -0
  11. package/commands/__tests__/account.test.js +69 -0
  12. package/commands/__tests__/auth.test.d.ts +1 -0
  13. package/commands/__tests__/auth.test.js +38 -0
  14. package/commands/__tests__/cms.test.d.ts +1 -0
  15. package/commands/__tests__/cms.test.js +44 -0
  16. package/commands/__tests__/config.test.d.ts +1 -0
  17. package/commands/__tests__/config.test.js +44 -0
  18. package/commands/__tests__/create.test.d.ts +1 -0
  19. package/commands/__tests__/create.test.js +53 -0
  20. package/commands/__tests__/customObject.test.d.ts +1 -0
  21. package/commands/__tests__/customObject.test.js +49 -0
  22. package/commands/__tests__/doctor.test.d.ts +1 -0
  23. package/commands/__tests__/doctor.test.js +134 -0
  24. package/commands/__tests__/feedback.test.d.ts +1 -0
  25. package/commands/__tests__/feedback.test.js +24 -0
  26. package/commands/__tests__/fetch.test.d.ts +1 -0
  27. package/commands/__tests__/fetch.test.js +57 -0
  28. package/commands/__tests__/filemanager.test.d.ts +1 -0
  29. package/commands/__tests__/filemanager.test.js +45 -0
  30. package/commands/__tests__/function.test.d.ts +1 -0
  31. package/commands/__tests__/function.test.js +46 -0
  32. package/commands/__tests__/getStarted.test.d.ts +1 -0
  33. package/commands/__tests__/getStarted.test.js +155 -0
  34. package/commands/__tests__/hubdb.test.d.ts +1 -0
  35. package/commands/__tests__/hubdb.test.js +50 -0
  36. package/commands/__tests__/init.test.d.ts +1 -0
  37. package/commands/__tests__/init.test.js +42 -0
  38. package/commands/__tests__/lint.test.d.ts +1 -0
  39. package/commands/__tests__/lint.test.js +33 -0
  40. package/commands/__tests__/list.test.d.ts +1 -0
  41. package/commands/__tests__/list.test.js +42 -0
  42. package/commands/__tests__/logs.test.d.ts +1 -0
  43. package/commands/__tests__/logs.test.js +71 -0
  44. package/commands/__tests__/mcp.test.d.ts +1 -0
  45. package/commands/__tests__/mcp.test.js +46 -0
  46. package/commands/__tests__/mv.test.d.ts +1 -0
  47. package/commands/__tests__/mv.test.js +46 -0
  48. package/commands/__tests__/open.test.d.ts +1 -0
  49. package/commands/__tests__/open.test.js +58 -0
  50. package/commands/__tests__/project.test.d.ts +1 -0
  51. package/commands/__tests__/project.test.js +95 -0
  52. package/commands/__tests__/remove.test.d.ts +1 -0
  53. package/commands/__tests__/remove.test.js +39 -0
  54. package/commands/__tests__/sandbox.test.d.ts +1 -0
  55. package/commands/__tests__/sandbox.test.js +44 -0
  56. package/commands/__tests__/secret.test.d.ts +1 -0
  57. package/commands/__tests__/secret.test.js +49 -0
  58. package/commands/__tests__/testAccount.test.d.ts +1 -0
  59. package/commands/__tests__/testAccount.test.js +57 -0
  60. package/commands/__tests__/theme.test.d.ts +1 -0
  61. package/commands/__tests__/theme.test.js +47 -0
  62. package/commands/account/__tests__/auth.test.d.ts +1 -0
  63. package/commands/account/__tests__/auth.test.js +26 -0
  64. package/commands/account/__tests__/clean.test.d.ts +1 -0
  65. package/commands/account/__tests__/clean.test.js +28 -0
  66. package/commands/account/__tests__/createOverride.test.d.ts +1 -0
  67. package/commands/account/__tests__/createOverride.test.js +32 -0
  68. package/commands/account/__tests__/info.test.d.ts +1 -0
  69. package/commands/account/__tests__/info.test.js +28 -0
  70. package/commands/account/__tests__/list.test.d.ts +1 -0
  71. package/commands/account/__tests__/list.test.js +28 -0
  72. package/commands/account/__tests__/remove.test.d.ts +1 -0
  73. package/commands/account/__tests__/remove.test.js +36 -0
  74. package/commands/account/__tests__/removeOverride.d.ts +1 -0
  75. package/commands/account/__tests__/removeOverride.js +25 -0
  76. package/commands/account/__tests__/rename.test.d.ts +1 -0
  77. package/commands/account/__tests__/rename.test.js +42 -0
  78. package/commands/account/__tests__/use.test.d.ts +1 -0
  79. package/commands/account/__tests__/use.test.js +32 -0
  80. package/commands/account/auth.d.ts +1 -1
  81. package/commands/account/auth.js +78 -69
  82. package/commands/account/clean.d.ts +1 -1
  83. package/commands/account/clean.js +55 -60
  84. package/commands/account/createOverride.d.ts +1 -1
  85. package/commands/account/createOverride.js +52 -57
  86. package/commands/account/info.d.ts +1 -1
  87. package/commands/account/info.js +33 -35
  88. package/commands/account/list.d.ts +1 -1
  89. package/commands/account/list.js +43 -45
  90. package/commands/account/remove.d.ts +1 -1
  91. package/commands/account/remove.js +37 -42
  92. package/commands/account/removeOverride.d.ts +1 -1
  93. package/commands/account/removeOverride.js +38 -43
  94. package/commands/account/rename.d.ts +1 -1
  95. package/commands/account/rename.js +18 -20
  96. package/commands/account/use.d.ts +1 -1
  97. package/commands/account/use.js +29 -31
  98. package/commands/account.d.ts +1 -1
  99. package/commands/account.js +23 -28
  100. package/commands/app/__tests__/migrate.test.d.ts +1 -0
  101. package/commands/app/__tests__/migrate.test.js +124 -0
  102. package/commands/app/migrate.d.ts +2 -2
  103. package/commands/app/migrate.js +40 -43
  104. package/commands/app/secret/__tests__/add.test.d.ts +1 -0
  105. package/commands/app/secret/__tests__/add.test.js +28 -0
  106. package/commands/app/secret/__tests__/delete.test.d.ts +1 -0
  107. package/commands/app/secret/__tests__/delete.test.js +28 -0
  108. package/commands/app/secret/__tests__/list.test.d.ts +1 -0
  109. package/commands/app/secret/__tests__/list.test.js +25 -0
  110. package/commands/app/secret/__tests__/update.test.d.ts +1 -0
  111. package/commands/app/secret/__tests__/update.test.js +28 -0
  112. package/commands/app/secret/add.d.ts +1 -1
  113. package/commands/app/secret/add.js +28 -30
  114. package/commands/app/secret/delete.d.ts +1 -1
  115. package/commands/app/secret/delete.js +34 -36
  116. package/commands/app/secret/list.d.ts +1 -1
  117. package/commands/app/secret/list.js +25 -27
  118. package/commands/app/secret/update.d.ts +1 -1
  119. package/commands/app/secret/update.js +32 -34
  120. package/commands/app/secret.d.ts +1 -1
  121. package/commands/app/secret.js +12 -17
  122. package/commands/app.d.ts +1 -1
  123. package/commands/app.js +6 -11
  124. package/commands/auth.d.ts +1 -1
  125. package/commands/auth.js +79 -83
  126. package/commands/cms/convertFields.d.ts +1 -1
  127. package/commands/cms/convertFields.js +34 -39
  128. package/commands/cms/getReactModule.d.ts +1 -1
  129. package/commands/cms/getReactModule.js +32 -37
  130. package/commands/cms/lighthouseScore.d.ts +1 -1
  131. package/commands/cms/lighthouseScore.js +67 -72
  132. package/commands/cms.d.ts +1 -1
  133. package/commands/cms.js +11 -16
  134. package/commands/completion.d.ts +1 -1
  135. package/commands/completion.js +10 -15
  136. package/commands/config/migrate.d.ts +1 -1
  137. package/commands/config/migrate.js +27 -32
  138. package/commands/config/set.d.ts +2 -1
  139. package/commands/config/set.js +40 -32
  140. package/commands/config.d.ts +1 -1
  141. package/commands/config.js +8 -13
  142. package/commands/create/api-sample.d.ts +1 -1
  143. package/commands/create/api-sample.js +28 -33
  144. package/commands/create/app.d.ts +1 -1
  145. package/commands/create/app.js +3 -5
  146. package/commands/create/function.d.ts +1 -1
  147. package/commands/create/function.js +10 -12
  148. package/commands/create/index.d.ts +1 -1
  149. package/commands/create/index.js +19 -24
  150. package/commands/create/module.d.ts +1 -1
  151. package/commands/create/module.js +13 -15
  152. package/commands/create/react-app.d.ts +1 -1
  153. package/commands/create/react-app.js +3 -5
  154. package/commands/create/template.d.ts +1 -1
  155. package/commands/create/template.js +13 -15
  156. package/commands/create/vue-app.d.ts +1 -1
  157. package/commands/create/vue-app.js +3 -5
  158. package/commands/create/webpack-serverless.d.ts +1 -1
  159. package/commands/create/webpack-serverless.js +3 -5
  160. package/commands/create/website-theme.d.ts +1 -1
  161. package/commands/create/website-theme.js +5 -7
  162. package/commands/create.d.ts +2 -2
  163. package/commands/create.js +77 -35
  164. package/commands/customObject/__tests__/create.test.d.ts +1 -0
  165. package/commands/customObject/__tests__/create.test.js +40 -0
  166. package/commands/customObject/__tests__/schema.test.d.ts +1 -0
  167. package/commands/customObject/__tests__/schema.test.js +53 -0
  168. package/commands/customObject/create.d.ts +1 -1
  169. package/commands/customObject/create.js +28 -30
  170. package/commands/customObject/schema/__tests__/create.test.d.ts +1 -0
  171. package/commands/customObject/schema/__tests__/create.test.js +28 -0
  172. package/commands/customObject/schema/__tests__/delete.test.d.ts +1 -0
  173. package/commands/customObject/schema/__tests__/delete.test.js +42 -0
  174. package/commands/customObject/schema/__tests__/fetch-all.test.d.ts +1 -0
  175. package/commands/customObject/schema/__tests__/fetch-all.test.js +41 -0
  176. package/commands/customObject/schema/__tests__/fetch.test.d.ts +1 -0
  177. package/commands/customObject/schema/__tests__/fetch.test.js +45 -0
  178. package/commands/customObject/schema/__tests__/list.test.d.ts +1 -0
  179. package/commands/customObject/schema/__tests__/list.test.js +29 -0
  180. package/commands/customObject/schema/__tests__/update.test.d.ts +1 -0
  181. package/commands/customObject/schema/__tests__/update.test.js +40 -0
  182. package/commands/customObject/schema/create.d.ts +1 -1
  183. package/commands/customObject/schema/create.js +28 -30
  184. package/commands/customObject/schema/delete.d.ts +1 -1
  185. package/commands/customObject/schema/delete.js +24 -26
  186. package/commands/customObject/schema/fetch-all.d.ts +1 -1
  187. package/commands/customObject/schema/fetch-all.js +22 -24
  188. package/commands/customObject/schema/fetch.d.ts +1 -1
  189. package/commands/customObject/schema/fetch.js +24 -26
  190. package/commands/customObject/schema/list.d.ts +1 -1
  191. package/commands/customObject/schema/list.js +13 -15
  192. package/commands/customObject/schema/update.d.ts +1 -1
  193. package/commands/customObject/schema/update.js +32 -34
  194. package/commands/customObject/schema.d.ts +1 -1
  195. package/commands/customObject/schema.js +17 -22
  196. package/commands/customObject.d.ts +1 -1
  197. package/commands/customObject.js +13 -18
  198. package/commands/doctor.d.ts +1 -1
  199. package/commands/doctor.js +28 -33
  200. package/commands/feedback.d.ts +1 -1
  201. package/commands/feedback.js +19 -24
  202. package/commands/fetch.d.ts +1 -1
  203. package/commands/fetch.js +28 -31
  204. package/commands/filemanager/__tests__/fetch.test.d.ts +1 -0
  205. package/commands/filemanager/__tests__/fetch.test.js +32 -0
  206. package/commands/filemanager/__tests__/upload.test.d.ts +1 -0
  207. package/commands/filemanager/__tests__/upload.test.js +30 -0
  208. package/commands/filemanager/fetch.d.ts +1 -1
  209. package/commands/filemanager/fetch.js +23 -25
  210. package/commands/filemanager/upload.d.ts +1 -1
  211. package/commands/filemanager/upload.js +39 -44
  212. package/commands/filemanager.d.ts +1 -1
  213. package/commands/filemanager.js +8 -13
  214. package/commands/function/deploy.d.ts +1 -1
  215. package/commands/function/deploy.js +35 -40
  216. package/commands/function/list.d.ts +1 -1
  217. package/commands/function/list.js +24 -29
  218. package/commands/function/server.d.ts +1 -1
  219. package/commands/function/server.js +15 -17
  220. package/commands/function.d.ts +1 -1
  221. package/commands/function.js +12 -18
  222. package/commands/getStarted.d.ts +1 -1
  223. package/commands/getStarted.js +133 -112
  224. package/commands/hubdb/__tests__/clear.test.d.ts +1 -0
  225. package/commands/hubdb/__tests__/clear.test.js +28 -0
  226. package/commands/hubdb/__tests__/create.test.d.ts +1 -0
  227. package/commands/hubdb/__tests__/create.test.js +28 -0
  228. package/commands/hubdb/__tests__/delete.test.d.ts +1 -0
  229. package/commands/hubdb/__tests__/delete.test.js +28 -0
  230. package/commands/hubdb/__tests__/fetch.test.d.ts +1 -0
  231. package/commands/hubdb/__tests__/fetch.test.js +28 -0
  232. package/commands/hubdb/__tests__/list.test.d.ts +1 -0
  233. package/commands/hubdb/__tests__/list.test.js +96 -0
  234. package/commands/hubdb/clear.d.ts +1 -1
  235. package/commands/hubdb/clear.js +20 -22
  236. package/commands/hubdb/create.d.ts +1 -1
  237. package/commands/hubdb/create.js +30 -35
  238. package/commands/hubdb/delete.d.ts +1 -1
  239. package/commands/hubdb/delete.js +24 -26
  240. package/commands/hubdb/fetch.d.ts +1 -1
  241. package/commands/hubdb/fetch.js +17 -19
  242. package/commands/hubdb/list.d.ts +1 -1
  243. package/commands/hubdb/list.js +33 -35
  244. package/commands/hubdb.d.ts +1 -1
  245. package/commands/hubdb.js +18 -24
  246. package/commands/init.d.ts +1 -1
  247. package/commands/init.js +92 -99
  248. package/commands/lint.d.ts +1 -1
  249. package/commands/lint.js +24 -26
  250. package/commands/list.d.ts +1 -1
  251. package/commands/list.js +32 -37
  252. package/commands/logs.d.ts +1 -1
  253. package/commands/logs.js +35 -38
  254. package/commands/mcp/__tests__/setup.test.d.ts +1 -0
  255. package/commands/mcp/__tests__/setup.test.js +26 -0
  256. package/commands/mcp/__tests__/start.test.d.ts +1 -0
  257. package/commands/mcp/__tests__/start.test.js +27 -0
  258. package/commands/mcp/setup.d.ts +1 -1
  259. package/commands/mcp/setup.js +18 -19
  260. package/commands/mcp/start.d.ts +5 -2
  261. package/commands/mcp/start.js +39 -36
  262. package/commands/mcp.d.ts +1 -1
  263. package/commands/mcp.js +7 -12
  264. package/commands/module/marketplace-validate.d.ts +1 -1
  265. package/commands/module/marketplace-validate.js +21 -26
  266. package/commands/module.d.ts +1 -1
  267. package/commands/module.js +7 -13
  268. package/commands/mv.d.ts +1 -1
  269. package/commands/mv.js +20 -22
  270. package/commands/open.d.ts +1 -1
  271. package/commands/open.js +29 -29
  272. package/commands/project/__tests__/add.test.d.ts +1 -0
  273. package/commands/project/__tests__/add.test.js +43 -0
  274. package/commands/project/__tests__/create.test.d.ts +1 -0
  275. package/commands/project/__tests__/create.test.js +40 -0
  276. package/commands/project/__tests__/deploy.test.d.ts +1 -0
  277. package/commands/project/__tests__/deploy.test.js +308 -0
  278. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +1 -0
  279. package/commands/project/__tests__/devUnifiedFlow.test.js +396 -0
  280. package/commands/project/__tests__/download.test.d.ts +1 -0
  281. package/commands/project/__tests__/download.test.js +39 -0
  282. package/commands/project/__tests__/fixtures/exampleProject.json +33 -0
  283. package/commands/project/__tests__/installDeps.test.d.ts +1 -0
  284. package/commands/project/__tests__/installDeps.test.js +142 -0
  285. package/commands/project/__tests__/listBuilds.test.d.ts +1 -0
  286. package/commands/project/__tests__/listBuilds.test.js +38 -0
  287. package/commands/project/__tests__/logs.test.d.ts +1 -0
  288. package/commands/project/__tests__/logs.test.js +208 -0
  289. package/commands/project/__tests__/migrate.test.d.ts +1 -0
  290. package/commands/project/__tests__/migrate.test.js +111 -0
  291. package/commands/project/__tests__/migrateApp.test.d.ts +1 -0
  292. package/commands/project/__tests__/migrateApp.test.js +82 -0
  293. package/commands/project/__tests__/open.test.d.ts +1 -0
  294. package/commands/project/__tests__/open.test.js +39 -0
  295. package/commands/project/__tests__/profile.test.d.ts +1 -0
  296. package/commands/project/__tests__/profile.test.js +42 -0
  297. package/commands/project/__tests__/upload.test.d.ts +1 -0
  298. package/commands/project/__tests__/upload.test.js +43 -0
  299. package/commands/project/__tests__/watch.test.d.ts +1 -0
  300. package/commands/project/__tests__/watch.test.js +35 -0
  301. package/commands/project/add.d.ts +1 -1
  302. package/commands/project/add.js +34 -36
  303. package/commands/project/cloneApp.d.ts +1 -1
  304. package/commands/project/cloneApp.js +69 -74
  305. package/commands/project/create.d.ts +2 -2
  306. package/commands/project/create.js +70 -75
  307. package/commands/project/deploy.d.ts +3 -2
  308. package/commands/project/deploy.js +130 -96
  309. package/commands/project/dev/deprecatedFlow.d.ts +2 -2
  310. package/commands/project/dev/deprecatedFlow.js +57 -62
  311. package/commands/project/dev/index.d.ts +1 -1
  312. package/commands/project/dev/index.js +49 -52
  313. package/commands/project/dev/unifiedFlow.d.ts +4 -4
  314. package/commands/project/dev/unifiedFlow.js +76 -77
  315. package/commands/project/download.d.ts +1 -1
  316. package/commands/project/download.js +35 -40
  317. package/commands/project/installDeps.d.ts +1 -1
  318. package/commands/project/installDeps.js +29 -34
  319. package/commands/project/listBuilds.d.ts +1 -1
  320. package/commands/project/listBuilds.js +40 -45
  321. package/commands/project/logs.d.ts +1 -1
  322. package/commands/project/logs.js +52 -54
  323. package/commands/project/migrate.d.ts +1 -1
  324. package/commands/project/migrate.js +24 -26
  325. package/commands/project/migrateApp.d.ts +2 -2
  326. package/commands/project/migrateApp.js +18 -20
  327. package/commands/project/open.d.ts +1 -1
  328. package/commands/project/open.js +25 -30
  329. package/commands/project/profile/add.d.ts +1 -1
  330. package/commands/project/profile/add.js +68 -73
  331. package/commands/project/profile/delete.d.ts +1 -1
  332. package/commands/project/profile/delete.js +68 -61
  333. package/commands/project/profile.d.ts +1 -1
  334. package/commands/project/profile.js +9 -14
  335. package/commands/project/upload.d.ts +2 -2
  336. package/commands/project/upload.js +61 -55
  337. package/commands/project/validate.d.ts +1 -1
  338. package/commands/project/validate.js +36 -40
  339. package/commands/project/watch.d.ts +1 -1
  340. package/commands/project/watch.js +59 -61
  341. package/commands/project.d.ts +1 -1
  342. package/commands/project.js +38 -43
  343. package/commands/remove.d.ts +1 -1
  344. package/commands/remove.js +15 -17
  345. package/commands/sandbox/__tests__/create.test.d.ts +1 -0
  346. package/commands/sandbox/__tests__/create.test.js +238 -0
  347. package/commands/sandbox/__tests__/delete.test.d.ts +1 -0
  348. package/commands/sandbox/__tests__/delete.test.js +31 -0
  349. package/commands/sandbox/create.d.ts +2 -2
  350. package/commands/sandbox/create.js +92 -79
  351. package/commands/sandbox/delete.d.ts +1 -1
  352. package/commands/sandbox/delete.js +97 -99
  353. package/commands/sandbox.d.ts +1 -1
  354. package/commands/sandbox.js +9 -14
  355. package/commands/secret/__tests__/addSecret.test.d.ts +1 -0
  356. package/commands/secret/__tests__/addSecret.test.js +29 -0
  357. package/commands/secret/__tests__/deleteSecret.test.d.ts +1 -0
  358. package/commands/secret/__tests__/deleteSecret.test.js +41 -0
  359. package/commands/secret/__tests__/listSecret.test.d.ts +1 -0
  360. package/commands/secret/__tests__/listSecret.test.js +29 -0
  361. package/commands/secret/__tests__/updateSecret.test.d.ts +1 -0
  362. package/commands/secret/__tests__/updateSecret.test.js +29 -0
  363. package/commands/secret/addSecret.d.ts +1 -1
  364. package/commands/secret/addSecret.js +26 -28
  365. package/commands/secret/deleteSecret.d.ts +1 -1
  366. package/commands/secret/deleteSecret.js +27 -29
  367. package/commands/secret/listSecret.d.ts +1 -1
  368. package/commands/secret/listSecret.js +19 -21
  369. package/commands/secret/updateSecret.d.ts +1 -1
  370. package/commands/secret/updateSecret.js +25 -27
  371. package/commands/secret.d.ts +1 -1
  372. package/commands/secret.js +13 -18
  373. package/commands/testAccount/__tests__/create.test.d.ts +1 -0
  374. package/commands/testAccount/__tests__/create.test.js +33 -0
  375. package/commands/testAccount/__tests__/createConfig.test.d.ts +1 -0
  376. package/commands/testAccount/__tests__/createConfig.test.js +32 -0
  377. package/commands/testAccount/__tests__/delete.test.d.ts +1 -0
  378. package/commands/testAccount/__tests__/delete.test.js +31 -0
  379. package/commands/testAccount/__tests__/importData.test.d.ts +1 -0
  380. package/commands/testAccount/__tests__/importData.test.js +93 -0
  381. package/commands/testAccount/create.d.ts +2 -2
  382. package/commands/testAccount/create.js +72 -42
  383. package/commands/testAccount/createConfig.d.ts +1 -3
  384. package/commands/testAccount/createConfig.js +41 -47
  385. package/commands/testAccount/delete.d.ts +1 -1
  386. package/commands/testAccount/delete.js +17 -19
  387. package/commands/testAccount/importData.d.ts +9 -0
  388. package/commands/testAccount/importData.js +61 -0
  389. package/commands/testAccount.d.ts +1 -1
  390. package/commands/testAccount.js +12 -15
  391. package/commands/theme/__tests__/generate-selectors.test.d.ts +1 -0
  392. package/commands/theme/__tests__/generate-selectors.test.js +28 -0
  393. package/commands/theme/__tests__/marketplace-validate.test.d.ts +1 -0
  394. package/commands/theme/__tests__/marketplace-validate.test.js +36 -0
  395. package/commands/theme/__tests__/preview.test.d.ts +1 -0
  396. package/commands/theme/__tests__/preview.test.js +60 -0
  397. package/commands/theme/generate-selectors.d.ts +1 -1
  398. package/commands/theme/generate-selectors.js +23 -28
  399. package/commands/theme/marketplace-validate.d.ts +1 -1
  400. package/commands/theme/marketplace-validate.js +19 -24
  401. package/commands/theme/preview.d.ts +1 -1
  402. package/commands/theme/preview.js +60 -65
  403. package/commands/theme.d.ts +1 -1
  404. package/commands/theme.js +11 -16
  405. package/commands/upload.d.ts +1 -1
  406. package/commands/upload.js +77 -82
  407. package/commands/watch.d.ts +1 -1
  408. package/commands/watch.js +45 -51
  409. package/lang/en.d.ts +245 -103
  410. package/lang/en.js +590 -450
  411. package/lang/en.lyaml +29 -30
  412. package/lib/__tests__/accountTypes.test.d.ts +1 -0
  413. package/lib/__tests__/accountTypes.test.js +98 -0
  414. package/lib/__tests__/buildAccount.test.d.ts +1 -0
  415. package/lib/__tests__/buildAccount.test.js +282 -0
  416. package/lib/__tests__/commonOpts.test.d.ts +1 -0
  417. package/lib/__tests__/commonOpts.test.js +85 -0
  418. package/lib/__tests__/dependencyManagement.test.d.ts +1 -0
  419. package/lib/__tests__/dependencyManagement.test.js +175 -0
  420. package/lib/__tests__/developerTestAccounts.test.d.ts +1 -0
  421. package/lib/__tests__/developerTestAccounts.test.js +145 -0
  422. package/lib/__tests__/hasFeature.test.d.ts +1 -0
  423. package/lib/__tests__/hasFeature.test.js +35 -0
  424. package/lib/__tests__/importData.test.d.ts +1 -0
  425. package/lib/__tests__/importData.test.js +89 -0
  426. package/lib/__tests__/npm.test.d.ts +1 -0
  427. package/lib/__tests__/npm.test.js +57 -0
  428. package/lib/__tests__/oauth.test.d.ts +1 -0
  429. package/lib/__tests__/oauth.test.js +108 -0
  430. package/lib/__tests__/parsing.test.d.ts +1 -0
  431. package/lib/__tests__/parsing.test.js +34 -0
  432. package/lib/__tests__/polling.test.d.ts +1 -0
  433. package/lib/__tests__/polling.test.js +76 -0
  434. package/lib/__tests__/process.test.d.ts +1 -0
  435. package/lib/__tests__/process.test.js +85 -0
  436. package/lib/__tests__/projectProfiles.test.d.ts +1 -0
  437. package/lib/__tests__/projectProfiles.test.js +129 -0
  438. package/lib/__tests__/sandboxSync.test.d.ts +1 -0
  439. package/lib/__tests__/sandboxSync.test.js +126 -0
  440. package/lib/__tests__/sandboxes.test.d.ts +1 -0
  441. package/lib/__tests__/sandboxes.test.js +146 -0
  442. package/lib/__tests__/serverlessLogs.test.d.ts +1 -0
  443. package/lib/__tests__/serverlessLogs.test.js +149 -0
  444. package/lib/__tests__/usageTracking.test.d.ts +1 -0
  445. package/lib/__tests__/usageTracking.test.js +164 -0
  446. package/lib/__tests__/validation.test.d.ts +1 -0
  447. package/lib/__tests__/validation.test.js +143 -0
  448. package/lib/__tests__/yargsUtils.test.d.ts +1 -0
  449. package/lib/__tests__/yargsUtils.test.js +50 -0
  450. package/lib/accountTypes.d.ts +1 -0
  451. package/lib/accountTypes.js +31 -31
  452. package/lib/app/__tests__/migrate.test.d.ts +1 -0
  453. package/lib/app/__tests__/migrate.test.js +535 -0
  454. package/lib/app/__tests__/migrate_legacy.test.d.ts +1 -0
  455. package/lib/app/__tests__/migrate_legacy.test.js +134 -0
  456. package/lib/app/migrate.d.ts +19 -6
  457. package/lib/app/migrate.js +212 -156
  458. package/lib/app/migrate_legacy.d.ts +1 -1
  459. package/lib/app/migrate_legacy.js +72 -79
  460. package/lib/app/urls.d.ts +1 -1
  461. package/lib/app/urls.js +5 -9
  462. package/lib/buildAccount.d.ts +12 -3
  463. package/lib/buildAccount.js +165 -69
  464. package/lib/commonOpts.d.ts +3 -1
  465. package/lib/commonOpts.js +77 -57
  466. package/lib/configMigrate.js +34 -38
  467. package/lib/configOptions.d.ts +5 -0
  468. package/lib/configOptions.js +44 -40
  469. package/lib/constants.d.ts +9 -0
  470. package/lib/constants.js +40 -34
  471. package/lib/customObject.js +2 -6
  472. package/lib/dependencyManagement.d.ts +1 -1
  473. package/lib/dependencyManagement.js +37 -45
  474. package/lib/developerTestAccounts.d.ts +1 -1
  475. package/lib/developerTestAccounts.js +34 -39
  476. package/lib/doctor/Diagnosis.d.ts +1 -1
  477. package/lib/doctor/Diagnosis.js +15 -19
  478. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  479. package/lib/doctor/DiagnosticInfoBuilder.js +30 -37
  480. package/lib/doctor/Doctor.d.ts +1 -1
  481. package/lib/doctor/Doctor.js +56 -63
  482. package/lib/doctor/__tests__/Diagnosis.test.d.ts +1 -0
  483. package/lib/doctor/__tests__/Diagnosis.test.js +82 -0
  484. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +1 -0
  485. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +167 -0
  486. package/lib/doctor/__tests__/Doctor.test.d.ts +1 -0
  487. package/lib/doctor/__tests__/Doctor.test.js +396 -0
  488. package/lib/enums/exitCodes.js +1 -4
  489. package/lib/errorHandlers/index.js +33 -44
  490. package/lib/errorHandlers/suppressError.d.ts +1 -1
  491. package/lib/errorHandlers/suppressError.js +28 -31
  492. package/lib/errors/ProjectValidationError.d.ts +4 -0
  493. package/lib/errors/ProjectValidationError.js +9 -0
  494. package/lib/filesystem.js +8 -15
  495. package/lib/generateSelectors.js +18 -29
  496. package/lib/hasFeature.d.ts +2 -1
  497. package/lib/hasFeature.js +10 -6
  498. package/lib/importData.d.ts +3 -0
  499. package/lib/importData.js +50 -0
  500. package/lib/interpolation.js +11 -18
  501. package/lib/lang.d.ts +1 -1
  502. package/lib/lang.js +22 -27
  503. package/lib/links.js +16 -24
  504. package/lib/marketplaceValidate.js +29 -39
  505. package/lib/mcp/setup.d.ts +4 -0
  506. package/lib/mcp/setup.js +129 -84
  507. package/lib/middleware/__test__/configMiddleware.test.js +34 -69
  508. package/lib/middleware/__test__/gitMiddleware.test.js +11 -46
  509. package/lib/middleware/__test__/notificationsMiddleware.test.js +1 -3
  510. package/lib/middleware/__test__/requestMiddleware.test.js +8 -13
  511. package/lib/middleware/__test__/utils.test.js +9 -11
  512. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +16 -51
  513. package/lib/middleware/autoUpdateMiddleware.js +33 -40
  514. package/lib/middleware/configMiddleware.js +41 -39
  515. package/lib/middleware/fireAlarmMiddleware.js +12 -18
  516. package/lib/middleware/gitMiddleware.js +5 -8
  517. package/lib/middleware/notificationsMiddleware.js +7 -11
  518. package/lib/middleware/requestMiddleware.js +4 -10
  519. package/lib/middleware/utils.js +1 -4
  520. package/lib/middleware/yargsChecksMiddleware.js +10 -13
  521. package/lib/npm.js +14 -23
  522. package/lib/oauth.js +29 -35
  523. package/lib/parsing.d.ts +1 -0
  524. package/lib/parsing.js +8 -0
  525. package/lib/polling.d.ts +1 -1
  526. package/lib/polling.js +19 -13
  527. package/lib/process.js +26 -23
  528. package/lib/projectProfiles.d.ts +2 -2
  529. package/lib/projectProfiles.js +32 -42
  530. package/lib/projects/ProjectLogsManager.js +18 -21
  531. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +1 -0
  532. package/lib/projects/__tests__/AppDevModeInterface.test.js +511 -0
  533. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +1 -0
  534. package/lib/projects/__tests__/LocalDevProcess.test.js +254 -0
  535. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +1 -0
  536. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +339 -0
  537. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +1 -0
  538. package/lib/projects/__tests__/ProjectLogsManager.test.js +189 -0
  539. package/lib/projects/__tests__/buildAndDeploy.test.d.ts +1 -0
  540. package/lib/projects/__tests__/buildAndDeploy.test.js +23 -0
  541. package/lib/projects/__tests__/components.test.d.ts +1 -0
  542. package/lib/projects/__tests__/components.test.js +181 -0
  543. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +1 -0
  544. package/lib/projects/__tests__/localDevProjectHelpers.test.js +118 -0
  545. package/lib/projects/__tests__/projects.test.d.ts +1 -0
  546. package/lib/projects/__tests__/projects.test.js +84 -0
  547. package/lib/projects/__tests__/structure.test.d.ts +1 -0
  548. package/lib/projects/__tests__/structure.test.js +211 -0
  549. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +1 -0
  550. package/lib/projects/add/__tests__/legacyAddComponent.test.js +204 -0
  551. package/lib/projects/add/__tests__/v3AddComponent.test.d.ts +1 -0
  552. package/lib/projects/add/__tests__/v3AddComponent.test.js +185 -0
  553. package/lib/projects/add/legacyAddComponent.d.ts +1 -1
  554. package/lib/projects/add/legacyAddComponent.js +24 -30
  555. package/lib/projects/add/v3AddComponent.d.ts +1 -1
  556. package/lib/projects/add/v3AddComponent.js +40 -41
  557. package/lib/projects/buildAndDeploy.d.ts +1 -1
  558. package/lib/projects/buildAndDeploy.js +88 -97
  559. package/lib/projects/components.js +19 -25
  560. package/lib/projects/config.d.ts +1 -1
  561. package/lib/projects/config.js +32 -41
  562. package/lib/projects/create/__tests__/legacy.test.d.ts +1 -0
  563. package/lib/projects/create/__tests__/legacy.test.js +91 -0
  564. package/lib/projects/create/__tests__/v3.test.d.ts +1 -0
  565. package/lib/projects/create/__tests__/v3.test.js +78 -0
  566. package/lib/projects/create/index.d.ts +5 -4
  567. package/lib/projects/create/index.js +25 -22
  568. package/lib/projects/create/legacy.d.ts +1 -1
  569. package/lib/projects/create/legacy.js +25 -31
  570. package/lib/projects/create/v3.d.ts +8 -9
  571. package/lib/projects/create/v3.js +48 -60
  572. package/lib/projects/ensureProjectExists.js +31 -37
  573. package/lib/projects/localDev/AppDevModeInterface.d.ts +3 -3
  574. package/lib/projects/localDev/AppDevModeInterface.js +59 -61
  575. package/lib/projects/localDev/DevServerManager.d.ts +1 -1
  576. package/lib/projects/localDev/DevServerManager.js +22 -27
  577. package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
  578. package/lib/projects/localDev/DevServerManagerV2.js +15 -22
  579. package/lib/projects/localDev/LocalDevLogger.d.ts +1 -5
  580. package/lib/projects/localDev/LocalDevLogger.js +66 -79
  581. package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
  582. package/lib/projects/localDev/LocalDevManager.js +106 -111
  583. package/lib/projects/localDev/LocalDevProcess.d.ts +10 -8
  584. package/lib/projects/localDev/LocalDevProcess.js +55 -64
  585. package/lib/projects/localDev/LocalDevState.d.ts +19 -14
  586. package/lib/projects/localDev/LocalDevState.js +39 -37
  587. package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
  588. package/lib/projects/localDev/LocalDevWatcher.js +7 -12
  589. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +4 -3
  590. package/lib/projects/localDev/LocalDevWebsocketServer.js +78 -55
  591. package/lib/projects/localDev/{helpers.d.ts → helpers/account.d.ts} +3 -9
  592. package/lib/projects/localDev/helpers/account.js +233 -0
  593. package/lib/projects/localDev/helpers/project.d.ts +12 -0
  594. package/lib/projects/localDev/helpers/project.js +174 -0
  595. package/lib/projects/structure.d.ts +3 -3
  596. package/lib/projects/structure.js +32 -78
  597. package/lib/projects/ui.js +10 -13
  598. package/lib/projects/upload.d.ts +1 -1
  599. package/lib/projects/upload.js +57 -73
  600. package/lib/projects/urls.d.ts +2 -1
  601. package/lib/projects/urls.js +19 -25
  602. package/lib/projects/watch.d.ts +1 -1
  603. package/lib/projects/watch.js +48 -54
  604. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +1 -0
  605. package/lib/prompts/__tests__/createFunctionPrompt.test.js +129 -0
  606. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +1 -0
  607. package/lib/prompts/__tests__/createModulePrompt.test.js +187 -0
  608. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +1 -0
  609. package/lib/prompts/__tests__/createTemplatePrompt.test.js +102 -0
  610. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +1 -0
  611. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +28 -0
  612. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +1 -0
  613. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +37 -0
  614. package/lib/prompts/accountNamePrompt.d.ts +1 -1
  615. package/lib/prompts/accountNamePrompt.js +26 -31
  616. package/lib/prompts/accountsPrompt.js +12 -15
  617. package/lib/prompts/cmsFieldPrompt.js +13 -19
  618. package/lib/prompts/confirmImportDataPrompt.d.ts +1 -0
  619. package/lib/prompts/confirmImportDataPrompt.js +12 -0
  620. package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
  621. package/lib/prompts/createApiSamplePrompt.js +9 -12
  622. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +11 -10
  623. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +85 -45
  624. package/lib/prompts/createFunctionPrompt.d.ts +2 -1
  625. package/lib/prompts/createFunctionPrompt.js +51 -25
  626. package/lib/prompts/createModulePrompt.d.ts +2 -1
  627. package/lib/prompts/createModulePrompt.js +60 -17
  628. package/lib/prompts/createTemplatePrompt.d.ts +3 -24
  629. package/lib/prompts/createTemplatePrompt.js +13 -8
  630. package/lib/prompts/downloadProjectPrompt.js +17 -20
  631. package/lib/prompts/importDataFilePathPrompt.d.ts +1 -0
  632. package/lib/prompts/importDataFilePathPrompt.js +24 -0
  633. package/lib/prompts/importDataTestAccountSelectPrompt.d.ts +3 -0
  634. package/lib/prompts/importDataTestAccountSelectPrompt.js +29 -0
  635. package/lib/prompts/installAppPrompt.js +19 -26
  636. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
  637. package/lib/prompts/personalAccessKeyPrompt.js +41 -48
  638. package/lib/prompts/previewPrompt.js +15 -22
  639. package/lib/prompts/projectAddPrompt.d.ts +3 -2
  640. package/lib/prompts/projectAddPrompt.js +14 -17
  641. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
  642. package/lib/prompts/projectDevTargetAccountPrompt.js +48 -54
  643. package/lib/prompts/projectNameAndDestPrompt.d.ts +3 -0
  644. package/lib/prompts/projectNameAndDestPrompt.js +53 -0
  645. package/lib/prompts/projectNamePrompt.js +11 -14
  646. package/lib/prompts/projectsLogsPrompt.js +5 -8
  647. package/lib/prompts/promptUtils.d.ts +3 -3
  648. package/lib/prompts/promptUtils.js +176 -47
  649. package/lib/prompts/sandboxesPrompt.d.ts +1 -1
  650. package/lib/prompts/sandboxesPrompt.js +26 -30
  651. package/lib/prompts/secretPrompt.js +10 -15
  652. package/lib/prompts/selectAppPrompt.js +11 -14
  653. package/lib/prompts/selectHubDBTablePrompt.js +24 -30
  654. package/lib/prompts/selectProjectTemplatePrompt.d.ts +27 -0
  655. package/lib/prompts/selectProjectTemplatePrompt.js +69 -0
  656. package/lib/prompts/selectPublicAppForMigrationPrompt.js +22 -25
  657. package/lib/prompts/setAsDefaultAccountPrompt.js +13 -16
  658. package/lib/prompts/uploadPrompt.js +11 -17
  659. package/lib/sandboxSync.d.ts +1 -1
  660. package/lib/sandboxSync.js +58 -65
  661. package/lib/sandboxes.d.ts +5 -1
  662. package/lib/sandboxes.js +72 -76
  663. package/lib/schema.js +16 -19
  664. package/lib/serverlessLogs.js +45 -52
  665. package/lib/testUtils.js +5 -10
  666. package/lib/ui/SpinniesManager.d.ts +1 -1
  667. package/lib/ui/SpinniesManager.js +29 -35
  668. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +1 -0
  669. package/lib/ui/__tests__/removeAnsiCodes.test.js +84 -0
  670. package/lib/ui/boxen.js +11 -14
  671. package/lib/ui/git.js +14 -20
  672. package/lib/ui/index.d.ts +6 -0
  673. package/lib/ui/index.js +57 -77
  674. package/lib/ui/logger.d.ts +1 -0
  675. package/lib/ui/logger.js +11 -13
  676. package/lib/ui/removeAnsiCodes.d.ts +1 -0
  677. package/lib/ui/removeAnsiCodes.js +4 -0
  678. package/lib/ui/serverlessFunctionLogs.js +14 -20
  679. package/lib/ui/spinniesUtils.js +24 -39
  680. package/lib/ui/supportHyperlinks.js +3 -6
  681. package/lib/ui/supportsColor.js +11 -17
  682. package/lib/ui/table.js +6 -13
  683. package/lib/upload.js +15 -21
  684. package/lib/usageTracking.d.ts +11 -0
  685. package/lib/usageTracking.js +88 -103
  686. package/lib/utils/hasFlag.d.ts +1 -0
  687. package/lib/utils/hasFlag.js +9 -0
  688. package/lib/validation.d.ts +1 -1
  689. package/lib/validation.js +50 -89
  690. package/lib/yargsUtils.d.ts +4 -1
  691. package/lib/yargsUtils.js +21 -25
  692. package/mcp-server/server.js +6 -8
  693. package/mcp-server/tools/index.js +19 -16
  694. package/mcp-server/tools/project/{AddFeatureToProject.d.ts → AddFeatureToProjectTool.d.ts} +5 -5
  695. package/mcp-server/tools/project/AddFeatureToProjectTool.js +76 -0
  696. package/mcp-server/tools/project/CreateProjectTool.d.ts +6 -6
  697. package/mcp-server/tools/project/CreateProjectTool.js +42 -53
  698. package/mcp-server/tools/project/{DeployProject.d.ts → DeployProjectTool.d.ts} +2 -2
  699. package/mcp-server/tools/project/DeployProjectTool.js +49 -0
  700. package/mcp-server/tools/project/DocFetchTool.d.ts +17 -0
  701. package/mcp-server/tools/project/DocFetchTool.js +49 -0
  702. package/mcp-server/tools/project/DocsSearchTool.d.ts +26 -0
  703. package/mcp-server/tools/project/DocsSearchTool.js +62 -0
  704. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +20 -0
  705. package/mcp-server/tools/project/GetConfigValuesTool.js +52 -0
  706. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  707. package/mcp-server/tools/project/GuidedWalkthroughTool.js +23 -24
  708. package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
  709. package/mcp-server/tools/project/UploadProjectTools.js +14 -18
  710. package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
  711. package/mcp-server/tools/project/ValidateProjectTool.js +15 -16
  712. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +1 -0
  713. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +151 -0
  714. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +1 -0
  715. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +127 -0
  716. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +1 -0
  717. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +119 -0
  718. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +1 -0
  719. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +117 -0
  720. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +1 -0
  721. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +190 -0
  722. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +1 -0
  723. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +198 -0
  724. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +1 -0
  725. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +126 -0
  726. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +1 -0
  727. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +107 -0
  728. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +1 -0
  729. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +110 -0
  730. package/mcp-server/tools/project/constants.d.ts +3 -0
  731. package/mcp-server/tools/project/constants.js +20 -9
  732. package/mcp-server/types.js +1 -5
  733. package/mcp-server/utils/__tests__/command.test.d.ts +1 -0
  734. package/mcp-server/utils/__tests__/command.test.js +45 -0
  735. package/mcp-server/utils/__tests__/project.test.d.ts +1 -0
  736. package/mcp-server/utils/__tests__/project.test.js +79 -0
  737. package/mcp-server/utils/command.d.ts +1 -1
  738. package/mcp-server/utils/command.js +4 -11
  739. package/mcp-server/utils/content.d.ts +1 -1
  740. package/mcp-server/utils/content.js +2 -6
  741. package/mcp-server/utils/project.js +11 -14
  742. package/mcp-server/utils/toolUsageTracking.d.ts +3 -0
  743. package/mcp-server/utils/toolUsageTracking.js +23 -0
  744. package/package.json +28 -21
  745. package/types/Cms.d.ts +17 -1
  746. package/types/Cms.js +25 -2
  747. package/types/LocalDev.d.ts +5 -7
  748. package/types/LocalDev.js +1 -2
  749. package/types/ProjectComponents.d.ts +2 -2
  750. package/types/ProjectComponents.js +1 -2
  751. package/types/Projects.d.ts +1 -1
  752. package/types/Projects.js +2 -5
  753. package/types/Prompts.d.ts +4 -2
  754. package/types/Prompts.js +1 -2
  755. package/types/Sandboxes.js +1 -2
  756. package/types/Yargs.d.ts +5 -1
  757. package/types/Yargs.js +1 -2
  758. package/ui/index.d.ts +1 -0
  759. package/ui/index.js +6 -0
  760. package/lib/projects/localDev/helpers.js +0 -351
  761. package/lib/prompts/createProjectPrompt.d.ts +0 -28
  762. package/lib/prompts/createProjectPrompt.js +0 -120
  763. package/mcp-server/tools/project/AddFeatureToProject.js +0 -85
  764. package/mcp-server/tools/project/DeployProject.js +0 -50
@@ -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, MigratableApp, UnmigratableApp, 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;
@@ -12,7 +12,18 @@ export type MigrateAppArgs = CommonArgs & AccountArgs & EnvironmentArgs & Config
12
12
  export declare function getUnmigratableReason(reasonCode: string, projectName: string | undefined, accountId: number): string;
13
13
  export declare function generateFilterAppsByProjectNameFunction(projectConfig?: LoadedProjectConfig): (app: MigrationApp) => boolean;
14
14
  export declare function buildErrorMessageFromMigrationStatus(error: MigrationFailed): string;
15
- export declare function fetchMigrationApps(appId: MigrateAppArgs['appId'], derivedAccountId: number, platformVersion: string, projectConfig?: LoadedProjectConfig): Promise<MigrationApp[]>;
15
+ export declare function getHasMigratableThemes(projectConfig?: LoadedProjectConfig): Promise<{
16
+ hasMigratableThemes: boolean;
17
+ migratableThemesCount: number;
18
+ }>;
19
+ export declare function fetchMigrationApps(derivedAccountId: number, platformVersion: string, projectConfig?: LoadedProjectConfig): Promise<{
20
+ migratableApps: MigratableApp[];
21
+ unmigratableApps: UnmigratableApp[];
22
+ }>;
23
+ export declare function validateMigrationAppsAndThemes(appId: MigrateAppArgs['appId'], derivedAccountId: number, { migratableApps, unmigratableApps, }: {
24
+ migratableApps: MigratableApp[];
25
+ unmigratableApps: UnmigratableApp[];
26
+ }, hasMigratableThemes: boolean, projectConfig?: LoadedProjectConfig): Promise<void>;
16
27
  export declare function promptForAppToMigrate(allApps: MigrationApp[], derivedAccountId: number): Promise<number>;
17
28
  export declare function selectAppToMigrate(allApps: MigrationApp[], derivedAccountId: number, appId?: number): Promise<{
18
29
  proceed: boolean;
@@ -22,13 +33,15 @@ export declare function handleMigrationSetup(derivedAccountId: number, options:
22
33
  appIdToMigrate?: number | undefined;
23
34
  projectName?: string;
24
35
  projectDest?: string;
36
+ isThemesMigration?: boolean;
25
37
  }>;
26
- export declare function beginMigration(derivedAccountId: number, appId: number, platformVersion: string): Promise<{
38
+ export declare function handleThemesMigration(projectConfig: LoadedProjectConfig, platformVersion: string): Promise<void>;
39
+ export declare function beginAppMigration(derivedAccountId: number, appId: number, platformVersion: string): Promise<{
27
40
  migrationId: number;
28
41
  uidMap: Record<string, string>;
29
42
  } | undefined>;
30
43
  export declare function pollMigrationStatus(derivedAccountId: number, migrationId: number, successStates?: string[]): Promise<MigrationStatus>;
31
- export declare function finalizeMigration(derivedAccountId: number, migrationId: number, uidMap: Record<string, string>, projectName: string): Promise<number>;
44
+ export declare function finalizeAppMigration(derivedAccountId: number, migrationId: number, uidMap: Record<string, string>, projectName: string): Promise<number>;
32
45
  export declare function downloadProjectFiles(derivedAccountId: number, projectName: string, buildId: number, projectDest: string, projectConfig?: LoadedProjectConfig): Promise<void>;
33
46
  export declare function migrateApp2025_2(derivedAccountId: number, options: ArgumentsCamelCase<MigrateAppArgs>, projectConfig?: LoadedProjectConfig): Promise<void>;
34
47
  export declare function logInvalidAccountError(): void;
@@ -1,60 +1,45 @@
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
- exports.getUnmigratableReason = getUnmigratableReason;
7
- exports.generateFilterAppsByProjectNameFunction = generateFilterAppsByProjectNameFunction;
8
- exports.buildErrorMessageFromMigrationStatus = buildErrorMessageFromMigrationStatus;
9
- exports.fetchMigrationApps = fetchMigrationApps;
10
- exports.promptForAppToMigrate = promptForAppToMigrate;
11
- exports.selectAppToMigrate = selectAppToMigrate;
12
- exports.handleMigrationSetup = handleMigrationSetup;
13
- exports.beginMigration = beginMigration;
14
- exports.pollMigrationStatus = pollMigrationStatus;
15
- exports.finalizeMigration = finalizeMigration;
16
- exports.downloadProjectFiles = downloadProjectFiles;
17
- exports.migrateApp2025_2 = migrateApp2025_2;
18
- exports.logInvalidAccountError = logInvalidAccountError;
19
- const path_1 = __importDefault(require("path"));
20
- const path_2 = require("@hubspot/local-dev-lib/path");
21
- const archive_1 = require("@hubspot/local-dev-lib/archive");
22
- const chalk_1 = __importDefault(require("chalk"));
23
- const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
24
- const projects_1 = require("@hubspot/local-dev-lib/constants/projects");
25
- const transform_1 = require("@hubspot/project-parsing-lib/src/lib/transform");
26
- const Migration_1 = require("@hubspot/local-dev-lib/types/Migration");
27
- const projects_2 = require("@hubspot/local-dev-lib/api/projects");
28
- const inquirer = require('inquirer');
29
- const promptUtils_1 = require("../prompts/promptUtils");
30
- const ui_1 = require("../ui");
31
- const ensureProjectExists_1 = require("../projects/ensureProjectExists");
32
- const SpinniesManager_1 = __importDefault(require("../ui/SpinniesManager"));
33
- const polling_1 = require("../polling");
34
- const migrate_1 = require("../../api/migrate");
35
- const fs_1 = __importDefault(require("fs"));
36
- const en_1 = require("../../lang/en");
37
- const hasFeature_1 = require("../hasFeature");
38
- const constants_1 = require("../constants");
39
- const urls_1 = require("../projects/urls");
40
- const logger_1 = require("../ui/logger");
41
- function getUnmigratableReason(reasonCode, projectName, accountId) {
1
+ import path from 'path';
2
+ import { getCwd, sanitizeFileName } from '@hubspot/local-dev-lib/path';
3
+ import { extractZipArchive } from '@hubspot/local-dev-lib/archive';
4
+ import chalk from 'chalk';
5
+ import { validateUid, migrateThemes, getProjectThemeDetails, } from '@hubspot/project-parsing-lib';
6
+ import { UNMIGRATABLE_REASONS } from '@hubspot/local-dev-lib/constants/projects';
7
+ import { mapToUserFacingType } from '@hubspot/project-parsing-lib/src/lib/transform.js';
8
+ import { MIGRATION_STATUS } from '@hubspot/local-dev-lib/types/Migration';
9
+ import { downloadProject } from '@hubspot/local-dev-lib/api/projects';
10
+ import { Separator } from '@inquirer/prompts';
11
+ import { confirmPrompt, inputPrompt, listPrompt, } from '../prompts/promptUtils.js';
12
+ import { uiAccountDescription, uiCommandReference, uiLine, uiLink, } from '../ui/index.js';
13
+ import { writeProjectConfig } from '../projects/config.js';
14
+ import { ensureProjectExists } from '../projects/ensureProjectExists.js';
15
+ import SpinniesManager from '../ui/SpinniesManager.js';
16
+ import { DEFAULT_POLLING_STATUS_LOOKUP, poll } from '../polling.js';
17
+ import { checkMigrationStatusV2, CLI_UNMIGRATABLE_REASONS, continueAppMigration, initializeAppMigration, isMigrationStatus, listAppsForMigration, } from '../../api/migrate.js';
18
+ import fs from 'fs';
19
+ import { lib } from '../../lang/en.js';
20
+ import { PROJECT_CONFIG_FILE } from '../constants.js';
21
+ import { hasUnfiedAppsAccess } from '../hasFeature.js';
22
+ import { getProjectBuildDetailUrl, getProjectDetailUrl, } from '../projects/urls.js';
23
+ import { uiLogger } from '../ui/logger.js';
24
+ import { debugError } from '../errorHandlers/index.js';
25
+ import { useV3Api } from '../projects/buildAndDeploy.js';
26
+ export function getUnmigratableReason(reasonCode, projectName, accountId) {
42
27
  switch (reasonCode) {
43
- case projects_1.UNMIGRATABLE_REASONS.UP_TO_DATE:
44
- return en_1.lib.migrate.errors.unmigratableReasons.upToDate;
45
- case projects_1.UNMIGRATABLE_REASONS.IS_A_PRIVATE_APP:
46
- return en_1.lib.migrate.errors.unmigratableReasons.isPrivateApp;
47
- case projects_1.UNMIGRATABLE_REASONS.LISTED_IN_MARKETPLACE:
48
- return en_1.lib.migrate.errors.unmigratableReasons.listedInMarketplace;
49
- case projects_1.UNMIGRATABLE_REASONS.PROJECT_CONNECTED_TO_GITHUB:
50
- return en_1.lib.migrate.errors.unmigratableReasons.projectConnectedToGitHub(projectName, accountId);
51
- case migrate_1.CLI_UNMIGRATABLE_REASONS.PART_OF_PROJECT_ALREADY:
52
- return en_1.lib.migrate.errors.unmigratableReasons.partOfProjectAlready;
28
+ case UNMIGRATABLE_REASONS.UP_TO_DATE:
29
+ return lib.migrate.errors.unmigratableReasons.upToDate;
30
+ case UNMIGRATABLE_REASONS.IS_A_PRIVATE_APP:
31
+ return lib.migrate.errors.unmigratableReasons.isPrivateApp;
32
+ case UNMIGRATABLE_REASONS.LISTED_IN_MARKETPLACE:
33
+ return lib.migrate.errors.unmigratableReasons.listedInMarketplace;
34
+ case UNMIGRATABLE_REASONS.PROJECT_CONNECTED_TO_GITHUB:
35
+ return lib.migrate.errors.unmigratableReasons.projectConnectedToGitHub(projectName, accountId);
36
+ case CLI_UNMIGRATABLE_REASONS.PART_OF_PROJECT_ALREADY:
37
+ return lib.migrate.errors.unmigratableReasons.partOfProjectAlready;
53
38
  default:
54
- return en_1.lib.migrate.errors.unmigratableReasons.generic(reasonCode);
39
+ return lib.migrate.errors.unmigratableReasons.generic(reasonCode);
55
40
  }
56
41
  }
57
- function generateFilterAppsByProjectNameFunction(projectConfig) {
42
+ export function generateFilterAppsByProjectNameFunction(projectConfig) {
58
43
  return (app) => {
59
44
  if (projectConfig) {
60
45
  return app.projectName === projectConfig?.projectConfig?.name;
@@ -62,7 +47,7 @@ function generateFilterAppsByProjectNameFunction(projectConfig) {
62
47
  return true;
63
48
  };
64
49
  }
65
- function buildErrorMessageFromMigrationStatus(error) {
50
+ export function buildErrorMessageFromMigrationStatus(error) {
66
51
  const { componentErrors, projectErrorDetail } = error;
67
52
  if (!componentErrors || !componentErrors.length) {
68
53
  return projectErrorDetail;
@@ -74,43 +59,71 @@ function buildErrorMessageFromMigrationStatus(error) {
74
59
  })
75
60
  .join('\n\t- ')}`;
76
61
  }
77
- async function fetchMigrationApps(appId, derivedAccountId, platformVersion, projectConfig) {
78
- const { data: { migratableApps, unmigratableApps }, } = await (0, migrate_1.listAppsForMigration)(derivedAccountId, platformVersion);
62
+ export async function getHasMigratableThemes(projectConfig) {
63
+ if (!projectConfig?.projectConfig?.name || !projectConfig?.projectDir) {
64
+ return { hasMigratableThemes: false, migratableThemesCount: 0 };
65
+ }
66
+ const projectSrcDir = path.resolve(projectConfig.projectDir, projectConfig.projectConfig.srcDir);
67
+ const { legacyThemeDetails, legacyReactThemeDetails } = await getProjectThemeDetails(projectSrcDir);
68
+ return {
69
+ hasMigratableThemes: legacyThemeDetails.length > 0 || legacyReactThemeDetails.length > 0,
70
+ migratableThemesCount: legacyThemeDetails.length + legacyReactThemeDetails.length,
71
+ };
72
+ }
73
+ export async function fetchMigrationApps(derivedAccountId, platformVersion, projectConfig) {
74
+ const { data: { migratableApps, unmigratableApps }, } = await listAppsForMigration(derivedAccountId, platformVersion);
79
75
  const filteredMigratableApps = migratableApps.filter(generateFilterAppsByProjectNameFunction(projectConfig));
80
76
  const filteredUnmigratableApps = unmigratableApps.filter(generateFilterAppsByProjectNameFunction(projectConfig));
81
- const allApps = [...filteredMigratableApps, ...filteredUnmigratableApps];
77
+ return {
78
+ migratableApps: filteredMigratableApps,
79
+ unmigratableApps: filteredUnmigratableApps,
80
+ };
81
+ }
82
+ export async function validateMigrationAppsAndThemes(appId, derivedAccountId, { migratableApps, unmigratableApps, }, hasMigratableThemes, projectConfig) {
83
+ const allApps = [...migratableApps, ...unmigratableApps];
82
84
  if (allApps.length > 1 && projectConfig) {
83
- throw new Error(en_1.lib.migrate.errors.project.multipleApps);
85
+ throw new Error(lib.migrate.errors.project.multipleApps);
86
+ }
87
+ if (hasMigratableThemes) {
88
+ if (useV3Api(projectConfig?.projectConfig?.platformVersion)) {
89
+ throw new Error(lib.migrate.errors.project.themesAlreadyMigrated);
90
+ }
91
+ if (allApps.length > 0 && projectConfig) {
92
+ throw new Error(lib.migrate.errors.project.themesAndAppsNotAllowed);
93
+ }
94
+ if (!projectConfig) {
95
+ throw new Error(lib.migrate.errors.project.noProjectForThemesMigration);
96
+ }
97
+ return;
84
98
  }
85
99
  if (!projectConfig?.projectConfig) {
86
100
  allApps.forEach(app => {
87
101
  if (app.projectName) {
88
102
  app.isMigratable = false;
89
103
  app.unmigratableReason =
90
- migrate_1.CLI_UNMIGRATABLE_REASONS.PART_OF_PROJECT_ALREADY;
104
+ CLI_UNMIGRATABLE_REASONS.PART_OF_PROJECT_ALREADY;
91
105
  }
92
106
  });
93
107
  }
94
108
  if (allApps.length === 0 && projectConfig) {
95
- throw new Error(en_1.lib.migrate.errors.noAppsForProject(projectConfig?.projectConfig?.name || ''));
109
+ throw new Error(lib.migrate.errors.noAppsForProject(projectConfig?.projectConfig?.name || ''));
96
110
  }
97
111
  if (allApps.length === 0 || !allApps.some(app => app.isMigratable)) {
98
- const reasons = filteredUnmigratableApps.map(app => `${chalk_1.default.bold(app.appName)}: ${getUnmigratableReason(app.unmigratableReason, app.projectName, derivedAccountId)}`);
99
- throw new Error(en_1.lib.migrate.errors.noAppsEligible((0, ui_1.uiAccountDescription)(derivedAccountId), reasons));
112
+ const reasons = unmigratableApps.map(app => `${chalk.bold(app.appName)}: ${getUnmigratableReason(app.unmigratableReason, app.projectName, derivedAccountId)}`);
113
+ throw new Error(lib.migrate.errors.noAppsEligible(uiAccountDescription(derivedAccountId), reasons));
100
114
  }
101
115
  if (appId &&
102
116
  !allApps.some(app => {
103
117
  return app.appId === appId;
104
118
  })) {
105
- throw new Error(en_1.lib.migrate.errors.appWithAppIdNotFound(appId));
119
+ throw new Error(lib.migrate.errors.appWithAppIdNotFound(appId));
106
120
  }
107
- return allApps;
108
121
  }
109
- async function promptForAppToMigrate(allApps, derivedAccountId) {
122
+ export async function promptForAppToMigrate(allApps, derivedAccountId) {
110
123
  const appChoices = allApps.map(app => ({
111
124
  name: app.isMigratable
112
125
  ? app.appName
113
- : `[${chalk_1.default.yellow('DISABLED')}] ${app.appName} `,
126
+ : `[${chalk.yellow('DISABLED')}] ${app.appName} `,
114
127
  value: app,
115
128
  disabled: app.isMigratable
116
129
  ? false
@@ -118,21 +131,17 @@ async function promptForAppToMigrate(allApps, derivedAccountId) {
118
131
  }));
119
132
  const enabledChoices = appChoices.filter(app => !app.disabled);
120
133
  const disabledChoices = appChoices.filter(app => app.disabled);
121
- const { appId: selectedAppId } = await (0, promptUtils_1.listPrompt)(en_1.lib.migrate.prompt.chooseApp, {
122
- choices: [
123
- ...enabledChoices,
124
- new inquirer.Separator(),
125
- ...disabledChoices,
126
- ],
134
+ const { appId: selectedAppId } = await listPrompt(lib.migrate.prompt.chooseApp, {
135
+ choices: [...enabledChoices, new Separator(), ...disabledChoices],
127
136
  });
128
137
  return selectedAppId;
129
138
  }
130
- async function selectAppToMigrate(allApps, derivedAccountId, appId) {
139
+ export async function selectAppToMigrate(allApps, derivedAccountId, appId) {
131
140
  if (appId &&
132
141
  !allApps.some(app => {
133
142
  return app.appId === appId;
134
143
  })) {
135
- throw new Error(en_1.lib.migrate.errors.appWithAppIdNotFound(appId));
144
+ throw new Error(lib.migrate.errors.appWithAppIdNotFound(appId));
136
145
  }
137
146
  let appIdToMigrate = appId;
138
147
  if (!appIdToMigrate) {
@@ -143,20 +152,20 @@ async function selectAppToMigrate(allApps, derivedAccountId, appId) {
143
152
  const unmigratableComponents = new Set();
144
153
  selectedApp?.migrationComponents.forEach(component => {
145
154
  if (component.isSupported) {
146
- migratableComponents.add((0, transform_1.mapToUserFacingType)(component.componentType));
155
+ migratableComponents.add(mapToUserFacingType(component.componentType));
147
156
  }
148
157
  else {
149
- unmigratableComponents.add((0, transform_1.mapToUserFacingType)(component.componentType));
158
+ unmigratableComponents.add(mapToUserFacingType(component.componentType));
150
159
  }
151
160
  });
152
161
  if (migratableComponents.size !== 0) {
153
- logger_1.uiLogger.log(en_1.lib.migrate.componentsToBeMigrated(`\n - ${[...migratableComponents].join('\n - ')}`));
162
+ uiLogger.log(lib.migrate.componentsToBeMigrated(`\n - ${[...migratableComponents].join('\n - ')}`));
154
163
  }
155
164
  if (unmigratableComponents.size !== 0) {
156
- logger_1.uiLogger.log(en_1.lib.migrate.componentsThatWillNotBeMigrated(`\n - ${[...unmigratableComponents].join('\n - ')}`));
165
+ uiLogger.log(lib.migrate.componentsThatWillNotBeMigrated(`\n - ${[...unmigratableComponents].join('\n - ')}`));
157
166
  }
158
- logger_1.uiLogger.log('');
159
- const proceed = await (0, promptUtils_1.confirmPrompt)(en_1.lib.migrate.prompt.proceed, {
167
+ uiLogger.log('');
168
+ const proceed = await confirmPrompt(lib.migrate.prompt.proceed, {
160
169
  defaultAnswer: false,
161
170
  });
162
171
  return {
@@ -164,75 +173,118 @@ async function selectAppToMigrate(allApps, derivedAccountId, appId) {
164
173
  appIdToMigrate,
165
174
  };
166
175
  }
167
- async function handleMigrationSetup(derivedAccountId, options, projectConfig) {
176
+ export async function handleMigrationSetup(derivedAccountId, options, projectConfig) {
177
+ SpinniesManager.add('checkingForMigratableComponents', {
178
+ text: lib.migrate.spinners.checkingForMigratableComponents,
179
+ });
168
180
  const { name, dest, appId } = options;
169
- const allApps = await fetchMigrationApps(appId, derivedAccountId, options.platformVersion, projectConfig);
170
- const { proceed, appIdToMigrate } = await selectAppToMigrate(allApps, derivedAccountId, appId);
181
+ const { hasMigratableThemes, migratableThemesCount } = await getHasMigratableThemes(projectConfig);
182
+ const { migratableApps, unmigratableApps } = await fetchMigrationApps(derivedAccountId, options.platformVersion, projectConfig);
183
+ SpinniesManager.remove('checkingForMigratableComponents');
184
+ await validateMigrationAppsAndThemes(appId, derivedAccountId, { migratableApps, unmigratableApps }, hasMigratableThemes, projectConfig);
185
+ const allApps = [...migratableApps, ...unmigratableApps];
186
+ let proceed = false;
187
+ let appIdToMigrate;
188
+ if (hasMigratableThemes) {
189
+ uiLogger.log(lib.migrate.prompt.themesMigration(migratableThemesCount));
190
+ proceed = await confirmPrompt(lib.migrate.prompt.proceed, {
191
+ defaultAnswer: false,
192
+ });
193
+ }
194
+ else {
195
+ const appSelectionPrompt = await selectAppToMigrate(allApps, derivedAccountId, appId);
196
+ appIdToMigrate = appSelectionPrompt.appIdToMigrate;
197
+ proceed = appSelectionPrompt.proceed;
198
+ }
171
199
  if (!proceed) {
172
200
  return {};
173
201
  }
174
202
  // If it's a project we don't want to prompt for dest and name, so just return early
203
+ // Theme migrations can only be initiated from the project directory
175
204
  if (projectConfig &&
176
205
  projectConfig?.projectConfig &&
177
206
  projectConfig?.projectDir) {
178
207
  return {
179
208
  appIdToMigrate,
209
+ isThemesMigration: hasMigratableThemes,
180
210
  projectName: projectConfig.projectConfig.name,
181
211
  projectDest: projectConfig.projectDir,
182
212
  };
183
213
  }
184
214
  const projectName = name ||
185
- (await (0, promptUtils_1.inputPrompt)(en_1.lib.migrate.prompt.inputName, {
215
+ (await inputPrompt(lib.migrate.prompt.inputName, {
186
216
  validate: async (input) => {
187
- const { projectExists } = await (0, ensureProjectExists_1.ensureProjectExists)(derivedAccountId, input, { allowCreate: false, noLogs: true });
217
+ const { projectExists } = await ensureProjectExists(derivedAccountId, input, { allowCreate: false, noLogs: true });
188
218
  if (projectExists) {
189
- return en_1.lib.migrate.errors.project.alreadyExists(input);
219
+ return lib.migrate.errors.project.alreadyExists(input);
190
220
  }
191
221
  return true;
192
222
  },
193
223
  }));
194
- const { projectExists } = await (0, ensureProjectExists_1.ensureProjectExists)(derivedAccountId, projectName, { allowCreate: false, noLogs: true });
224
+ const { projectExists } = await ensureProjectExists(derivedAccountId, projectName, { allowCreate: false, noLogs: true });
195
225
  if (projectExists) {
196
- throw new Error(en_1.lib.migrate.errors.project.alreadyExists(projectName));
226
+ throw new Error(lib.migrate.errors.project.alreadyExists(projectName));
197
227
  }
198
228
  const projectDest = dest ||
199
- (await (0, promptUtils_1.inputPrompt)(en_1.lib.migrate.prompt.inputDest, {
200
- defaultAnswer: path_1.default.resolve((0, path_2.getCwd)(), (0, path_2.sanitizeFileName)(projectName)),
229
+ (await inputPrompt(lib.migrate.prompt.inputDest, {
230
+ defaultAnswer: path.resolve(getCwd(), sanitizeFileName(projectName)),
201
231
  }));
202
232
  return { appIdToMigrate, projectName, projectDest };
203
233
  }
204
- async function beginMigration(derivedAccountId, appId, platformVersion) {
205
- SpinniesManager_1.default.add('beginningMigration', {
206
- text: en_1.lib.migrate.spinners.beginningMigration,
234
+ export async function handleThemesMigration(projectConfig, platformVersion) {
235
+ if (!projectConfig?.projectDir || !projectConfig?.projectConfig?.srcDir) {
236
+ throw new Error(lib.migrate.errors.project.invalidConfig);
237
+ }
238
+ const projectSrcDir = path.resolve(projectConfig.projectDir, projectConfig.projectConfig.srcDir);
239
+ try {
240
+ await migrateThemes(projectConfig.projectDir, projectSrcDir);
241
+ }
242
+ catch (error) {
243
+ debugError(error);
244
+ throw new Error(lib.migrate.errors.project.failedToMigrateThemes);
245
+ }
246
+ const newProjectConfig = { ...projectConfig.projectConfig };
247
+ newProjectConfig.platformVersion = platformVersion;
248
+ const projectConfigPath = path.join(projectConfig.projectDir, PROJECT_CONFIG_FILE);
249
+ const success = writeProjectConfig(projectConfigPath, newProjectConfig);
250
+ if (!success) {
251
+ throw new Error(lib.migrate.errors.project.failedToUpdateProjectConfig);
252
+ }
253
+ uiLogger.log('');
254
+ uiLogger.log(lib.migrate.success.themesMigrationSuccess(platformVersion));
255
+ }
256
+ export async function beginAppMigration(derivedAccountId, appId, platformVersion) {
257
+ SpinniesManager.add('beginningMigration', {
258
+ text: lib.migrate.spinners.beginningMigration,
207
259
  });
208
260
  const uidMap = {};
209
- const { data } = await (0, migrate_1.initializeMigration)(derivedAccountId, appId, platformVersion);
261
+ const { data } = await initializeAppMigration(derivedAccountId, appId, platformVersion);
210
262
  const { migrationId } = data;
211
263
  let pollResponse;
212
264
  try {
213
265
  pollResponse = await pollMigrationStatus(derivedAccountId, migrationId, [
214
- Migration_1.MIGRATION_STATUS.INPUT_REQUIRED,
266
+ MIGRATION_STATUS.INPUT_REQUIRED,
215
267
  ]);
216
268
  }
217
269
  catch (error) {
218
- SpinniesManager_1.default.fail('beginningMigration', {
219
- text: en_1.lib.migrate.spinners.unableToStartMigration,
270
+ SpinniesManager.fail('beginningMigration', {
271
+ text: lib.migrate.spinners.unableToStartMigration,
220
272
  });
221
- if ((0, migrate_1.isMigrationStatus)(error) && error.status === Migration_1.MIGRATION_STATUS.FAILURE) {
273
+ if (isMigrationStatus(error) && error.status === MIGRATION_STATUS.FAILURE) {
222
274
  throw new Error(buildErrorMessageFromMigrationStatus(error));
223
275
  }
224
- throw new Error(en_1.lib.migrate.errors.migrationFailed, {
276
+ throw new Error(lib.migrate.errors.migrationFailed, {
225
277
  cause: error,
226
278
  });
227
279
  }
228
- if (pollResponse.status !== Migration_1.MIGRATION_STATUS.INPUT_REQUIRED) {
229
- SpinniesManager_1.default.fail('beginningMigration', {
230
- text: en_1.lib.migrate.spinners.unableToStartMigration,
280
+ if (pollResponse.status !== MIGRATION_STATUS.INPUT_REQUIRED) {
281
+ SpinniesManager.fail('beginningMigration', {
282
+ text: lib.migrate.spinners.unableToStartMigration,
231
283
  });
232
284
  return;
233
285
  }
234
286
  const { componentsRequiringUids } = pollResponse;
235
- SpinniesManager_1.default.remove('beginningMigration');
287
+ SpinniesManager.remove('beginningMigration');
236
288
  if (Object.values(componentsRequiringUids).length !== 0) {
237
289
  for (const [componentId, component] of Object.entries(componentsRequiringUids)) {
238
290
  const { componentHint, componentType } = component;
@@ -248,11 +300,11 @@ async function beginMigration(derivedAccountId, appId, platformVersion) {
248
300
  internalId = componentId;
249
301
  }
250
302
  const promptText = componentHint
251
- ? `${(0, transform_1.mapToUserFacingType)(componentType)} '${componentHint}' (ID: ${internalId})`
252
- : `${(0, transform_1.mapToUserFacingType)(componentType)} (ID: ${internalId})`;
253
- uidMap[componentId] = await (0, promptUtils_1.inputPrompt)(en_1.lib.migrate.prompt.uidForComponent(promptText), {
303
+ ? `${mapToUserFacingType(componentType)} '${componentHint}' (ID: ${internalId})`
304
+ : `${mapToUserFacingType(componentType)} (ID: ${internalId})`;
305
+ uidMap[componentId] = await inputPrompt(lib.migrate.prompt.uidForComponent(promptText), {
254
306
  validate: (uid) => {
255
- const result = (0, project_parsing_lib_1.validateUid)(uid);
307
+ const result = validateUid(uid);
256
308
  return result === undefined ? true : result;
257
309
  },
258
310
  defaultAnswer: componentHint
@@ -263,113 +315,117 @@ async function beginMigration(derivedAccountId, appId, platformVersion) {
263
315
  }
264
316
  return { migrationId, uidMap };
265
317
  }
266
- async function pollMigrationStatus(derivedAccountId, migrationId, successStates = []) {
267
- return (0, polling_1.poll)(() => (0, migrate_1.checkMigrationStatusV2)(derivedAccountId, migrationId), {
318
+ export async function pollMigrationStatus(derivedAccountId, migrationId, successStates = []) {
319
+ return poll(() => checkMigrationStatusV2(derivedAccountId, migrationId), {
268
320
  successStates: [...successStates],
269
- errorStates: [...polling_1.DEFAULT_POLLING_STATUS_LOOKUP.errorStates],
321
+ errorStates: [...DEFAULT_POLLING_STATUS_LOOKUP.errorStates],
270
322
  });
271
323
  }
272
- async function finalizeMigration(derivedAccountId, migrationId, uidMap, projectName) {
324
+ export async function finalizeAppMigration(derivedAccountId, migrationId, uidMap, projectName) {
273
325
  let pollResponse;
274
326
  try {
275
- SpinniesManager_1.default.add('finishingMigration', {
276
- text: en_1.lib.migrate.spinners.finishingMigration,
327
+ SpinniesManager.add('finishingMigration', {
328
+ text: lib.migrate.spinners.finishingMigration,
277
329
  });
278
- await (0, migrate_1.continueMigration)(derivedAccountId, migrationId, uidMap, projectName);
330
+ await continueAppMigration(derivedAccountId, migrationId, uidMap, projectName);
279
331
  pollResponse = await pollMigrationStatus(derivedAccountId, migrationId, [
280
- Migration_1.MIGRATION_STATUS.SUCCESS,
332
+ MIGRATION_STATUS.SUCCESS,
281
333
  ]);
282
334
  }
283
335
  catch (error) {
284
- SpinniesManager_1.default.fail('finishingMigration', {
285
- text: en_1.lib.migrate.spinners.migrationFailed,
336
+ SpinniesManager.fail('finishingMigration', {
337
+ text: lib.migrate.spinners.migrationFailed,
286
338
  });
287
- if ((0, migrate_1.isMigrationStatus)(error) && error.status === Migration_1.MIGRATION_STATUS.FAILURE) {
339
+ if (isMigrationStatus(error) && error.status === MIGRATION_STATUS.FAILURE) {
288
340
  throw new Error(buildErrorMessageFromMigrationStatus(error));
289
341
  }
290
- throw new Error(en_1.lib.migrate.errors.migrationFailed, {
342
+ throw new Error(lib.migrate.errors.migrationFailed, {
291
343
  cause: error,
292
344
  });
293
345
  }
294
- if (pollResponse.status !== Migration_1.MIGRATION_STATUS.SUCCESS) {
295
- throw new Error(en_1.lib.migrate.errors.migrationFailed);
346
+ if (pollResponse.status !== MIGRATION_STATUS.SUCCESS) {
347
+ throw new Error(lib.migrate.errors.migrationFailed);
296
348
  }
297
- if (pollResponse.status === Migration_1.MIGRATION_STATUS.SUCCESS) {
298
- SpinniesManager_1.default.succeed('finishingMigration', {
299
- text: en_1.lib.migrate.spinners.migrationComplete,
349
+ if (pollResponse.status === MIGRATION_STATUS.SUCCESS) {
350
+ SpinniesManager.succeed('finishingMigration', {
351
+ text: lib.migrate.spinners.migrationComplete,
300
352
  });
301
353
  }
302
354
  return pollResponse.buildId;
303
355
  }
304
- async function downloadProjectFiles(derivedAccountId, projectName, buildId, projectDest, projectConfig) {
356
+ export async function downloadProjectFiles(derivedAccountId, projectName, buildId, projectDest, projectConfig) {
305
357
  try {
306
- SpinniesManager_1.default.add('fetchingMigratedProject', {
307
- text: en_1.lib.migrate.spinners.downloadingProjectContents,
358
+ SpinniesManager.add('fetchingMigratedProject', {
359
+ text: lib.migrate.spinners.downloadingProjectContents,
308
360
  });
309
- const { data: zippedProject } = await (0, projects_2.downloadProject)(derivedAccountId, projectName, buildId);
361
+ const { data: zippedProject } = await downloadProject(derivedAccountId, projectName, buildId);
310
362
  let absoluteDestPath;
311
363
  if (projectConfig?.projectConfig && projectConfig?.projectDir) {
312
364
  const { projectDir } = projectConfig;
313
365
  absoluteDestPath = projectDir;
314
366
  const { srcDir } = projectConfig.projectConfig;
315
- const archiveDest = path_1.default.join(projectDir, 'archive');
367
+ const archiveDest = path.join(projectDir, 'archive');
316
368
  // Move the existing source directory to archive
317
- fs_1.default.renameSync(path_1.default.join(projectDir, srcDir), archiveDest);
318
- logger_1.uiLogger.info(en_1.lib.migrate.sourceContentsMoved(archiveDest));
369
+ fs.renameSync(path.join(projectDir, srcDir), archiveDest);
370
+ uiLogger.info(lib.migrate.sourceContentsMoved(archiveDest));
319
371
  }
320
372
  else {
321
373
  absoluteDestPath = projectDest
322
- ? path_1.default.resolve((0, path_2.getCwd)(), projectDest)
323
- : (0, path_2.getCwd)();
374
+ ? path.resolve(getCwd(), projectDest)
375
+ : getCwd();
324
376
  }
325
- await (0, archive_1.extractZipArchive)(zippedProject, (0, path_2.sanitizeFileName)(projectName), absoluteDestPath, {
377
+ await extractZipArchive(zippedProject, sanitizeFileName(projectName), absoluteDestPath, {
326
378
  includesRootDir: true,
327
379
  hideLogs: true,
328
380
  });
329
- SpinniesManager_1.default.succeed('fetchingMigratedProject', {
330
- text: en_1.lib.migrate.spinners.downloadingProjectContentsComplete,
381
+ SpinniesManager.succeed('fetchingMigratedProject', {
382
+ text: lib.migrate.spinners.downloadingProjectContentsComplete,
331
383
  });
332
- logger_1.uiLogger.success(`Saved ${projectName} to ${projectDest}`);
384
+ uiLogger.success(lib.migrate.success.downloadedProject(projectName, projectDest));
333
385
  }
334
386
  catch (error) {
335
- SpinniesManager_1.default.fail('fetchingMigratedProject', {
336
- text: en_1.lib.migrate.spinners.downloadingProjectContentsFailed,
387
+ SpinniesManager.fail('fetchingMigratedProject', {
388
+ text: lib.migrate.spinners.downloadingProjectContentsFailed,
337
389
  });
338
390
  throw error;
339
391
  }
340
392
  }
341
- async function migrateApp2025_2(derivedAccountId, options, projectConfig) {
342
- SpinniesManager_1.default.init();
343
- const ungatedForUnifiedApps = await (0, hasFeature_1.hasFeature)(derivedAccountId, constants_1.FEATURES.UNIFIED_APPS);
393
+ export async function migrateApp2025_2(derivedAccountId, options, projectConfig) {
394
+ SpinniesManager.init();
395
+ const ungatedForUnifiedApps = await hasUnfiedAppsAccess(derivedAccountId);
344
396
  if (!ungatedForUnifiedApps) {
345
- throw new Error(en_1.lib.migrate.errors.notUngatedForUnifiedApps((0, ui_1.uiAccountDescription)(derivedAccountId)));
397
+ throw new Error(lib.migrate.errors.notUngatedForUnifiedApps(uiAccountDescription(derivedAccountId)));
346
398
  }
347
399
  if (projectConfig) {
348
400
  if (!projectConfig?.projectConfig || !projectConfig?.projectDir) {
349
- throw new Error(en_1.lib.migrate.errors.project.invalidConfig);
401
+ throw new Error(lib.migrate.errors.project.invalidConfig);
350
402
  }
351
- const { projectExists } = await (0, ensureProjectExists_1.ensureProjectExists)(derivedAccountId, projectConfig.projectConfig.name, { allowCreate: false, noLogs: true });
403
+ const { projectExists } = await ensureProjectExists(derivedAccountId, projectConfig.projectConfig.name, { allowCreate: false, noLogs: true });
352
404
  if (!projectExists) {
353
- throw new Error(en_1.lib.migrate.errors.project.doesNotExist(derivedAccountId));
405
+ throw new Error(lib.migrate.errors.project.doesNotExist(derivedAccountId));
354
406
  }
355
407
  }
356
- const { appIdToMigrate, projectName, projectDest } = await handleMigrationSetup(derivedAccountId, options, projectConfig);
408
+ const { appIdToMigrate, projectName, projectDest, isThemesMigration } = await handleMigrationSetup(derivedAccountId, options, projectConfig);
409
+ if (isThemesMigration) {
410
+ await handleThemesMigration(projectConfig, options.platformVersion);
411
+ return;
412
+ }
357
413
  if (!appIdToMigrate || !projectName || !projectDest) {
358
414
  return;
359
415
  }
360
- const migrationInProgress = await beginMigration(derivedAccountId, appIdToMigrate, options.platformVersion);
416
+ const migrationInProgress = await beginAppMigration(derivedAccountId, appIdToMigrate, options.platformVersion);
361
417
  if (!migrationInProgress) {
362
418
  return;
363
419
  }
364
420
  const { migrationId, uidMap } = migrationInProgress;
365
- const buildId = await finalizeMigration(derivedAccountId, migrationId, uidMap, projectConfig?.projectConfig?.name || projectName);
421
+ const buildId = await finalizeAppMigration(derivedAccountId, migrationId, uidMap, projectConfig?.projectConfig?.name || projectName);
366
422
  await downloadProjectFiles(derivedAccountId, projectName, buildId, projectDest, projectConfig);
367
- logger_1.uiLogger.log((0, ui_1.uiLink)('Project Details', (0, urls_1.getProjectDetailUrl)(projectName, derivedAccountId)));
368
- logger_1.uiLogger.log((0, ui_1.uiLink)('Build Details', (0, urls_1.getProjectBuildDetailUrl)(projectName, buildId, derivedAccountId)));
423
+ uiLogger.log(uiLink('Project Details', getProjectDetailUrl(projectName, derivedAccountId)));
424
+ uiLogger.log(uiLink('Build Details', getProjectBuildDetailUrl(projectName, buildId, derivedAccountId)));
369
425
  }
370
- function logInvalidAccountError() {
371
- (0, ui_1.uiLine)();
372
- logger_1.uiLogger.error(en_1.lib.migrate.errors.invalidAccountTypeTitle);
373
- logger_1.uiLogger.log(en_1.lib.migrate.errors.invalidAccountTypeDescription((0, ui_1.uiCommandReference)('hs account use'), (0, ui_1.uiCommandReference)('hs auth')));
374
- (0, ui_1.uiLine)();
426
+ export function logInvalidAccountError() {
427
+ uiLine();
428
+ uiLogger.error(lib.migrate.errors.invalidAccountTypeTitle);
429
+ uiLogger.log(lib.migrate.errors.invalidAccountTypeDescription(uiCommandReference('hs account use'), uiCommandReference('hs auth')));
430
+ uiLine();
375
431
  }
@@ -1,4 +1,4 @@
1
1
  import { CLIAccount } from '@hubspot/local-dev-lib/types/Accounts';
2
2
  import { ArgumentsCamelCase } from 'yargs';
3
- import { MigrateAppArgs } from './migrate';
3
+ import { MigrateAppArgs } from './migrate.js';
4
4
  export declare function migrateApp2023_2(derivedAccountId: number, options: ArgumentsCamelCase<MigrateAppArgs>, accountConfig: CLIAccount): Promise<void>;