@hubspot/cli 7.8.0-experimental.0 → 7.8.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 (357) hide show
  1. package/bin/cli.js +31 -27
  2. package/commands/__tests__/auth.test.js +5 -0
  3. package/commands/__tests__/doctor.test.js +16 -16
  4. package/commands/__tests__/getStarted.test.js +2 -2
  5. package/commands/__tests__/mcp.test.js +1 -1
  6. package/commands/__tests__/project.test.js +2 -3
  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 -6
  18. package/commands/app/migrate.js +13 -19
  19. package/commands/app/secret/add.js +2 -1
  20. package/commands/app/secret/delete.js +2 -1
  21. package/commands/app/secret/list.js +2 -1
  22. package/commands/app/secret/update.js +2 -1
  23. package/commands/app/secret.js +2 -1
  24. package/commands/app.js +2 -2
  25. package/commands/auth.d.ts +1 -0
  26. package/commands/auth.js +17 -7
  27. package/commands/cms/convertFields.js +7 -9
  28. package/commands/cms/getReactModule.js +9 -14
  29. package/commands/cms/lighthouseScore.js +33 -36
  30. package/commands/cms.js +2 -2
  31. package/commands/completion.js +3 -3
  32. package/commands/config/set.d.ts +1 -1
  33. package/commands/config/set.js +64 -37
  34. package/commands/config.js +2 -2
  35. package/commands/create.js +2 -2
  36. package/commands/customObject/create.js +10 -12
  37. package/commands/customObject/schema/create.js +9 -11
  38. package/commands/customObject/schema/delete.js +16 -16
  39. package/commands/customObject/schema/fetch-all.js +12 -11
  40. package/commands/customObject/schema/fetch.js +15 -15
  41. package/commands/customObject/schema/list.js +4 -4
  42. package/commands/customObject/schema/update.js +13 -13
  43. package/commands/customObject/schema.js +2 -2
  44. package/commands/customObject.js +6 -7
  45. package/commands/doctor.js +8 -11
  46. package/commands/feedback.js +8 -13
  47. package/commands/fetch.js +8 -8
  48. package/commands/filemanager/fetch.js +7 -7
  49. package/commands/filemanager/upload.js +15 -34
  50. package/commands/filemanager.js +2 -2
  51. package/commands/function/deploy.js +11 -29
  52. package/commands/function/list.js +8 -8
  53. package/commands/function/server.js +9 -11
  54. package/commands/function.d.ts +1 -1
  55. package/commands/function.js +2 -2
  56. package/commands/getStarted.d.ts +1 -3
  57. package/commands/getStarted.js +68 -20
  58. package/commands/hubdb/clear.js +7 -15
  59. package/commands/hubdb/create.js +9 -15
  60. package/commands/hubdb/delete.js +8 -15
  61. package/commands/hubdb/fetch.js +6 -9
  62. package/commands/hubdb.d.ts +1 -1
  63. package/commands/hubdb.js +2 -2
  64. package/commands/init.js +2 -3
  65. package/commands/lint.js +16 -16
  66. package/commands/list.js +8 -14
  67. package/commands/logs.js +14 -20
  68. package/commands/mcp/__tests__/setup.test.js +2 -2
  69. package/commands/mcp/setup.js +11 -2
  70. package/commands/mcp.js +3 -3
  71. package/commands/mv.js +6 -17
  72. package/commands/open.js +5 -5
  73. package/commands/project/__tests__/add.test.js +15 -13
  74. package/commands/project/__tests__/create.test.js +6 -6
  75. package/commands/project/__tests__/deploy.test.js +3 -7
  76. package/commands/project/__tests__/devUnifiedFlow.test.js +2 -4
  77. package/commands/project/__tests__/installDeps.test.js +8 -8
  78. package/commands/project/__tests__/list.test.js +31 -0
  79. package/commands/project/__tests__/logs.test.js +1 -4
  80. package/commands/project/__tests__/migrate.test.js +7 -7
  81. package/commands/project/__tests__/migrateApp.test.js +3 -7
  82. package/commands/project/__tests__/profile.test.js +1 -1
  83. package/commands/project/__tests__/validate.test.js +98 -0
  84. package/commands/project/add.d.ts +2 -2
  85. package/commands/project/add.js +7 -10
  86. package/commands/project/cloneApp.js +14 -19
  87. package/commands/project/create.js +4 -11
  88. package/commands/project/deploy.js +5 -5
  89. package/commands/project/dev/deprecatedFlow.js +9 -18
  90. package/commands/project/dev/index.js +21 -18
  91. package/commands/project/dev/unifiedFlow.js +15 -8
  92. package/commands/project/download.js +15 -16
  93. package/commands/project/installDeps.d.ts +2 -2
  94. package/commands/project/installDeps.js +9 -9
  95. package/commands/project/list.d.ts +4 -0
  96. package/commands/project/list.js +62 -0
  97. package/commands/project/listBuilds.js +12 -21
  98. package/commands/project/logs.js +21 -24
  99. package/commands/project/migrate.js +33 -12
  100. package/commands/project/migrateApp.js +10 -17
  101. package/commands/project/open.js +6 -14
  102. package/commands/project/profile/add.js +3 -3
  103. package/commands/project/profile/delete.js +1 -2
  104. package/commands/project/profile.js +2 -3
  105. package/commands/project/upload.js +16 -25
  106. package/commands/project/validate.js +7 -7
  107. package/commands/project/watch.js +13 -22
  108. package/commands/project.js +4 -3
  109. package/commands/sandbox/__tests__/create.test.js +5 -5
  110. package/commands/sandbox/create.js +22 -32
  111. package/commands/sandbox/delete.js +39 -64
  112. package/commands/sandbox.js +2 -2
  113. package/commands/secret/addSecret.js +7 -17
  114. package/commands/secret/deleteSecret.js +10 -20
  115. package/commands/secret/listSecret.js +8 -10
  116. package/commands/secret/updateSecret.js +9 -17
  117. package/commands/secret.js +2 -2
  118. package/commands/testAccount/__tests__/delete.test.js +2 -4
  119. package/commands/testAccount/create.js +2 -2
  120. package/commands/testAccount/delete.d.ts +4 -3
  121. package/commands/testAccount/delete.js +155 -14
  122. package/commands/testAccount/importData.d.ts +1 -1
  123. package/commands/testAccount/importData.js +1 -1
  124. package/commands/testAccount.js +1 -1
  125. package/commands/theme/preview.js +1 -4
  126. package/lang/en.d.ts +365 -111
  127. package/lang/en.js +409 -158
  128. package/lang/en.lyaml +4 -4
  129. package/lib/__tests__/buildAccount.test.js +4 -3
  130. package/lib/__tests__/commonOpts.test.js +1 -1
  131. package/lib/__tests__/dependencyManagement.test.js +1 -1
  132. package/lib/__tests__/developerTestAccounts.test.js +3 -3
  133. package/lib/__tests__/hasFeature.test.js +145 -7
  134. package/lib/__tests__/npm.test.js +1 -1
  135. package/lib/__tests__/oauth.test.js +4 -4
  136. package/lib/__tests__/process.test.js +10 -5
  137. package/lib/__tests__/sandboxSync.test.js +8 -8
  138. package/lib/__tests__/sandboxes.test.js +8 -8
  139. package/lib/__tests__/serverlessLogs.test.js +1 -1
  140. package/lib/__tests__/usageTracking.test.js +5 -5
  141. package/lib/__tests__/validation.test.js +2 -1
  142. package/lib/__tests__/yargsUtils.test.js +83 -9
  143. package/lib/app/__tests__/migrate.test.js +19 -56
  144. package/lib/app/__tests__/migrate_legacy.test.js +1 -1
  145. package/lib/app/migrate.d.ts +2 -8
  146. package/lib/app/migrate.js +6 -81
  147. package/lib/app/migrate_legacy.js +20 -24
  148. package/lib/buildAccount.d.ts +2 -2
  149. package/lib/buildAccount.js +32 -64
  150. package/lib/commonOpts.d.ts +1 -1
  151. package/lib/commonOpts.js +25 -22
  152. package/lib/configMigrate.js +88 -9
  153. package/lib/configOptions.js +7 -0
  154. package/lib/constants.d.ts +22 -1
  155. package/lib/constants.js +26 -1
  156. package/lib/dependencyManagement.d.ts +0 -5
  157. package/lib/dependencyManagement.js +9 -36
  158. package/lib/developerTestAccounts.js +9 -23
  159. package/lib/doctor/Diagnosis.js +11 -23
  160. package/lib/doctor/DiagnosticInfoBuilder.js +12 -11
  161. package/lib/doctor/Doctor.js +42 -90
  162. package/lib/doctor/__tests__/Doctor.test.js +4 -4
  163. package/lib/errorHandlers/index.js +12 -20
  164. package/lib/errorHandlers/suppressError.js +11 -18
  165. package/lib/hasFeature.js +6 -0
  166. package/lib/lang.js +6 -5
  167. package/lib/links.d.ts +1 -0
  168. package/lib/links.js +14 -7
  169. package/lib/mcp/setup.js +1 -1
  170. package/lib/middleware/__test__/commandTargetingUtils.test.js +99 -0
  171. package/lib/middleware/__test__/configMiddleware.test.js +11 -11
  172. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +6 -8
  173. package/lib/middleware/commandTargetingUtils.d.ts +8 -0
  174. package/lib/middleware/commandTargetingUtils.js +74 -0
  175. package/lib/middleware/configMiddleware.d.ts +1 -1
  176. package/lib/middleware/configMiddleware.js +21 -81
  177. package/lib/middleware/fireAlarmMiddleware.js +15 -5
  178. package/lib/middleware/gitMiddleware.js +5 -1
  179. package/lib/middleware/notificationsMiddleware.js +5 -11
  180. package/lib/middleware/yargsChecksMiddleware.js +6 -9
  181. package/lib/npm.js +2 -2
  182. package/lib/oauth.js +5 -5
  183. package/lib/process.js +5 -4
  184. package/lib/projects/__tests__/AppDevModeInterface.test.js +87 -90
  185. package/lib/projects/__tests__/LocalDevProcess.test.js +231 -19
  186. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +89 -63
  187. package/lib/projects/__tests__/deploy.test.js +73 -8
  188. package/lib/projects/__tests__/localDevProjectHelpers.test.js +6 -2
  189. package/lib/projects/__tests__/platformVersion.test.js +8 -8
  190. package/lib/projects/__tests__/projects.test.js +12 -12
  191. package/lib/projects/__tests__/structure.test.js +3 -3
  192. package/lib/projects/__tests__/upload.test.d.ts +1 -0
  193. package/lib/projects/__tests__/upload.test.js +82 -0
  194. package/lib/projects/add/__tests__/legacyAddComponent.test.js +6 -6
  195. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +1 -0
  196. package/lib/projects/add/__tests__/{v3AddComponent.test.js → v2AddComponent.test.js} +39 -39
  197. package/lib/projects/add/{v3AddComponent.d.ts → v2AddComponent.d.ts} +1 -1
  198. package/lib/projects/add/{v3AddComponent.js → v2AddComponent.js} +5 -5
  199. package/lib/projects/create/__tests__/legacy.test.js +5 -5
  200. package/lib/projects/create/__tests__/v2.test.d.ts +1 -0
  201. package/lib/projects/create/__tests__/{v3.test.js → v2.test.js} +82 -7
  202. package/lib/projects/create/index.js +4 -4
  203. package/lib/projects/create/legacy.js +2 -2
  204. package/lib/projects/create/{v3.d.ts → v2.d.ts} +3 -3
  205. package/lib/projects/create/{v3.js → v2.js} +16 -13
  206. package/lib/projects/deploy.d.ts +1 -1
  207. package/lib/projects/deploy.js +2 -2
  208. package/lib/projects/localDev/AppDevModeInterface.d.ts +10 -1
  209. package/lib/projects/localDev/AppDevModeInterface.js +118 -89
  210. package/lib/projects/localDev/DevServerManager.d.ts +11 -29
  211. package/lib/projects/localDev/DevServerManager.js +19 -61
  212. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +40 -0
  213. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +120 -0
  214. package/lib/projects/localDev/LocalDevLogger.d.ts +4 -0
  215. package/lib/projects/localDev/LocalDevLogger.js +27 -6
  216. package/lib/projects/localDev/{LocalDevManager.js → LocalDevManager_DEPRECATED.js} +10 -11
  217. package/lib/projects/localDev/LocalDevProcess.d.ts +7 -5
  218. package/lib/projects/localDev/LocalDevProcess.js +93 -21
  219. package/lib/projects/localDev/LocalDevState.d.ts +12 -8
  220. package/lib/projects/localDev/LocalDevState.js +27 -17
  221. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +6 -1
  222. package/lib/projects/localDev/LocalDevWebsocketServer.js +94 -33
  223. package/lib/projects/localDev/helpers/account.d.ts +1 -1
  224. package/lib/projects/localDev/helpers/account.js +2 -2
  225. package/lib/projects/localDev/helpers/project.d.ts +3 -2
  226. package/lib/projects/localDev/helpers/project.js +49 -10
  227. package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +7 -0
  228. package/lib/projects/localDev/localDevWebsocketServerUtils.js +19 -0
  229. package/lib/projects/platformVersion.d.ts +1 -1
  230. package/lib/projects/platformVersion.js +1 -1
  231. package/lib/projects/pollProjectBuildAndDeploy.js +4 -4
  232. package/lib/projects/structure.js +6 -6
  233. package/lib/projects/upload.d.ts +1 -1
  234. package/lib/projects/upload.js +17 -8
  235. package/lib/projects/urls.d.ts +0 -1
  236. package/lib/projects/urls.js +0 -3
  237. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +1 -0
  238. package/lib/prompts/__tests__/projectAddPrompt.test.js +10 -10
  239. package/lib/prompts/accountNamePrompt.js +14 -19
  240. package/lib/prompts/accountsPrompt.js +2 -2
  241. package/lib/prompts/cmsFieldPrompt.js +2 -2
  242. package/lib/prompts/createApiSamplePrompt.js +5 -5
  243. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +10 -1
  244. package/lib/prompts/createFunctionPrompt.js +14 -14
  245. package/lib/prompts/createModulePrompt.js +9 -9
  246. package/lib/prompts/createTemplatePrompt.js +2 -2
  247. package/lib/prompts/downloadProjectPrompt.js +5 -8
  248. package/lib/prompts/installAppPrompt.d.ts +1 -6
  249. package/lib/prompts/installAppPrompt.js +1 -6
  250. package/lib/prompts/personalAccessKeyPrompt.js +3 -3
  251. package/lib/prompts/previewPrompt.js +6 -6
  252. package/lib/prompts/projectAddPrompt.d.ts +2 -2
  253. package/lib/prompts/projectAddPrompt.js +9 -2
  254. package/lib/prompts/projectDevTargetAccountPrompt.js +20 -32
  255. package/lib/prompts/projectNamePrompt.js +4 -8
  256. package/lib/prompts/projectsLogsPrompt.js +2 -4
  257. package/lib/prompts/promptUtils.js +30 -9
  258. package/lib/prompts/sandboxesPrompt.js +7 -7
  259. package/lib/prompts/secretPrompt.js +3 -3
  260. package/lib/prompts/selectAppPrompt.js +3 -3
  261. package/lib/prompts/selectHubDBTablePrompt.js +9 -13
  262. package/lib/prompts/selectProjectTemplatePrompt.js +2 -0
  263. package/lib/prompts/selectPublicAppForMigrationPrompt.js +15 -19
  264. package/lib/prompts/setAsDefaultAccountPrompt.js +4 -8
  265. package/lib/prompts/uploadPrompt.js +5 -5
  266. package/lib/sandboxSync.js +24 -41
  267. package/lib/sandboxes.js +19 -47
  268. package/lib/schema.js +3 -3
  269. package/lib/serverlessLogs.js +11 -13
  270. package/lib/theme/__tests__/migrate.test.d.ts +1 -0
  271. package/lib/theme/__tests__/migrate.test.js +233 -0
  272. package/lib/theme/migrate.d.ts +13 -0
  273. package/lib/theme/migrate.js +90 -0
  274. package/lib/ui/SpinniesManager.d.ts +2 -0
  275. package/lib/ui/SpinniesManager.js +112 -8
  276. package/lib/ui/boxen.js +1 -2
  277. package/lib/ui/git.js +13 -10
  278. package/lib/ui/index.d.ts +4 -0
  279. package/lib/ui/index.js +47 -38
  280. package/lib/ui/serverlessFunctionLogs.js +9 -7
  281. package/lib/ui/uiMessages.d.ts +72 -0
  282. package/lib/ui/uiMessages.js +75 -0
  283. package/lib/usageTracking.js +8 -8
  284. package/lib/validation.js +20 -23
  285. package/lib/yargsUtils.d.ts +1 -1
  286. package/lib/yargsUtils.js +12 -5
  287. package/mcp-server/tools/cms/HsCreateFunctionTool.js +1 -1
  288. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +2 -2
  289. package/mcp-server/tools/cms/HsCreateModuleTool.js +1 -1
  290. package/mcp-server/tools/cms/HsCreateTemplateTool.js +1 -1
  291. package/mcp-server/tools/cms/HsFunctionLogsTool.js +2 -2
  292. package/mcp-server/tools/cms/HsListFunctionsTool.js +1 -1
  293. package/mcp-server/tools/cms/HsListTool.js +1 -1
  294. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +1 -1
  295. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +1 -1
  296. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +1 -1
  297. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +2 -2
  298. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +1 -1
  299. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +1 -1
  300. package/mcp-server/tools/index.js +4 -0
  301. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +3 -3
  302. package/mcp-server/tools/project/AddFeatureToProjectTool.js +3 -3
  303. package/mcp-server/tools/project/CreateProjectTool.d.ts +3 -3
  304. package/mcp-server/tools/project/CreateProjectTool.js +5 -5
  305. package/mcp-server/tools/project/DeployProjectTool.js +1 -1
  306. package/mcp-server/tools/project/DocFetchTool.js +2 -2
  307. package/mcp-server/tools/project/DocsSearchTool.d.ts +4 -1
  308. package/mcp-server/tools/project/DocsSearchTool.js +7 -7
  309. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +23 -0
  310. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +68 -0
  311. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +11 -0
  312. package/mcp-server/tools/project/GetApplicationInfoTool.js +49 -0
  313. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -1
  314. package/mcp-server/tools/project/GetConfigValuesTool.js +13 -7
  315. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +2 -2
  316. package/mcp-server/tools/project/GuidedWalkthroughTool.js +1 -1
  317. package/mcp-server/tools/project/UploadProjectTools.js +2 -2
  318. package/mcp-server/tools/project/ValidateProjectTool.js +1 -1
  319. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +1 -1
  320. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +2 -2
  321. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +1 -1
  322. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +2 -2
  323. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +14 -12
  324. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +1 -0
  325. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +169 -0
  326. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +1 -0
  327. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +115 -0
  328. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +9 -8
  329. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +1 -1
  330. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +1 -1
  331. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +1 -1
  332. package/mcp-server/tools/project/constants.d.ts +1 -1
  333. package/mcp-server/tools/project/constants.js +9 -3
  334. package/mcp-server/utils/__tests__/cliConfig.test.d.ts +1 -0
  335. package/mcp-server/utils/__tests__/cliConfig.test.js +110 -0
  336. package/mcp-server/utils/cliConfig.d.ts +1 -0
  337. package/mcp-server/utils/cliConfig.js +12 -0
  338. package/mcp-server/utils/toolUsageTracking.js +2 -2
  339. package/package.json +8 -12
  340. package/types/LocalDev.d.ts +19 -3
  341. package/ui/components/HorizontalSelectPrompt.js +1 -1
  342. package/ui/index.js +1 -1
  343. package/commands/getStartedV2.d.ts +0 -9
  344. package/commands/getStartedV2.js +0 -39
  345. package/lib/middleware/__test__/utils.test.js +0 -51
  346. package/lib/middleware/utils.d.ts +0 -8
  347. package/lib/middleware/utils.js +0 -14
  348. package/lib/projects/localDev/DevServerManagerV2.d.ts +0 -22
  349. package/lib/projects/localDev/DevServerManagerV2.js +0 -81
  350. package/ui/components/Ascii.d.ts +0 -10
  351. package/ui/components/Ascii.js +0 -11
  352. package/ui/views/GetStarted.d.ts +0 -7
  353. package/ui/views/GetStarted.js +0 -157
  354. /package/{lib/middleware/__test__/utils.test.d.ts → commands/project/__tests__/list.test.d.ts} +0 -0
  355. /package/{lib/projects/add/__tests__/v3AddComponent.test.d.ts → commands/project/__tests__/validate.test.d.ts} +0 -0
  356. /package/lib/{projects/create/__tests__/v3.test.d.ts → middleware/__test__/commandTargetingUtils.test.d.ts} +0 -0
  357. /package/lib/projects/localDev/{LocalDevManager.d.ts → LocalDevManager_DEPRECATED.d.ts} +0 -0
