@hubspot/cli 7.8.12-experimental.0 → 7.9.0-beta.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 (451) hide show
  1. package/bin/cli.js +31 -25
  2. package/commands/__tests__/auth.test.js +5 -0
  3. package/commands/__tests__/cms.test.js +44 -1
  4. package/commands/__tests__/customObject.test.js +22 -1
  5. package/commands/__tests__/doctor.test.js +16 -16
  6. package/commands/__tests__/project.test.js +2 -0
  7. package/commands/account/auth.js +1 -0
  8. package/commands/account/clean.js +18 -27
  9. package/commands/account/createOverride.js +13 -31
  10. package/commands/account/info.js +20 -31
  11. package/commands/account/list.js +16 -22
  12. package/commands/account/remove.js +12 -20
  13. package/commands/account/removeOverride.js +11 -21
  14. package/commands/account/rename.js +6 -9
  15. package/commands/account/use.js +12 -26
  16. package/commands/account.js +2 -2
  17. package/commands/app/__tests__/migrate.test.js +5 -5
  18. package/commands/app/migrate.js +13 -18
  19. package/commands/app.js +1 -6
  20. package/commands/auth.d.ts +1 -0
  21. package/commands/auth.js +17 -7
  22. package/commands/{__tests__/remove.test.js → cms/__tests__/delete.test.js} +8 -8
  23. package/commands/{__tests__ → cms/__tests__}/fetch.test.js +3 -3
  24. package/commands/{__tests__ → cms/__tests__}/function.test.js +7 -3
  25. package/commands/{__tests__ → cms/__tests__}/lint.test.js +3 -3
  26. package/commands/{__tests__ → cms/__tests__}/list.test.js +3 -3
  27. package/commands/{__tests__ → cms/__tests__}/mv.test.js +3 -3
  28. package/commands/{__tests__ → cms/__tests__}/theme.test.js +9 -2
  29. package/commands/cms/app/create.d.ts +9 -0
  30. package/commands/cms/app/create.js +82 -0
  31. package/commands/cms/app.d.ts +3 -0
  32. package/commands/cms/app.js +17 -0
  33. package/commands/cms/convertFields.js +7 -9
  34. package/commands/cms/delete.d.ts +6 -0
  35. package/commands/cms/delete.js +43 -0
  36. package/commands/cms/fetch.d.ts +12 -0
  37. package/commands/cms/fetch.js +79 -0
  38. package/commands/{__tests__ → cms/function/__tests__}/logs.test.js +4 -5
  39. package/commands/cms/function/create.d.ts +12 -0
  40. package/commands/cms/function/create.js +84 -0
  41. package/commands/cms/function/deploy.d.ts +6 -0
  42. package/commands/cms/function/deploy.js +89 -0
  43. package/commands/cms/function/list.d.ts +6 -0
  44. package/commands/cms/function/list.js +60 -0
  45. package/commands/cms/function/logs.d.ts +10 -0
  46. package/commands/cms/function/logs.js +135 -0
  47. package/commands/cms/function/server.d.ts +10 -0
  48. package/commands/cms/function/server.js +69 -0
  49. package/commands/cms/function.d.ts +3 -0
  50. package/commands/cms/function.js +27 -0
  51. package/commands/cms/getReactModule.js +9 -14
  52. package/commands/cms/lighthouseScore.js +33 -36
  53. package/commands/cms/lint.d.ts +6 -0
  54. package/commands/cms/lint.js +83 -0
  55. package/commands/cms/list.d.ts +6 -0
  56. package/commands/cms/list.js +96 -0
  57. package/commands/cms/module/create.d.ts +11 -0
  58. package/commands/cms/module/create.js +84 -0
  59. package/commands/cms/module/marketplace-validate.d.ts +6 -0
  60. package/commands/cms/module/marketplace-validate.js +45 -0
  61. package/commands/cms/module.d.ts +3 -0
  62. package/commands/cms/module.js +17 -0
  63. package/commands/cms/mv.d.ts +7 -0
  64. package/commands/cms/mv.js +60 -0
  65. package/commands/cms/template/create.d.ts +9 -0
  66. package/commands/cms/template/create.js +72 -0
  67. package/commands/cms/template.d.ts +3 -0
  68. package/commands/cms/template.js +17 -0
  69. package/commands/{theme → cms/theme}/__tests__/marketplace-validate.test.js +2 -2
  70. package/commands/{theme → cms/theme}/__tests__/preview.test.js +2 -2
  71. package/commands/cms/theme/create.d.ts +6 -0
  72. package/commands/cms/theme/create.js +58 -0
  73. package/commands/cms/theme/generate-selectors.d.ts +6 -0
  74. package/commands/cms/theme/generate-selectors.js +171 -0
  75. package/commands/cms/theme/marketplace-validate.d.ts +6 -0
  76. package/commands/cms/theme/marketplace-validate.js +46 -0
  77. package/commands/cms/theme/preview.d.ts +12 -0
  78. package/commands/cms/theme/preview.js +224 -0
  79. package/commands/cms/theme.d.ts +3 -0
  80. package/commands/cms/theme.js +25 -0
  81. package/commands/cms/upload.d.ts +12 -0
  82. package/commands/cms/upload.js +212 -0
  83. package/commands/cms/watch.d.ts +14 -0
  84. package/commands/cms/watch.js +138 -0
  85. package/commands/cms/webpack/create.d.ts +6 -0
  86. package/commands/cms/webpack/create.js +58 -0
  87. package/commands/cms/webpack.d.ts +3 -0
  88. package/commands/cms/webpack.js +17 -0
  89. package/commands/cms.js +28 -2
  90. package/commands/completion.js +3 -3
  91. package/commands/config/set.d.ts +1 -1
  92. package/commands/config/set.js +64 -36
  93. package/commands/config.js +2 -2
  94. package/commands/create.js +6 -4
  95. package/commands/customObject/{schema/__tests__/create.test.js → __tests__/createSchema.test.js} +5 -5
  96. package/commands/customObject/{schema/__tests__/delete.test.js → __tests__/deleteSchema.test.js} +5 -5
  97. package/commands/customObject/{schema/__tests__/fetch-all.test.js → __tests__/fetch-all-schemas.test.js} +5 -5
  98. package/commands/customObject/{schema/__tests__/fetch.test.js → __tests__/fetchSchema.test.js} +5 -5
  99. package/commands/customObject/{schema/__tests__/list.test.js → __tests__/listSchemas.test.js} +5 -5
  100. package/commands/customObject/{schema/__tests__/update.test.js → __tests__/updateSchema.test.js} +5 -5
  101. package/commands/customObject/create.js +10 -12
  102. package/commands/customObject/createSchema.d.ts +6 -0
  103. package/commands/customObject/createSchema.js +56 -0
  104. package/commands/customObject/deleteSchema.d.ts +7 -0
  105. package/commands/customObject/deleteSchema.js +69 -0
  106. package/commands/customObject/fetchAllSchemas.d.ts +6 -0
  107. package/commands/customObject/fetchAllSchemas.js +57 -0
  108. package/commands/customObject/fetchSchema.d.ts +7 -0
  109. package/commands/customObject/fetchSchema.js +67 -0
  110. package/commands/customObject/listSchemas.d.ts +4 -0
  111. package/commands/customObject/listSchemas.js +35 -0
  112. package/commands/customObject/schema/create.d.ts +4 -6
  113. package/commands/customObject/schema/create.js +13 -38
  114. package/commands/customObject/schema/delete.d.ts +4 -7
  115. package/commands/customObject/schema/delete.js +15 -50
  116. package/commands/customObject/schema/fetch-all.d.ts +4 -6
  117. package/commands/customObject/schema/fetch-all.js +14 -40
  118. package/commands/customObject/schema/fetch.d.ts +4 -7
  119. package/commands/customObject/schema/fetch.js +14 -49
  120. package/commands/customObject/schema/list.d.ts +4 -4
  121. package/commands/customObject/schema/list.js +10 -19
  122. package/commands/customObject/schema/update.d.ts +4 -7
  123. package/commands/customObject/schema/update.js +15 -50
  124. package/commands/customObject/schema.js +5 -3
  125. package/commands/customObject/updateSchema.d.ts +7 -0
  126. package/commands/customObject/updateSchema.js +71 -0
  127. package/commands/customObject.js +22 -8
  128. package/commands/doctor.js +8 -11
  129. package/commands/feedback.js +7 -12
  130. package/commands/fetch.d.ts +4 -12
  131. package/commands/fetch.js +20 -47
  132. package/commands/filemanager/fetch.js +7 -7
  133. package/commands/filemanager/upload.js +15 -34
  134. package/commands/filemanager.js +2 -2
  135. package/commands/function/deploy.d.ts +4 -6
  136. package/commands/function/deploy.js +14 -89
  137. package/commands/function/list.d.ts +4 -6
  138. package/commands/function/list.js +14 -40
  139. package/commands/function/server.d.ts +4 -10
  140. package/commands/function/server.js +22 -31
  141. package/commands/function.d.ts +2 -4
  142. package/commands/function.js +25 -14
  143. package/commands/getStarted.js +2 -2
  144. package/commands/hubdb/clear.js +7 -15
  145. package/commands/hubdb/create.js +9 -15
  146. package/commands/hubdb/delete.js +8 -15
  147. package/commands/hubdb/fetch.js +6 -9
  148. package/commands/hubdb.d.ts +1 -1
  149. package/commands/hubdb.js +2 -2
  150. package/commands/init.js +2 -3
  151. package/commands/lint.d.ts +4 -6
  152. package/commands/lint.js +13 -65
  153. package/commands/list.d.ts +4 -6
  154. package/commands/list.js +14 -81
  155. package/commands/logs.d.ts +4 -10
  156. package/commands/logs.js +25 -94
  157. package/commands/module/marketplace-validate.d.ts +4 -6
  158. package/commands/module/marketplace-validate.js +15 -27
  159. package/commands/module.d.ts +2 -2
  160. package/commands/module.js +17 -15
  161. package/commands/mv.d.ts +4 -7
  162. package/commands/mv.js +14 -51
  163. package/commands/open.js +5 -5
  164. package/commands/project/__tests__/add.test.js +15 -13
  165. package/commands/project/__tests__/deploy.test.js +3 -4
  166. package/commands/project/__tests__/devUnifiedFlow.test.js +32 -0
  167. package/commands/project/__tests__/installDeps.test.js +8 -8
  168. package/commands/project/__tests__/list.test.js +31 -0
  169. package/commands/project/__tests__/logs.test.js +1 -1
  170. package/commands/project/__tests__/migrate.test.js +6 -5
  171. package/commands/project/__tests__/migrateApp.test.js +2 -5
  172. package/commands/project/__tests__/validate.test.js +98 -0
  173. package/commands/project/add.d.ts +2 -2
  174. package/commands/project/add.js +6 -5
  175. package/commands/project/cloneApp.js +14 -19
  176. package/commands/project/create.js +1 -2
  177. package/commands/project/deploy.js +3 -3
  178. package/commands/project/dev/deprecatedFlow.js +9 -18
  179. package/commands/project/dev/index.js +19 -17
  180. package/commands/project/dev/unifiedFlow.js +11 -4
  181. package/commands/project/download.js +15 -15
  182. package/commands/project/installDeps.d.ts +2 -2
  183. package/commands/project/installDeps.js +9 -8
  184. package/commands/project/list.d.ts +4 -0
  185. package/commands/project/list.js +62 -0
  186. package/commands/project/listBuilds.js +11 -20
  187. package/commands/project/logs.js +21 -24
  188. package/commands/project/migrate.js +5 -2
  189. package/commands/project/migrateApp.js +9 -15
  190. package/commands/project/open.js +6 -13
  191. package/commands/project/upload.d.ts +2 -2
  192. package/commands/project/upload.js +17 -26
  193. package/commands/project/validate.js +6 -6
  194. package/commands/project/watch.js +13 -22
  195. package/commands/project.js +4 -2
  196. package/commands/remove.d.ts +4 -6
  197. package/commands/remove.js +12 -24
  198. package/commands/sandbox/__tests__/create.test.js +5 -5
  199. package/commands/sandbox/create.js +22 -32
  200. package/commands/sandbox/delete.js +38 -63
  201. package/commands/sandbox.js +2 -2
  202. package/commands/secret/addSecret.js +7 -17
  203. package/commands/secret/deleteSecret.js +10 -20
  204. package/commands/secret/listSecret.js +8 -10
  205. package/commands/secret/updateSecret.js +9 -17
  206. package/commands/secret.js +2 -2
  207. package/commands/testAccount/__tests__/delete.test.js +2 -4
  208. package/commands/testAccount/create.js +2 -5
  209. package/commands/testAccount/delete.d.ts +4 -3
  210. package/commands/testAccount/delete.js +155 -14
  211. package/commands/theme/generate-selectors.d.ts +4 -6
  212. package/commands/theme/generate-selectors.js +14 -152
  213. package/commands/theme/marketplace-validate.d.ts +4 -6
  214. package/commands/theme/marketplace-validate.js +14 -25
  215. package/commands/theme/preview.d.ts +4 -12
  216. package/commands/theme/preview.js +18 -183
  217. package/commands/theme.d.ts +2 -2
  218. package/commands/theme.js +19 -13
  219. package/commands/upload.d.ts +4 -12
  220. package/commands/upload.js +19 -169
  221. package/commands/watch.d.ts +4 -14
  222. package/commands/watch.js +23 -88
  223. package/lang/en.d.ts +863 -542
  224. package/lang/en.js +912 -595
  225. package/lang/en.lyaml +4 -4
  226. package/lib/__tests__/buildAccount.test.js +4 -3
  227. package/lib/__tests__/commonOpts.test.js +1 -1
  228. package/lib/__tests__/dependencyManagement.test.js +1 -1
  229. package/lib/__tests__/developerTestAccounts.test.js +3 -3
  230. package/lib/__tests__/npm.test.js +1 -1
  231. package/lib/__tests__/oauth.test.js +4 -4
  232. package/lib/__tests__/process.test.js +10 -5
  233. package/lib/__tests__/sandboxSync.test.js +8 -8
  234. package/lib/__tests__/sandboxes.test.js +8 -8
  235. package/lib/__tests__/serverlessLogs.test.js +1 -1
  236. package/lib/__tests__/usageTracking.test.js +5 -5
  237. package/lib/__tests__/validation.test.js +2 -1
  238. package/lib/__tests__/yargsUtils.test.js +83 -9
  239. package/lib/app/__tests__/migrate.test.js +5 -5
  240. package/lib/app/__tests__/migrate_legacy.test.js +1 -1
  241. package/lib/app/migrate.js +1 -1
  242. package/lib/app/migrate_legacy.js +20 -24
  243. package/lib/buildAccount.d.ts +2 -2
  244. package/lib/buildAccount.js +32 -64
  245. package/lib/commonOpts.d.ts +1 -1
  246. package/lib/commonOpts.js +25 -22
  247. package/lib/configMigrate.js +88 -9
  248. package/lib/configOptions.js +7 -0
  249. package/lib/constants.d.ts +15 -1
  250. package/lib/constants.js +19 -1
  251. package/lib/dependencyManagement.js +9 -27
  252. package/lib/developerTestAccounts.js +9 -23
  253. package/lib/doctor/Diagnosis.js +11 -23
  254. package/lib/doctor/DiagnosticInfoBuilder.js +12 -11
  255. package/lib/doctor/Doctor.js +42 -90
  256. package/lib/doctor/__tests__/Doctor.test.js +4 -4
  257. package/lib/errorHandlers/index.js +12 -20
  258. package/lib/errorHandlers/suppressError.js +11 -18
  259. package/lib/generateSelectors.js +1 -1
  260. package/lib/lang.js +6 -5
  261. package/lib/links.js +4 -4
  262. package/lib/middleware/__test__/commandTargetingUtils.test.js +99 -0
  263. package/lib/middleware/__test__/configMiddleware.test.js +11 -11
  264. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +6 -8
  265. package/lib/middleware/autoUpdateMiddleware.d.ts +2 -1
  266. package/lib/middleware/autoUpdateMiddleware.js +12 -2
  267. package/lib/middleware/commandTargetingUtils.d.ts +8 -0
  268. package/lib/middleware/commandTargetingUtils.js +74 -0
  269. package/lib/middleware/configMiddleware.d.ts +1 -1
  270. package/lib/middleware/configMiddleware.js +21 -81
  271. package/lib/middleware/gitMiddleware.js +5 -1
  272. package/lib/middleware/notificationsMiddleware.js +5 -11
  273. package/lib/middleware/yargsChecksMiddleware.js +6 -9
  274. package/lib/npm.js +2 -2
  275. package/lib/oauth.js +5 -5
  276. package/lib/process.js +5 -4
  277. package/lib/projectProfiles.d.ts +1 -1
  278. package/lib/projectProfiles.js +2 -10
  279. package/lib/projects/__tests__/AppDevModeInterface.test.js +101 -135
  280. package/lib/projects/__tests__/DevServerManager.test.js +183 -0
  281. package/lib/projects/__tests__/LocalDevProcess.test.js +6 -5
  282. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +76 -45
  283. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +1 -0
  284. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +161 -0
  285. package/lib/projects/__tests__/deploy.test.js +9 -9
  286. package/lib/projects/__tests__/localDevProjectHelpers.test.js +2 -0
  287. package/lib/projects/__tests__/platformVersion.test.js +8 -8
  288. package/lib/projects/__tests__/projects.test.js +12 -12
  289. package/lib/projects/__tests__/structure.test.js +3 -3
  290. package/lib/projects/__tests__/upload.test.d.ts +1 -0
  291. package/lib/projects/__tests__/upload.test.js +82 -0
  292. package/lib/projects/add/__tests__/legacyAddComponent.test.js +6 -6
  293. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +1 -0
  294. package/lib/projects/add/__tests__/{v3AddComponent.test.js → v2AddComponent.test.js} +39 -39
  295. package/lib/projects/add/{v3AddComponent.d.ts → v2AddComponent.d.ts} +1 -1
  296. package/lib/projects/add/{v3AddComponent.js → v2AddComponent.js} +5 -5
  297. package/lib/projects/create/__tests__/legacy.test.js +5 -5
  298. package/lib/projects/create/__tests__/v2.test.d.ts +1 -0
  299. package/lib/projects/create/__tests__/{v3.test.js → v2.test.js} +3 -3
  300. package/lib/projects/create/index.js +4 -4
  301. package/lib/projects/create/legacy.js +2 -2
  302. package/lib/projects/create/{v3.d.ts → v2.d.ts} +3 -3
  303. package/lib/projects/create/{v3.js → v2.js} +5 -5
  304. package/lib/projects/deploy.d.ts +1 -1
  305. package/lib/projects/deploy.js +2 -2
  306. package/lib/projects/localDev/AppDevModeInterface.d.ts +11 -3
  307. package/lib/projects/localDev/AppDevModeInterface.js +128 -115
  308. package/lib/projects/localDev/DevServerManager.d.ts +10 -29
  309. package/lib/projects/localDev/DevServerManager.js +20 -76
  310. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +40 -0
  311. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +120 -0
  312. package/lib/projects/localDev/LocalDevLogger.js +10 -11
  313. package/lib/projects/localDev/{LocalDevManager.js → LocalDevManager_DEPRECATED.js} +10 -11
  314. package/lib/projects/localDev/LocalDevProcess.js +3 -2
  315. package/lib/projects/localDev/LocalDevState.d.ts +3 -0
  316. package/lib/projects/localDev/LocalDevState.js +9 -0
  317. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +4 -1
  318. package/lib/projects/localDev/LocalDevWebsocketServer.js +46 -16
  319. package/lib/projects/localDev/UIExtensionsDevModeInterface.d.ts +13 -0
  320. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +37 -0
  321. package/lib/projects/localDev/helpers/account.d.ts +1 -1
  322. package/lib/projects/localDev/helpers/account.js +2 -2
  323. package/lib/projects/localDev/helpers/process.d.ts +1 -0
  324. package/lib/projects/localDev/helpers/process.js +15 -0
  325. package/lib/projects/localDev/helpers/project.d.ts +1 -0
  326. package/lib/projects/localDev/helpers/project.js +39 -3
  327. package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +3 -0
  328. package/lib/projects/localDev/localDevWebsocketServerUtils.js +9 -0
  329. package/lib/projects/platformVersion.d.ts +1 -1
  330. package/lib/projects/platformVersion.js +1 -1
  331. package/lib/projects/structure.d.ts +2 -2
  332. package/lib/projects/structure.js +6 -6
  333. package/lib/projects/upload.d.ts +2 -3
  334. package/lib/projects/upload.js +17 -9
  335. package/lib/projects/urls.d.ts +0 -1
  336. package/lib/projects/urls.js +0 -3
  337. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +1 -0
  338. package/lib/prompts/__tests__/projectAddPrompt.test.js +10 -10
  339. package/lib/prompts/accountNamePrompt.js +14 -19
  340. package/lib/prompts/accountsPrompt.js +2 -2
  341. package/lib/prompts/cmsFieldPrompt.js +2 -2
  342. package/lib/prompts/createApiSamplePrompt.js +5 -5
  343. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +10 -1
  344. package/lib/prompts/createFunctionPrompt.js +14 -14
  345. package/lib/prompts/createModulePrompt.js +9 -9
  346. package/lib/prompts/createTemplatePrompt.js +2 -2
  347. package/lib/prompts/downloadProjectPrompt.js +5 -8
  348. package/lib/prompts/installAppPrompt.d.ts +1 -6
  349. package/lib/prompts/installAppPrompt.js +1 -6
  350. package/lib/prompts/personalAccessKeyPrompt.js +3 -3
  351. package/lib/prompts/previewPrompt.js +6 -6
  352. package/lib/prompts/projectAddPrompt.d.ts +2 -2
  353. package/lib/prompts/projectAddPrompt.js +7 -1
  354. package/lib/prompts/projectDevTargetAccountPrompt.js +20 -32
  355. package/lib/prompts/projectNamePrompt.js +4 -8
  356. package/lib/prompts/projectsLogsPrompt.js +2 -4
  357. package/lib/prompts/promptUtils.js +27 -9
  358. package/lib/prompts/sandboxesPrompt.js +7 -7
  359. package/lib/prompts/secretPrompt.js +3 -3
  360. package/lib/prompts/selectAppPrompt.js +3 -3
  361. package/lib/prompts/selectHubDBTablePrompt.js +9 -13
  362. package/lib/prompts/selectPublicAppForMigrationPrompt.js +15 -19
  363. package/lib/prompts/setAsDefaultAccountPrompt.js +4 -8
  364. package/lib/prompts/uploadPrompt.js +5 -5
  365. package/lib/sandboxSync.js +24 -41
  366. package/lib/sandboxes.js +19 -47
  367. package/lib/schema.js +3 -3
  368. package/lib/serverlessLogs.js +11 -13
  369. package/lib/theme/__tests__/migrate.test.js +6 -6
  370. package/lib/theme/migrate.js +2 -2
  371. package/lib/ui/SpinniesManager.d.ts +2 -0
  372. package/lib/ui/SpinniesManager.js +7 -0
  373. package/lib/ui/boxen.js +1 -2
  374. package/lib/ui/git.js +13 -10
  375. package/lib/ui/index.d.ts +6 -0
  376. package/lib/ui/index.js +55 -38
  377. package/lib/ui/serverlessFunctionLogs.js +9 -7
  378. package/lib/ui/uiMessages.d.ts +73 -0
  379. package/lib/ui/uiMessages.js +76 -0
  380. package/lib/usageTracking.js +7 -7
  381. package/lib/validation.js +20 -23
  382. package/lib/yargsUtils.d.ts +1 -1
  383. package/lib/yargsUtils.js +12 -5
  384. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -4
  385. package/mcp-server/tools/index.js +4 -0
  386. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +23 -0
  387. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +68 -0
  388. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +11 -0
  389. package/mcp-server/tools/project/GetApplicationInfoTool.js +49 -0
  390. package/mcp-server/tools/project/GetConfigValuesTool.js +2 -2
  391. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +2 -2
  392. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +1 -1
  393. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +1 -0
  394. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +169 -0
  395. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +1 -0
  396. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +115 -0
  397. package/mcp-server/utils/toolUsageTracking.js +2 -2
  398. package/package.json +8 -7
  399. package/types/Cms.d.ts +6 -6
  400. package/types/Yargs.d.ts +1 -1
  401. package/commands/app/__tests__/install.test.js +0 -47
  402. package/commands/app/install.d.ts +0 -8
  403. package/commands/app/install.js +0 -122
  404. package/lib/middleware/__test__/utils.test.js +0 -51
  405. package/lib/middleware/utils.d.ts +0 -8
  406. package/lib/middleware/utils.js +0 -14
  407. package/lib/projects/localDev/DevServerManagerV2.d.ts +0 -22
  408. package/lib/projects/localDev/DevServerManagerV2.js +0 -81
  409. /package/commands/{customObject/schema → cms}/__tests__/delete.test.d.ts +0 -0
  410. /package/commands/{__tests__ → cms/__tests__}/fetch.test.d.ts +0 -0
  411. /package/commands/{__tests__ → cms/__tests__}/function.test.d.ts +0 -0
  412. /package/commands/{__tests__ → cms/__tests__}/lint.test.d.ts +0 -0
  413. /package/commands/{__tests__ → cms/__tests__}/list.test.d.ts +0 -0
  414. /package/commands/{__tests__ → cms/__tests__}/mv.test.d.ts +0 -0
  415. /package/commands/{__tests__ → cms/__tests__}/theme.test.d.ts +0 -0
  416. /package/commands/{__tests__ → cms/function/__tests__}/logs.test.d.ts +0 -0
  417. /package/commands/{theme → cms/theme}/__tests__/generate-selectors.test.d.ts +0 -0
  418. /package/commands/{theme → cms/theme}/__tests__/generate-selectors.test.js +0 -0
  419. /package/commands/{theme → cms/theme}/__tests__/marketplace-validate.test.d.ts +0 -0
  420. /package/commands/{theme → cms/theme}/__tests__/preview.test.d.ts +0 -0
  421. /package/commands/{__tests__/remove.test.d.ts → customObject/__tests__/createSchema.test.d.ts} +0 -0
  422. /package/commands/{app/__tests__/install.test.d.ts → customObject/__tests__/deleteSchema.test.d.ts} +0 -0
  423. /package/commands/customObject/{schema/__tests__/create.test.d.ts → __tests__/fetch-all-schemas.test.d.ts} +0 -0
  424. /package/commands/customObject/{schema/__tests__/fetch-all.test.d.ts → __tests__/fetchSchema.test.d.ts} +0 -0
  425. /package/commands/customObject/{schema/__tests__/fetch.test.d.ts → __tests__/listSchemas.test.d.ts} +0 -0
  426. /package/commands/customObject/{schema/__tests__/list.test.d.ts → __tests__/updateSchema.test.d.ts} +0 -0
  427. /package/commands/{customObject/schema/__tests__/update.test.d.ts → project/__tests__/list.test.d.ts} +0 -0
  428. /package/{lib/middleware/__test__/utils.test.d.ts → commands/project/__tests__/validate.test.d.ts} +0 -0
  429. /package/{commands/create → lib/cmsAssets}/api-sample.d.ts +0 -0
  430. /package/{commands/create → lib/cmsAssets}/api-sample.js +0 -0
  431. /package/{commands/create → lib/cmsAssets}/app.d.ts +0 -0
  432. /package/{commands/create → lib/cmsAssets}/app.js +0 -0
  433. /package/{commands/create → lib/cmsAssets}/function.d.ts +0 -0
  434. /package/{commands/create → lib/cmsAssets}/function.js +0 -0
  435. /package/{commands/create → lib/cmsAssets}/index.d.ts +0 -0
  436. /package/{commands/create → lib/cmsAssets}/index.js +0 -0
  437. /package/{commands/create → lib/cmsAssets}/module.d.ts +0 -0
  438. /package/{commands/create → lib/cmsAssets}/module.js +0 -0
  439. /package/{commands/create → lib/cmsAssets}/react-app.d.ts +0 -0
  440. /package/{commands/create → lib/cmsAssets}/react-app.js +0 -0
  441. /package/{commands/create → lib/cmsAssets}/template.d.ts +0 -0
  442. /package/{commands/create → lib/cmsAssets}/template.js +0 -0
  443. /package/{commands/create → lib/cmsAssets}/vue-app.d.ts +0 -0
  444. /package/{commands/create → lib/cmsAssets}/vue-app.js +0 -0
  445. /package/{commands/create → lib/cmsAssets}/webpack-serverless.d.ts +0 -0
  446. /package/{commands/create → lib/cmsAssets}/webpack-serverless.js +0 -0
  447. /package/{commands/create → lib/cmsAssets}/website-theme.d.ts +0 -0
  448. /package/{commands/create → lib/cmsAssets}/website-theme.js +0 -0
  449. /package/lib/{projects/add/__tests__/v3AddComponent.test.d.ts → middleware/__test__/commandTargetingUtils.test.d.ts} +0 -0
  450. /package/lib/projects/{create/__tests__/v3.test.d.ts → __tests__/DevServerManager.test.d.ts} +0 -0
  451. /package/lib/projects/localDev/{LocalDevManager.d.ts → LocalDevManager_DEPRECATED.d.ts} +0 -0
