@hubspot/cli 7.7.0-experimental.2 → 7.7.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 (858) hide show
  1. package/README.md +0 -4
  2. package/api/__tests__/migrate.test.js +181 -0
  3. package/api/migrate.d.ts +10 -4
  4. package/api/migrate.js +14 -22
  5. package/bin/cli.js +60 -53
  6. package/bin/hs +2 -2
  7. package/bin/hscms +2 -2
  8. package/bin/silenceErrors.js +1 -2
  9. package/commands/__tests__/account.test.d.ts +1 -0
  10. package/commands/__tests__/account.test.js +69 -0
  11. package/commands/__tests__/auth.test.d.ts +1 -0
  12. package/commands/__tests__/auth.test.js +38 -0
  13. package/commands/__tests__/cms.test.d.ts +1 -0
  14. package/commands/__tests__/cms.test.js +44 -0
  15. package/commands/__tests__/config.test.d.ts +1 -0
  16. package/commands/__tests__/config.test.js +44 -0
  17. package/commands/__tests__/create.test.d.ts +1 -0
  18. package/commands/__tests__/create.test.js +53 -0
  19. package/commands/__tests__/customObject.test.d.ts +1 -0
  20. package/commands/__tests__/customObject.test.js +49 -0
  21. package/commands/__tests__/doctor.test.d.ts +1 -0
  22. package/commands/__tests__/doctor.test.js +134 -0
  23. package/commands/__tests__/feedback.test.d.ts +1 -0
  24. package/commands/__tests__/feedback.test.js +24 -0
  25. package/commands/__tests__/fetch.test.d.ts +1 -0
  26. package/commands/__tests__/fetch.test.js +57 -0
  27. package/commands/__tests__/filemanager.test.d.ts +1 -0
  28. package/commands/__tests__/filemanager.test.js +45 -0
  29. package/commands/__tests__/function.test.d.ts +1 -0
  30. package/commands/__tests__/function.test.js +46 -0
  31. package/commands/__tests__/getStarted.test.d.ts +1 -0
  32. package/commands/__tests__/getStarted.test.js +155 -0
  33. package/commands/__tests__/hubdb.test.d.ts +1 -0
  34. package/commands/__tests__/hubdb.test.js +50 -0
  35. package/commands/__tests__/init.test.d.ts +1 -0
  36. package/commands/__tests__/init.test.js +42 -0
  37. package/commands/__tests__/lint.test.d.ts +1 -0
  38. package/commands/__tests__/lint.test.js +33 -0
  39. package/commands/__tests__/list.test.d.ts +1 -0
  40. package/commands/__tests__/list.test.js +42 -0
  41. package/commands/__tests__/logs.test.d.ts +1 -0
  42. package/commands/__tests__/logs.test.js +71 -0
  43. package/commands/__tests__/mcp.test.d.ts +1 -0
  44. package/commands/__tests__/mcp.test.js +46 -0
  45. package/commands/__tests__/mv.test.d.ts +1 -0
  46. package/commands/__tests__/mv.test.js +46 -0
  47. package/commands/__tests__/open.test.d.ts +1 -0
  48. package/commands/__tests__/open.test.js +58 -0
  49. package/commands/__tests__/project.test.d.ts +1 -0
  50. package/commands/__tests__/project.test.js +92 -0
  51. package/commands/__tests__/remove.test.d.ts +1 -0
  52. package/commands/__tests__/remove.test.js +39 -0
  53. package/commands/__tests__/sandbox.test.d.ts +1 -0
  54. package/commands/__tests__/sandbox.test.js +44 -0
  55. package/commands/__tests__/secret.test.d.ts +1 -0
  56. package/commands/__tests__/secret.test.js +49 -0
  57. package/commands/__tests__/testAccount.test.d.ts +1 -0
  58. package/commands/__tests__/testAccount.test.js +57 -0
  59. package/commands/__tests__/theme.test.d.ts +1 -0
  60. package/commands/__tests__/theme.test.js +47 -0
  61. package/commands/account/__tests__/auth.test.d.ts +1 -0
  62. package/commands/account/__tests__/auth.test.js +26 -0
  63. package/commands/account/__tests__/clean.test.d.ts +1 -0
  64. package/commands/account/__tests__/clean.test.js +28 -0
  65. package/commands/account/__tests__/createOverride.test.d.ts +1 -0
  66. package/commands/account/__tests__/createOverride.test.js +32 -0
  67. package/commands/account/__tests__/info.test.d.ts +1 -0
  68. package/commands/account/__tests__/info.test.js +28 -0
  69. package/commands/account/__tests__/list.test.d.ts +1 -0
  70. package/commands/account/__tests__/list.test.js +28 -0
  71. package/commands/account/__tests__/remove.test.d.ts +1 -0
  72. package/commands/account/__tests__/remove.test.js +36 -0
  73. package/commands/account/__tests__/removeOverride.d.ts +1 -0
  74. package/commands/account/__tests__/removeOverride.js +25 -0
  75. package/commands/account/__tests__/rename.test.d.ts +1 -0
  76. package/commands/account/__tests__/rename.test.js +42 -0
  77. package/commands/account/__tests__/use.test.d.ts +1 -0
  78. package/commands/account/__tests__/use.test.js +32 -0
  79. package/commands/account/auth.d.ts +3 -1
  80. package/commands/account/auth.js +109 -123
  81. package/commands/account/clean.d.ts +1 -1
  82. package/commands/account/clean.js +55 -60
  83. package/commands/account/createOverride.d.ts +1 -1
  84. package/commands/account/createOverride.js +52 -57
  85. package/commands/account/info.d.ts +1 -1
  86. package/commands/account/info.js +33 -35
  87. package/commands/account/list.d.ts +1 -1
  88. package/commands/account/list.js +43 -45
  89. package/commands/account/remove.d.ts +1 -1
  90. package/commands/account/remove.js +37 -42
  91. package/commands/account/removeOverride.d.ts +1 -1
  92. package/commands/account/removeOverride.js +38 -43
  93. package/commands/account/rename.d.ts +1 -1
  94. package/commands/account/rename.js +18 -20
  95. package/commands/account/use.d.ts +1 -1
  96. package/commands/account/use.js +29 -31
  97. package/commands/account.d.ts +1 -1
  98. package/commands/account.js +23 -30
  99. package/commands/app/__tests__/migrate.test.d.ts +1 -0
  100. package/commands/app/__tests__/migrate.test.js +124 -0
  101. package/commands/app/migrate.d.ts +2 -2
  102. package/commands/app/migrate.js +41 -45
  103. package/commands/app/secret/__tests__/add.test.d.ts +1 -0
  104. package/commands/app/secret/__tests__/add.test.js +28 -0
  105. package/commands/app/secret/__tests__/delete.test.d.ts +1 -0
  106. package/commands/app/secret/__tests__/delete.test.js +28 -0
  107. package/commands/app/secret/__tests__/list.test.d.ts +1 -0
  108. package/commands/app/secret/__tests__/list.test.js +25 -0
  109. package/commands/app/secret/__tests__/update.test.d.ts +1 -0
  110. package/commands/app/secret/__tests__/update.test.js +28 -0
  111. package/commands/app/secret/add.d.ts +1 -1
  112. package/commands/app/secret/add.js +29 -30
  113. package/commands/app/secret/delete.d.ts +1 -1
  114. package/commands/app/secret/delete.js +35 -36
  115. package/commands/app/secret/list.d.ts +1 -1
  116. package/commands/app/secret/list.js +26 -27
  117. package/commands/app/secret/update.d.ts +1 -1
  118. package/commands/app/secret/update.js +33 -34
  119. package/commands/app/secret.d.ts +1 -1
  120. package/commands/app/secret.js +14 -18
  121. package/commands/app.d.ts +1 -1
  122. package/commands/app.js +8 -15
  123. package/commands/auth.d.ts +3 -1
  124. package/commands/auth.js +89 -99
  125. package/commands/cms/convertFields.d.ts +1 -1
  126. package/commands/cms/convertFields.js +34 -39
  127. package/commands/cms/getReactModule.d.ts +1 -1
  128. package/commands/cms/getReactModule.js +32 -37
  129. package/commands/cms/lighthouseScore.d.ts +1 -1
  130. package/commands/cms/lighthouseScore.js +67 -72
  131. package/commands/cms.d.ts +1 -1
  132. package/commands/cms.js +11 -18
  133. package/commands/completion.d.ts +1 -1
  134. package/commands/completion.js +10 -17
  135. package/commands/config/migrate.d.ts +1 -1
  136. package/commands/config/migrate.js +29 -53
  137. package/commands/config/set.d.ts +3 -2
  138. package/commands/config/set.js +88 -49
  139. package/commands/config.d.ts +1 -1
  140. package/commands/config.js +8 -15
  141. package/commands/create/api-sample.d.ts +1 -1
  142. package/commands/create/api-sample.js +28 -33
  143. package/commands/create/app.d.ts +1 -1
  144. package/commands/create/app.js +3 -5
  145. package/commands/create/function.d.ts +1 -1
  146. package/commands/create/function.js +10 -12
  147. package/commands/create/index.d.ts +1 -1
  148. package/commands/create/index.js +19 -24
  149. package/commands/create/module.d.ts +1 -1
  150. package/commands/create/module.js +13 -15
  151. package/commands/create/react-app.d.ts +1 -1
  152. package/commands/create/react-app.js +3 -5
  153. package/commands/create/template.d.ts +1 -1
  154. package/commands/create/template.js +13 -15
  155. package/commands/create/vue-app.d.ts +1 -1
  156. package/commands/create/vue-app.js +3 -5
  157. package/commands/create/webpack-serverless.d.ts +1 -1
  158. package/commands/create/webpack-serverless.js +3 -5
  159. package/commands/create/website-theme.d.ts +1 -1
  160. package/commands/create/website-theme.js +5 -7
  161. package/commands/create.d.ts +2 -2
  162. package/commands/create.js +77 -37
  163. package/commands/customObject/__tests__/create.test.d.ts +1 -0
  164. package/commands/customObject/__tests__/create.test.js +40 -0
  165. package/commands/customObject/__tests__/schema.test.d.ts +1 -0
  166. package/commands/customObject/__tests__/schema.test.js +53 -0
  167. package/commands/customObject/create.d.ts +1 -1
  168. package/commands/customObject/create.js +28 -30
  169. package/commands/customObject/schema/__tests__/create.test.d.ts +1 -0
  170. package/commands/customObject/schema/__tests__/create.test.js +28 -0
  171. package/commands/customObject/schema/__tests__/delete.test.d.ts +1 -0
  172. package/commands/customObject/schema/__tests__/delete.test.js +42 -0
  173. package/commands/customObject/schema/__tests__/fetch-all.test.d.ts +1 -0
  174. package/commands/customObject/schema/__tests__/fetch-all.test.js +41 -0
  175. package/commands/customObject/schema/__tests__/fetch.test.d.ts +1 -0
  176. package/commands/customObject/schema/__tests__/fetch.test.js +45 -0
  177. package/commands/customObject/schema/__tests__/list.test.d.ts +1 -0
  178. package/commands/customObject/schema/__tests__/list.test.js +29 -0
  179. package/commands/customObject/schema/__tests__/update.test.d.ts +1 -0
  180. package/commands/customObject/schema/__tests__/update.test.js +40 -0
  181. package/commands/customObject/schema/create.d.ts +1 -1
  182. package/commands/customObject/schema/create.js +28 -30
  183. package/commands/customObject/schema/delete.d.ts +1 -1
  184. package/commands/customObject/schema/delete.js +24 -26
  185. package/commands/customObject/schema/fetch-all.d.ts +1 -1
  186. package/commands/customObject/schema/fetch-all.js +22 -24
  187. package/commands/customObject/schema/fetch.d.ts +1 -1
  188. package/commands/customObject/schema/fetch.js +24 -26
  189. package/commands/customObject/schema/list.d.ts +1 -1
  190. package/commands/customObject/schema/list.js +13 -15
  191. package/commands/customObject/schema/update.d.ts +1 -1
  192. package/commands/customObject/schema/update.js +32 -34
  193. package/commands/customObject/schema.d.ts +1 -1
  194. package/commands/customObject/schema.js +17 -22
  195. package/commands/customObject.d.ts +1 -1
  196. package/commands/customObject.js +13 -20
  197. package/commands/doctor.d.ts +1 -1
  198. package/commands/doctor.js +28 -35
  199. package/commands/feedback.d.ts +1 -1
  200. package/commands/feedback.js +18 -25
  201. package/commands/fetch.d.ts +1 -1
  202. package/commands/fetch.js +28 -31
  203. package/commands/filemanager/__tests__/fetch.test.d.ts +1 -0
  204. package/commands/filemanager/__tests__/fetch.test.js +32 -0
  205. package/commands/filemanager/__tests__/upload.test.d.ts +1 -0
  206. package/commands/filemanager/__tests__/upload.test.js +30 -0
  207. package/commands/filemanager/fetch.d.ts +1 -1
  208. package/commands/filemanager/fetch.js +23 -25
  209. package/commands/filemanager/upload.d.ts +1 -1
  210. package/commands/filemanager/upload.js +39 -44
  211. package/commands/filemanager.d.ts +1 -1
  212. package/commands/filemanager.js +8 -15
  213. package/commands/function/deploy.d.ts +1 -1
  214. package/commands/function/deploy.js +35 -40
  215. package/commands/function/list.d.ts +1 -1
  216. package/commands/function/list.js +24 -29
  217. package/commands/function/server.d.ts +1 -1
  218. package/commands/function/server.js +15 -17
  219. package/commands/function.d.ts +1 -1
  220. package/commands/function.js +12 -20
  221. package/commands/getStarted.d.ts +7 -0
  222. package/commands/getStarted.js +296 -0
  223. package/commands/hubdb/__tests__/clear.test.d.ts +1 -0
  224. package/commands/hubdb/__tests__/clear.test.js +28 -0
  225. package/commands/hubdb/__tests__/create.test.d.ts +1 -0
  226. package/commands/hubdb/__tests__/create.test.js +28 -0
  227. package/commands/hubdb/__tests__/delete.test.d.ts +1 -0
  228. package/commands/hubdb/__tests__/delete.test.js +28 -0
  229. package/commands/hubdb/__tests__/fetch.test.d.ts +1 -0
  230. package/commands/hubdb/__tests__/fetch.test.js +28 -0
  231. package/commands/hubdb/__tests__/list.test.d.ts +1 -0
  232. package/commands/hubdb/__tests__/list.test.js +96 -0
  233. package/commands/hubdb/clear.d.ts +1 -1
  234. package/commands/hubdb/clear.js +20 -22
  235. package/commands/hubdb/create.d.ts +1 -1
  236. package/commands/hubdb/create.js +30 -35
  237. package/commands/hubdb/delete.d.ts +1 -1
  238. package/commands/hubdb/delete.js +24 -26
  239. package/commands/hubdb/fetch.d.ts +1 -1
  240. package/commands/hubdb/fetch.js +17 -19
  241. package/commands/hubdb/list.d.ts +4 -0
  242. package/commands/hubdb/list.js +81 -0
  243. package/commands/hubdb.d.ts +1 -1
  244. package/commands/hubdb.js +18 -24
  245. package/commands/init.d.ts +1 -1
  246. package/commands/init.js +96 -102
  247. package/commands/lint.d.ts +1 -1
  248. package/commands/lint.js +24 -28
  249. package/commands/list.d.ts +1 -1
  250. package/commands/list.js +32 -39
  251. package/commands/logs.d.ts +1 -1
  252. package/commands/logs.js +35 -38
  253. package/commands/mcp/__tests__/setup.test.d.ts +1 -0
  254. package/commands/mcp/__tests__/setup.test.js +26 -0
  255. package/commands/mcp/__tests__/start.test.d.ts +1 -0
  256. package/commands/mcp/__tests__/start.test.js +27 -0
  257. package/commands/mcp/setup.d.ts +6 -0
  258. package/commands/mcp/setup.js +52 -0
  259. package/commands/mcp/start.d.ts +6 -0
  260. package/commands/mcp/start.js +80 -0
  261. package/commands/mcp.d.ts +3 -0
  262. package/commands/mcp.js +21 -0
  263. package/commands/module/marketplace-validate.d.ts +1 -1
  264. package/commands/module/marketplace-validate.js +21 -28
  265. package/commands/module.d.ts +1 -1
  266. package/commands/module.js +7 -12
  267. package/commands/mv.d.ts +1 -1
  268. package/commands/mv.js +20 -24
  269. package/commands/open.d.ts +1 -1
  270. package/commands/open.js +29 -31
  271. package/commands/project/__tests__/add.test.d.ts +1 -0
  272. package/commands/project/__tests__/add.test.js +107 -0
  273. package/commands/project/__tests__/create.test.d.ts +1 -0
  274. package/commands/project/__tests__/create.test.js +97 -0
  275. package/commands/project/__tests__/deploy.test.d.ts +1 -0
  276. package/commands/project/__tests__/deploy.test.js +306 -0
  277. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +1 -0
  278. package/commands/project/__tests__/devUnifiedFlow.test.js +403 -0
  279. package/commands/project/__tests__/download.test.d.ts +1 -0
  280. package/commands/project/__tests__/download.test.js +39 -0
  281. package/commands/project/__tests__/fixtures/exampleProject.json +33 -0
  282. package/commands/project/__tests__/installDeps.test.d.ts +1 -0
  283. package/commands/project/__tests__/installDeps.test.js +142 -0
  284. package/commands/project/__tests__/listBuilds.test.d.ts +1 -0
  285. package/commands/project/__tests__/listBuilds.test.js +38 -0
  286. package/commands/project/__tests__/logs.test.d.ts +1 -0
  287. package/commands/project/__tests__/logs.test.js +205 -0
  288. package/commands/project/__tests__/migrate.test.d.ts +1 -0
  289. package/commands/project/__tests__/migrate.test.js +110 -0
  290. package/commands/project/__tests__/migrateApp.test.d.ts +1 -0
  291. package/commands/project/__tests__/migrateApp.test.js +81 -0
  292. package/commands/project/__tests__/open.test.d.ts +1 -0
  293. package/commands/project/__tests__/open.test.js +39 -0
  294. package/commands/project/__tests__/profile.test.d.ts +1 -0
  295. package/commands/project/__tests__/profile.test.js +42 -0
  296. package/commands/project/__tests__/upload.test.d.ts +1 -0
  297. package/commands/project/__tests__/upload.test.js +43 -0
  298. package/commands/project/__tests__/validate.test.d.ts +1 -0
  299. package/commands/project/__tests__/validate.test.js +98 -0
  300. package/commands/project/__tests__/watch.test.d.ts +1 -0
  301. package/commands/project/__tests__/watch.test.js +35 -0
  302. package/commands/project/add.d.ts +7 -4
  303. package/commands/project/add.js +47 -92
  304. package/commands/project/cloneApp.d.ts +1 -1
  305. package/commands/project/cloneApp.js +69 -74
  306. package/commands/project/create.d.ts +2 -8
  307. package/commands/project/create.js +109 -86
  308. package/commands/project/deploy.d.ts +4 -2
  309. package/commands/project/deploy.js +103 -95
  310. package/commands/project/dev/deprecatedFlow.d.ts +10 -4
  311. package/commands/project/dev/deprecatedFlow.js +61 -58
  312. package/commands/project/dev/index.d.ts +1 -1
  313. package/commands/project/dev/index.js +103 -60
  314. package/commands/project/dev/unifiedFlow.d.ts +13 -5
  315. package/commands/project/dev/unifiedFlow.js +90 -103
  316. package/commands/project/download.d.ts +1 -1
  317. package/commands/project/download.js +34 -40
  318. package/commands/project/installDeps.d.ts +1 -1
  319. package/commands/project/installDeps.js +28 -34
  320. package/commands/project/listBuilds.d.ts +1 -1
  321. package/commands/project/listBuilds.js +40 -48
  322. package/commands/project/logs.d.ts +1 -1
  323. package/commands/project/logs.js +52 -54
  324. package/commands/project/migrate.d.ts +1 -1
  325. package/commands/project/migrate.js +60 -34
  326. package/commands/project/migrateApp.d.ts +2 -2
  327. package/commands/project/migrateApp.js +19 -22
  328. package/commands/project/open.d.ts +1 -1
  329. package/commands/project/open.js +24 -30
  330. package/commands/project/profile/add.d.ts +1 -1
  331. package/commands/project/profile/add.js +68 -73
  332. package/commands/project/profile/delete.d.ts +1 -1
  333. package/commands/project/profile/delete.js +67 -61
  334. package/commands/project/profile.d.ts +1 -1
  335. package/commands/project/profile.js +9 -15
  336. package/commands/project/upload.d.ts +2 -2
  337. package/commands/project/upload.js +63 -73
  338. package/commands/project/validate.d.ts +4 -2
  339. package/commands/project/validate.js +60 -35
  340. package/commands/project/watch.d.ts +1 -1
  341. package/commands/project/watch.js +59 -61
  342. package/commands/project.d.ts +1 -1
  343. package/commands/project.js +37 -45
  344. package/commands/remove.d.ts +1 -1
  345. package/commands/remove.js +15 -25
  346. package/commands/sandbox/__tests__/create.test.d.ts +1 -0
  347. package/commands/sandbox/__tests__/create.test.js +238 -0
  348. package/commands/sandbox/__tests__/delete.test.d.ts +1 -0
  349. package/commands/sandbox/__tests__/delete.test.js +31 -0
  350. package/commands/sandbox/create.d.ts +2 -2
  351. package/commands/sandbox/create.js +92 -79
  352. package/commands/sandbox/delete.d.ts +1 -1
  353. package/commands/sandbox/delete.js +98 -100
  354. package/commands/sandbox.d.ts +1 -1
  355. package/commands/sandbox.js +9 -16
  356. package/commands/secret/__tests__/addSecret.test.d.ts +1 -0
  357. package/commands/secret/__tests__/addSecret.test.js +29 -0
  358. package/commands/secret/__tests__/deleteSecret.test.d.ts +1 -0
  359. package/commands/secret/__tests__/deleteSecret.test.js +41 -0
  360. package/commands/secret/__tests__/listSecret.test.d.ts +1 -0
  361. package/commands/secret/__tests__/listSecret.test.js +29 -0
  362. package/commands/secret/__tests__/updateSecret.test.d.ts +1 -0
  363. package/commands/secret/__tests__/updateSecret.test.js +29 -0
  364. package/commands/secret/addSecret.d.ts +1 -1
  365. package/commands/secret/addSecret.js +26 -28
  366. package/commands/secret/deleteSecret.d.ts +1 -1
  367. package/commands/secret/deleteSecret.js +27 -29
  368. package/commands/secret/listSecret.d.ts +1 -1
  369. package/commands/secret/listSecret.js +19 -21
  370. package/commands/secret/updateSecret.d.ts +1 -1
  371. package/commands/secret/updateSecret.js +25 -27
  372. package/commands/secret.d.ts +1 -1
  373. package/commands/secret.js +13 -20
  374. package/commands/testAccount/__tests__/create.test.d.ts +1 -0
  375. package/commands/testAccount/__tests__/create.test.js +33 -0
  376. package/commands/testAccount/__tests__/createConfig.test.d.ts +1 -0
  377. package/commands/testAccount/__tests__/createConfig.test.js +32 -0
  378. package/commands/testAccount/__tests__/delete.test.d.ts +1 -0
  379. package/commands/testAccount/__tests__/delete.test.js +29 -0
  380. package/commands/testAccount/__tests__/importData.test.d.ts +1 -0
  381. package/commands/testAccount/__tests__/importData.test.js +93 -0
  382. package/commands/testAccount/create.d.ts +6 -0
  383. package/commands/testAccount/create.js +130 -0
  384. package/commands/testAccount/createConfig.d.ts +8 -0
  385. package/commands/testAccount/createConfig.js +92 -0
  386. package/commands/testAccount/delete.d.ts +7 -0
  387. package/commands/testAccount/delete.js +187 -0
  388. package/commands/testAccount/importData.d.ts +9 -0
  389. package/commands/testAccount/importData.js +61 -0
  390. package/commands/testAccount.d.ts +3 -0
  391. package/commands/testAccount.js +25 -0
  392. package/commands/theme/__tests__/generate-selectors.test.d.ts +1 -0
  393. package/commands/theme/__tests__/generate-selectors.test.js +28 -0
  394. package/commands/theme/__tests__/marketplace-validate.test.d.ts +1 -0
  395. package/commands/theme/__tests__/marketplace-validate.test.js +36 -0
  396. package/commands/theme/__tests__/preview.test.d.ts +1 -0
  397. package/commands/theme/__tests__/preview.test.js +60 -0
  398. package/commands/theme/generate-selectors.d.ts +1 -1
  399. package/commands/theme/generate-selectors.js +23 -31
  400. package/commands/theme/marketplace-validate.d.ts +1 -1
  401. package/commands/theme/marketplace-validate.js +19 -26
  402. package/commands/theme/preview.d.ts +1 -1
  403. package/commands/theme/preview.js +61 -67
  404. package/commands/theme.d.ts +1 -1
  405. package/commands/theme.js +11 -18
  406. package/commands/upload.d.ts +1 -1
  407. package/commands/upload.js +77 -121
  408. package/commands/watch.d.ts +1 -1
  409. package/commands/watch.js +45 -63
  410. package/lang/en.d.ts +653 -237
  411. package/lang/en.js +976 -564
  412. package/lang/en.lyaml +46 -237
  413. package/lib/__tests__/accountTypes.test.d.ts +1 -0
  414. package/lib/__tests__/accountTypes.test.js +98 -0
  415. package/lib/__tests__/buildAccount.test.d.ts +1 -0
  416. package/lib/__tests__/buildAccount.test.js +282 -0
  417. package/lib/__tests__/commonOpts.test.d.ts +1 -0
  418. package/lib/__tests__/commonOpts.test.js +85 -0
  419. package/lib/__tests__/dependencyManagement.test.d.ts +1 -0
  420. package/lib/__tests__/dependencyManagement.test.js +175 -0
  421. package/lib/__tests__/developerTestAccounts.test.d.ts +1 -0
  422. package/lib/__tests__/developerTestAccounts.test.js +145 -0
  423. package/lib/__tests__/hasFeature.test.d.ts +1 -0
  424. package/lib/__tests__/hasFeature.test.js +173 -0
  425. package/lib/__tests__/importData.test.d.ts +1 -0
  426. package/lib/__tests__/importData.test.js +89 -0
  427. package/lib/__tests__/npm.test.d.ts +1 -0
  428. package/lib/__tests__/npm.test.js +57 -0
  429. package/lib/__tests__/oauth.test.d.ts +1 -0
  430. package/lib/__tests__/oauth.test.js +108 -0
  431. package/lib/__tests__/parsing.test.d.ts +1 -0
  432. package/lib/__tests__/parsing.test.js +34 -0
  433. package/lib/__tests__/polling.test.d.ts +1 -0
  434. package/lib/__tests__/polling.test.js +76 -0
  435. package/lib/__tests__/process.test.d.ts +1 -0
  436. package/lib/__tests__/process.test.js +85 -0
  437. package/lib/__tests__/projectProfiles.test.d.ts +1 -0
  438. package/lib/__tests__/projectProfiles.test.js +129 -0
  439. package/lib/__tests__/sandboxSync.test.d.ts +1 -0
  440. package/lib/__tests__/sandboxSync.test.js +126 -0
  441. package/lib/__tests__/sandboxes.test.d.ts +1 -0
  442. package/lib/__tests__/sandboxes.test.js +146 -0
  443. package/lib/__tests__/serverlessLogs.test.d.ts +1 -0
  444. package/lib/__tests__/serverlessLogs.test.js +149 -0
  445. package/lib/__tests__/usageTracking.test.d.ts +1 -0
  446. package/lib/__tests__/usageTracking.test.js +164 -0
  447. package/lib/__tests__/validation.test.d.ts +1 -0
  448. package/lib/__tests__/validation.test.js +143 -0
  449. package/lib/__tests__/yargsUtils.test.d.ts +1 -0
  450. package/lib/__tests__/yargsUtils.test.js +124 -0
  451. package/lib/accountTypes.d.ts +1 -0
  452. package/lib/accountTypes.js +31 -33
  453. package/lib/app/__tests__/migrate.test.d.ts +1 -0
  454. package/lib/app/__tests__/migrate.test.js +498 -0
  455. package/lib/app/__tests__/migrate_legacy.test.d.ts +1 -0
  456. package/lib/app/__tests__/migrate_legacy.test.js +134 -0
  457. package/lib/app/migrate.d.ts +13 -6
  458. package/lib/app/migrate.js +154 -154
  459. package/lib/app/migrate_legacy.d.ts +1 -1
  460. package/lib/app/migrate_legacy.js +72 -79
  461. package/lib/app/urls.d.ts +1 -1
  462. package/lib/app/urls.js +5 -9
  463. package/lib/buildAccount.d.ts +12 -3
  464. package/lib/buildAccount.js +165 -69
  465. package/lib/commonOpts.d.ts +4 -4
  466. package/lib/commonOpts.js +78 -58
  467. package/lib/configMigrate.d.ts +2 -2
  468. package/lib/configMigrate.js +44 -83
  469. package/lib/configOptions.d.ts +5 -0
  470. package/lib/configOptions.js +51 -40
  471. package/lib/constants.d.ts +52 -5
  472. package/lib/constants.js +77 -29
  473. package/lib/customObject.js +2 -6
  474. package/lib/dependencyManagement.d.ts +1 -1
  475. package/lib/dependencyManagement.js +37 -45
  476. package/lib/developerTestAccounts.d.ts +1 -1
  477. package/lib/developerTestAccounts.js +34 -39
  478. package/lib/doctor/Diagnosis.d.ts +1 -1
  479. package/lib/doctor/Diagnosis.js +15 -19
  480. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  481. package/lib/doctor/DiagnosticInfoBuilder.js +37 -43
  482. package/lib/doctor/Doctor.d.ts +1 -1
  483. package/lib/doctor/Doctor.js +56 -63
  484. package/lib/doctor/__tests__/Diagnosis.test.d.ts +1 -0
  485. package/lib/doctor/__tests__/Diagnosis.test.js +82 -0
  486. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +1 -0
  487. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +167 -0
  488. package/lib/doctor/__tests__/Doctor.test.d.ts +1 -0
  489. package/lib/doctor/__tests__/Doctor.test.js +396 -0
  490. package/lib/enums/exitCodes.js +1 -4
  491. package/lib/errorHandlers/index.d.ts +4 -0
  492. package/lib/errorHandlers/index.js +37 -41
  493. package/lib/errorHandlers/suppressError.d.ts +1 -1
  494. package/lib/errorHandlers/suppressError.js +28 -31
  495. package/lib/errors/ProjectValidationError.d.ts +4 -0
  496. package/lib/errors/ProjectValidationError.js +9 -0
  497. package/lib/filesystem.js +8 -15
  498. package/lib/generateSelectors.js +18 -31
  499. package/lib/hasFeature.d.ts +2 -1
  500. package/lib/hasFeature.js +16 -6
  501. package/lib/importData.d.ts +3 -0
  502. package/lib/importData.js +50 -0
  503. package/lib/interpolation.js +11 -18
  504. package/lib/lang.d.ts +1 -1
  505. package/lib/lang.js +22 -27
  506. package/lib/links.d.ts +1 -0
  507. package/lib/links.js +26 -27
  508. package/lib/marketplaceValidate.d.ts +12 -2
  509. package/lib/marketplaceValidate.js +35 -52
  510. package/lib/mcp/setup.d.ts +23 -0
  511. package/lib/mcp/setup.js +238 -0
  512. package/lib/middleware/__test__/configMiddleware.test.js +34 -69
  513. package/lib/middleware/__test__/gitMiddleware.test.js +11 -46
  514. package/lib/middleware/__test__/notificationsMiddleware.test.js +1 -3
  515. package/lib/middleware/__test__/requestMiddleware.test.js +8 -13
  516. package/lib/middleware/__test__/utils.test.js +9 -11
  517. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +16 -51
  518. package/lib/middleware/autoUpdateMiddleware.js +33 -40
  519. package/lib/middleware/configMiddleware.js +56 -39
  520. package/lib/middleware/fireAlarmMiddleware.d.ts +2 -2
  521. package/lib/middleware/fireAlarmMiddleware.js +29 -23
  522. package/lib/middleware/gitMiddleware.js +5 -8
  523. package/lib/middleware/notificationsMiddleware.js +7 -11
  524. package/lib/middleware/requestMiddleware.js +4 -10
  525. package/lib/middleware/utils.js +1 -4
  526. package/lib/middleware/yargsChecksMiddleware.js +10 -13
  527. package/lib/npm.js +14 -23
  528. package/lib/oauth.js +29 -35
  529. package/lib/parsing.d.ts +1 -0
  530. package/lib/parsing.js +8 -0
  531. package/lib/polling.d.ts +1 -1
  532. package/lib/polling.js +19 -13
  533. package/lib/process.js +26 -23
  534. package/lib/projectProfiles.d.ts +3 -2
  535. package/lib/projectProfiles.js +46 -38
  536. package/lib/projects/ProjectLogsManager.js +18 -21
  537. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +1 -0
  538. package/lib/projects/__tests__/AppDevModeInterface.test.js +541 -0
  539. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +1 -0
  540. package/lib/projects/__tests__/LocalDevProcess.test.js +466 -0
  541. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +1 -0
  542. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +365 -0
  543. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +1 -0
  544. package/lib/projects/__tests__/ProjectLogsManager.test.js +189 -0
  545. package/lib/projects/__tests__/components.test.d.ts +1 -0
  546. package/lib/projects/__tests__/components.test.js +338 -0
  547. package/lib/projects/__tests__/deploy.test.d.ts +1 -0
  548. package/lib/projects/__tests__/deploy.test.js +229 -0
  549. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +1 -0
  550. package/lib/projects/__tests__/localDevProjectHelpers.test.js +122 -0
  551. package/lib/projects/__tests__/platformVersion.test.d.ts +1 -0
  552. package/lib/projects/__tests__/platformVersion.test.js +23 -0
  553. package/lib/projects/__tests__/projects.test.d.ts +1 -0
  554. package/lib/projects/__tests__/projects.test.js +84 -0
  555. package/lib/projects/__tests__/structure.test.d.ts +1 -0
  556. package/lib/projects/__tests__/structure.test.js +211 -0
  557. package/lib/projects/__tests__/upload.test.d.ts +1 -0
  558. package/lib/projects/__tests__/upload.test.js +82 -0
  559. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +1 -0
  560. package/lib/projects/add/__tests__/legacyAddComponent.test.js +247 -0
  561. package/lib/projects/add/__tests__/v3AddComponent.test.d.ts +1 -0
  562. package/lib/projects/add/__tests__/v3AddComponent.test.js +319 -0
  563. package/lib/projects/add/legacyAddComponent.d.ts +5 -0
  564. package/lib/projects/add/legacyAddComponent.js +46 -0
  565. package/lib/projects/add/v3AddComponent.d.ts +9 -0
  566. package/lib/projects/add/v3AddComponent.js +101 -0
  567. package/lib/projects/components.d.ts +3 -0
  568. package/lib/projects/components.js +102 -0
  569. package/lib/projects/config.d.ts +1 -1
  570. package/lib/projects/config.js +32 -41
  571. package/lib/projects/create/__tests__/legacy.test.d.ts +1 -0
  572. package/lib/projects/create/__tests__/legacy.test.js +91 -0
  573. package/lib/projects/create/__tests__/v3.test.d.ts +1 -0
  574. package/lib/projects/create/__tests__/v3.test.js +241 -0
  575. package/lib/projects/create/index.d.ts +24 -0
  576. package/lib/projects/create/index.js +36 -0
  577. package/lib/projects/create/legacy.d.ts +6 -0
  578. package/lib/projects/create/legacy.js +53 -0
  579. package/lib/projects/create/v3.d.ts +26 -0
  580. package/lib/projects/create/v3.js +171 -0
  581. package/lib/projects/deploy.d.ts +13 -0
  582. package/lib/projects/deploy.js +63 -0
  583. package/lib/projects/ensureProjectExists.js +31 -37
  584. package/lib/projects/localDev/AppDevModeInterface.d.ts +13 -5
  585. package/lib/projects/localDev/AppDevModeInterface.js +218 -68
  586. package/lib/projects/localDev/DevServerManager.d.ts +1 -1
  587. package/lib/projects/localDev/DevServerManager.js +22 -27
  588. package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
  589. package/lib/projects/localDev/DevServerManagerV2.js +16 -22
  590. package/lib/projects/localDev/LocalDevLogger.d.ts +5 -5
  591. package/lib/projects/localDev/LocalDevLogger.js +88 -78
  592. package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
  593. package/lib/projects/localDev/LocalDevManager.js +106 -111
  594. package/lib/projects/localDev/LocalDevProcess.d.ts +19 -8
  595. package/lib/projects/localDev/LocalDevProcess.js +155 -61
  596. package/lib/projects/localDev/LocalDevState.d.ts +33 -11
  597. package/lib/projects/localDev/LocalDevState.js +77 -25
  598. package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
  599. package/lib/projects/localDev/LocalDevWatcher.js +9 -17
  600. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +8 -3
  601. package/lib/projects/localDev/LocalDevWebsocketServer.js +138 -47
  602. package/lib/projects/localDev/{helpers.d.ts → helpers/account.d.ts} +3 -9
  603. package/lib/projects/localDev/helpers/account.js +233 -0
  604. package/lib/projects/localDev/helpers/project.d.ts +12 -0
  605. package/lib/projects/localDev/helpers/project.js +176 -0
  606. package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +4 -0
  607. package/lib/projects/localDev/localDevWebsocketServerUtils.js +10 -0
  608. package/lib/projects/platformVersion.d.ts +1 -0
  609. package/lib/projects/platformVersion.js +10 -0
  610. package/lib/projects/{buildAndDeploy.d.ts → pollProjectBuildAndDeploy.d.ts} +1 -2
  611. package/lib/projects/{buildAndDeploy.js → pollProjectBuildAndDeploy.js} +90 -109
  612. package/lib/projects/structure.d.ts +3 -3
  613. package/lib/projects/structure.js +32 -78
  614. package/lib/projects/ui.js +10 -13
  615. package/lib/projects/upload.d.ts +4 -1
  616. package/lib/projects/upload.js +91 -58
  617. package/lib/projects/urls.d.ts +5 -0
  618. package/lib/projects/urls.js +30 -17
  619. package/lib/projects/watch.d.ts +1 -1
  620. package/lib/projects/watch.js +48 -54
  621. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +1 -0
  622. package/lib/prompts/__tests__/createFunctionPrompt.test.js +129 -0
  623. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +1 -0
  624. package/lib/prompts/__tests__/createModulePrompt.test.js +187 -0
  625. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +1 -0
  626. package/lib/prompts/__tests__/createTemplatePrompt.test.js +102 -0
  627. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +1 -0
  628. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +28 -0
  629. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +1 -0
  630. package/lib/prompts/__tests__/projectAddPrompt.test.js +143 -0
  631. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +1 -0
  632. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +37 -0
  633. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +1 -0
  634. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +160 -0
  635. package/lib/prompts/accountNamePrompt.d.ts +1 -1
  636. package/lib/prompts/accountNamePrompt.js +26 -31
  637. package/lib/prompts/accountsPrompt.js +12 -15
  638. package/lib/prompts/cmsFieldPrompt.js +13 -19
  639. package/lib/prompts/confirmImportDataPrompt.d.ts +1 -0
  640. package/lib/prompts/confirmImportDataPrompt.js +12 -0
  641. package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
  642. package/lib/prompts/createApiSamplePrompt.js +9 -12
  643. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +18 -0
  644. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +146 -0
  645. package/lib/prompts/createFunctionPrompt.d.ts +2 -1
  646. package/lib/prompts/createFunctionPrompt.js +51 -25
  647. package/lib/prompts/createModulePrompt.d.ts +2 -1
  648. package/lib/prompts/createModulePrompt.js +60 -17
  649. package/lib/prompts/createTemplatePrompt.d.ts +3 -24
  650. package/lib/prompts/createTemplatePrompt.js +13 -8
  651. package/lib/prompts/downloadProjectPrompt.js +17 -20
  652. package/lib/prompts/importDataFilePathPrompt.d.ts +1 -0
  653. package/lib/prompts/importDataFilePathPrompt.js +26 -0
  654. package/lib/prompts/importDataTestAccountSelectPrompt.d.ts +3 -0
  655. package/lib/prompts/importDataTestAccountSelectPrompt.js +29 -0
  656. package/lib/prompts/installAppPrompt.d.ts +7 -1
  657. package/lib/prompts/installAppPrompt.js +29 -21
  658. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
  659. package/lib/prompts/personalAccessKeyPrompt.js +53 -49
  660. package/lib/prompts/previewPrompt.js +15 -22
  661. package/lib/prompts/projectAddPrompt.d.ts +6 -1
  662. package/lib/prompts/projectAddPrompt.js +39 -13
  663. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
  664. package/lib/prompts/projectDevTargetAccountPrompt.js +49 -54
  665. package/lib/prompts/projectNameAndDestPrompt.d.ts +3 -0
  666. package/lib/prompts/projectNameAndDestPrompt.js +53 -0
  667. package/lib/prompts/projectNamePrompt.js +11 -14
  668. package/lib/prompts/projectsLogsPrompt.js +5 -8
  669. package/lib/prompts/promptUtils.d.ts +11 -3
  670. package/lib/prompts/promptUtils.js +195 -44
  671. package/lib/prompts/sandboxesPrompt.d.ts +1 -1
  672. package/lib/prompts/sandboxesPrompt.js +26 -30
  673. package/lib/prompts/secretPrompt.js +10 -15
  674. package/lib/prompts/selectAppPrompt.js +11 -14
  675. package/lib/prompts/selectHubDBTablePrompt.js +24 -30
  676. package/lib/prompts/selectProjectTemplatePrompt.d.ts +27 -0
  677. package/lib/prompts/selectProjectTemplatePrompt.js +71 -0
  678. package/lib/prompts/selectPublicAppForMigrationPrompt.js +22 -25
  679. package/lib/prompts/setAsDefaultAccountPrompt.js +18 -11
  680. package/lib/prompts/uploadPrompt.js +11 -17
  681. package/lib/sandboxSync.d.ts +1 -1
  682. package/lib/sandboxSync.js +58 -65
  683. package/lib/sandboxes.d.ts +5 -1
  684. package/lib/sandboxes.js +72 -76
  685. package/lib/schema.js +16 -19
  686. package/lib/serverlessLogs.js +45 -52
  687. package/lib/testUtils.js +5 -10
  688. package/lib/theme/__tests__/migrate.test.d.ts +1 -0
  689. package/lib/theme/__tests__/migrate.test.js +233 -0
  690. package/lib/theme/migrate.d.ts +13 -0
  691. package/lib/theme/migrate.js +90 -0
  692. package/lib/ui/SpinniesManager.d.ts +1 -1
  693. package/lib/ui/SpinniesManager.js +29 -35
  694. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +1 -0
  695. package/lib/ui/__tests__/removeAnsiCodes.test.js +84 -0
  696. package/lib/ui/boxen.js +11 -14
  697. package/lib/ui/git.js +14 -20
  698. package/lib/ui/index.d.ts +6 -0
  699. package/lib/ui/index.js +58 -81
  700. package/lib/ui/logger.d.ts +1 -0
  701. package/lib/ui/logger.js +11 -13
  702. package/lib/ui/removeAnsiCodes.d.ts +1 -0
  703. package/lib/ui/removeAnsiCodes.js +4 -0
  704. package/lib/ui/serverlessFunctionLogs.js +14 -20
  705. package/lib/ui/spinniesUtils.js +24 -39
  706. package/lib/ui/supportHyperlinks.js +3 -6
  707. package/lib/ui/supportsColor.js +11 -17
  708. package/lib/ui/table.js +6 -13
  709. package/lib/upload.js +15 -21
  710. package/lib/usageTracking.d.ts +11 -0
  711. package/lib/usageTracking.js +88 -103
  712. package/lib/utils/hasFlag.d.ts +1 -0
  713. package/lib/utils/hasFlag.js +9 -0
  714. package/lib/validation.d.ts +1 -1
  715. package/lib/validation.js +50 -89
  716. package/lib/yargsUtils.d.ts +4 -1
  717. package/lib/yargsUtils.js +28 -25
  718. package/mcp-server/server.d.ts +1 -0
  719. package/mcp-server/server.js +17 -0
  720. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +32 -0
  721. package/mcp-server/tools/cms/HsCreateFunctionTool.js +96 -0
  722. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +38 -0
  723. package/mcp-server/tools/cms/HsCreateModuleTool.js +118 -0
  724. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +26 -0
  725. package/mcp-server/tools/cms/HsCreateTemplateTool.js +75 -0
  726. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +32 -0
  727. package/mcp-server/tools/cms/HsFunctionLogsTool.js +76 -0
  728. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +23 -0
  729. package/mcp-server/tools/cms/HsListFunctionsTool.js +58 -0
  730. package/mcp-server/tools/cms/HsListTool.d.ts +23 -0
  731. package/mcp-server/tools/cms/HsListTool.js +58 -0
  732. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +1 -0
  733. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +251 -0
  734. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +1 -0
  735. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +224 -0
  736. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +1 -0
  737. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +206 -0
  738. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +1 -0
  739. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +183 -0
  740. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +1 -0
  741. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +120 -0
  742. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +1 -0
  743. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +120 -0
  744. package/mcp-server/tools/index.d.ts +3 -0
  745. package/mcp-server/tools/index.js +38 -0
  746. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +29 -0
  747. package/mcp-server/tools/project/AddFeatureToProjectTool.js +76 -0
  748. package/mcp-server/tools/project/CreateProjectTool.d.ts +35 -0
  749. package/mcp-server/tools/project/CreateProjectTool.js +93 -0
  750. package/mcp-server/tools/project/DeployProjectTool.d.ts +20 -0
  751. package/mcp-server/tools/project/DeployProjectTool.js +49 -0
  752. package/mcp-server/tools/project/DocFetchTool.d.ts +17 -0
  753. package/mcp-server/tools/project/DocFetchTool.js +49 -0
  754. package/mcp-server/tools/project/DocsSearchTool.d.ts +29 -0
  755. package/mcp-server/tools/project/DocsSearchTool.js +62 -0
  756. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +23 -0
  757. package/mcp-server/tools/project/GetConfigValuesTool.js +58 -0
  758. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +17 -0
  759. package/mcp-server/tools/project/GuidedWalkthroughTool.js +57 -0
  760. package/mcp-server/tools/project/UploadProjectTools.d.ts +17 -0
  761. package/mcp-server/tools/project/UploadProjectTools.js +31 -0
  762. package/mcp-server/tools/project/ValidateProjectTool.d.ts +17 -0
  763. package/mcp-server/tools/project/ValidateProjectTool.js +34 -0
  764. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +1 -0
  765. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +151 -0
  766. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +1 -0
  767. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +127 -0
  768. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +1 -0
  769. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +119 -0
  770. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +1 -0
  771. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +117 -0
  772. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +1 -0
  773. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +192 -0
  774. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +1 -0
  775. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +199 -0
  776. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +1 -0
  777. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +126 -0
  778. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +1 -0
  779. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +107 -0
  780. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +1 -0
  781. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +110 -0
  782. package/mcp-server/tools/project/constants.d.ts +6 -0
  783. package/mcp-server/tools/project/constants.js +32 -0
  784. package/mcp-server/types.d.ts +14 -0
  785. package/mcp-server/types.js +13 -0
  786. package/mcp-server/utils/__tests__/cliConfig.test.d.ts +1 -0
  787. package/mcp-server/utils/__tests__/cliConfig.test.js +110 -0
  788. package/mcp-server/utils/__tests__/command.test.d.ts +1 -0
  789. package/mcp-server/utils/__tests__/command.test.js +45 -0
  790. package/mcp-server/utils/__tests__/project.test.d.ts +1 -0
  791. package/mcp-server/utils/__tests__/project.test.js +79 -0
  792. package/mcp-server/utils/cliConfig.d.ts +1 -0
  793. package/mcp-server/utils/cliConfig.js +12 -0
  794. package/mcp-server/utils/command.d.ts +3 -0
  795. package/mcp-server/utils/command.js +9 -0
  796. package/mcp-server/utils/content.d.ts +3 -0
  797. package/mcp-server/utils/content.js +17 -0
  798. package/mcp-server/utils/project.d.ts +5 -0
  799. package/mcp-server/utils/project.js +14 -0
  800. package/mcp-server/utils/toolUsageTracking.d.ts +3 -0
  801. package/mcp-server/utils/toolUsageTracking.js +23 -0
  802. package/package.json +42 -33
  803. package/types/Cms.d.ts +17 -1
  804. package/types/Cms.js +25 -2
  805. package/types/LocalDev.d.ts +34 -8
  806. package/types/LocalDev.js +1 -2
  807. package/types/ProjectComponents.d.ts +2 -2
  808. package/types/ProjectComponents.js +1 -2
  809. package/types/Projects.d.ts +20 -2
  810. package/types/Projects.js +2 -5
  811. package/types/Prompts.d.ts +5 -2
  812. package/types/Prompts.js +1 -2
  813. package/types/Sandboxes.js +1 -2
  814. package/types/Yargs.d.ts +7 -1
  815. package/types/Yargs.js +1 -2
  816. package/ui/components/BoxWithTitle.d.ts +8 -0
  817. package/ui/components/BoxWithTitle.js +9 -0
  818. package/ui/components/HorizontalSelectPrompt.d.ts +8 -0
  819. package/ui/components/HorizontalSelectPrompt.js +30 -0
  820. package/ui/components/StatusMessageBoxes.d.ts +12 -0
  821. package/ui/components/StatusMessageBoxes.js +31 -0
  822. package/ui/index.d.ts +1 -0
  823. package/ui/index.js +6 -0
  824. package/ui/lib/ui-testing-utils.d.ts +9 -0
  825. package/ui/lib/ui-testing-utils.js +47 -0
  826. package/ui/lib/useTerminalSize.d.ts +13 -0
  827. package/ui/lib/useTerminalSize.js +31 -0
  828. package/ui/styles.d.ts +18 -0
  829. package/ui/styles.js +18 -0
  830. package/ui/views/UiSandbox.d.ts +5 -0
  831. package/ui/views/UiSandbox.js +25 -0
  832. package/bin/hsmcp.d.ts +0 -2
  833. package/bin/hsmcp.js +0 -13
  834. package/commands/setupMcp.d.ts +0 -8
  835. package/commands/setupMcp.js +0 -229
  836. package/lib/projects/create.d.ts +0 -5
  837. package/lib/projects/create.js +0 -50
  838. package/lib/projects/localDev/helpers.js +0 -351
  839. package/lib/prompts/createProjectPrompt.d.ts +0 -19
  840. package/lib/prompts/createProjectPrompt.js +0 -95
  841. package/mcp-server/index.js +0 -17
  842. package/mcp-server/mcpLoader.d.ts +0 -5
  843. package/mcp-server/mcpLoader.js +0 -24
  844. package/mcp-server/tools/ExplainProjectStructureTool.d.ts +0 -33
  845. package/mcp-server/tools/ExplainProjectStructureTool.js +0 -266
  846. package/mcp-server/tools/GenerateAppComponentTool.d.ts +0 -99
  847. package/mcp-server/tools/GenerateAppComponentTool.js +0 -193
  848. package/mcp-server/tools/GenerateCardComponentTool.d.ts +0 -74
  849. package/mcp-server/tools/GenerateCardComponentTool.js +0 -146
  850. package/mcp-server/tools/GenerateProjectConfigTool.d.ts +0 -32
  851. package/mcp-server/tools/GenerateProjectConfigTool.js +0 -40
  852. package/mcp-server/tools/HubSpotCLIHelper.d.ts +0 -24
  853. package/mcp-server/tools/HubSpotCLIHelper.js +0 -110
  854. package/mcp-server/tools/UploadProjectTool.d.ts +0 -44
  855. package/mcp-server/tools/UploadProjectTool.js +0 -166
  856. package/mcp-server/tools/ValidateProjectTool.d.ts +0 -62
  857. package/mcp-server/tools/ValidateProjectTool.js +0 -336
  858. /package/{mcp-server/index.d.ts → api/__tests__/migrate.test.d.ts} +0 -0