@@ -1,13 +1,13 @@
1
1
  import { fetchObjectSchemas, deleteObjectSchema, } from '@hubspot/local-dev-lib/api/customObjects';
2
2
  import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
3
3
  import { confirmPrompt, listPrompt } from '../../../lib/prompts/promptUtils.js';
4
- import { logger } from '@hubspot/local-dev-lib/logger';
4
+ import { uiLogger } from '../../../lib/ui/logger.js';
5
5
  import { trackCommandUsage } from '../../../lib/usageTracking.js';
6
- import { i18n } from '../../../lib/lang.js';
6
+ import { commands } from '../../../lang/en.js';
7
7
  import { logError } from '../../../lib/errorHandlers/index.js';
8
8
  import { makeYargsBuilder } from '../../../lib/yargsUtils.js';
9
9
  const command = 'delete [name]';
10
- const describe = i18n(`commands.customObject.subcommands.schema.subcommands.delete.describe`);
10
+ const describe = commands.customObject.subcommands.schema.subcommands.delete.describe;
11
11
  async function handler(args) {
12
12
  const { name: providedName, force, derivedAccountId } = args;
13
13
  trackCommandUsage('custom-object-schema-delete', {}, derivedAccountId);
@@ -18,41 +18,41 @@ async function handler(args) {
18
18
  name =
19
19
  providedName && typeof providedName === 'string'
20
20
  ? providedName
21
- : await listPrompt(i18n(`commands.customObject.subcommands.schema.subcommands.delete.selectSchema`), {
21
+ : await listPrompt(commands.customObject.subcommands.schema.subcommands.delete
22
+ .selectSchema, {
22
23
  choices: schemaNames,
23
24
  });
24
25
  const shouldDelete = force ||
25
- (await confirmPrompt(i18n(`commands.customObject.subcommands.schema.subcommands.delete.confirmDelete`, { name })));
26
+ (await confirmPrompt(commands.customObject.subcommands.schema.subcommands.delete.confirmDelete(name)));
26
27
  if (!shouldDelete) {
27
- logger.info(i18n(`commands.customObject.subcommands.schema.subcommands.delete.deleteCancelled`, { name }));
28
+ uiLogger.info(commands.customObject.subcommands.schema.subcommands.delete.deleteCancelled(name));
28
29
  return process.exit(EXIT_CODES.SUCCESS);
29
30
  }
30
31
  await deleteObjectSchema(derivedAccountId, name);
31
- logger.success(i18n(`commands.customObject.subcommands.schema.subcommands.delete.success.delete`, {
32
- name,
33
- }));
32
+ uiLogger.success(commands.customObject.subcommands.schema.subcommands.delete.success.delete(name));
34
33
  }
35
34
  catch (e) {
36
35
  logError(e);
37
- logger.error(i18n(`commands.customObject.subcommands.schema.subcommands.delete.errors.delete`, {
38
- name: name || '',
39
- }));
36
+ uiLogger.error(commands.customObject.subcommands.schema.subcommands.delete.errors.delete(name || ''));
40
37
  }
41
38
  }
42
39
  function schemaDeleteBuilder(yargs) {
43
40
  yargs
44
41
  .example([
45
42
  [
46
- '$0 schema delete schemaName',
47
- i18n(`commands.customObject.subcommands.schema.subcommands.delete.examples.default`),
43
+ '$0 custom-object schema delete schemaName',
44
+ commands.customObject.subcommands.schema.subcommands.delete.examples
45
+ .default,
48
46
  ],
49
47
  ])
50
48
  .positional('name', {
51
- describe: i18n(`commands.customObject.subcommands.schema.subcommands.delete.positionals.name.describe`),
49
+ describe: commands.customObject.subcommands.schema.subcommands.delete.positionals
50
+ .name.describe,
52
51
  type: 'string',
53
52
  })
54
53
  .option('force', {
55
- describe: i18n(`commands.customObject.subcommands.schema.subcommands.delete.options.force.describe`),
54
+ describe: commands.customObject.subcommands.schema.subcommands.delete.options
55
+ .force.describe,
56
56
  type: 'boolean',
57
57
  });
58
58
  return yargs;
@@ -1,28 +1,26 @@
1
- import { logger } from '@hubspot/local-dev-lib/logger';
1
+ import { uiLogger } from '../../../lib/ui/logger.js';
2
2
  import { downloadSchemas, getResolvedPath, } from '@hubspot/local-dev-lib/customObjects';
3
3
  import { inputPrompt } from '../../../lib/prompts/promptUtils.js';
4
4
  import { trackCommandUsage } from '../../../lib/usageTracking.js';
5
- import { i18n } from '../../../lib/lang.js';
5
+ import { commands } from '../../../lang/en.js';
6
6
  import { logSchemas } from '../../../lib/schema.js';
7
7
  import { logError } from '../../../lib/errorHandlers/index.js';
8
8
  import { makeYargsBuilder } from '../../../lib/yargsUtils.js';
9
9
  const command = 'fetch-all [dest]';
10
- const describe = i18n(`commands.customObject.subcommands.schema.subcommands.fetchAll.describe`);
10
+ const describe = commands.customObject.subcommands.schema.subcommands.fetchAll.describe;
11
11
  async function handler(args) {
12
12
  const { derivedAccountId, dest: providedDest } = args;
13
13
  trackCommandUsage('custom-object-schema-fetch-all', {}, derivedAccountId);
14
14
  try {
15
15
  const dest = providedDest ||
16
- (await inputPrompt(i18n(`commands.customObject.subcommands.schema.subcommands.fetchAll.inputDest`)));
16
+ (await inputPrompt(commands.customObject.subcommands.schema.subcommands.fetchAll.inputDest));
17
17
  const schemas = await downloadSchemas(derivedAccountId, dest);
18
18
  logSchemas(schemas);
19
- logger.success(i18n(`commands.customObject.subcommands.schema.subcommands.fetchAll.success.fetch`, {
20
- path: getResolvedPath(dest),
21
- }));
19
+ uiLogger.success(commands.customObject.subcommands.schema.subcommands.fetchAll.success.fetch(getResolvedPath(dest)));
22
20
  }
23
21
  catch (e) {
24
22
  logError(e);
25
- logger.error(i18n(`commands.customObject.subcommands.schema.subcommands.fetchAll.errors.fetch`));
23
+ uiLogger.error(commands.customObject.subcommands.schema.subcommands.fetchAll.errors.fetch);
26
24
  }
27
25
  }
28
26
  function schemaFetchAllBuilder(yargs) {
@@ -30,15 +28,18 @@ function schemaFetchAllBuilder(yargs) {
30
28
  .example([
31
29
  [
32
30
  '$0 custom-object schema fetch-all',
33
- i18n(`commands.customObject.subcommands.schema.subcommands.fetchAll.examples.default`),
31
+ commands.customObject.subcommands.schema.subcommands.fetchAll.examples
32
+ .default,
34
33
  ],
35
34
  [
36
35
  '$0 custom-object schema fetch-all my/folder',
37
- i18n(`commands.customObject.subcommands.schema.subcommands.fetchAll.examples.specifyPath`),
36
+ commands.customObject.subcommands.schema.subcommands.fetchAll.examples
37
+ .specifyPath,
38
38
  ],
39
39
  ])
40
40
  .positional('dest', {
41
- describe: i18n(`commands.customObject.subcommands.schema.subcommands.fetchAll.positionals.dest.describe`),
41
+ describe: commands.customObject.subcommands.schema.subcommands.fetchAll
42
+ .positionals.dest.describe,
42
43
  type: 'string',
43
44
  });
44
45
  return yargs;
@@ -1,13 +1,13 @@
1
1
  import { fetchObjectSchemas } from '@hubspot/local-dev-lib/api/customObjects';
2
- import { logger } from '@hubspot/local-dev-lib/logger';
2
+ import { uiLogger } from '../../../lib/ui/logger.js';
3
3
  import { downloadSchema, getResolvedPath, } from '@hubspot/local-dev-lib/customObjects';
4
4
  import { inputPrompt, listPrompt } from '../../../lib/prompts/promptUtils.js';
5
5
  import { trackCommandUsage } from '../../../lib/usageTracking.js';
6
- import { i18n } from '../../../lib/lang.js';
6
+ import { commands } from '../../../lang/en.js';
7
7
  import { logError } from '../../../lib/errorHandlers/index.js';
8
8
  import { makeYargsBuilder } from '../../../lib/yargsUtils.js';
9
9
  const command = 'fetch [name] [dest]';
10
- const describe = i18n(`commands.customObject.subcommands.schema.subcommands.fetch.describe`);
10
+ const describe = commands.customObject.subcommands.schema.subcommands.fetch.describe;
11
11
  async function handler(args) {
12
12
  const { name: providedName, dest: providedDest, derivedAccountId } = args;
13
13
  trackCommandUsage('custom-object-schema-fetch', {}, derivedAccountId);
@@ -17,21 +17,17 @@ async function handler(args) {
17
17
  const schemaNames = results?.map(({ name: schemaName }) => schemaName);
18
18
  name =
19
19
  providedName ||
20
- (await listPrompt(i18n(`commands.customObject.subcommands.schema.subcommands.fetch.selectSchema`), {
20
+ (await listPrompt(commands.customObject.subcommands.schema.subcommands.fetch.selectSchema, {
21
21
  choices: schemaNames,
22
22
  }));
23
23
  const dest = providedDest ||
24
- (await inputPrompt(i18n(`commands.customObject.subcommands.schema.subcommands.fetch.inputDest`)));
24
+ (await inputPrompt(commands.customObject.subcommands.schema.subcommands.fetch.inputDest));
25
25
  await downloadSchema(derivedAccountId, name, dest);
26
- logger.success(i18n(`commands.customObject.subcommands.schema.subcommands.fetch.success.savedToPath`, {
27
- path: getResolvedPath(dest, name),
28
- }));
26
+ uiLogger.success(commands.customObject.subcommands.schema.subcommands.fetch.success.savedToPath(getResolvedPath(dest, name)));
29
27
  }
30
28
  catch (e) {
31
29
  logError(e);
32
- logger.error(i18n(`commands.customObject.subcommands.schema.subcommands.fetch.errors.fetch`, {
33
- name: name || '',
34
- }));
30
+ uiLogger.error(commands.customObject.subcommands.schema.subcommands.fetch.errors.fetch(name || ''));
35
31
  }
36
32
  }
37
33
  function schemaFetchBuilder(yargs) {
@@ -39,19 +35,23 @@ function schemaFetchBuilder(yargs) {
39
35
  .example([
40
36
  [
41
37
  '$0 custom-object schema fetch schemaName',
42
- i18n(`commands.customObject.subcommands.schema.subcommands.fetch.examples.default`),
38
+ commands.customObject.subcommands.schema.subcommands.fetch.examples
39
+ .default,
43
40
  ],
44
41
  [
45
42
  '$0 custom-object schema fetch schemaName my/folder',
46
- i18n(`commands.customObject.subcommands.schema.subcommands.fetch.examples.specifyPath`),
43
+ commands.customObject.subcommands.schema.subcommands.fetch.examples
44
+ .specifyPath,
47
45
  ],
48
46
  ])
49
47
  .positional('name', {
50
- describe: i18n(`commands.customObject.subcommands.schema.subcommands.fetch.positionals.name.describe`),
48
+ describe: commands.customObject.subcommands.schema.subcommands.fetch.positionals
49
+ .name.describe,
51
50
  type: 'string',
52
51
  })
53
52
  .positional('dest', {
54
- describe: i18n(`commands.customObject.subcommands.schema.subcommands.fetch.positionals.dest.describe`),
53
+ describe: commands.customObject.subcommands.schema.subcommands.fetch.positionals
54
+ .dest.describe,
55
55
  type: 'string',
56
56
  });
57
57
  return yargs;
@@ -1,11 +1,11 @@
1
- import { logger } from '@hubspot/local-dev-lib/logger';
1
+ import { uiLogger } from '../../../lib/ui/logger.js';
2
2
  import { logError } from '../../../lib/errorHandlers/index.js';
3
3
  import { trackCommandUsage } from '../../../lib/usageTracking.js';
4
4
  import { listSchemas } from '../../../lib/schema.js';
5
- import { i18n } from '../../../lib/lang.js';
5
+ import { commands } from '../../../lang/en.js';
6
6
  import { makeYargsBuilder } from '../../../lib/yargsUtils.js';
7
7
  const command = 'list';
8
- const describe = i18n(`commands.customObject.subcommands.schema.subcommands.list.describe`);
8
+ const describe = commands.customObject.subcommands.schema.subcommands.list.describe;
9
9
  async function handler(args) {
10
10
  const { derivedAccountId } = args;
11
11
  trackCommandUsage('custom-object-schema-list', {}, derivedAccountId);
@@ -14,7 +14,7 @@ async function handler(args) {
14
14
  }
15
15
  catch (e) {
16
16
  logError(e);
17
- logger.error(i18n(`commands.customObject.subcommands.schema.subcommands.list.errors.list`));
17
+ uiLogger.error(commands.customObject.subcommands.schema.subcommands.list.errors.list);
18
18
  }
19
19
  }
20
20
  function schemaListBuilder(yargs) {
@@ -1,5 +1,5 @@
1
1
  import { fetchObjectSchemas, updateObjectSchema, } from '@hubspot/local-dev-lib/api/customObjects';
2
- import { logger } from '@hubspot/local-dev-lib/logger';
2
+ import { uiLogger } from '../../../lib/ui/logger.js';
3
3
  import { getAbsoluteFilePath } from '@hubspot/local-dev-lib/path';
4
4
  import { ENVIRONMENTS } from '@hubspot/local-dev-lib/constants/environments';
5
5
  import { getEnv } from '@hubspot/local-dev-lib/config';
@@ -8,19 +8,20 @@ import { listPrompt } from '../../../lib/prompts/promptUtils.js';
8
8
  import { logError } from '../../../lib/errorHandlers/index.js';
9
9
  import { checkAndConvertToJson } from '../../../lib/validation.js';
10
10
  import { trackCommandUsage } from '../../../lib/usageTracking.js';
11
- import { i18n } from '../../../lib/lang.js';
11
+ import { commands } from '../../../lang/en.js';
12
12
  import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
13
13
  import { isSchemaDefinition } from '../../../lib/customObject.js';
14
14
  import { makeYargsBuilder } from '../../../lib/yargsUtils.js';
15
15
  const command = 'update [name]';
16
- const describe = i18n(`commands.customObject.subcommands.schema.subcommands.update.describe`);
16
+ const describe = commands.customObject.subcommands.schema.subcommands.update.describe;
17
17
  async function handler(args) {
18
18
  const { path, name: providedName, derivedAccountId } = args;
19
19
  trackCommandUsage('custom-object-schema-update', {}, derivedAccountId);
20
20
  const filePath = getAbsoluteFilePath(path);
21
21
  const schemaJson = checkAndConvertToJson(filePath);
22
22
  if (!isSchemaDefinition(schemaJson)) {
23
- logger.error(i18n(`commands.customObject.subcommands.schema.subcommands.update.errors.invalidSchema`));
23
+ uiLogger.error(commands.customObject.subcommands.schema.subcommands.update.errors
24
+ .invalidSchema);
24
25
  process.exit(EXIT_CODES.ERROR);
25
26
  }
26
27
  let name = providedName;
@@ -30,29 +31,28 @@ async function handler(args) {
30
31
  name =
31
32
  providedName && typeof providedName === 'string'
32
33
  ? providedName
33
- : await listPrompt(i18n(`commands.customObject.subcommands.schema.subcommands.update.selectSchema`), {
34
+ : await listPrompt(commands.customObject.subcommands.schema.subcommands.update
35
+ .selectSchema, {
34
36
  choices: schemaNames,
35
37
  });
36
38
  const { data } = await updateObjectSchema(derivedAccountId, name, schemaJson);
37
- logger.success(i18n(`commands.customObject.subcommands.schema.subcommands.update.success.viewAtUrl`, {
38
- url: `${getHubSpotWebsiteOrigin(getEnv() === 'qa' ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD)}/contacts/${derivedAccountId}/objects/${data.objectTypeId}`,
39
- }));
39
+ uiLogger.success(commands.customObject.subcommands.schema.subcommands.update.success.viewAtUrl(`${getHubSpotWebsiteOrigin(getEnv() === 'qa' ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD)}/contacts/${derivedAccountId}/objects/${data.objectTypeId}`));
40
40
  }
41
41
  catch (e) {
42
42
  logError(e, { accountId: derivedAccountId });
43
- logger.error(i18n(`commands.customObject.subcommands.schema.subcommands.update.errors.update`, {
44
- definition: path,
45
- }));
43
+ uiLogger.error(commands.customObject.subcommands.schema.subcommands.update.errors.update(path));
46
44
  }
47
45
  }
48
46
  function schemaUpdateBuilder(yargs) {
49
47
  yargs
50
48
  .positional('name', {
51
- describe: i18n(`commands.customObject.subcommands.schema.subcommands.update.positionals.name.describe`),
49
+ describe: commands.customObject.subcommands.schema.subcommands.update.positionals
50
+ .name.describe,
52
51
  type: 'string',
53
52
  })
54
53
  .option('path', {
55
- describe: i18n(`commands.customObject.subcommands.schema.subcommands.update.options.path.describe`),
54
+ describe: commands.customObject.subcommands.schema.subcommands.update.options.path
55
+ .describe,
56
56
  type: 'string',
57
57
  required: true,
58
58
  });
@@ -4,10 +4,10 @@ import fetchAllCommand from './schema/fetch-all.js';
4
4
  import deleteCommand from './schema/delete.js';
5
5
  import listCommand from './schema/list.js';
6
6
  import updateSchema from './schema/update.js';
7
- import { i18n } from '../../lib/lang.js';
7
+ import { commands } from '../../lang/en.js';
8
8
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
9
9
  const command = ['schema', 'schemas'];
10
- const describe = i18n(`commands.customObject.subcommands.schema.describe`);
10
+ const describe = commands.customObject.subcommands.schema.describe;
11
11
  function customObjectSchemaBuilder(yargs) {
12
12
  yargs
13
13
  .command(listCommand)
@@ -1,15 +1,14 @@
1
1
  import schemaCommand from './customObject/schema.js';
2
2
  import createCommand from './customObject/create.js';
3
- import { i18n } from '../lib/lang.js';
4
- import { logger } from '@hubspot/local-dev-lib/logger';
5
- import { uiBetaTag, uiLink } from '../lib/ui/index.js';
3
+ import { commands } from '../lang/en.js';
4
+ import { uiBetaTag } from '../lib/ui/index.js';
6
5
  import { makeYargsBuilder } from '../lib/yargsUtils.js';
6
+ import { uiLogger } from '../lib/ui/logger.js';
7
7
  const command = ['custom-object', 'custom-objects', 'co'];
8
- const describe = uiBetaTag(i18n(`commands.customObject.describe`), false);
8
+ const describe = uiBetaTag(commands.customObject.describe, false);
9
9
  function logBetaMessage() {
10
- uiBetaTag(i18n(`commands.customObject.betaMessage`));
11
- logger.log(uiLink(i18n(`commands.customObject.seeMoreLink`), 'https://developers.hubspot.com/docs/api/crm/crm-custom-objects'));
12
- logger.log();
10
+ uiBetaTag(commands.customObject.betaMessage);
11
+ uiLogger.log(commands.customObject.seeMoreLink);
13
12
  }
14
13
  function customObjectBuilder(yargs) {
15
14
  yargs.middleware([logBetaMessage]);
@@ -1,14 +1,14 @@
1
1
  import path from 'path';
2
2
  import fs from 'fs';
3
3
  import { trackCommandMetadataUsage, trackCommandUsage, } from '../lib/usageTracking.js';
4
- import { logger } from '@hubspot/local-dev-lib/logger';
5
4
  import { Doctor } from '../lib/doctor/Doctor.js';
6
5
  import { EXIT_CODES } from '../lib/enums/exitCodes.js';
7
6
  import { getCwd } from '@hubspot/local-dev-lib/path';
8
7
  import { makeYargsBuilder } from '../lib/yargsUtils.js';
9
- import { i18n } from '../lib/lang.js';
8
+ import { uiLogger } from '../lib/ui/logger.js';
9
+ import { commands } from '../lang/en.js';
10
10
  const command = 'doctor';
11
- const describe = i18n(`commands.doctor.describe`);
11
+ const describe = commands.doctor.describe;
12
12
  const handler = async (args) => {
13
13
  const { outputDir } = args;
14
14
  const doctor = new Doctor();
@@ -20,10 +20,10 @@ const handler = async (args) => {
20
20
  }
21
21
  if (!outputDir) {
22
22
  if (output?.diagnosis) {
23
- logger.log(output.diagnosis);
23
+ uiLogger.log(output.diagnosis);
24
24
  }
25
25
  else {
26
- logger.error(i18n(`commands.doctor.errors.generatingDiagnosis`));
26
+ uiLogger.error(commands.doctor.errors.generatingDiagnosis);
27
27
  return process.exit(EXIT_CODES.ERROR);
28
28
  }
29
29
  return process.exit(EXIT_CODES.SUCCESS);
@@ -35,20 +35,17 @@ const handler = async (args) => {
35
35
  const outputFile = path.join(outputDirPath, `hubspot-doctor-${new Date().toISOString()}.json`);
36
36
  try {
37
37
  fs.writeFileSync(outputFile, JSON.stringify(output, null, 4));
38
- logger.success(i18n(`commands.doctor.outputWritten`, { filename: outputFile }));
38
+ uiLogger.success(commands.doctor.outputWritten(outputFile));
39
39
  }
40
40
  catch (e) {
41
- logger.error(i18n(`commands.doctor.errors.unableToWriteOutputFile`, {
42
- file: outputFile,
43
- errorMessage: e instanceof Error ? e.message : e,
44
- }));
41
+ uiLogger.error(commands.doctor.errors.unableToWriteOutputFile(outputFile, e instanceof Error ? e.message : e));
45
42
  return process.exit(EXIT_CODES.ERROR);
46
43
  }
47
44
  return process.exit(EXIT_CODES.SUCCESS);
48
45
  };
49
46
  function doctorBuilder(yargs) {
50
47
  yargs.option('output-dir', {
51
- describe: i18n(`commands.doctor.options.outputDir`),
48
+ describe: commands.doctor.options.outputDir,
52
49
  type: 'string',
53
50
  });
54
51
  return yargs;
@@ -1,25 +1,20 @@
1
1
  import open from 'open';
2
- import { i18n } from '../lib/lang.js';
3
- import { logger } from '@hubspot/local-dev-lib/logger';
4
2
  import { confirmPrompt } from '../lib/prompts/promptUtils.js';
5
3
  import { makeYargsBuilder } from '../lib/yargsUtils.js';
6
4
  import { EXIT_CODES } from '../lib/enums/exitCodes.js';
7
- import { uiLink } from '../lib/ui/index.js';
8
- const FEEDBACK_URL = 'https://developers.hubspot.com/feedback.js';
5
+ import { commands } from '../lang/en.js';
6
+ import { uiLogger } from '../lib/ui/logger.js';
7
+ const FEEDBACK_URL = 'https://developers.hubspot.com/feedback';
9
8
  const command = 'feedback';
10
- const describe = i18n(`commands.project.subcommands.feedback.describe`);
9
+ const describe = commands.project.feedback.describe;
11
10
  async function handler() {
12
- const shouldOpen = await confirmPrompt(i18n(`commands.project.subcommands.feedback.openPrompt`));
11
+ const shouldOpen = await confirmPrompt(commands.project.feedback.openPrompt);
13
12
  if (!shouldOpen) {
14
- logger.log(i18n(`commands.project.subcommands.feedback.error`, {
15
- url: uiLink('the developer feedback form', FEEDBACK_URL),
16
- }));
17
- process.exit(EXIT_CODES.ERROR);
13
+ uiLogger.log(commands.project.feedback.error(FEEDBACK_URL));
14
+ process.exit(EXIT_CODES.SUCCESS);
18
15
  }
19
16
  open(FEEDBACK_URL, { url: true });
20
- logger.success(i18n(`commands.project.subcommands.feedback.success`, {
21
- url: uiLink('the developer feedback form', FEEDBACK_URL),
22
- }));
17
+ uiLogger.success(commands.project.feedback.success(FEEDBACK_URL));
23
18
  process.exit(EXIT_CODES.SUCCESS);
24
19
  }
25
20
  function feedbackBuilder(yargs) {
package/commands/fetch.js CHANGED
@@ -1,22 +1,22 @@
1
1
  import { downloadFileOrFolder } from '@hubspot/local-dev-lib/fileMapper';
2
- import { logger } from '@hubspot/local-dev-lib/logger';
3
2
  import { addCmsPublishModeOptions, addOverwriteOptions, getCmsPublishMode, } from '../lib/commonOpts.js';
4
3
  import { resolveLocalPath } from '../lib/filesystem.js';
5
4
  import { validateCmsPublishMode } from '../lib/validation.js';
6
5
  import { trackCommandUsage } from '../lib/usageTracking.js';
7
- import { i18n } from '../lib/lang.js';
8
6
  import { makeYargsBuilder } from '../lib/yargsUtils.js';
9
7
  import { EXIT_CODES } from '../lib/enums/exitCodes.js';
10
8
  import { logError } from '../lib/errorHandlers/index.js';
9
+ import { commands } from '../lang/en.js';
10
+ import { uiLogger } from '../lib/ui/logger.js';
11
11
  const command = 'fetch <src> [dest]';
12
- const describe = i18n('commands.fetch.describe');
12
+ const describe = commands.fetch.describe;
13
13
  const handler = async (options) => {
14
14
  const { src, dest } = options;
15
15
  if (!validateCmsPublishMode(options)) {
16
16
  process.exit(EXIT_CODES.ERROR);
17
17
  }
18
18
  if (typeof src !== 'string') {
19
- logger.error(i18n('commands.fetch.errors.sourceRequired'));
19
+ uiLogger.error(commands.fetch.errors.sourceRequired);
20
20
  process.exit(EXIT_CODES.ERROR);
21
21
  }
22
22
  const { derivedAccountId } = options;
@@ -38,16 +38,16 @@ const handler = async (options) => {
38
38
  };
39
39
  const fetchBuilder = (yargs) => {
40
40
  yargs.positional('src', {
41
- describe: i18n('commands.fetch.positionals.src.describe'),
41
+ describe: commands.fetch.positionals.src.describe,
42
42
  type: 'string',
43
43
  });
44
44
  yargs.positional('dest', {
45
- describe: i18n('commands.fetch.positionals.dest.describe'),
45
+ describe: commands.fetch.positionals.dest.describe,
46
46
  type: 'string',
47
47
  });
48
48
  yargs.options({
49
49
  staging: {
50
- describe: i18n('commands.fetch.options.staging.describe'),
50
+ describe: commands.fetch.options.staging.describe,
51
51
  type: 'boolean',
52
52
  default: false,
53
53
  hidden: true,
@@ -56,7 +56,7 @@ const fetchBuilder = (yargs) => {
56
56
  yargs.options({
57
57
  assetVersion: {
58
58
  type: 'number',
59
- describe: i18n('commands.fetch.options.assetVersion.describe'),
59
+ describe: commands.fetch.options.assetVersion.describe,
60
60
  },
61
61
  });
62
62
  addCmsPublishModeOptions(yargs, { read: true });
@@ -1,18 +1,18 @@
1
1
  import { downloadFileOrFolder } from '@hubspot/local-dev-lib/fileManager';
2
- import { logger } from '@hubspot/local-dev-lib/logger';
2
+ import { uiLogger } from '../../lib/ui/logger.js';
3
3
  import { resolveLocalPath } from '../../lib/filesystem.js';
4
4
  import { trackCommandUsage } from '../../lib/usageTracking.js';
5
- import { i18n } from '../../lib/lang.js';
5
+ import { commands } from '../../lang/en.js';
6
6
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
7
7
  import { logError } from '../../lib/errorHandlers/index.js';
8
8
  import { addOverwriteOptions } from '../../lib/commonOpts.js';
9
9
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
10
10
  const command = 'fetch <src> [dest]';
11
- const describe = i18n(`commands.filemanager.subcommands.fetch.describe`);
11
+ const describe = commands.filemanager.subcommands.fetch.describe;
12
12
  async function handler(args) {
13
13
  const { src, includeArchived, derivedAccountId, overwrite } = args;
14
14
  if (typeof src !== 'string') {
15
- logger.error(i18n(`commands.filemanager.subcommands.fetch.errors.sourceRequired`));
15
+ uiLogger.error(commands.filemanager.subcommands.fetch.errors.sourceRequired);
16
16
  process.exit(EXIT_CODES.ERROR);
17
17
  }
18
18
  const dest = resolveLocalPath(args.dest);
@@ -29,16 +29,16 @@ async function handler(args) {
29
29
  function fileManagerFetchBuilder(yargs) {
30
30
  addOverwriteOptions(yargs);
31
31
  yargs.positional('src', {
32
- describe: i18n(`commands.filemanager.subcommands.fetch.positionals.src.describe`),
32
+ describe: commands.filemanager.subcommands.fetch.positionals.src.describe,
33
33
  type: 'string',
34
34
  });
35
35
  yargs.positional('dest', {
36
- describe: i18n(`commands.filemanager.subcommands.fetch.positionals.dest.describe`),
36
+ describe: commands.filemanager.subcommands.fetch.positionals.dest.describe,
37
37
  type: 'string',
38
38
  });
39
39
  yargs.option('include-archived', {
40
40
  alias: ['i'],
41
- describe: i18n(`commands.filemanager.subcommands.fetch.options.includeArchived.describe`),
41
+ describe: commands.filemanager.subcommands.fetch.options.includeArchived.describe,
42
42
  type: 'boolean',
43
43
  });
44
44
  return yargs;
@@ -3,16 +3,16 @@ import path from 'path';
3
3
  import { uploadFolder } from '@hubspot/local-dev-lib/fileManager';
4
4
  import { uploadFile } from '@hubspot/local-dev-lib/api/fileManager';
5
5
  import { getCwd, convertToUnixPath } from '@hubspot/local-dev-lib/path';
6
- import { logger } from '@hubspot/local-dev-lib/logger';
6
+ import { uiLogger } from '../../lib/ui/logger.js';
7
7
  import { validateSrcAndDestPaths } from '@hubspot/local-dev-lib/cms/modules';
8
8
  import { shouldIgnoreFile } from '@hubspot/local-dev-lib/ignoreRules';
9
9
  import { ApiErrorContext, logError } from '../../lib/errorHandlers/index.js';
10
10
  import { trackCommandUsage } from '../../lib/usageTracking.js';
11
- import { i18n } from '../../lib/lang.js';
11
+ import { commands } from '../../lang/en.js';
12
12
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
13
13
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
14
14
  const command = 'upload <src> <dest>';
15
- const describe = i18n(`commands.filemanager.subcommands.upload.describe`);
15
+ const describe = commands.filemanager.subcommands.upload.describe;
16
16
  async function handler(args) {
17
17
  const { src, dest, derivedAccountId } = args;
18
18
  const absoluteSrcPath = path.resolve(getCwd(), src);
@@ -20,49 +20,36 @@ async function handler(args) {
20
20
  try {
21
21
  stats = fs.statSync(absoluteSrcPath);
22
22
  if (!stats.isFile() && !stats.isDirectory()) {
23
- logger.error(i18n(`commands.filemanager.subcommands.upload.errors.invalidPath`, {
24
- path: src,
25
- }));
23
+ uiLogger.error(commands.filemanager.subcommands.upload.errors.invalidPath(src));
26
24
  return;
27
25
  }
28
26
  }
29
27
  catch (e) {
30
- logger.error(i18n(`commands.filemanager.subcommands.upload.errors.invalidPath`, {
31
- path: src,
32
- }));
28
+ uiLogger.error(commands.filemanager.subcommands.upload.errors.invalidPath(src));
33
29
  return;
34
30
  }
35
31
  if (!dest) {
36
- logger.error(i18n(`commands.filemanager.subcommands.upload.errors.destinationRequired`));
32
+ uiLogger.error(commands.filemanager.subcommands.upload.errors.destinationRequired);
37
33
  return;
38
34
  }
39
35
  const normalizedDest = convertToUnixPath(dest);
40
36
  trackCommandUsage('filemanager-upload', { type: stats.isFile() ? 'file' : 'folder' }, derivedAccountId);
41
37
  const srcDestIssues = await validateSrcAndDestPaths({ isLocal: true, path: src }, { isHubSpot: true, path: dest });
42
38
  if (srcDestIssues.length) {
43
- srcDestIssues.forEach(({ message }) => logger.error(message));
39
+ srcDestIssues.forEach(({ message }) => uiLogger.error(message));
44
40
  process.exit(EXIT_CODES.ERROR);
45
41
  }
46
42
  if (stats.isFile()) {
47
43
  if (shouldIgnoreFile(absoluteSrcPath)) {
48
- logger.error(i18n(`commands.filemanager.subcommands.upload.errors.fileIgnored`, {
49
- path: src,
50
- }));
44
+ uiLogger.error(commands.filemanager.subcommands.upload.errors.fileIgnored(src));
51
45
  return;
52
46
  }
53
47
  uploadFile(derivedAccountId, absoluteSrcPath, normalizedDest)
54
48
  .then(() => {
55
- logger.success(i18n(`commands.filemanager.subcommands.upload.success.upload`, {
56
- accountId: derivedAccountId,
57
- dest: normalizedDest,
58
- src,
59
- }));
49
+ uiLogger.success(commands.filemanager.subcommands.upload.success.upload(src, normalizedDest, derivedAccountId));
60
50
  })
61
51
  .catch(error => {
62
- logger.error(i18n(`commands.filemanager.subcommands.upload.errors.upload`, {
63
- dest: normalizedDest,
64
- src,
65
- }));
52
+ uiLogger.error(commands.filemanager.subcommands.upload.errors.upload(src, normalizedDest));
66
53
  logError(error, new ApiErrorContext({
67
54
  accountId: derivedAccountId,
68
55
  request: normalizedDest,
@@ -71,19 +58,13 @@ async function handler(args) {
71
58
  });
72
59
  }
73
60
  else {
74
- logger.log(i18n(`commands.filemanager.subcommands.upload.logs.uploading`, {
75
- accountId: derivedAccountId,
76
- dest,
77
- src,
78
- }));
61
+ uiLogger.log(commands.filemanager.subcommands.upload.logs.uploading(src, dest, derivedAccountId));
79
62
  uploadFolder(derivedAccountId, absoluteSrcPath, dest)
80
63
  .then(() => {
81
- logger.success(i18n(`commands.filemanager.subcommands.upload.success.uploadComplete`, {
82
- dest,
83
- }));
64
+ uiLogger.success(commands.filemanager.subcommands.upload.success.uploadComplete(dest));
84
65
  })
85
66
  .catch(error => {
86
- logger.error(i18n(`commands.filemanager.subcommands.upload.errors.uploadingFailed`));
67
+ uiLogger.error(commands.filemanager.subcommands.upload.errors.uploadingFailed);
87
68
  logError(error, {
88
69
  accountId: derivedAccountId,
89
70
  });
@@ -92,11 +73,11 @@ async function handler(args) {
92
73
  }
93
74
  function fileManagerUploadBuilder(yargs) {
94
75
  yargs.positional('src', {
95
- describe: i18n(`commands.filemanager.subcommands.upload.positionals.src.describe`),
76
+ describe: commands.filemanager.subcommands.upload.positionals.src.describe,
96
77
  type: 'string',
97
78
  });
98
79
  yargs.positional('dest', {
99
- describe: i18n(`commands.filemanager.subcommands.upload.positionals.dest.describe`),
80
+ describe: commands.filemanager.subcommands.upload.positionals.dest.describe,
100
81
  type: 'string',
101
82
  });
102
83
  return yargs;