@@ -1,203 +1,37 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import cliProgress from 'cli-progress';
4
- import { commands } from '../../lang/en.js';
5
- import { getCwd } from '@hubspot/local-dev-lib/path';
6
- import { FILE_UPLOAD_RESULT_TYPES } from '@hubspot/local-dev-lib/constants/files';
7
- import { getThemeJSONPath } from '@hubspot/local-dev-lib/cms/themes';
8
- import { preview } from '@hubspot/theme-preview-dev-server';
9
- import { getUploadableFileList } from '../../lib/upload.js';
10
- import { trackCommandUsage } from '../../lib/usageTracking.js';
11
- import { previewPrompt, previewProjectPrompt, } from '../../lib/prompts/previewPrompt.js';
12
- import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
13
- import { ApiErrorContext, logError } from '../../lib/errorHandlers/index.js';
14
- import { handleExit, handleKeypress } from '../../lib/process.js';
15
- import { getProjectConfig } from '../../lib/projects/config.js';
16
- import { findProjectComponents } from '../../lib/projects/structure.js';
17
- import { ComponentTypes } from '../../types/Projects.js';
18
- import { hasFeature } from '../../lib/hasFeature.js';
19
- import { FEATURES } from '../../lib/constants.js';
1
+ import { uiCommandRelocatedMessage, uiCommandRenamedDescription, uiDeprecatedTag, } from '../../lib/ui/index.js';
2
+ import previewCommand from '../cms/theme/preview.js';
20
3
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
21
- import { uiLogger } from '../../lib/ui/logger.js';
22
- const command = 'preview [--src] [--dest]';
23
- const describe = commands.theme.subcommands.preview.describe;
24
- function validateSrcPath(src) {
25
- const logInvalidPath = () => {
26
- uiLogger.error(commands.theme.subcommands.preview.errors.invalidPath(src));
27
- };
28
- try {
29
- const stats = fs.statSync(src);
30
- if (!stats.isDirectory()) {
31
- logInvalidPath();
32
- return false;
33
- }
34
- }
35
- catch (e) {
36
- logInvalidPath();
37
- return false;
38
- }
39
- return true;
40
- }
41
- function handleUserInput() {
42
- const onTerminate = () => {
43
- uiLogger.log(commands.theme.subcommands.preview.logs.processExited);
44
- process.exit(EXIT_CODES.SUCCESS);
45
- };
46
- handleExit(onTerminate);
47
- handleKeypress(key => {
48
- if ((key.ctrl && key.name === 'c') || key.name === 'q') {
49
- onTerminate();
50
- }
51
- });
52
- }
53
- async function determineSrcAndDest(args) {
54
- let absoluteSrc;
55
- let dest;
56
- const { projectDir, projectConfig } = await getProjectConfig();
57
- if (!(projectDir && projectConfig)) {
58
- // Not in a project, prompt for src and dest of traditional theme
59
- const previewPromptAnswers = await previewPrompt(args);
60
- const src = args.src || previewPromptAnswers.src;
61
- dest = args.dest || previewPromptAnswers.dest;
62
- absoluteSrc = path.resolve(getCwd(), src);
63
- if (!dest || !validateSrcPath(absoluteSrc)) {
64
- process.exit(EXIT_CODES.ERROR);
65
- }
66
- }
67
- else {
68
- // In a project
69
- let themeJsonPath = getThemeJSONPath(getCwd());
70
- if (!themeJsonPath) {
71
- const projectComponents = await findProjectComponents(projectDir);
72
- const themeComponents = projectComponents.filter(c => c.type === ComponentTypes.HublTheme);
73
- if (themeComponents.length === 0) {
74
- uiLogger.error(commands.theme.subcommands.preview.errors.noThemeComponents);
75
- process.exit(EXIT_CODES.ERROR);
76
- }
77
- const answer = await previewProjectPrompt(themeComponents);
78
- themeJsonPath = `${answer.themeComponentPath}/theme.json`;
79
- }
80
- const { dir: themeDir } = path.parse(themeJsonPath);
81
- absoluteSrc = themeDir;
82
- const { base: themeName } = path.parse(themeDir);
83
- dest = `@projects/${projectConfig.name}/${themeName}`;
84
- }
85
- return { absoluteSrc, dest };
86
- }
4
+ import { commands } from '../../lang/en.js';
5
+ const command = 'preview';
6
+ const describe = uiDeprecatedTag(previewCommand.describe, false);
87
7
  async function handler(args) {
88
- const { derivedAccountId, notify, noSsl, resetSession, port, generateFieldsTypes, } = args;
89
- const { absoluteSrc, dest } = await determineSrcAndDest(args);
90
- const filePaths = await getUploadableFileList(absoluteSrc, false);
91
- function startProgressBar(numFiles) {
92
- const initialUploadProgressBar = new cliProgress.SingleBar({
93
- gracefulExit: true,
94
- format: '[{bar}] {percentage}% | {value}/{total} | {label}',
95
- hideCursor: true,
96
- }, cliProgress.Presets.rect);
97
- initialUploadProgressBar.start(numFiles, 0, {
98
- label: commands.theme.subcommands.preview.initialUploadProgressBar.start,
99
- });
100
- let uploadsHaveStarted = false;
101
- const uploadOptions = {
102
- onAttemptCallback: () => {
103
- /* Intentionally blank */
104
- },
105
- onSuccessCallback: () => {
106
- initialUploadProgressBar.increment();
107
- if (!uploadsHaveStarted) {
108
- uploadsHaveStarted = true;
109
- initialUploadProgressBar.update(0, {
110
- label: commands.theme.subcommands.preview.initialUploadProgressBar
111
- .uploading,
112
- });
113
- }
114
- },
115
- onFirstErrorCallback: () => {
116
- /* Intentionally blank */
117
- },
118
- onRetryCallback: () => {
119
- /* Intentionally blank */
120
- },
121
- onFinalErrorCallback: () => initialUploadProgressBar.increment(),
122
- onFinishCallback: (results) => {
123
- initialUploadProgressBar.update(numFiles, {
124
- label: commands.theme.subcommands.preview.initialUploadProgressBar.finish,
125
- });
126
- initialUploadProgressBar.stop();
127
- results.forEach(result => {
128
- if (result.resultType == FILE_UPLOAD_RESULT_TYPES.FAILURE) {
129
- uiLogger.error(commands.theme.subcommands.preview.errors.uploadFailed(result.file, dest));
130
- logError(result.error, new ApiErrorContext({
131
- accountId: derivedAccountId,
132
- request: dest,
133
- payload: result.file,
134
- }));
135
- }
136
- });
137
- },
138
- };
139
- return uploadOptions;
140
- }
141
- trackCommandUsage('preview', {}, derivedAccountId);
142
- let createUnifiedDevServer;
143
- try {
144
- // @ts-ignore TODO: Remove when we deprecate Node 18
145
- require.resolve('@hubspot/cms-dev-server');
146
- // @ts-ignore TODO: Remove when we deprecate Node 18
147
- const { createDevServer } = await import('@hubspot/cms-dev-server');
148
- createUnifiedDevServer = createDevServer;
149
- }
150
- catch (e) {
151
- uiLogger.warn('Unified dev server requires node 20 to run. Defaulting to legacy preview.');
152
- }
153
- const isUngatedForUnified = await hasFeature(derivedAccountId, FEATURES.UNIFIED_THEME_PREVIEW);
154
- if (isUngatedForUnified && createUnifiedDevServer) {
155
- if (port) {
156
- process.env['PORT'] = port.toString();
157
- }
158
- createUnifiedDevServer(absoluteSrc, false, '', '', !noSsl, generateFieldsTypes, {
159
- filePaths,
160
- resetSession: resetSession || false,
161
- startProgressBar,
162
- dest,
163
- });
164
- }
165
- else {
166
- preview(derivedAccountId, absoluteSrc, dest, {
167
- notify,
168
- filePaths,
169
- noSsl,
170
- port,
171
- resetSession: resetSession || false,
172
- startProgressBar,
173
- handleUserInput,
174
- });
175
- }
8
+ uiCommandRelocatedMessage('hs cms theme preview');
9
+ await previewCommand.handler(args);
176
10
  }