package/lang/en.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { CLIAccount } from '@hubspot/local-dev-lib/types/Accounts';
1
2
  export declare const commands: {
2
3
  readonly generalErrors: {
3
4
  readonly srcIsProject: (src: string, command: string) => string;
@@ -8,6 +9,58 @@ export declare const commands: {
8
9
  readonly configFileExists: (configPath: string) => string;
9
10
  };
10
11
  };
12
+ readonly getStarted: {
13
+ readonly describe: "A step-by-step command to get you started with a HubSpot project.";
14
+ readonly options: {
15
+ readonly dest: {
16
+ readonly describe: "Directory where the project should be created";
17
+ };
18
+ readonly name: {
19
+ readonly describe: "Project name (cannot be changed)";
20
+ };
21
+ readonly templateSource: {
22
+ readonly describe: "Path to custom GitHub repository from which to create project template";
23
+ };
24
+ };
25
+ readonly startTitle: "Welcome to HubSpot Development!";
26
+ readonly verboseDescribe: "A step-by-step command to get you started with a HubSpot project.";
27
+ readonly startDescription: "You can use the HubSpot CLI to build apps, CMS themes, and more.\n";
28
+ readonly guideOverview: (accountName: string) => string;
29
+ readonly designManager: "To onboard with CMS, please visit the HubSpot Design Manager in your account and follow the checklist items.";
30
+ readonly openDesignManager: "Click here to go to the HubSpot Design Manager";
31
+ readonly openDesignManagerPrompt: "Open Design Manager in your browser?";
32
+ readonly openedDesignManager: "Redirected to Design Manager!";
33
+ readonly developerOverviewBrowserOpenPrep: "We'll take you to your HubSpot account and walk you through installing and previewing your new app.";
34
+ readonly openInstallUrl: "Open HubSpot to install your app in your account?";
35
+ readonly openedDeveloperOverview: "HubSpot opened!";
36
+ readonly prompts: {
37
+ readonly selectOption: "Are you looking to build apps or CMS assets?";
38
+ readonly options: {
39
+ readonly app: "App";
40
+ readonly cms: "CMS assets";
41
+ };
42
+ readonly uploadProject: (accountName: string) => string;
43
+ readonly projectCreated: {
44
+ readonly title: string;
45
+ readonly description: `Let's prepare and upload your project to HubSpot.
46
+ You can use ${string} to ${string} and ${string} to ${string} your project.`;
47
+ };
48
+ };
49
+ readonly logs: {
50
+ readonly appSelected: `We'll create a new project with a sample app for you.
51
+ Projects are what you can use to create apps with HubSpot.
52
+ Usually you'll use the ${string} command, but we'll go ahead and make one now.`;
53
+ readonly dependenciesInstalled: "Dependencies installed successfully.";
54
+ readonly uploadingProject: "Uploading your project to HubSpot...";
55
+ readonly uploadSuccess: "Project uploaded successfully!";
56
+ readonly developerOverviewLink: "Open this link to navigate to your HubSpot developer portal";
57
+ };
58
+ readonly errors: {
59
+ readonly uploadFailed: "Failed to upload project to HubSpot.";
60
+ readonly configFileNotFound: "Could not find project configuration for upload.";
61
+ readonly installDepsFailed: "Failed to install dependencies.";
62
+ };
63
+ };
11
64
  readonly completion: {
12
65
  readonly describe: "Enable bash completion shortcuts for commands. Concat the generated script to your .bashrc, .bash_profile, or .zshrc file.";
13
66
  readonly examples: {
@@ -17,6 +70,28 @@ export declare const commands: {
17
70
  readonly account: {
18
71
  readonly describe: "Commands for managing configured accounts.";
19
72
  readonly subcommands: {
73
+ readonly auth: {
74
+ readonly describe: "Configure authentication for your HubSpot account.";
75
+ readonly verboseDescribe: `Configure authentication for a HubSpot account. This will create or update the global config file at ${string} that stores your account information.
76
+
77
+ The authentication method is ${string}, which is an access token tied to a specific user account.
78
+
79
+ Global configuration replaces hubspot.config.yml, and you will be prompted to migrate your existing config if one exists.`;
80
+ readonly options: {
81
+ readonly account: "HubSpot account to authenticate";
82
+ readonly personalAccessKey: "Enter existing personal access key";
83
+ };
84
+ readonly errors: {
85
+ readonly invalidAccountIdProvided: "--account must be a number.";
86
+ readonly failedToUpdateConfig: "Failed to update the configuration file. Please try again.";
87
+ readonly migrationNotConfirmed: `Did not migrate your configuration file. Run ${string} to update your existing config, or use ${string} to switch to the new global configuration.`;
88
+ readonly mergeNotConfirmed: `Did not merge configuration files. When you are ready to merge the deprecated config file with the global config file, run ${string}.`;
89
+ };
90
+ readonly success: {
91
+ readonly configFileCreated: (configPath: string) => string;
92
+ readonly configFileUpdated: (accountId: number) => string;
93
+ };
94
+ };
20
95
  readonly list: {
21
96
  readonly accounts: `${string}:`;
22
97
  readonly defaultAccount: (account: string) => string;
@@ -120,8 +195,11 @@ export declare const commands: {
120
195
  };
121
196
  };
122
197
  readonly auth: {
123
- readonly describe: (configName: string) => string;
198
+ readonly describe: "Configure authentication for your HubSpot account.";
199
+ readonly verboseDescribe: (configName: string, authMethod: string) => string;
124
200
  readonly errors: {
201
+ readonly invalidAccountIdProvided: "--account must be a number.";
202
+ readonly globalConfigFileExists: (accountAuthCommand: string) => string;
125
203
  readonly noConfigFileFound: "No config file was found. To create a new config file, use the \"hs init\" command.";
126
204
  readonly unsupportedAuthType: (type: string, supportedProtocols: string) => string;
127
205
  };
@@ -133,6 +211,9 @@ export declare const commands: {
133
211
  readonly account: {
134
212
  readonly describe: "HubSpot account to authenticate";
135
213
  };
214
+ readonly personalAccessKey: {
215
+ readonly describe: "Enter existing personal access key";
216
+ };
136
217
  };
137
218
  readonly success: {
138
219
  readonly configFileUpdated: (accountName: string, configFilename: string, authType: string) => string;
@@ -141,6 +222,21 @@ export declare const commands: {
141
222
  readonly config: {
142
223
  readonly describe: "Commands for managing the CLI config file.";
143
224
  readonly subcommands: {
225
+ readonly migrate: {
226
+ readonly describe: `Migrate from the deprecated hubspot.config.yml file to the new global config file at ${string}.`;
227
+ readonly verboseDescribe: "This command will create or update the global configuration file in your root directory. It will archive the current config as archived.hubspot.config.yml.";
228
+ readonly errors: {
229
+ readonly noConfigToMigrate: "No hubspot.config.yml was found. There is nothing to migrate.";
230
+ readonly configNotFound: (configPath: string) => string;
231
+ };
232
+ readonly options: {
233
+ readonly force: "Bypass prompts and overwrite any conflicting values in the global config with the deprecated config values.";
234
+ };
235
+ readonly examples: {
236
+ readonly default: `Migrate from the deprecated hubspot.config.yml file to the new global config file at ${string}`;
237
+ readonly configFlag: `Migrate a specific config file (specified with the config flag) to the new global config file at ${string}`;
238
+ };
239
+ };
144
240
  readonly set: {
145
241
  readonly describe: "Set various configuration options within the hubspot CLI config file.";
146
242
  readonly promptMessage: "Select a config option to update";
@@ -160,6 +256,13 @@ export declare const commands: {
160
256
  readonly allowAutoUpdates: {
161
257
  readonly describe: "Enable or disable auto updates";
162
258
  };
259
+ readonly autoOpenBrowser: {
260
+ readonly describe: "Enable or disable automatic opening of the browser";
261
+ };
262
+ };
263
+ readonly errors: {
264
+ readonly invalidBoolean: (commandName: string, value: string) => string;
265
+ readonly invalidHTTPTimeout: "Invalid HTTP timeout value. Must be a number greater than 3000.";
163
266
  };
164
267
  };
165
268
  };
@@ -240,6 +343,38 @@ export declare const commands: {
240
343
  readonly describe: "Type of asset";
241
344
  };
242
345
  };
346
+ readonly flags: {
347
+ readonly templateType: {
348
+ readonly describe: "Template type for template creation - only used when type is template";
349
+ };
350
+ readonly moduleLabel: {
351
+ readonly describe: "Label for module creation - only used when type is module";
352
+ };
353
+ readonly reactType: {
354
+ readonly describe: "Whether to create a React module - only used when type is module";
355
+ };
356
+ readonly contentTypes: {
357
+ readonly describe: (contentTypes: readonly string[]) => string;
358
+ };
359
+ readonly global: {
360
+ readonly describe: "Whether to create a global module - only used when type is module";
361
+ };
362
+ readonly availableForNewContent: {
363
+ readonly describe: "Whether the template is available for new content - only used when type is template";
364
+ };
365
+ readonly functionsFolder: {
366
+ readonly describe: "Folder to create functions in - only used when type is function";
367
+ };
368
+ readonly filename: {
369
+ readonly describe: "Filename for the function - only used when type is function";
370
+ };
371
+ readonly endpointMethod: {
372
+ readonly describe: "HTTP method for the function endpoint - only used when type is function";
373
+ };
374
+ readonly endpointPath: {
375
+ readonly describe: "API endpoint path for the function - only used when type is function";
376
+ };
377
+ };
243
378
  readonly subcommands: {
244
379
  readonly apiSample: {
245
380
  readonly folderOverwritePrompt: (folderName: string) => string;
@@ -630,10 +765,26 @@ export declare const commands: {
630
765
  readonly fetch: (tableId: string, path: string) => string;
631
766
  };
632
767
  };
768
+ readonly list: {
769
+ readonly tables: `${string}:`;
770
+ readonly describe: "List HubDB tables.";
771
+ readonly labels: {
772
+ readonly label: "Label";
773
+ readonly id: "ID";
774
+ readonly name: "Name";
775
+ readonly columns: "Columns";
776
+ readonly rows: "Rows";
777
+ };
778
+ readonly success: (accountId: number) => string;
779
+ readonly noTables: (accountId: number) => string;
780
+ readonly tablesDisplayed: (displayed: number, total: number, truncated?: number) => string;
781
+ readonly viewTablesLink: (baseUrl: string, accountId: number) => string;
782
+ };
633
783
  };
634
784
  };
635
785
  readonly init: {
636
- readonly describe: (configName: string) => string;
786
+ readonly describe: "Create a CLI config file and configure authentication for your HubSpot account.";
787
+ readonly verboseDescribe: (configName: string, command: string, authMethod: string) => string;
637
788
  readonly options: {
638
789
  readonly authType: {
639
790
  readonly describe: "Authentication mechanism";
@@ -648,14 +799,16 @@ export declare const commands: {
648
799
  };
649
800
  readonly success: {
650
801
  readonly configFileCreated: (configPath: string) => string;
651
- readonly configFileUpdated: (account: string, authType: string) => string;
802
+ readonly configFileUpdated: (authType: string, account: string | number) => string;
652
803
  };
653
804
  readonly logs: {
654
805
  readonly updateConfig: "To update an existing config file, use the \"hs auth\" command.";
655
806
  };
656
807
  readonly errors: {
808
+ readonly invalidAccountIdProvided: "--account must be a number.";
657
809
  readonly configFileExists: (configPath: string) => string;
658
810
  readonly bothConfigFilesNotAllowed: (path: string) => string;
811
+ readonly globalConfigFileExists: `You are using our new global configuration for account management, which is not compatible with this command. Please use ${string} instead.`;
659
812
  };
660
813
  };
661
814
  readonly lint: {
@@ -710,6 +863,61 @@ export declare const commands: {
710
863
  };
711
864
  readonly tailLogs: (functionPath: string, accountId: string) => string;
712
865
  };
866
+ readonly mcp: {
867
+ readonly describe: "Commands for managing HubSpot MCP servers.";
868
+ readonly setup: {
869
+ readonly describe: "Setup the HubSpot development MCP servers.";
870
+ readonly installingDocSearch: "Adding the docs-search mcp server";
871
+ readonly claudeCode: "Claude Code";
872
+ readonly cursor: "Cursor";
873
+ readonly windsurf: "Windsurf";
874
+ readonly vsCode: "VSCode";
875
+ readonly args: {
876
+ readonly client: "Target applications to configure";
877
+ readonly docsSearch: "Should the docs search mcp server be installed";
878
+ };
879
+ readonly success: (derivedTargets: string[]) => string;
880
+ readonly errors: {
881
+ readonly needsMcpAccess: (accountId?: number) => string;
882
+ readonly needsNode20: "This feature requires node >=20";
883
+ readonly errorParsingJsonFIle: (filename: string, errorMessage: string) => string;
884
+ };
885
+ readonly spinners: {
886
+ readonly failedToConfigure: "Failed to configure the HubSpot mcp server.";
887
+ readonly configuringClaudeCode: "Configuring Claude Code...";
888
+ readonly configuredClaudeCode: "Configured Claude Code";
889
+ readonly claudeCodeNotFound: "Claude Code not found - skipping configuration";
890
+ readonly claudeCodeInstallFailed: "Claude Code CLI not working - skipping configuration";
891
+ readonly failedToConfigureClaudeDesktop: "Failed to configure Claude Desktop";
892
+ readonly configuringCursor: "Configuring Cursor...";
893
+ readonly failedToConfigureCursor: "Failed to configure Cursor";
894
+ readonly configuredCursor: "Configured Cursor";
895
+ readonly alreadyInstalled: "HubSpot CLI mcp server already installed, reinstalling";
896
+ readonly configuringWindsurf: "Configuring Windsurf...";
897
+ readonly failedToConfigureWindsurf: "Failed to configure Windsurf";
898
+ readonly configuredWindsurf: "Configured Windsurf";
899
+ readonly configuringVsCode: "Configuring VSCode...";
900
+ readonly failedToConfigureVsCode: "Failed to configure VSCode";
901
+ readonly configuredVsCode: "Configured VSCode";
902
+ readonly vsCodeNotFound: "VSCode not found - skipping configuration";
903
+ };
904
+ readonly prompts: {
905
+ readonly targets: "[--client] Which tools would you like to add the HubSpot CLI MCP server to?";
906
+ readonly targetsRequired: "Must choose at least one application to configure.";
907
+ };
908
+ };
909
+ readonly start: {
910
+ readonly errors: {
911
+ readonly needsNode20: "This feature requires node >=20";
912
+ readonly serverFileNotFound: (serverPath: string) => string;
913
+ readonly failedToStart: "Failed to start MCP server";
914
+ };
915
+ readonly startingServer: "Starting HubSpot CLI MCP server...";
916
+ readonly stopInstructions: "Press Ctrl+C to stop the server";
917
+ readonly stoppedSuccessfully: "Stopped successfully.";
918
+ readonly shuttingDown: "Shutting down MCP server...";
919
+ };
920
+ };
713
921
  readonly mv: {
714
922
  readonly describe: "Move a remote file or folder in HubSpot. This feature is currently in beta and the CLI contract is subject to change.";
715
923
  readonly errors: {
@@ -797,6 +1005,7 @@ Profiles enable you to reference variables in your component configuration files
797
1005
  readonly noProfileFound: (profileName: string) => string;
798
1006
  readonly noProfilesFound: "No profiles found in your project.";
799
1007
  readonly failedToDeleteProfile: (profileName: string) => string;
1008
+ readonly failedToDeleteProject: (accountId: number) => string;
800
1009
  };
801
1010
  readonly positionals: {
802
1011
  readonly name: "The name of the project profile";
@@ -806,22 +1015,37 @@ Profiles enable you to reference variables in your component configuration files
806
1015
  readonly dev: {
807
1016
  readonly describe: "Start local dev for the current project.";
808
1017
  readonly logs: {
809
- readonly betaMessage: "HubSpot projects local development";
1018
+ readonly header: "HubSpot projects local development";
810
1019
  readonly placeholderAccountSelection: "Using default account as target account (for now)";
811
- readonly learnMoreLocalDevServer: "Learn more about the projects local dev server";
812
1020
  readonly accountTypeInformation: "Testing in a developer test account is strongly recommended, but you can use a sandbox account if your plan allows you to create one.";
813
- readonly learnMoreMessage: `Visit our ${string} to learn more.`;
1021
+ readonly learnMoreMessageV3: `Learn more about ${string} | ${string}`;
1022
+ readonly learnMoreMessageLegacy: string;
1023
+ readonly profileProjectAccountExplanation: (accountId: number, profileName: string) => string;
1024
+ readonly defaultProjectAccountExplanation: (accountId: number) => string;
1025
+ readonly projectAccountFlagExplanation: (accountId: number) => string;
1026
+ readonly accountFlagExplanation: (accountId: number) => string;
1027
+ readonly defaultSandboxOrDevTestTestingAccountExplanation: (accountId: number) => string;
1028
+ readonly testingAccountFlagExplanation: (accountId: number) => string;
814
1029
  };
815
1030
  readonly errors: {
816
1031
  readonly noProjectConfig: "No project detected. Please run this command again from a project directory.";
817
- readonly noAccount: (accountId: string, authCommand: string) => string;
1032
+ readonly noAccount: (accountId: number) => string;
818
1033
  readonly noAccountsInConfig: (authCommand: string) => string;
819
1034
  readonly invalidProjectComponents: "Projects cannot contain both private and public apps. Move your apps to separate projects before attempting local development.";
820
- readonly noRunnableComponents: (command: string) => string;
1035
+ readonly noRunnableComponents: `No supported components were found in this project. Run ${string} to see a list of available components and add one to your project.`;
1036
+ readonly accountNotCombined: `
1037
+ Local development of unified apps is currently only compatible with accounts that are opted into the unified apps beta. Make sure that this account is opted in or switch accounts using ${string}.`;
1038
+ readonly unsupportedAccountFlagLegacy: "The --project-account and --testing-account flags are not supported for projects with platform versions earlier than 2025.2.";
1039
+ readonly unsupportedAccountFlagV3: "The --account flag is is not supported supported for projects with platform versions 2025.2 and newer. Use --testing-account and --project-account flags to specify accounts to use for local dev";
821
1040
  };
822
1041
  readonly examples: {
823
1042
  readonly default: "Start local dev for the current project";
824
1043
  };
1044
+ readonly options: {
1045
+ readonly profile: "The profile to target during local dev";
1046
+ readonly projectAccount: "The id of the account to upload your project to. Only compatible with platform versions 2025.2 and above.";
1047
+ readonly testingAccount: "The id of the account to install apps and test on. Only compatible with platform versions 2025.2 and above.";
1048
+ };
825
1049
  };
826
1050
  readonly create: {
827
1051
  readonly describe: "Create a new project.";
@@ -833,7 +1057,13 @@ Profiles enable you to reference variables in your component configuration files
833
1057
  };
834
1058
  readonly logs: {
835
1059
  readonly success: (projectName: string, projectDest: string) => string;
836
- readonly welcomeMessage: "Welcome to HubSpot Developer Projects!";
1060
+ readonly welcomeMessage: `
1061
+ ${string}`;
1062
+ };
1063
+ readonly prompts: {
1064
+ readonly parentComponents: "[--project-base] What would you like in your project?";
1065
+ readonly emptyProject: "Empty Project";
1066
+ readonly app: "App";
837
1067
  };
838
1068
  readonly examples: {
839
1069
  readonly default: "Create a new project";
@@ -847,11 +1077,26 @@ Profiles enable you to reference variables in your component configuration files
847
1077
  readonly describe: "Project name (cannot be changed)";
848
1078
  };
849
1079
  readonly template: {
850
- readonly describe: "The starting template";
1080
+ readonly describe: "The starting template. Only applies when platform version is less than 2025.2.";
851
1081
  };
852
1082
  readonly templateSource: {
853
1083
  readonly describe: "Path to custom GitHub repository from which to create project template";
854
1084
  };
1085
+ readonly platformVersion: {
1086
+ readonly describe: "The target platform version for the new project.";
1087
+ };
1088
+ readonly projectBase: {
1089
+ readonly describe: "The top level component to include in the project.";
1090
+ };
1091
+ readonly distribution: {
1092
+ readonly describe: "How the app will be distributed.";
1093
+ };
1094
+ readonly auth: {
1095
+ readonly describe: "Authentication model for the application.";
1096
+ };
1097
+ readonly features: {
1098
+ readonly describe: "Features to include in the project. Only valid if project-base is app";
1099
+ };
855
1100
  };
856
1101
  };
857
1102
  readonly migrateApp: {
@@ -898,6 +1143,7 @@ Profiles enable you to reference variables in your component configuration files
898
1143
  readonly describe: "Migrate an existing project to the new version of the projects framework.";
899
1144
  readonly errors: {
900
1145
  readonly noProjectConfig: (command: string) => string;
1146
+ readonly noThemeMigrationAccess: (accountId?: number) => string;
901
1147
  };
902
1148
  readonly examples: {
903
1149
  readonly default: "Migrate an existing project to the new version of the projects framework.";
@@ -937,17 +1183,31 @@ Profiles enable you to reference variables in your component configuration files
937
1183
  readonly type: {
938
1184
  readonly describe: "The path to the component type's location within the hubspot-project-components Github repo: https://github.com/HubSpot/hubspot-project-components";
939
1185
  };
1186
+ readonly distribution: {
1187
+ readonly describe: "The distribution method for the application.";
1188
+ };
1189
+ readonly auth: {
1190
+ readonly describe: "The authentication type for the application.";
1191
+ };
1192
+ readonly features: {
1193
+ readonly describe: "Which features to include with the application.";
1194
+ };
940
1195
  };
941
1196
  readonly creatingComponent: (projectName: string) => string;
942
- readonly success: (componentName: string) => string;
1197
+ readonly success: (componentName: string, multiple?: boolean) => string;
943
1198
  readonly error: {
944
- readonly failedToDownloadComponent: "Failed to download project component. Please try again later.";
1199
+ readonly failedToDownloadComponent: "Failed to download project. Please try again later.";
1200
+ readonly invalidComponentType: (componentType: string) => string;
1201
+ readonly maxExceeded: (maxCount: number) => string;
1202
+ readonly authTypeNotAllowed: (authType: string) => string;
1203
+ readonly distributionNotAllowed: (dist: string) => string;
1204
+ readonly portalDoesNotHaveAccessToThisFeature: (accountId: number) => string;
945
1205
  readonly locationInProject: "This command must be run from within a project directory.";
946
- readonly failedToFetchComponentList: "Failed to fetch the list of available components. Please try again later.";
1206
+ readonly failedToFetchComponentList: "Failed to fetch the list of available features. Please try again later.";
947
1207
  readonly projectContainsPublicApp: "This project contains a public app. This command is currently only compatible with projects that contain private apps.";
948
1208
  };
949
1209
  readonly examples: {
950
- readonly default: "Create a component within your project";
1210
+ readonly default: "Create an app feature within your project";
951
1211
  readonly withFlags: "Use --name and --type flags to bypass the prompt.";
952
1212
  };
953
1213
  };
@@ -958,25 +1218,28 @@ Profiles enable you to reference variables in your component configuration files
958
1218
  readonly deploying: (path: string) => string;
959
1219
  };
960
1220
  readonly errors: {
961
- readonly deploy: (details: string) => string;
1221
+ readonly deploy: "Deploy error: an unknown error occurred.";
962
1222
  readonly noBuilds: "Deploy error: no builds for this project were found.";
963
1223
  readonly noBuildId: "You must specify a build to deploy";
964
- readonly projectNotFound: (projectName: string, accountIdentifier: string, command: string) => string;
965
- readonly buildIdDoesNotExist: (buildId: string, projectName: string, linkToProject: string) => string;
966
- readonly buildAlreadyDeployed: (buildId: string, linkToProject: string) => string;
967
- readonly viewProjectsBuilds: "View project builds in HubSpot";
1224
+ readonly projectNotFound: (accountId: number, projectName: string) => string;
1225
+ readonly buildIdDoesNotExist: (accountId: number, buildId: number, projectName: string) => string;
1226
+ readonly buildAlreadyDeployed: (accountId: number, buildId: number, projectName: string) => string;
1227
+ readonly deployContainsRemovals: (componentName: string) => string;
1228
+ readonly deployBlockedHeader: "This build couldn't be deployed because it will be too disruptive for existing users. Fix the following issues and try again:";
1229
+ readonly deployWarningsHeader: `Deploying this build might have unintended consequences for users. Review the following issues and run ${string} to try again:`;
1230
+ readonly deployIssueComponentGeneric: (uid: string, componentTypeName: string) => string;
1231
+ readonly deployIssueComponentWarning: (uid: string, componentTypeName: string, message: string) => string;
968
1232
  };
969
1233
  readonly examples: {
970
1234
  readonly default: "Deploy the latest build of the current project";
971
1235
  readonly withOptions: "Deploy build 5 of the project my-project";
972
1236
  };
973
1237
  readonly options: {
974
- readonly build: {
975
- readonly describe: "Project build ID to be deployed";
976
- };
977
- readonly project: {
978
- readonly describe: "Project name";
979
- };
1238
+ readonly build: "Project build ID to be deployed";
1239
+ readonly project: "Project name";
1240
+ readonly profile: "The profile to target with this deploy";
1241
+ readonly force: "Skip warnings and force deploy. Use this carefully as it will bypass warnings for destructive actions.";
1242
+ readonly deployLatestBuild: "Deploy the latest build of the current project";
980
1243
  };
981
1244
  };
982
1245
  readonly listBuilds: {
@@ -984,7 +1247,7 @@ Profiles enable you to reference variables in your component configuration files
984
1247
  readonly continueOrExitPrompt: "Press <enter> to load more, or ctrl+c to exit";
985
1248
  readonly viewAllBuildsLink: "View all builds";
986
1249
  readonly showingNextBuilds: (count: string, projectName: string) => string;
987
- readonly showingRecentBuilds: (count: string, projectName: string, viewAllBuildsLink: string) => string;
1250
+ readonly showingRecentBuilds: (count: number, projectName: string, viewAllBuildsLink: string) => string;
988
1251
  readonly errors: {
989
1252
  readonly noBuilds: "No builds for this project were found.";
990
1253
  readonly projectNotFound: (projectName: string) => string;
@@ -1172,17 +1435,30 @@ Profiles enable you to reference variables in your component configuration files
1172
1435
  readonly noPackageJsonInProject: (projectName: string, link: string) => string;
1173
1436
  readonly packageManagerNotInstalled: (packageManager: string, link: string) => string;
1174
1437
  };
1438
+ readonly validate: {
1439
+ readonly describe: "Validate the project before uploading";
1440
+ readonly mustBeRanWithinAProject: "This command must be run from within a project directory.";
1441
+ readonly badVersion: "This command is only available for projects 2025.2 and later.";
1442
+ readonly examples: {
1443
+ readonly default: "Validate the project before uploading";
1444
+ };
1445
+ readonly success: (projectName: string) => string;
1446
+ readonly failure: (projectName: string) => string;
1447
+ readonly options: {
1448
+ readonly profile: {
1449
+ readonly describe: "The profile to target for this validation";
1450
+ };
1451
+ };
1452
+ };
1175
1453
  };
1176
1454
  readonly remove: {
1177
- readonly describe: "Delete a file or folder from HubSpot.";
1178
- readonly deleted: (path: string, accountId: string) => string;
1455
+ readonly describe: "Delete a file or folder from the HubSpot CMS.";
1456
+ readonly deleted: (path: string, accountId: number) => string;
1179
1457
  readonly errors: {
1180
- readonly deleteFailed: (path: string, accountId: string) => string;
1458
+ readonly deleteFailed: (path: string, accountId: number) => string;
1181
1459
  };
1182
1460
  readonly positionals: {
1183
- readonly path: {
1184
- readonly describe: "Remote hubspot path";
1185
- };
1461
+ readonly path: "Remote hubspot path";
1186
1462
  };
1187
1463
  };
1188
1464
  readonly sandbox: {
@@ -1424,9 +1700,7 @@ Profiles enable you to reference variables in your component configuration files
1424
1700
  };
1425
1701
  readonly success: (themePath: string, selectorsPath: string) => string;
1426
1702
  readonly positionals: {
1427
- readonly path: {
1428
- readonly describe: "The path of the theme you'd like to generate an editor-preview.json for.";
1429
- };
1703
+ readonly path: "The path of the theme you'd like to generate an editor-preview.json for.";
1430
1704
  };
1431
1705
  };
1432
1706
  readonly marketplaceValidate: {
@@ -1457,25 +1731,16 @@ Profiles enable you to reference variables in your component configuration files
1457
1731
  readonly errors: {
1458
1732
  readonly invalidPath: (path: string) => string;
1459
1733
  readonly noThemeComponents: "Your project has no theme components available to preview.";
1734
+ readonly uploadFailed: (src: string, dest: string) => string;
1460
1735
  };
1461
1736
  readonly positionals: {
1462
- readonly src: {
1463
- readonly describe: "Path to the local directory your theme is in, relative to your current working directory";
1464
- };
1465
- readonly dest: {
1466
- readonly describe: "Path in HubSpot Design Tools. Can be a net new path. If you wish to preview a site page using your theme changes it must match the path of the theme used by the site.";
1467
- };
1737
+ readonly src: "Path to the local directory your theme is in, relative to your current working directory";
1738
+ readonly dest: "Path in HubSpot Design Tools. Can be a net new path. If you wish to preview a site page using your theme changes it must match the path of the theme used by the site.";
1468
1739
  };
1469
1740
  readonly options: {
1470
- readonly notify: {
1471
- readonly describe: "Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file";
1472
- };
1473
- readonly noSsl: {
1474
- readonly describe: "Disable HTTPS";
1475
- };
1476
- readonly port: {
1477
- readonly describe: "The port on which to start the local server";
1478
- };
1741
+ readonly notify: "Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file";
1742
+ readonly noSsl: "Disable HTTPS";
1743
+ readonly port: "The port on which to start the local server";
1479
1744
  };
1480
1745
  readonly initialUploadProgressBar: {
1481
1746
  readonly start: "Starting...";
@@ -1499,11 +1764,6 @@ Profiles enable you to reference variables in your component configuration files
1499
1764
  readonly logs: {
1500
1765
  readonly validatingModule: (path: string) => string;
1501
1766
  };
1502
- readonly options: {
1503
- readonly json: {
1504
- readonly describe: "Output raw json data";
1505
- };
1506
- };
1507
1767
  readonly results: {
1508
1768
  readonly required: "Required validation results:";
1509
1769
  readonly recommended: "Recommended validation results:";
@@ -1514,9 +1774,7 @@ Profiles enable you to reference variables in your component configuration files
1514
1774
  readonly noErrors: "No errors";
1515
1775
  };
1516
1776
  readonly positionals: {
1517
- readonly src: {
1518
- readonly describe: "Path to the module within the Design Manager.";
1519
- };
1777
+ readonly src: "Path to the module within the Design Manager.";
1520
1778
  };
1521
1779
  };
1522
1780
  };
@@ -1529,85 +1787,53 @@ Profiles enable you to reference variables in your component configuration files
1529
1787
  readonly invalidPath: (path: string) => string;
1530
1788
  readonly uploadFailed: (src: string, dest: string) => string;
1531
1789
  readonly someFilesFailed: (dest: string) => string;
1532
- readonly deleteFailed: (path: string, accountId: string) => string;
1790
+ readonly deleteFailed: (path: string, accountId: number) => string;
1533
1791
  };
1534
1792
  readonly options: {
1535
- readonly options: {
1536
- readonly describe: "Options to pass to javascript fields files";
1537
- };
1538
- readonly saveOutput: {
1539
- readonly describe: "If true, saves all output from javascript fields files as 'fields.output.json'.";
1540
- };
1541
- readonly convertFields: {
1542
- readonly describe: "If true, converts any javascript fields files contained in module folder or project root.";
1543
- };
1544
- readonly clean: {
1545
- readonly describe: "Will delete the destination directory and its contents before uploading. This will also clear the global content associated with any global partial templates and modules.";
1546
- };
1547
- readonly force: {
1548
- readonly describe: "Skips confirmation prompts when doing a clean upload.";
1549
- };
1793
+ readonly options: "Options to pass to javascript fields files";
1794
+ readonly saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.";
1795
+ readonly convertFields: "If true, converts any javascript fields files contained in module folder or project root.";
1796
+ readonly clean: "Will delete the destination directory and its contents before uploading. This will also clear the global content associated with any global partial templates and modules.";
1797
+ readonly force: "Skips confirmation prompts when doing a clean upload.";
1550
1798
  };
1551
1799
  readonly previewUrl: (previewUrl: string) => string;
1552
1800
  readonly positionals: {
1553
- readonly src: {
1554
- readonly describe: "Path to the local file, relative to your current working directory.";
1555
- };
1556
- readonly dest: {
1557
- readonly describe: "Path in HubSpot Design Tools, can be a net new path.";
1558
- };
1801
+ readonly src: "Path to the local file, relative to your current working directory.";
1802
+ readonly dest: "Path in HubSpot Design Tools, can be a net new path.";
1559
1803
  };
1560
1804
  readonly success: {
1561
- readonly fileUploaded: (src: string, dest: string, accountId: string) => string;
1805
+ readonly fileUploaded: (src: string, dest: string, accountId: number) => string;
1562
1806
  readonly uploadComplete: (dest: string) => string;
1563
1807
  };
1564
- readonly uploading: (src: string, dest: string, accountId: string) => string;
1808
+ readonly uploading: (src: string, dest: string, accountId: number) => string;
1565
1809
  readonly notUploaded: (src: string) => string;
1566
- readonly cleaning: (filePath: string, accountId: string) => string;
1567
- readonly confirmCleanUpload: (filePath: string, accountId: string) => string;
1810
+ readonly cleaning: (filePath: string, accountId: number) => string;
1811
+ readonly confirmCleanUpload: (filePath: string, accountId: number) => string;
1568
1812
  };
1569
1813
  readonly watch: {
1570
1814
  readonly describe: "Watch a directory on your computer for changes and upload the changed files to the HubSpot CMS.";
1571
1815
  readonly errors: {
1572
- readonly folderFailed: (src: string, dest: string, accountId: string) => string;
1573
- readonly fileFailed: (file: string, dest: string, accountId: string) => string;
1816
+ readonly folderFailed: (src: string, dest: string, accountId: number) => string;
1817
+ readonly fileFailed: (file: string, dest: string, accountId: number) => string;
1574
1818
  readonly destinationRequired: "A destination directory needs to be passed";
1575
1819
  readonly invalidPath: (path: string) => string;
1576
1820
  };
1577
1821
  readonly options: {
1578
- readonly disableInitial: {
1579
- readonly describe: "Disable the initial upload when watching a directory (default)";
1580
- };
1581
- readonly initialUpload: {
1582
- readonly describe: "Upload directory before watching for updates";
1583
- };
1584
- readonly notify: {
1585
- readonly describe: "Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file";
1586
- };
1587
- readonly remove: {
1588
- readonly describe: "Will cause watch to delete files in your HubSpot account that are not found locally.";
1589
- };
1590
- readonly convertFields: {
1591
- readonly describe: "If true, converts any javascript fields files contained in module folder or project root.";
1592
- };
1593
- readonly saveOutput: {
1594
- readonly describe: "If true, saves all output from javascript fields files as 'fields.output.json'.";
1595
- };
1596
- readonly options: {
1597
- readonly describe: "Options to pass to javascript fields files";
1598
- };
1822
+ readonly disableInitial: "Disable the initial upload when watching a directory (default)";
1823
+ readonly initialUpload: "Upload directory before watching for updates";
1824
+ readonly notify: "Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file";
1825
+ readonly remove: "Will cause watch to delete files in your HubSpot account that are not found locally.";
1826
+ readonly convertFields: "If true, converts any javascript fields files contained in module folder or project root.";
1827
+ readonly saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.";
1828
+ readonly options: "Options to pass to javascript fields files";
1599
1829
  };
1600
1830
  readonly positionals: {
1601
- readonly src: {
1602
- readonly describe: "Path to the local directory your files are in, relative to your current working directory";
1603
- };
1604
- readonly dest: {
1605
- readonly describe: "Path in HubSpot Design Tools. Can be a net new path";
1606
- };
1831
+ readonly src: "Path to the local directory your files are in, relative to your current working directory";
1832
+ readonly dest: "Path in HubSpot Design Tools. Can be a net new path";
1607
1833
  };
1608
1834
  readonly warnings: {
1609
- readonly disableInitial: () => string;
1610
- readonly initialUpload: () => string;
1835
+ readonly disableInitial: `Passing the "${string}" option is no longer necessary. Running "${string}" no longer uploads the watched directory by default.`;
1836
+ readonly initialUpload: `To upload the directory run "${string}" beforehand or add the "${string}" option when running "${string}".`;
1611
1837
  readonly notUploaded: (path: string) => string;
1612
1838
  };
1613
1839
  };
@@ -1628,6 +1854,100 @@ Profiles enable you to reference variables in your component configuration files
1628
1854
  readonly missingSrc: "Please specify the path to your javascript fields file or directory with the --src flag.";
1629
1855
  };
1630
1856
  };
1857
+ readonly testAccount: {
1858
+ readonly describe: "Commands for working with test accounts.";
1859
+ readonly subcommands: {
1860
+ readonly importData: {
1861
+ readonly describe: "Import data into the CRM";
1862
+ readonly options: {
1863
+ readonly skipConfirm: {
1864
+ readonly describe: "Skip the confirmation prompt";
1865
+ };
1866
+ readonly filePath: {
1867
+ readonly describe: "The path to the JSON file containing the import schema";
1868
+ };
1869
+ };
1870
+ };
1871
+ };
1872
+ readonly create: {
1873
+ readonly describe: "Create a test account from a config file";
1874
+ readonly configPathPrompt: "[--config-path] Enter the path to the test account config: ";
1875
+ readonly createTestAccountFromConfigPrompt: "How would you like to create your test account?";
1876
+ readonly createFromConfigOption: "Create test account from config file";
1877
+ readonly createFromScratchOption: "Create test account from scratch";
1878
+ readonly errors: {
1879
+ readonly configFileNotFound: (configPath: string) => string;
1880
+ readonly configFileParseFailed: (configPath: string) => string;
1881
+ readonly saveAccountToConfigFailure: (accountName: string) => string;
1882
+ };
1883
+ readonly polling: {
1884
+ readonly start: (testAccountName: string) => string;
1885
+ readonly syncing: "Test account created! Syncing account data... (may take a few minutes - you can exit and the sync will continue)";
1886
+ readonly success: (testAccountName: string, testAccountId: number) => string;
1887
+ readonly createFailure: "Failed to create test account.";
1888
+ };
1889
+ readonly options: {
1890
+ readonly configPath: "The path to the test account config";
1891
+ };
1892
+ readonly example: (configPath: string) => string;
1893
+ };
1894
+ readonly createConfig: {
1895
+ readonly describe: "Create a test account config file.";
1896
+ readonly pathPrompt: "[--path] Enter the name of the Test Account config file: ";
1897
+ readonly errors: {
1898
+ readonly pathError: "Path is required";
1899
+ readonly pathFormatError: "Path must end with .json";
1900
+ readonly failedToCreate: "Failed to create test account config";
1901
+ readonly pathExistsError: "A file already exists at this path. Please try again with a different path.";
1902
+ };
1903
+ readonly success: {
1904
+ readonly configFileCreated: (path: string) => string;
1905
+ };
1906
+ readonly options: {
1907
+ readonly name: "The name of the test account";
1908
+ readonly description: "The description of the test account";
1909
+ readonly path: "The path to the test account config";
1910
+ };
1911
+ readonly example: (name: string) => string;
1912
+ };
1913
+ readonly delete: {
1914
+ readonly describe: "Delete a test account from your HubSpot account and CLI config";
1915
+ readonly pathPrompt: "[--path] What is the path to the test account config?";
1916
+ readonly info: {
1917
+ readonly deletionCanceled: "Deletion canceled by user";
1918
+ readonly accountNotFoundWithId: (id: number) => string;
1919
+ readonly replaceDefaultAccount: (testAccountId: number, parentAccountName: string) => string;
1920
+ };
1921
+ readonly prompts: {
1922
+ readonly selectTestAccounts: "Select test account(s) to delete";
1923
+ readonly confirmDeletion: "All data for the account will be permanently deleted. Any connected apps will have their access tokens revoked. Do you wish to proceed?";
1924
+ };
1925
+ readonly errors: {
1926
+ readonly failedToDelete: (testAccountToDelete: number) => string;
1927
+ readonly failedToSelectAccount: "Failed to select a test account to delete";
1928
+ readonly noAccountsToDelete: (accountId: number) => string;
1929
+ readonly failedToDeleteFromConfig: (testAccountToDelete: number) => string;
1930
+ readonly failedToFetchTestAccounts: "Failed to fetch developer test accounts";
1931
+ readonly testAccountNotFound: (nameOrId: string | number | null) => string;
1932
+ readonly parentAccountNotFound: (testAccountId: number) => string;
1933
+ };
1934
+ readonly success: {
1935
+ readonly testAccountDeletedFromHubSpot: (testAccountToDelete: number) => string;
1936
+ readonly testAccountDeletedFromConfig: (accountId: number) => string;
1937
+ };
1938
+ readonly options: {
1939
+ readonly name: "The name of the test account (in your CLI config) to delete";
1940
+ readonly id: "The id of the test account";
1941
+ };
1942
+ readonly examples: {
1943
+ readonly withPositionalID: (testAccountToDelete: number) => string;
1944
+ readonly withPositionalName: (testAccountToDelete: string) => string;
1945
+ readonly withID: (testAccountToDelete: number) => string;
1946
+ readonly withName: (testAccountToDelete: string) => string;
1947
+ readonly withoutId: "Delete a test account via a prompt";
1948
+ };
1949
+ };
1950
+ };
1631
1951
  readonly secrets: {
1632
1952
  readonly add: {
1633
1953
  readonly loading: {
@@ -2211,59 +2531,14 @@ Profiles enable you to reference variables in your component configuration files
2211
2531
  };
2212
2532
  };
2213
2533
  };
2214
- readonly setupMcp: {
2215
- readonly describe: "Configure the HubSpot CLI MCP (Model Context Protocol) server for use with Cursor.";
2216
- readonly errors: {
2217
- readonly serverNotFound: "hsmcp command not found. Please ensure the HubSpot CLI is properly installed and available in your PATH.";
2218
- readonly installHint: "If you installed the CLI locally, make sure to install it globally with: npm install -g @hubspot/cli";
2219
- readonly configurationFailed: "Failed to configure MCP server";
2220
- };
2221
- readonly warnings: {
2222
- readonly alreadyConfigured: "MCP server is already configured.";
2223
- };
2224
- readonly success: {
2225
- readonly configured: "MCP server successfully configured for Cursor.";
2226
- readonly restartCursor: "Please restart Cursor to apply the changes.";
2227
- };
2228
- readonly instructions: {
2229
- readonly title: "Manual MCP Server Configuration Instructions:";
2230
- readonly step1: "1. Open or create the Cursor configuration file at:";
2231
- readonly step2: "2. Add the following configuration to the file:";
2232
- readonly step3: "3. Restart Cursor to apply the changes.";
2233
- readonly documentation: "For more information, visit: https://docs.cursor.com/context/model-context-protocol";
2234
- };
2235
- readonly options: {
2236
- readonly autoSetup: {
2237
- readonly describe: "Automatically configure the MCP server in Cursor configuration";
2238
- };
2239
- readonly showInstructions: {
2240
- readonly describe: "Display manual configuration instructions instead of auto-setup";
2241
- };
2242
- readonly global: {
2243
- readonly describe: "Configure globally for all Cursor workspaces (default: true)";
2244
- };
2245
- };
2246
- readonly prompts: {
2247
- readonly selectAction: "How would you like to configure the MCP server?";
2248
- readonly selectScope: "Configure MCP server for:";
2249
- readonly overwrite: "MCP server is already configured. Overwrite existing configuration?";
2250
- };
2251
- readonly choices: {
2252
- readonly autoSetup: "Automatically configure (recommended)";
2253
- readonly showInstructions: "Show manual configuration instructions";
2254
- readonly global: "Global (all Cursor workspaces)";
2255
- readonly project: "Current project only";
2256
- };
2257
- readonly examples: {
2258
- readonly default: "Configure the MCP server interactively";
2259
- readonly autoSetup: "Automatically configure the MCP server";
2260
- readonly autoSetupGlobal: "Automatically configure the MCP server globally";
2261
- readonly autoSetupProject: "Automatically configure for current project only";
2262
- readonly showInstructions: "Display manual configuration instructions";
2263
- };
2264
- };
2265
2534
  };
2266
2535
  export declare const lib: {
2536
+ readonly parsing: {
2537
+ readonly unableToParseStringToNumber: "Unable to parse string to number";
2538
+ };
2539
+ readonly configMiddleWare: {
2540
+ readonly invalidAccountIdEnvironmentVariable: "Unable to parse `HUBSPOT_ACCOUNT_ID` environment variable into a number";
2541
+ };
2267
2542
  readonly process: {
2268
2543
  readonly exitDebug: (signal: string) => string;
2269
2544
  };
@@ -2273,7 +2548,6 @@ export declare const lib: {
2273
2548
  readonly noCompatibleComponents: (serverKey: string) => string;
2274
2549
  };
2275
2550
  readonly LocalDevManager: {
2276
- readonly staticAuthAccountsMustMatch: "You must test static auth apps in the account the project exists in";
2277
2551
  readonly appNotFound: (accountId: number, appUid: string | undefined) => string;
2278
2552
  readonly failedToInitialize: "Missing required arguments to initialize Local Dev";
2279
2553
  readonly noDeployedBuild: (projectName: string, accountIdentifier: string, uploadCommand: string) => string;
@@ -2283,6 +2557,8 @@ export declare const lib: {
2283
2557
  readonly running: (projectName: string, accountIdentifier: string) => string;
2284
2558
  readonly quitHelper: `Press ${string} to stop the local dev server`;
2285
2559
  readonly viewProjectLink: (name: string, accountId: number) => string;
2560
+ readonly viewLocalDevUILink: (accountId: number, showWelcomeScreen: boolean) => string;
2561
+ readonly localDevUIAutoMessage: (accountId: number, showWelcomeScreen: boolean) => string;
2286
2562
  readonly viewTestAccountLink: "View developer test account in HubSpot";
2287
2563
  readonly exitingStart: "Stopping local dev server ...";
2288
2564
  readonly exitingSucceed: "Successfully exited";
@@ -2317,6 +2593,18 @@ export declare const lib: {
2317
2593
  };
2318
2594
  readonly AppDevModeInterface: {
2319
2595
  readonly defaultMarketplaceAppWarning: (installCount: number) => string;
2596
+ readonly autoInstallDeclined: "You must install your app on your target test account to proceed with local development.";
2597
+ readonly autoInstallSuccess: (appName: string, targetTestAccountId: number) => string;
2598
+ readonly autoInstallError: (appName: string, targetTestAccountId: number) => string;
2599
+ readonly fetchAppData: {
2600
+ readonly checking: (appName: string) => string;
2601
+ readonly success: (appName: string, accountId: number) => string;
2602
+ readonly notInstalled: (appName: string, accountId: number) => string;
2603
+ readonly activeInstallations: (appName: string, installCount: number) => string;
2604
+ readonly error: "An error occurred while checking installations for your app";
2605
+ };
2606
+ readonly distributionChanged: `Your app's distribution type has been changed from private to marketplace. Once uploaded, this change cannot be reversed. Before uploading your project, confirm that you want to ${string} change your app's distribution type. This will uninstall your app from all accounts.`;
2607
+ readonly authTypeChanged: `Your app's auth type has been changed from static to oauth. Once uploaded, this change cannot be reversed. Before uploading your project, confirm that you want to ${string} change your app's auth type. This will uninstall your app from all accounts.`;
2320
2608
  };
2321
2609
  readonly LocalDevWebsocketServer: {
2322
2610
  readonly errors: {
@@ -2325,6 +2613,7 @@ export declare const lib: {
2325
2613
  readonly unknownMessageType: (type: string) => string;
2326
2614
  readonly invalidJSON: (data: string) => string;
2327
2615
  readonly portManagerNotRunning: (prefix: string) => string;
2616
+ readonly originNotAllowed: (origin?: string) => string;
2328
2617
  };
2329
2618
  readonly logs: {
2330
2619
  readonly startup: (port: number) => string;
@@ -2333,47 +2622,63 @@ export declare const lib: {
2333
2622
  readonly LocalDevProcess: {
2334
2623
  readonly projectConfigMismatch: `Unable to upload project. The project config has been modified since starting ${string}.`;
2335
2624
  readonly uploadInitiated: "Project upload initiated from Local Dev UI.";
2625
+ readonly deployInitiated: "Project deploy initiated from Local Dev UI.";
2336
2626
  readonly uploadFailed: "Project upload failed. To proceed with local development, fix any necessary errors, then re-upload your project.";
2627
+ readonly deployFailed: "Project deploy failed. To proceed with local development, fix any necessary errors, then re-deploy your project.";
2337
2628
  readonly uploadSuccess: "Project upload completed successfully. Resuming local dev...";
2629
+ readonly uploadSuccessAutoDeployDisabled: "Project upload completed successfully, but auto-deploy is disabled for this project. Deploy your latest build to proceed with local development.";
2630
+ readonly deploySuccess: "Project deploy completed successfully. Resuming local dev...";
2631
+ readonly noBuildToDeploy: "Error deploying project. No build was found to deploy.";
2338
2632
  };
2339
2633
  readonly localDevHelpers: {
2340
- readonly confirmDefaultAccountIsTarget: {
2341
- readonly configError: `An error occurred while reading the default account from your config. Run ${string} to re-auth this account`;
2342
- readonly declineDefaultAccountExplanation: `To develop on a different account, run ${string} to change your default account, then re-run ${string}.`;
2343
- };
2344
- readonly checkIfDefaultAccountIsSupported: {
2345
- readonly publicApp: `This project contains a public app. Local development of public apps is only supported on developer accounts and developer test accounts. Change your default account using ${string}, or link a new account with ${string}.`;
2346
- readonly privateApp: `This project contains a private app. Local development of private apps is not supported in developer accounts. Change your default account using ${string}, or link a new account with ${string}.`;
2347
- };
2348
- readonly validateAccountOption: {
2349
- readonly invalidPublicAppAccount: `This project contains a public app. The "--account" flag must point to a developer test account to develop this project locally. Alternatively, change your default account to an App Developer Account using ${string} and run ${string} to set up a new Developer Test Account.`;
2350
- readonly invalidPrivateAppAccount: `This project contains a private app. The account specified with the "--account" flag points to a developer account, which do not support the local development of private apps. Update the "--account" flag to point to a standard, sandbox, or developer test account, or change your default account by running ${string}.`;
2351
- readonly nonSandboxWarning: `Testing in a sandbox is strongly recommended. To switch the target account, select an option below or run ${string} before running the command again.`;
2352
- readonly publicAppNonDeveloperTestAccountWarning: `Local development of public apps is only supported in ${string}.`;
2353
- };
2354
- readonly createNewProjectForLocalDev: {
2355
- readonly projectMustExistExplanation: (projectName: string, accountId: number) => string;
2356
- readonly publicAppProjectMustExistExplanation: (projectName: string, accountId: number) => string;
2357
- readonly createProject: (projectName: string, accountIdentifier: string) => string;
2358
- readonly choseNotToCreateProject: "Exiting because this command requires the project to exist in the target account.";
2359
- readonly creatingProject: (projectName: string, accountIdentifier: string) => string;
2360
- readonly createdProject: (projectName: string, accountIdentifier: string) => string;
2361
- readonly failedToCreateProject: "Failed to create project in the target account.";
2362
- };
2363
- readonly createInitialBuildForNewProject: {
2364
- readonly initialUploadMessage: "HubSpot Local Dev Server Startup";
2365
- readonly projectLockedError: "Your project is locked. This may mean that another user is running the `hs project watch` command for this project. If this is you, unlock the project in Projects UI.";
2366
- readonly genericError: `An error occurred while creating the initial build for this project. Run ${string} to try again.`;
2367
- };
2368
- readonly checkIfParentAccountIsAuthed: {
2369
- readonly notAuthedError: (parentAccountId: number | string, accountIdentifier: string) => string;
2370
- };
2371
- readonly selectAccountTypePrompt: {
2372
- readonly message: "[--account] Choose the type of account to test on";
2373
- readonly developerTestAccountOption: "Test on a developer test account";
2374
- readonly sandboxAccountOption: "Test on a sandbox account";
2375
- readonly sandboxAccountOptionDisabled: "Disabled - requires access to sandbox accounts";
2376
- readonly productionAccountOption: `<${string} Test on this account ${string}>`;
2634
+ readonly project: {
2635
+ readonly compareLocalProjectToDeployed: {
2636
+ readonly noDeployedBuild: (projectName: string, accountIdentifier: string) => string;
2637
+ readonly checking: "Checking if your deployed build is up to date...";
2638
+ readonly upToDate: "Deployed build is up to date.";
2639
+ readonly notUpToDate: "Your project contains undeployed local changes.";
2640
+ readonly notUpToDateExplanation: (profile?: string) => string;
2641
+ };
2642
+ readonly createNewProjectForLocalDev: {
2643
+ readonly projectMustExistExplanation: (projectName: string, accountId: number) => string;
2644
+ readonly publicAppProjectMustExistExplanation: (projectName: string, accountId: number) => string;
2645
+ readonly createProject: (projectName: string, accountIdentifier: string) => string;
2646
+ readonly choseNotToCreateProject: "Exiting because this command requires the project to exist in the target account.";
2647
+ readonly creatingProject: (projectName: string, accountIdentifier: string) => string;
2648
+ readonly createdProject: (projectName: string, accountIdentifier: string) => string;
2649
+ readonly failedToCreateProject: "Failed to create project in the target account.";
2650
+ };
2651
+ readonly createInitialBuildForNewProject: {
2652
+ readonly initialUploadMessage: "HubSpot Local Dev Server Startup";
2653
+ readonly projectLockedError: "Your project is locked. This may mean that another user is running the `hs project watch` command for this project. If this is you, unlock the project in Projects UI.";
2654
+ readonly genericError: `An error occurred while creating the initial build for this project. Run ${string} to try again.`;
2655
+ };
2656
+ };
2657
+ readonly account: {
2658
+ readonly checkIfDefaultAccountIsSupported: {
2659
+ readonly publicApp: `This project contains a public app. Local development of public apps is only supported on developer accounts and developer test accounts. Change your default account using ${string}, or link a new account with ${string}.`;
2660
+ readonly privateApp: `This project contains a private app. Local development of private apps is not supported in developer accounts. Change your default account using ${string}, or link a new account with ${string}.`;
2661
+ };
2662
+ readonly validateAccountOption: {
2663
+ readonly invalidPublicAppAccount: `This project contains a public app. The "--account" flag must point to a developer test account to develop this project locally. Alternatively, change your default account to an App Developer Account using ${string} and run ${string} to set up a new Developer Test Account.`;
2664
+ readonly invalidPrivateAppAccount: `This project contains a private app. The account specified with the "--account" flag points to a developer account, which do not support the local development of private apps. Update the "--account" flag to point to a standard, sandbox, or developer test account, or change your default account by running ${string}.`;
2665
+ readonly nonSandboxWarning: `Testing in a sandbox is strongly recommended. To switch the target account, select an option below or run ${string} before running the command again.`;
2666
+ readonly publicAppNonDeveloperTestAccountWarning: `Local development of public apps is only supported in ${string}.`;
2667
+ };
2668
+ readonly checkIfParentAccountIsAuthed: {
2669
+ readonly notAuthedError: (parentAccountId: number | string, accountIdentifier: string) => string;
2670
+ };
2671
+ readonly selectAccountTypePrompt: {
2672
+ readonly message: "[--testing-account] Choose the type of account to test on";
2673
+ readonly developerTestAccountOption: "Test on a developer test account (recommended)";
2674
+ readonly sandboxAccountOption: "Test on a sandbox account";
2675
+ readonly sandboxAccountOptionDisabled: "Disabled - requires access to sandbox accounts";
2676
+ readonly productionAccountOption: (accountId?: number) => string;
2677
+ };
2678
+ readonly confirmDefaultAccountIsTarget: {
2679
+ readonly configError: `An error occurred while reading the default account from your config. Run ${string} to re-auth this account`;
2680
+ readonly declineDefaultAccountExplanation: `To develop on a different account, run ${string} to change your default account, then re-run ${string}.`;
2681
+ };
2377
2682
  };
2378
2683
  };
2379
2684
  readonly middleware: {
@@ -2412,12 +2717,31 @@ Run ${string} to upgrade to version ${string}`;
2412
2717
  };
2413
2718
  readonly projects: {
2414
2719
  readonly create: {
2720
+ readonly prompt: {
2721
+ readonly marketPlaceDistribution: "On the HubSpot marketplace";
2722
+ readonly privateDistribution: "Privately";
2723
+ readonly distribution: "[--distribution] How would you like to distribute your application?";
2724
+ readonly auth: "[--auth] What type of authentication would you like your application to use";
2725
+ readonly staticAuth: "Static Auth";
2726
+ readonly oauth: "OAuth";
2727
+ };
2415
2728
  readonly errors: {
2416
2729
  readonly noProjectsInConfig: "Unable to find any projects in the target repository's config.json file. Please ensure that there is a \"projects\" array in the config file.";
2417
2730
  readonly missingConfigFileTemplateSource: "Failed to fetch the config.json file from the target repository. Please ensure that there is a valid config.json file at the root of the repository and try again.";
2418
- readonly missingPropertiesInConfig: "Found misconfigured projects in the target repository's config.json file. Please ensure that each project in the target repository's config.json file contains the following properties: [\"name\", \"label\", \"path\", \"insertPath\"].";
2731
+ readonly missingPropertiesInConfig: "Found misconfigured projects in the target repository's config.json file. Please ensure that each project in the target repository's config.json file contains the following properties: [\"name\", \"label\", \"path\"].";
2732
+ readonly exceededMaxNumberOfApps: (max: number) => string;
2733
+ readonly unableToParseAppConfig: (file: string) => string;
2734
+ readonly invalidAuthDistCombo: (authType: string, distribution: string) => string;
2419
2735
  };
2420
2736
  };
2737
+ readonly add: {
2738
+ readonly nothingAdded: "No features added.";
2739
+ };
2740
+ readonly updateHsMetaFilesWithAutoGeneratedFields: {
2741
+ readonly header: "Created the following components and features:";
2742
+ readonly applicationLog: (componentType: string, uid: string, name: string) => string;
2743
+ readonly componentLog: (componentType: string, uid: string) => string;
2744
+ };
2421
2745
  readonly validateProjectConfig: {
2422
2746
  readonly configNotFound: `Unable to locate a project configuration file. Try running again from a project directory, or run ${string} to create a new project.`;
2423
2747
  readonly configMissingFields: "The project configuration file is missing required fields.";
@@ -2456,11 +2780,12 @@ Run ${string} to upgrade to version ${string}`;
2456
2780
  readonly pollProjectBuildAndDeploy: {
2457
2781
  readonly buildSucceededAutomaticallyDeploying: (buildId: number, accountIdentifier: string) => string;
2458
2782
  readonly cleanedUpTempFile: (path: string) => string;
2459
- readonly viewDeploys: "View all deploys for this project in HubSpot";
2783
+ readonly viewDeploys: "view all deploys for this project in HubSpot";
2460
2784
  readonly unableToFindAutodeployStatus: (buildId: number, viewDeploysLink: string) => string;
2461
2785
  };
2462
2786
  };
2463
2787
  readonly projectUpload: {
2788
+ readonly wrongPlatformVersionMetaFiles: `Detected components that require a minimum platform version of ${string}. You need to update your platform version in your hsproject.json and run ${string}`;
2464
2789
  readonly uploadProjectFiles: {
2465
2790
  readonly add: (projectName: string, accountIdentifier: string) => string;
2466
2791
  readonly fail: (projectName: string, accountIdentifier: string) => string;
@@ -2472,11 +2797,22 @@ Run ${string} to upgrade to version ${string}`;
2472
2797
  readonly compressed: (byteCount: number) => string;
2473
2798
  readonly compressing: (path: string) => string;
2474
2799
  readonly fileFiltered: (filename: string) => string;
2800
+ readonly legacyFileDetected: (filename: string, platformVersion: string) => string;
2475
2801
  };
2476
2802
  };
2477
2803
  readonly boxen: {
2478
2804
  readonly failedToLoad: "Failed to load boxen util.";
2479
2805
  };
2806
+ readonly importData: {
2807
+ readonly errors: {
2808
+ readonly incorrectAccountType: (derivedAccountId: number) => string;
2809
+ readonly failedToImportData: "Failed to import data into portal.";
2810
+ readonly notDeveloperTestAccount: "The account is not a developer test account.";
2811
+ readonly noAccountConfig: (accountId: number) => string;
2812
+ };
2813
+ readonly inProgress: (portalId: number, fileNames: string[]) => string;
2814
+ readonly viewImportLink: (baseUrl: string, accountId: number, importId: string) => string;
2815
+ };
2480
2816
  readonly ui: {
2481
2817
  readonly betaTag: string;
2482
2818
  readonly betaWarning: {
@@ -2564,6 +2900,12 @@ Run ${string} to upgrade to version ${string}`;
2564
2900
  readonly noLogsFound: "No logs found.";
2565
2901
  };
2566
2902
  };
2903
+ readonly buildAccount: {
2904
+ readonly createDeveloperTestAccountV3: {
2905
+ readonly syncFailure: "Failed to sync developer test account";
2906
+ readonly pakFailure: "Failed to generate personal access key for developer test account";
2907
+ };
2908
+ };
2567
2909
  readonly configOptions: {
2568
2910
  readonly enableOrDisableBooleanFieldPrompt: {
2569
2911
  readonly message: (fieldName: string) => string;
@@ -2588,38 +2930,62 @@ Run ${string} to upgrade to version ${string}`;
2588
2930
  readonly setHttpTimeout: {
2589
2931
  readonly promptMessage: "Enter http timeout duration";
2590
2932
  readonly success: (timeout: string) => string;
2933
+ readonly error: (timeout: string) => string;
2934
+ };
2935
+ readonly setAutoOpenBrowser: {
2936
+ readonly fieldName: "auto open browser";
2937
+ readonly enabled: `Successfully updated ${string} to ${string}`;
2938
+ readonly disabled: `Successfully updated ${string} to ${string}`;
2591
2939
  };
2592
2940
  };
2593
2941
  readonly commonOpts: {
2594
2942
  readonly options: {
2595
- readonly account: {
2596
- readonly describe: "HubSpot account id or name from config";
2597
- };
2598
- readonly config: {
2599
- readonly describe: "Path to a config file";
2600
- };
2601
- readonly overwrite: {
2602
- readonly describe: "Overwrite existing files";
2603
- };
2943
+ readonly account: "HubSpot account id or name from config";
2944
+ readonly config: "Path to a config file";
2945
+ readonly overwrite: "Overwrite existing files";
2604
2946
  readonly modes: {
2605
- readonly describe: {
2606
- readonly default: (modes: string) => string;
2607
- readonly read: (modes: string) => string;
2608
- readonly write: (modes: string) => string;
2609
- };
2610
- };
2611
- readonly qa: {
2612
- readonly describe: "Run command in QA mode";
2613
- };
2614
- readonly useEnv: {
2615
- readonly describe: "Use environment variable config";
2616
- };
2617
- readonly debug: {
2618
- readonly describe: "Set log level to debug";
2947
+ readonly default: (modes: string) => string;
2948
+ readonly read: (modes: string) => string;
2949
+ readonly write: (modes: string) => string;
2619
2950
  };
2951
+ readonly qa: "Run command in QA mode";
2952
+ readonly useEnv: "Use environment variable config";
2953
+ readonly jsonOutput: "Format output as JSON";
2954
+ readonly debug: "Set log level to debug";
2955
+ };
2956
+ };
2957
+ readonly configMigrate: {
2958
+ readonly deprecatedConfigWarning: (deprecatedConfigPath: string) => string;
2959
+ readonly handleMigration: {
2960
+ readonly description: (archivedConfigName: string) => string;
2961
+ readonly confirmPrompt: "Migrate the deprecated config to the global location?";
2962
+ readonly success: "Your deprecated config file has been successfully migrated.";
2963
+ };
2964
+ readonly handleMergeConfigProperties: {
2965
+ readonly mergeConflictMessage: (count: number, propertyList: string) => string;
2966
+ readonly mergeConfigConflictPrompt: (property: string, newValue: string, oldValue: string) => string;
2967
+ };
2968
+ readonly handleMerge: {
2969
+ readonly description: (archivedConfigName: string) => string;
2970
+ readonly confirmPrompt: "Merge the deprecated config into your global config?";
2971
+ readonly skippedExistingAccounts: (accountIds: (string | number)[]) => string;
2972
+ readonly success: "Your deprecated config file has been successfully merged with the global config file.";
2620
2973
  };
2621
2974
  };
2622
2975
  readonly prompts: {
2976
+ readonly importDataFilePathPrompt: {
2977
+ readonly promptContext: `To view the JSON schema for data imports, visit ${string}`;
2978
+ readonly promptMessage: "[--file-path] Select the JSON file that will be used to import your data.";
2979
+ };
2980
+ readonly confirmImportDataPrompt: {
2981
+ readonly message: (dataFileNames: string[], cliAccount: CLIAccount | null) => string;
2982
+ };
2983
+ readonly importDataTestAccountSelectPrompt: {
2984
+ readonly errors: {
2985
+ readonly noAccountsFound: "No accounts found.";
2986
+ readonly noChildTestAccountsFound: (parentAccountId: number) => string;
2987
+ };
2988
+ };
2623
2989
  readonly projectDevTargetAccountPrompt: {
2624
2990
  readonly createNewSandboxOption: "<Test on a new development sandbox>";
2625
2991
  readonly createNewDeveloperTestAccountOption: "<Test on a new developer test account>";
@@ -2640,6 +3006,28 @@ Run ${string} to upgrade to version ${string}`;
2640
3006
  readonly setAsDefaultAccount: (accountName: string) => string;
2641
3007
  readonly keepingCurrentDefault: (accountName: string) => string;
2642
3008
  };
3009
+ readonly createDeveloperTestAccountConfigPrompt: {
3010
+ readonly namePrompt: (withFlag?: boolean) => string;
3011
+ readonly descriptionPrompt: (withFlag?: boolean) => string;
3012
+ readonly useDefaultAccountLevelsPrompt: {
3013
+ readonly message: "Would you like to create a default Test Account, or customize your own?";
3014
+ readonly default: "Default (All Hubs, ENTERPRISE)";
3015
+ readonly manual: "Customize my own";
3016
+ };
3017
+ readonly tiersPrompt: "Select an option per hub to customize tiers. If left blank, default is ENTERPRISE";
3018
+ readonly hubTypes: {
3019
+ readonly marketing: "Marketing";
3020
+ readonly ops: "Ops";
3021
+ readonly service: "Service";
3022
+ readonly sales: "Sales";
3023
+ readonly content: "Content";
3024
+ };
3025
+ readonly errors: {
3026
+ readonly allHubsRequired: "Select a tier for each hub";
3027
+ readonly tiersError: "Cannot have more than one tier per hub";
3028
+ readonly nameRequired: "The name may not be blank. Please add a name for the Test Account.";
3029
+ };
3030
+ };
2643
3031
  readonly accountNamePrompt: {
2644
3032
  readonly enterAccountName: "Enter a unique name to reference this account in the CLI:";
2645
3033
  readonly enterDeveloperTestAccountName: "Name your developer test account:";
@@ -2658,11 +3046,14 @@ Run ${string} to upgrade to version ${string}`;
2658
3046
  readonly enterAccountId: "Enter the account ID for your account (the number under the DOMAIN column at https://app.hubspot.com/myaccounts-beta ): ";
2659
3047
  readonly enterClientId: "Enter your OAuth2 client ID: ";
2660
3048
  readonly enterClientSecret: "Enter your OAuth2 client secret: ";
2661
- readonly enterPersonalAccessKey: "Enter your personal access key: ";
3049
+ readonly enterPersonalAccessKey: "[--personal-access-key] Enter your personal access key: ";
2662
3050
  readonly selectScopes: "Select access scopes (see https://developers.hubspot.com/docs/methods/oauth2/initiate-oauth-integration#scopes)";
2663
3051
  readonly personalAccessKeySetupTitle: "HubSpot Personal Access Key Setup";
2664
- readonly personalAccessKeyBrowserOpenPrep: "A personal access key is required to authenticate the CLI to interact with your HubSpot account. We'll open a secure page in your default browser where you can view and copy your personal access key.";
2665
- readonly personalAccessKeyBrowserOpenPrompt: "Open HubSpot to copy your personal access key?";
3052
+ readonly personalAccessKeyBrowserOpenPrep: "A personal access key is required to authenticate the CLI to interact with your HubSpot account.";
3053
+ readonly personalAccessKeyPromptChoices: {
3054
+ readonly OPEN_BROWSER: "Open HubSpot to copy your personal access key";
3055
+ readonly PASTE_EXISTING: "Enter existing personal access key";
3056
+ };
2666
3057
  readonly logs: {
2667
3058
  readonly openingWebBrowser: (url: string) => string;
2668
3059
  };
@@ -2711,15 +3102,20 @@ Run ${string} to upgrade to version ${string}`;
2711
3102
  readonly languageRequired: "Please select API sample app's language";
2712
3103
  };
2713
3104
  };
2714
- readonly createProjectPrompt: {
3105
+ readonly projectNameAndDestPrompt: {
2715
3106
  readonly enterName: "[--name] Give your project a name: ";
2716
3107
  readonly enterDest: "[--dest] Enter the folder to create the project in:";
2717
- readonly selectTemplate: "[--template] Choose a project template: ";
2718
3108
  readonly errors: {
2719
3109
  readonly nameRequired: "A project name is required";
2720
3110
  readonly destRequired: "A project dest is required";
2721
3111
  readonly invalidDest: "There is an existing project at this destination. Please provide a new path for this project.";
2722
3112
  readonly invalidCharacters: "The selected destination contains invalid characters. Please provide a new path and try again.";
3113
+ };
3114
+ };
3115
+ readonly selectProjectTemplatePrompt: {
3116
+ readonly selectTemplate: "[--template] Choose a project template: ";
3117
+ readonly features: "[--features] Which features would you like your app to include?";
3118
+ readonly errors: {
2723
3119
  readonly invalidTemplate: (template: string) => string;
2724
3120
  readonly projectTemplateRequired: "Project template is required when projectTemplates is provided";
2725
3121
  };
@@ -2752,11 +3148,14 @@ Run ${string} to upgrade to version ${string}`;
2752
3148
  };
2753
3149
  };
2754
3150
  readonly projectAddPrompt: {
2755
- readonly selectType: "[--type] Select a component to add: ";
3151
+ readonly selectType: "[--type] Select an app feature to add: ";
3152
+ readonly selectFeatures: "[--features] Select an app feature to add: ";
2756
3153
  readonly enterName: "[--name] Give your component a name: ";
2757
3154
  readonly errors: {
2758
3155
  readonly nameRequired: "A component name is required";
3156
+ readonly componentRequired: "Must select a feature to add";
2759
3157
  readonly invalidType: (type: string) => string;
3158
+ readonly cannotAddFeature: (feature: string, reasons: string | boolean) => string;
2760
3159
  };
2761
3160
  };
2762
3161
  readonly secretPrompt: {
@@ -2803,9 +3202,11 @@ Run ${string} to upgrade to version ${string}`;
2803
3202
  };
2804
3203
  };
2805
3204
  readonly installAppPrompt: {
2806
- readonly explanation: "Local development requires this app to be installed in the target test account";
3205
+ readonly explanation: "Local development requires this app to be installed in the target test account.";
2807
3206
  readonly reinstallExplanation: "This app's required scopes have been updated since it was last installed on the target test account. To avoid issues with local development, we recommend reinstalling the app with the updated scopes.";
3207
+ readonly staticAuthExplanation: (projectAccountId: number, testingAccountId: number, projectName: string, appUid: string) => string;
2808
3208
  readonly prompt: "Open HubSpot to install this app?";
3209
+ readonly autoPrompt: "Install this app in your target test account?";
2809
3210
  readonly reinstallPrompt: "Open HubSpot to reinstall this app?";
2810
3211
  readonly decline: `To continue local development of this app, install it in your target test account and re-run ${string}`;
2811
3212
  };
@@ -2821,6 +3222,9 @@ Run ${string} to upgrade to version ${string}`;
2821
3222
  };
2822
3223
  };
2823
3224
  };
3225
+ readonly polling: {
3226
+ readonly timeoutError: (timeoutMs: number) => string;
3227
+ };
2824
3228
  readonly convertFields: {
2825
3229
  readonly positionals: {
2826
3230
  readonly src: {
@@ -3021,14 +3425,24 @@ Run ${string} to upgrade to version ${string}`;
3021
3425
  readonly componentsToBeMigrated: (components: string) => string;
3022
3426
  readonly componentsThatWillNotBeMigrated: (components: string) => string;
3023
3427
  readonly sourceContentsMoved: (newLocation: string) => string;
3024
- readonly projectMigrationWarningTitle: "⚠️ Important: Migrating to platformVersion 2025.2 is irreversible ⚠️";
3428
+ readonly projectMigrationWarningTitle: "Important: Migrating to platformVersion 2025.2 is irreversible";
3025
3429
  readonly projectMigrationWarning: string;
3430
+ readonly exitWithoutMigrating: "Exiting without migrating";
3431
+ readonly success: {
3432
+ readonly downloadedProject: (projectName: string, projectDest: string) => string;
3433
+ readonly themesMigrationSuccess: (platformVersion: string) => string;
3434
+ };
3026
3435
  readonly errors: {
3027
3436
  readonly project: {
3028
3437
  readonly invalidConfig: "The project configuration file is invalid. Please check the config file and try again.";
3029
3438
  readonly doesNotExist: (account: number) => string;
3439
+ readonly themesAlreadyMigrated: "This project has already been migrated to the latest platform version.";
3440
+ readonly noProjectForThemesMigration: "Theme migrations are only supported for projects. Please try again from a project directory.";
3441
+ readonly themesAndAppsNotAllowed: "Support for migrating projects containing both themes and apps to the latest platform version is coming soon. Try again later.";
3030
3442
  readonly multipleApps: "Multiple apps found in project, this is not allowed in 2025.2";
3031
3443
  readonly alreadyExists: (projectName: string) => string;
3444
+ readonly failedToMigrateThemes: "Failed to migrate project themes. Please verify that your themes are properly formatted before trying again.";
3445
+ readonly failedToUpdateProjectConfig: "Failed to update project config file. Please update the platformVersion in the project config file manually.";
3032
3446
  };
3033
3447
  readonly unmigratableReasons: {
3034
3448
  readonly upToDate: "App is already up to date";
@@ -3047,6 +3461,7 @@ Run ${string} to upgrade to version ${string}`;
3047
3461
  readonly notUngatedForUnifiedApps: (account: string) => string;
3048
3462
  };
3049
3463
  readonly prompt: {
3464
+ readonly themesMigration: (count: number) => string;
3050
3465
  readonly chooseApp: "Which app would you like to migrate?";
3051
3466
  readonly inputName: "[--name] What would you like to name the project?";
3052
3467
  readonly inputDest: "[--dest] Where would you like to save the project?";
@@ -3054,6 +3469,7 @@ Run ${string} to upgrade to version ${string}`;
3054
3469
  readonly proceed: "Would you like to proceed?";
3055
3470
  };
3056
3471
  readonly spinners: {
3472
+ readonly checkingForMigratableComponents: "Checking project for migratable components...";
3057
3473
  readonly beginningMigration: "Beginning migration";
3058
3474
  readonly unableToStartMigration: "Unable to begin migration";
3059
3475
  readonly finishingMigration: "Wrapping up migration";