177
- function themePreviewBuilder(yargs) {
11
+ function deprecatedThemePreviewBuilder(yargs) {
178
12
  yargs
179
13
  .option('src', {
180
- describe: commands.theme.subcommands.preview.positionals.src,
14
+ describe: commands.cms.subcommands.theme.subcommands.preview.positionals.src,
181
15
  type: 'string',
182
16
  requiresArg: true,
183
17
  })
184
18
  .option('dest', {
185
- describe: commands.theme.subcommands.preview.positionals.dest,
19
+ describe: commands.cms.subcommands.theme.subcommands.preview.positionals.dest,
186
20
  type: 'string',
187
21
  requiresArg: true,
188
22
  })
189
23
  .option('notify', {
190
24
  alias: 'n',
191
- describe: commands.theme.subcommands.preview.options.notify,
25
+ describe: commands.cms.subcommands.theme.subcommands.preview.options.notify,
192
26
  type: 'string',
193
27
  requiresArg: true,
194
28
  })
195
29
  .option('no-ssl', {
196
- describe: commands.theme.subcommands.preview.options.noSsl,
30
+ describe: commands.cms.subcommands.theme.subcommands.preview.options.noSsl,
197
31
  type: 'boolean',
198
32
  })
199
33
  .option('port', {
200
- describe: commands.theme.subcommands.preview.options.port,
34
+ describe: commands.cms.subcommands.theme.subcommands.preview.options.port,
201
35
  type: 'number',
202
36
  })
203
37
  .option('resetSession', {
@@ -210,15 +44,16 @@ function themePreviewBuilder(yargs) {
210
44
  });
211
45
  return yargs;
212
46
  }
213
- const builder = makeYargsBuilder(themePreviewBuilder, command, describe, {
47
+ const verboseDescribe = uiCommandRenamedDescription(previewCommand.describe, 'hs cms theme preview');
48
+ const builder = makeYargsBuilder(deprecatedThemePreviewBuilder, command, verboseDescribe, {
214
49
  useGlobalOptions: true,
215
50
  useConfigOptions: true,
216
51
  useAccountOptions: true,
217
52
  });
218
- const themePreviewCommand = {
219
- command,
53
+ const deprecatedPreviewCommand = {
54
+ ...previewCommand,
220
55
  describe,
221
56
  handler,
222
57
  builder,
223
58
  };
224
- export default themePreviewCommand;
59
+ export default deprecatedPreviewCommand;
@@ -1,3 +1,3 @@
1
1
  import { YargsCommandModuleBucket } from '../types/Yargs.js';
2
- declare const themeCommand: YargsCommandModuleBucket;
3
- export default themeCommand;
2
+ declare const deprecatedCmsThemeCommand: YargsCommandModuleBucket;
3
+ export default deprecatedCmsThemeCommand;
package/commands/theme.js CHANGED
@@ -1,23 +1,29 @@
1
- import marketplaceValidate from './theme/marketplace-validate.js';
2
- import generateSelectors from './theme/generate-selectors.js';
1
+ import { uiCommandRelocatedMessage, uiCommandRenamedDescription, uiDeprecatedTag, } from '../lib/ui/index.js';
2
+ import cmsThemeCommand from './cms/theme.js';
3
+ import generateSelectorsCommand from './theme/generate-selectors.js';
4
+ import marketplaceValidateCommand from './theme/marketplace-validate.js';
3
5
  import previewCommand from './theme/preview.js';
4
- import { commands } from '../lang/en.js';
5
6
  import { makeYargsBuilder } from '../lib/yargsUtils.js';
6
- const command = ['theme', 'themes'];
7
- const describe = commands.theme.describe;
8
- function themeBuilder(yargs) {
7
+ const command = ['theme'];
8
+ const describe = uiDeprecatedTag(cmsThemeCommand.describe, false);
9
+ async function handler(args) {
10
+ uiCommandRelocatedMessage('hs cms theme');
11
+ await cmsThemeCommand.handler(args);
12
+ }
13
+ function deprecatedCmsThemeBuilder(yargs) {
9
14
  yargs
15
+ .command(generateSelectorsCommand)
16
+ .command(marketplaceValidateCommand)
10
17
  .command(previewCommand)
11
- .command(marketplaceValidate)
12
- .command(generateSelectors)
13
18
  .demandCommand(1, '');
14
19
  return yargs;
15
20
  }
16
- const builder = makeYargsBuilder(themeBuilder, command, describe);
17
- const themeCommand = {
18
- command,
21
+ const verboseDescribe = uiCommandRenamedDescription(cmsThemeCommand.describe, 'hs cms theme');
22
+ const builder = makeYargsBuilder(deprecatedCmsThemeBuilder, command, verboseDescribe);
23
+ const deprecatedCmsThemeCommand = {
24
+ ...cmsThemeCommand,
19
25
  describe,
26
+ handler,
20
27
  builder,
21
- handler: () => { },
22
28
  };
23
- export default themeCommand;
29
+ export default deprecatedCmsThemeCommand;
@@ -1,12 +1,4 @@
1
- import { CommonArgs, ConfigArgs, AccountArgs, EnvironmentArgs, CmsPublishModeArgs, YargsCommandModule } from '../types/Yargs.js';
2
- type UploadArgs = CommonArgs & ConfigArgs & AccountArgs & EnvironmentArgs & CmsPublishModeArgs & {
3
- src?: string;
4
- dest?: string;
5
- fieldOptions?: string | string[];
6
- saveOutput?: boolean;
7
- convertFields?: boolean;
8
- clean?: boolean;
9
- force?: boolean;
10
- };
11
- declare const uploadCommand: YargsCommandModule<unknown, UploadArgs>;
12
- export default uploadCommand;
1
+ import { YargsCommandModule } from '../types/Yargs.js';
2
+ import { UploadArgs } from './cms/upload.js';
3
+ declare const deprecatedCmsUploadCommand: YargsCommandModule<unknown, UploadArgs>;
4
+ export default deprecatedCmsUploadCommand;
@@ -1,212 +1,62 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { uploadFolder, hasUploadErrors, } from '@hubspot/local-dev-lib/cms/uploadFolder';
4
- import { getFileMapperQueryValues } from '@hubspot/local-dev-lib/fileMapper';
5
- import { upload, deleteFile } from '@hubspot/local-dev-lib/api/fileMapper';
6
- import { getCwd, convertToUnixPath, isAllowedExtension, } from '@hubspot/local-dev-lib/path';
7
- import { validateSrcAndDestPaths } from '@hubspot/local-dev-lib/cms/modules';
8
- import { shouldIgnoreFile } from '@hubspot/local-dev-lib/ignoreRules';
9
- import { getThemePreviewUrl, getThemeJSONPath, } from '@hubspot/local-dev-lib/cms/themes';
10
- import { FieldsJs, isConvertableFieldJs, cleanupTmpDirSync, } from '@hubspot/local-dev-lib/cms/handleFieldsJS';
11
- import { ApiErrorContext, logError } from '../lib/errorHandlers/index.js';
12
- import { getCmsPublishMode } from '../lib/commonOpts.js';
13
- import { uploadPrompt } from '../lib/prompts/uploadPrompt.js';
14
- import { confirmPrompt } from '../lib/prompts/promptUtils.js';
15
- import { validateCmsPublishMode } from '../lib/validation.js';
16
- import { trackCommandUsage } from '../lib/usageTracking.js';
17
- import { getUploadableFileList } from '../lib/upload.js';
18
- import { commands } from '../lang/en.js';
19
- import { EXIT_CODES } from '../lib/enums/exitCodes.js';
1
+ import { uiCommandRelocatedMessage, uiCommandRenamedDescription, uiDeprecatedTag, } from '../lib/ui/index.js';
2
+ import cmsUploadCommand from './cms/upload.js';
20
3
  import { makeYargsBuilder } from '../lib/yargsUtils.js';
21
- import { uiLogger } from '../lib/ui/logger.js';
4
+ import { commands } from '../lang/en.js';
22
5
  const command = 'upload [src] [dest]';
23
- const describe = commands.upload.describe;
24
- function logThemePreview(filePath, accountId) {
25
- const previewUrl = getThemePreviewUrl(filePath, accountId);
26
- // Only log if we are actually in a theme
27
- if (previewUrl) {
28
- uiLogger.log(commands.upload.previewUrl(previewUrl));
29
- }
30
- }
6
+ const describe = uiDeprecatedTag(cmsUploadCommand.describe, false);
31
7
  async function handler(args) {
32
- if (!validateCmsPublishMode(args)) {
33
- process.exit(EXIT_CODES.WARNING);
34
- }
35
- const { derivedAccountId } = args;
36
- const cmsPublishMode = getCmsPublishMode(args);
37
- const uploadPromptAnswers = await uploadPrompt(args);
38
- const src = args.src || uploadPromptAnswers.src;
39
- const saveOutput = args.saveOutput;
40
- let dest = args.dest || uploadPromptAnswers.dest;
41
- let absoluteSrcPath = path.resolve(getCwd(), src);
42
- if (!dest) {
43
- uiLogger.error(commands.upload.errors.destinationRequired);
44
- return;
45
- }
46
- // Check for theme.json file and determine the root path for the project based on it if it exists
47
- const themeJsonPath = getThemeJSONPath(absoluteSrcPath);
48
- const projectRoot = themeJsonPath
49
- ? path.dirname(themeJsonPath)
50
- : path.dirname(getCwd());
51
- const convertFields = projectRoot &&
52
- isConvertableFieldJs(projectRoot, absoluteSrcPath, args.convertFields);
53
- let fieldsJs;
54
- if (convertFields) {
55
- fieldsJs = await new FieldsJs(projectRoot, absoluteSrcPath, undefined, args.fieldOptions).init();
56
- if (fieldsJs.rejected)
57
- return;
58
- // Ensures that the dest path is a .json. The user might pass '.js' accidentally - this ensures it just works.
59
- if (fieldsJs.outputPath) {
60
- absoluteSrcPath = fieldsJs.outputPath;
61
- }
62
- dest = path.join(path.dirname(dest), 'fields.json');
63
- }
64
- let stats;
65
- try {
66
- stats = fs.statSync(absoluteSrcPath);
67
- if (!stats.isFile() && !stats.isDirectory()) {
68
- uiLogger.error(commands.upload.errors.invalidPath(src));
69
- return;
70
- }
71
- }
72
- catch (e) {
73
- uiLogger.error(commands.upload.errors.invalidPath(src));
74
- return;
75
- }
76
- const normalizedDest = convertToUnixPath(dest);
77
- trackCommandUsage('upload', { mode: cmsPublishMode, type: stats.isFile() ? 'file' : 'folder' }, derivedAccountId);
78
- const srcDestIssues = await validateSrcAndDestPaths({ isLocal: true, path: src }, { isHubSpot: true, path: dest });
79
- if (srcDestIssues.length) {
80
- srcDestIssues.forEach(({ message }) => uiLogger.error(message));
81
- process.exit(EXIT_CODES.WARNING);
82
- }
83
- if (stats.isFile()) {
84
- if (!isAllowedExtension(src) && !convertFields) {
85
- uiLogger.error(commands.upload.errors.invalidPath(src));
86
- return;
87
- }
88
- if (shouldIgnoreFile(absoluteSrcPath)) {
89
- uiLogger.error(commands.upload.errors.fileIgnored(src));
90
- return;
91
- }
92
- upload(derivedAccountId, absoluteSrcPath, normalizedDest, getFileMapperQueryValues(cmsPublishMode))
93
- .then(() => {
94
- uiLogger.success(commands.upload.success.fileUploaded(src, normalizedDest, derivedAccountId));
95
- logThemePreview(src, derivedAccountId);
96
- })
97
- .catch(error => {
98
- uiLogger.error(commands.upload.errors.uploadFailed(src, normalizedDest));
99
- logError(error, new ApiErrorContext({
100
- accountId: derivedAccountId,
101
- request: normalizedDest,
102
- payload: src,
103
- }));
104
- process.exit(EXIT_CODES.WARNING);
105
- })
106
- .finally(() => {
107
- if (!convertFields)
108
- return;
109
- if (saveOutput && fieldsJs) {
110
- fieldsJs.saveOutput();
111
- }
112
- if (fieldsJs) {
113
- cleanupTmpDirSync(fieldsJs.rootWriteDir);
114
- }
115
- });
116
- }
117
- else {
118
- uiLogger.log(commands.upload.uploading(src, dest, derivedAccountId));
119
- // Generate the first-pass file list in here, and pass to uploadFolder.
120
- const filePaths = await getUploadableFileList(absoluteSrcPath, args.convertFields ?? false);
121
- if (args.clean) {
122
- // If clean is true, will first delete the dest folder and then upload src. Cleans up files that only exist on HS.
123
- let cleanUpload = args.force;
124
- if (!args.force) {
125
- cleanUpload = await confirmPrompt(commands.upload.confirmCleanUpload(dest, derivedAccountId), { defaultAnswer: false });
126
- }
127
- if (cleanUpload) {
128
- try {
129
- await deleteFile(derivedAccountId, dest);
130
- uiLogger.log(commands.upload.cleaning(dest, derivedAccountId));
131
- }
132
- catch (error) {
133
- uiLogger.error(commands.upload.errors.deleteFailed(dest, derivedAccountId));
134
- }
135
- }
136
- }
137
- uploadFolder(derivedAccountId, absoluteSrcPath, dest, {}, {
138
- convertFields: args.convertFields,
139
- // @ts-expect-error - fieldOptions is a string or string[]
140
- fieldOptions: args.fieldOptions ?? undefined,
141
- saveOutput: args.saveOutput,
142
- }, filePaths)
143
- .then(results => {
144
- if (!hasUploadErrors(results)) {
145
- uiLogger.success(commands.upload.success.uploadComplete(dest));
146
- logThemePreview(src, derivedAccountId);
147
- }
148
- else {
149
- uiLogger.error(commands.upload.errors.someFilesFailed(dest));
150
- process.exit(EXIT_CODES.WARNING);
151
- }
152
- })
153
- .catch(error => {
154
- uiLogger.error(commands.upload.errors.uploadFailed(src, dest));
155
- logError(error, {
156
- accountId: derivedAccountId,
157
- });
158
- process.exit(EXIT_CODES.WARNING);
159
- });
160
- }
8
+ uiCommandRelocatedMessage('hs cms upload');
9
+ await cmsUploadCommand.handler(args);
161
10
  }
162
- function uploadBuilder(yargs) {
11
+ function deprecatedCmsUploadBuilder(yargs) {
163
12
  yargs.positional('src', {
164
- describe: commands.upload.positionals.src,
13
+ describe: commands.cms.subcommands.upload.positionals.src,
165
14
  type: 'string',
166
15
  });
167
16
  yargs.positional('dest', {
168
- describe: commands.upload.positionals.dest,
17
+ describe: commands.cms.subcommands.upload.positionals.dest,
169
18
  type: 'string',
170
19
  });
171
20
  yargs.option('fieldOptions', {
172
- describe: commands.upload.options.options,
21
+ describe: commands.cms.subcommands.upload.options.options,
173
22
  type: 'array',
174
23
  default: [''],
175
24
  hidden: true,
176
25
  });
177
26
  yargs.option('saveOutput', {
178
- describe: commands.upload.options.saveOutput,
27
+ describe: commands.cms.subcommands.upload.options.saveOutput,
179
28
  type: 'boolean',
180
29
  default: false,
181
30
  });
182
31
  yargs.option('convertFields', {
183
- describe: commands.upload.options.convertFields,
32
+ describe: commands.cms.subcommands.upload.options.convertFields,
184
33
  type: 'boolean',
185
34
  default: false,
186
35
  });
187
36
  yargs.option('clean', {
188
- describe: commands.upload.options.clean,
37
+ describe: commands.cms.subcommands.upload.options.clean,
189
38
  type: 'boolean',
190
39
  default: false,
191
40
  });
192
41
  yargs.option('force', {
193
- describe: commands.upload.options.force,
42
+ describe: commands.cms.subcommands.upload.options.force,
194
43
  type: 'boolean',
195
44
  default: false,
196
45
  });
197
46
  return yargs;
198
47
  }
199
- const builder = makeYargsBuilder(uploadBuilder, command, describe, {
48
+ const verboseDescribe = uiCommandRenamedDescription(cmsUploadCommand.describe, 'hs cms upload');
49
+ const builder = makeYargsBuilder(deprecatedCmsUploadBuilder, command, verboseDescribe, {
200
50
  useGlobalOptions: true,
201
51
  useConfigOptions: true,
202
52
  useAccountOptions: true,
203
53
  useEnvironmentOptions: true,
204
54
  useCmsPublishModeOptions: true,
205
55
  });
206
- const uploadCommand = {
207
- command,
56
+ const deprecatedCmsUploadCommand = {
57
+ ...cmsUploadCommand,
208
58
  describe,
209
59
  handler,
210
60
  builder,
211
61
  };
212
- export default uploadCommand;
62
+ export default deprecatedCmsUploadCommand;
@@ -1,14 +1,4 @@
1
- import { AccountArgs, CmsPublishModeArgs, CommonArgs, ConfigArgs, EnvironmentArgs, YargsCommandModule } from '../types/Yargs.js';
2
- type WatchCommandArgs = ConfigArgs & AccountArgs & EnvironmentArgs & CommonArgs & CmsPublishModeArgs & {
3
- src?: string;
4
- dest?: string;
5
- fieldOptions?: string[];
6
- remove?: boolean;
7
- initialUpload?: boolean;
8
- disableInitial?: boolean;
9
- notify?: string;
10
- convertFields?: boolean;
11
- saveOutput?: boolean;
12
- };
13
- declare const watchCommand: YargsCommandModule<unknown, WatchCommandArgs>;
14
- export default watchCommand;
1
+ import { YargsCommandModule } from '../types/Yargs.js';
2
+ import { WatchCommandArgs } from './cms/watch.js';
3
+ declare const deprecatedCmsWatchCommand: YargsCommandModule<unknown, WatchCommandArgs>;
4
+ export default deprecatedCmsWatchCommand;