@hubspot/cli 7.4.9-experimental.0 → 7.4.10-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 (366) hide show
  1. package/api/migrate.d.ts +14 -4
  2. package/api/migrate.js +16 -2
  3. package/bin/cli.js +9 -187
  4. package/commands/account/auth.d.ts +6 -0
  5. package/commands/account/auth.js +198 -0
  6. package/commands/account/clean.d.ts +3 -7
  7. package/commands/account/clean.js +54 -14
  8. package/commands/account/createOverride.d.ts +6 -0
  9. package/commands/account/createOverride.js +121 -0
  10. package/commands/account/info.d.ts +3 -7
  11. package/commands/account/info.js +51 -9
  12. package/commands/account/list.d.ts +3 -7
  13. package/commands/account/list.js +38 -13
  14. package/commands/account/remove.d.ts +3 -7
  15. package/commands/account/remove.js +57 -11
  16. package/commands/account/removeOverride.d.ts +6 -0
  17. package/commands/account/removeOverride.js +93 -0
  18. package/commands/account/rename.d.ts +3 -7
  19. package/commands/account/rename.js +16 -9
  20. package/commands/account/use.d.ts +5 -9
  21. package/commands/account/use.js +39 -9
  22. package/commands/account.d.ts +3 -4
  23. package/commands/account.js +35 -53
  24. package/commands/app/migrate.d.ts +5 -6
  25. package/commands/app/migrate.js +60 -44
  26. package/commands/app.d.ts +2 -5
  27. package/commands/app.js +9 -9
  28. package/commands/auth.d.ts +3 -7
  29. package/commands/auth.js +25 -15
  30. package/commands/cms/convertFields.d.ts +7 -1
  31. package/commands/cms/convertFields.js +57 -41
  32. package/commands/cms/getReactModule.d.ts +7 -1
  33. package/commands/cms/getReactModule.js +52 -34
  34. package/commands/cms/lighthouseScore.d.ts +8 -1
  35. package/commands/cms/lighthouseScore.js +133 -100
  36. package/commands/cms.d.ts +3 -1
  37. package/commands/cms.js +24 -16
  38. package/commands/completion.d.ts +3 -1
  39. package/commands/completion.js +25 -13
  40. package/commands/config/migrate.d.ts +6 -0
  41. package/commands/config/migrate.js +94 -0
  42. package/commands/config/set.d.ts +10 -1
  43. package/commands/config/set.js +61 -32
  44. package/commands/config.d.ts +3 -1
  45. package/commands/config.js +21 -11
  46. package/commands/create/api-sample.d.ts +3 -1
  47. package/commands/create/api-sample.js +34 -36
  48. package/commands/create/app.d.ts +3 -1
  49. package/commands/create/app.js +9 -7
  50. package/commands/create/function.d.ts +3 -1
  51. package/commands/create/function.js +11 -10
  52. package/commands/create/index.d.ts +5 -1
  53. package/commands/create/index.js +23 -11
  54. package/commands/create/module.d.ts +3 -1
  55. package/commands/create/module.js +14 -13
  56. package/commands/create/react-app.d.ts +3 -1
  57. package/commands/create/react-app.js +10 -7
  58. package/commands/create/template.d.ts +3 -1
  59. package/commands/create/template.js +14 -14
  60. package/commands/create/vue-app.d.ts +3 -1
  61. package/commands/create/vue-app.js +10 -7
  62. package/commands/create/webpack-serverless.d.ts +3 -1
  63. package/commands/create/webpack-serverless.js +10 -7
  64. package/commands/create/website-theme.d.ts +3 -1
  65. package/commands/create/website-theme.js +10 -9
  66. package/commands/create.d.ts +4 -24
  67. package/commands/create.js +64 -75
  68. package/commands/customObject/create.d.ts +4 -9
  69. package/commands/customObject/create.js +17 -10
  70. package/commands/customObject/schema/create.d.ts +4 -9
  71. package/commands/customObject/schema/create.js +18 -11
  72. package/commands/customObject/schema/delete.d.ts +4 -9
  73. package/commands/customObject/schema/delete.js +21 -11
  74. package/commands/customObject/schema/fetch-all.d.ts +4 -9
  75. package/commands/customObject/schema/fetch-all.js +19 -11
  76. package/commands/customObject/schema/fetch.d.ts +4 -9
  77. package/commands/customObject/schema/fetch.js +19 -11
  78. package/commands/customObject/schema/list.d.ts +4 -8
  79. package/commands/customObject/schema/list.js +17 -10
  80. package/commands/customObject/schema/update.d.ts +4 -9
  81. package/commands/customObject/schema/update.js +18 -11
  82. package/commands/customObject/schema.d.ts +3 -5
  83. package/commands/customObject/schema.js +27 -54
  84. package/commands/customObject.d.ts +3 -4
  85. package/commands/customObject.js +22 -48
  86. package/commands/doctor.d.ts +6 -8
  87. package/commands/doctor.js +32 -22
  88. package/commands/feedback.d.ts +4 -1
  89. package/commands/feedback.js +40 -48
  90. package/commands/fetch.d.ts +12 -1
  91. package/commands/fetch.js +49 -34
  92. package/commands/filemanager/fetch.d.ts +4 -9
  93. package/commands/filemanager/fetch.js +18 -11
  94. package/commands/filemanager/upload.d.ts +4 -9
  95. package/commands/filemanager/upload.js +17 -11
  96. package/commands/filemanager.d.ts +3 -4
  97. package/commands/filemanager.js +20 -42
  98. package/commands/function/deploy.d.ts +6 -1
  99. package/commands/function/deploy.js +70 -50
  100. package/commands/function/list.d.ts +6 -1
  101. package/commands/function/list.js +44 -32
  102. package/commands/function/server.d.ts +10 -1
  103. package/commands/function/server.js +49 -38
  104. package/commands/function.d.ts +5 -1
  105. package/commands/function.js +24 -11
  106. package/commands/hubdb/clear.d.ts +4 -9
  107. package/commands/hubdb/clear.js +21 -15
  108. package/commands/hubdb/create.d.ts +4 -9
  109. package/commands/hubdb/create.js +23 -17
  110. package/commands/hubdb/delete.d.ts +4 -9
  111. package/commands/hubdb/delete.js +24 -16
  112. package/commands/hubdb/fetch.d.ts +4 -9
  113. package/commands/hubdb/fetch.js +20 -14
  114. package/commands/hubdb.d.ts +3 -2
  115. package/commands/hubdb.js +24 -47
  116. package/commands/init.d.ts +3 -7
  117. package/commands/init.js +28 -23
  118. package/commands/lint.d.ts +6 -4
  119. package/commands/lint.js +44 -44
  120. package/commands/list.d.ts +3 -7
  121. package/commands/list.js +23 -16
  122. package/commands/logs.d.ts +10 -1
  123. package/commands/logs.js +53 -45
  124. package/commands/module/marketplace-validate.d.ts +6 -1
  125. package/commands/module/marketplace-validate.js +39 -28
  126. package/commands/module.d.ts +3 -1
  127. package/commands/module.js +22 -12
  128. package/commands/mv.d.ts +3 -7
  129. package/commands/mv.js +22 -15
  130. package/commands/open.d.ts +3 -7
  131. package/commands/open.js +22 -15
  132. package/commands/project/add.d.ts +3 -7
  133. package/commands/project/add.js +28 -23
  134. package/commands/project/cloneApp.d.ts +6 -8
  135. package/commands/project/cloneApp.js +49 -45
  136. package/commands/project/create.d.ts +10 -1
  137. package/commands/project/create.js +85 -63
  138. package/commands/project/deploy.d.ts +4 -6
  139. package/commands/project/deploy.js +66 -36
  140. package/commands/project/dev/deprecatedFlow.js +32 -25
  141. package/commands/project/dev/index.d.ts +4 -5
  142. package/commands/project/dev/index.js +70 -25
  143. package/commands/project/dev/unifiedFlow.d.ts +2 -1
  144. package/commands/project/dev/unifiedFlow.js +58 -27
  145. package/commands/project/download.d.ts +3 -7
  146. package/commands/project/download.js +18 -19
  147. package/commands/project/installDeps.d.ts +6 -1
  148. package/commands/project/installDeps.js +48 -32
  149. package/commands/project/listBuilds.d.ts +3 -7
  150. package/commands/project/listBuilds.js +32 -27
  151. package/commands/project/logs.d.ts +10 -1
  152. package/commands/project/logs.js +73 -65
  153. package/commands/project/migrate.d.ts +7 -0
  154. package/commands/project/migrate.js +71 -0
  155. package/commands/project/migrateApp.d.ts +3 -8
  156. package/commands/project/migrateApp.js +23 -20
  157. package/commands/project/open.d.ts +3 -7
  158. package/commands/project/open.js +29 -21
  159. package/commands/project/profile/add.d.ts +7 -0
  160. package/commands/project/profile/add.js +190 -0
  161. package/commands/project/profile/remove.d.ts +6 -0
  162. package/commands/project/profile/remove.js +119 -0
  163. package/commands/project/profile.d.ts +3 -0
  164. package/commands/project/profile.js +25 -0
  165. package/commands/project/upload.d.ts +10 -1
  166. package/commands/project/upload.js +110 -56
  167. package/commands/project/watch.d.ts +6 -1
  168. package/commands/project/watch.js +95 -61
  169. package/commands/project.d.ts +3 -1
  170. package/commands/project.js +49 -35
  171. package/commands/remove.d.ts +3 -7
  172. package/commands/remove.js +25 -15
  173. package/commands/sandbox/create.d.ts +4 -9
  174. package/commands/sandbox/create.js +27 -21
  175. package/commands/sandbox/delete.d.ts +4 -9
  176. package/commands/sandbox/delete.js +35 -29
  177. package/commands/sandbox.d.ts +3 -4
  178. package/commands/sandbox.js +20 -44
  179. package/commands/secret/addSecret.d.ts +4 -9
  180. package/commands/secret/addSecret.js +21 -15
  181. package/commands/secret/deleteSecret.d.ts +4 -9
  182. package/commands/secret/deleteSecret.js +28 -18
  183. package/commands/secret/listSecret.d.ts +4 -9
  184. package/commands/secret/listSecret.js +19 -13
  185. package/commands/secret/updateSecret.d.ts +4 -9
  186. package/commands/secret/updateSecret.js +25 -17
  187. package/commands/secret.d.ts +3 -4
  188. package/commands/secret.js +25 -49
  189. package/commands/theme/generate-selectors.d.ts +3 -7
  190. package/commands/theme/generate-selectors.js +18 -11
  191. package/commands/theme/marketplace-validate.d.ts +4 -9
  192. package/commands/theme/marketplace-validate.js +21 -15
  193. package/commands/theme/preview.d.ts +4 -9
  194. package/commands/theme/preview.js +31 -24
  195. package/commands/theme.d.ts +3 -4
  196. package/commands/theme.js +23 -47
  197. package/commands/upload.d.ts +12 -1
  198. package/commands/upload.js +118 -98
  199. package/commands/watch.d.ts +14 -1
  200. package/commands/watch.js +76 -66
  201. package/lang/en.d.ts +2932 -0
  202. package/lang/en.js +2796 -3318
  203. package/lang/en.lyaml +120 -58
  204. package/lib/accountTypes.d.ts +1 -0
  205. package/lib/accountTypes.js +12 -0
  206. package/lib/app/migrate.d.ts +33 -4
  207. package/lib/app/migrate.js +218 -93
  208. package/lib/app/migrate_legacy.d.ts +2 -2
  209. package/lib/app/migrate_legacy.js +15 -12
  210. package/lib/app/urls.d.ts +16 -0
  211. package/lib/app/urls.js +16 -0
  212. package/lib/buildAccount.d.ts +1 -2
  213. package/lib/buildAccount.js +11 -10
  214. package/lib/commonOpts.d.ts +3 -4
  215. package/lib/commonOpts.js +46 -18
  216. package/lib/configMigrate.d.ts +2 -0
  217. package/lib/configMigrate.js +118 -0
  218. package/lib/configOptions.d.ts +4 -0
  219. package/lib/configOptions.js +41 -45
  220. package/lib/constants.d.ts +10 -0
  221. package/lib/constants.js +11 -1
  222. package/lib/dependencyManagement.d.ts +0 -5
  223. package/lib/dependencyManagement.js +14 -40
  224. package/lib/doctor/Diagnosis.d.ts +1 -2
  225. package/lib/doctor/Diagnosis.js +19 -16
  226. package/lib/doctor/DiagnosticInfoBuilder.d.ts +2 -1
  227. package/lib/doctor/DiagnosticInfoBuilder.js +10 -9
  228. package/lib/doctor/Doctor.d.ts +1 -0
  229. package/lib/doctor/Doctor.js +59 -45
  230. package/lib/errorHandlers/index.js +6 -7
  231. package/lib/errorHandlers/suppressError.js +18 -26
  232. package/lib/filesystem.d.ts +1 -1
  233. package/lib/generateSelectors.js +1 -2
  234. package/lib/hasFeature.d.ts +3 -1
  235. package/lib/interpolation.d.ts +2 -3
  236. package/lib/lang.d.ts +2 -3
  237. package/lib/middleware/__test__/configMiddleware.test.d.ts +1 -0
  238. package/lib/middleware/__test__/configMiddleware.test.js +194 -0
  239. package/lib/middleware/__test__/gitMiddleware.test.d.ts +1 -0
  240. package/lib/middleware/__test__/gitMiddleware.test.js +76 -0
  241. package/lib/middleware/__test__/notificationsMiddleware.test.d.ts +1 -0
  242. package/lib/middleware/__test__/notificationsMiddleware.test.js +10 -0
  243. package/lib/middleware/__test__/requestMiddleware.test.d.ts +1 -0
  244. package/lib/middleware/__test__/requestMiddleware.test.js +20 -0
  245. package/lib/middleware/__test__/utils.test.d.ts +1 -0
  246. package/lib/middleware/__test__/utils.test.js +53 -0
  247. package/lib/middleware/__test__/yargsChecksMiddleware.test.d.ts +1 -0
  248. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +81 -0
  249. package/lib/middleware/autoUpdateMiddleware.d.ts +1 -0
  250. package/lib/middleware/autoUpdateMiddleware.js +89 -0
  251. package/lib/middleware/configMiddleware.d.ts +13 -0
  252. package/lib/middleware/configMiddleware.js +124 -0
  253. package/lib/middleware/fireAlarmMiddleware.d.ts +4 -0
  254. package/lib/middleware/fireAlarmMiddleware.js +123 -0
  255. package/lib/middleware/gitMiddleware.d.ts +2 -0
  256. package/lib/middleware/gitMiddleware.js +14 -0
  257. package/lib/middleware/notificationsMiddleware.d.ts +1 -0
  258. package/lib/middleware/notificationsMiddleware.js +38 -0
  259. package/lib/middleware/requestMiddleware.d.ts +1 -0
  260. package/lib/middleware/requestMiddleware.js +11 -0
  261. package/lib/middleware/utils.d.ts +8 -0
  262. package/lib/middleware/utils.js +17 -0
  263. package/lib/middleware/yargsChecksMiddleware.d.ts +4 -0
  264. package/lib/middleware/yargsChecksMiddleware.js +24 -0
  265. package/lib/npm.d.ts +9 -0
  266. package/lib/npm.js +36 -0
  267. package/lib/oauth.js +1 -2
  268. package/lib/process.js +1 -2
  269. package/lib/projectProfiles.d.ts +6 -0
  270. package/lib/projectProfiles.js +65 -0
  271. package/lib/projects/ProjectLogsManager.d.ts +1 -1
  272. package/lib/projects/ProjectLogsManager.js +16 -21
  273. package/lib/projects/buildAndDeploy.js +45 -41
  274. package/lib/projects/config.d.ts +9 -0
  275. package/lib/projects/config.js +79 -0
  276. package/lib/projects/create.js +5 -6
  277. package/lib/projects/ensureProjectExists.d.ts +11 -0
  278. package/lib/projects/ensureProjectExists.js +97 -0
  279. package/lib/projects/localDev/AppDevModeInterface.d.ts +26 -0
  280. package/lib/projects/localDev/AppDevModeInterface.js +156 -0
  281. package/lib/{DevServerManager.d.ts → projects/localDev/DevServerManager.d.ts} +1 -1
  282. package/lib/{DevServerManager.js → projects/localDev/DevServerManager.js} +6 -6
  283. package/lib/projects/localDev/DevServerManagerV2.d.ts +22 -0
  284. package/lib/{DevServerManagerV2.js → projects/localDev/DevServerManagerV2.js} +22 -19
  285. package/lib/projects/localDev/LocalDevLogger.d.ts +30 -0
  286. package/lib/projects/localDev/LocalDevLogger.js +158 -0
  287. package/lib/{LocalDevManager.d.ts → projects/localDev/LocalDevManager.d.ts} +1 -1
  288. package/lib/{LocalDevManager.js → projects/localDev/LocalDevManager.js} +57 -83
  289. package/lib/projects/localDev/LocalDevProcess.d.ts +27 -0
  290. package/lib/projects/localDev/LocalDevProcess.js +171 -0
  291. package/lib/projects/localDev/LocalDevState.d.ts +37 -0
  292. package/lib/projects/localDev/LocalDevState.js +78 -0
  293. package/lib/projects/localDev/LocalDevWatcher.d.ts +10 -0
  294. package/lib/projects/localDev/LocalDevWatcher.js +56 -0
  295. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +17 -0
  296. package/lib/projects/localDev/LocalDevWebsocketServer.js +92 -0
  297. package/lib/{localDev.d.ts → projects/localDev/helpers.d.ts} +5 -4
  298. package/lib/{localDev.js → projects/localDev/helpers.js} +98 -114
  299. package/lib/projects/ui.d.ts +1 -0
  300. package/lib/projects/ui.js +15 -0
  301. package/lib/projects/upload.d.ts +14 -2
  302. package/lib/projects/upload.js +19 -35
  303. package/lib/projects/urls.d.ts +1 -0
  304. package/lib/projects/urls.js +6 -0
  305. package/lib/projects/watch.d.ts +1 -1
  306. package/lib/projects/watch.js +21 -18
  307. package/lib/prompts/accountNamePrompt.js +16 -13
  308. package/lib/prompts/accountsPrompt.js +1 -2
  309. package/lib/prompts/cmsFieldPrompt.js +1 -2
  310. package/lib/prompts/createApiSamplePrompt.d.ts +2 -10
  311. package/lib/prompts/createApiSamplePrompt.js +4 -5
  312. package/lib/prompts/createFunctionPrompt.js +13 -14
  313. package/lib/prompts/createModulePrompt.js +8 -9
  314. package/lib/prompts/createProjectPrompt.d.ts +11 -4
  315. package/lib/prompts/createProjectPrompt.js +14 -9
  316. package/lib/prompts/createTemplatePrompt.d.ts +22 -4
  317. package/lib/prompts/createTemplatePrompt.js +1 -2
  318. package/lib/prompts/downloadProjectPrompt.js +3 -4
  319. package/lib/prompts/installAppPrompt.d.ts +1 -0
  320. package/lib/prompts/installAppPrompt.js +35 -0
  321. package/lib/prompts/personalAccessKeyPrompt.js +17 -18
  322. package/lib/prompts/previewPrompt.js +5 -6
  323. package/lib/prompts/projectAddPrompt.js +4 -5
  324. package/lib/prompts/projectDevTargetAccountPrompt.js +18 -12
  325. package/lib/prompts/projectNamePrompt.js +5 -6
  326. package/lib/prompts/projectsLogsPrompt.js +3 -2
  327. package/lib/prompts/promptUtils.d.ts +3 -2
  328. package/lib/prompts/promptUtils.js +2 -1
  329. package/lib/prompts/sandboxesPrompt.js +5 -6
  330. package/lib/prompts/secretPrompt.js +2 -3
  331. package/lib/prompts/selectHubDBTablePrompt.js +11 -8
  332. package/lib/prompts/selectPublicAppPrompt.js +6 -7
  333. package/lib/prompts/setAsDefaultAccountPrompt.js +1 -2
  334. package/lib/prompts/uploadPrompt.js +4 -5
  335. package/lib/sandboxSync.js +15 -14
  336. package/lib/sandboxes.js +12 -13
  337. package/lib/serverlessLogs.js +4 -6
  338. package/lib/testUtils.d.ts +3 -3
  339. package/lib/testUtils.js +8 -9
  340. package/lib/ui/SpinniesManager.d.ts +1 -1
  341. package/lib/ui/boxen.d.ts +5 -0
  342. package/lib/ui/boxen.js +30 -0
  343. package/lib/ui/git.js +8 -9
  344. package/lib/ui/index.d.ts +4 -2
  345. package/lib/ui/index.js +20 -17
  346. package/lib/ui/logger.d.ts +10 -0
  347. package/lib/ui/logger.js +15 -0
  348. package/lib/ui/serverlessFunctionLogs.js +2 -3
  349. package/lib/ui/spinniesUtils.d.ts +5 -5
  350. package/lib/upload.d.ts +1 -1
  351. package/lib/validation.js +4 -5
  352. package/lib/yargsUtils.d.ts +5 -1
  353. package/lib/yargsUtils.js +6 -0
  354. package/package.json +10 -6
  355. package/types/Cms.d.ts +30 -0
  356. package/types/Cms.js +2 -0
  357. package/types/LocalDev.d.ts +24 -0
  358. package/types/LocalDev.js +2 -0
  359. package/types/Yargs.d.ts +12 -11
  360. package/lib/DevServerManagerV2.d.ts +0 -33
  361. package/lib/LocalDevManagerV2.d.ts +0 -64
  362. package/lib/LocalDevManagerV2.js +0 -377
  363. package/lib/projects/index.d.ts +0 -20
  364. package/lib/projects/index.js +0 -194
  365. package/lib/prompts/installPublicAppPrompt.d.ts +0 -1
  366. package/lib/prompts/installPublicAppPrompt.js +0 -40
@@ -17,7 +17,6 @@ const index_2 = require("./errorHandlers/index");
17
17
  const sandboxes_2 = require("./sandboxes");
18
18
  const ui_1 = require("./ui");
19
19
  const accountTypes_1 = require("./accountTypes");
20
- const i18nKey = 'lib.sandbox.sync';
21
20
  async function syncSandbox(accountConfig, parentAccountConfig, env, syncTasks, slimInfoMessage = false) {
22
21
  const id = (0, getAccountIdentifier_1.getAccountIdentifier)(accountConfig);
23
22
  const accountId = (0, config_1.getAccountId)(id);
@@ -25,7 +24,7 @@ async function syncSandbox(accountConfig, parentAccountConfig, env, syncTasks, s
25
24
  const parentAccountId = (0, config_1.getAccountId)(parentId);
26
25
  const isDevSandbox = (0, accountTypes_1.isDevelopmentSandbox)(accountConfig);
27
26
  if (!accountId || !parentAccountId) {
28
- throw new Error((0, lang_1.i18n)(`${i18nKey}.failure.invalidUser`, {
27
+ throw new Error((0, lang_1.i18n)(`lib.sandbox.sync.failure.invalidUser`, {
29
28
  accountName: accountId
30
29
  ? (0, ui_1.uiAccountDescription)(accountId)
31
30
  : id.toString(),
@@ -48,23 +47,25 @@ async function syncSandbox(accountConfig, parentAccountConfig, env, syncTasks, s
48
47
  availableSyncTasks = await (0, sandboxes_1.getAvailableSyncTypes)(parentAccountConfig, accountConfig);
49
48
  }
50
49
  SpinniesManager_1.default.add('sandboxSync', {
51
- text: (0, lang_1.i18n)(`${i18nKey}.loading.startSync`),
50
+ text: (0, lang_1.i18n)(`lib.sandbox.sync.loading.startSync`),
52
51
  });
53
52
  await (0, sandboxSync_1.initiateSync)(parentAccountId, accountId, availableSyncTasks, accountId);
54
53
  const spinniesText = isDevSandbox
55
- ? `${i18nKey}.loading.succeedDevSb`
56
- : `${i18nKey}.loading.succeed`;
54
+ ? `lib.sandbox.sync.loading.succeedDevSb`
55
+ : `lib.sandbox.sync.loading.succeed`;
57
56
  SpinniesManager_1.default.succeed('sandboxSync', {
58
- text: (0, lang_1.i18n)(slimInfoMessage ? `${i18nKey}.loading.successDevSbInfo` : spinniesText, {
57
+ text: (0, lang_1.i18n)(slimInfoMessage
58
+ ? `lib.sandbox.sync.loading.successDevSbInfo`
59
+ : spinniesText, {
59
60
  accountName: (0, ui_1.uiAccountDescription)(accountId),
60
- url: (0, ui_1.uiLink)((0, lang_1.i18n)(`${i18nKey}.info.syncStatusDetailsLinkText`), syncStatusUrl),
61
+ url: (0, ui_1.uiLink)((0, lang_1.i18n)(`lib.sandbox.sync.info.syncStatusDetailsLinkText`), syncStatusUrl),
61
62
  }),
62
63
  });
63
64
  }
64
65
  catch (err) {
65
66
  (0, index_2.debugError)(err);
66
67
  SpinniesManager_1.default.fail('sandboxSync', {
67
- text: (0, lang_1.i18n)(`${i18nKey}.loading.fail`),
68
+ text: (0, lang_1.i18n)(`lib.sandbox.sync.loading.fail`),
68
69
  });
69
70
  logger_1.logger.log('');
70
71
  if ((0, index_1.isSpecifiedError)(err, {
@@ -72,7 +73,7 @@ async function syncSandbox(accountConfig, parentAccountConfig, env, syncTasks, s
72
73
  category: 'BANNED',
73
74
  subCategory: 'sandboxes-sync-api.SYNC_NOT_ALLOWED_INVALID_USER',
74
75
  })) {
75
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.invalidUser`, {
76
+ logger_1.logger.error((0, lang_1.i18n)(`lib.sandbox.sync.failure.invalidUser`, {
76
77
  accountName: (0, ui_1.uiAccountDescription)(accountId),
77
78
  parentAccountName: (0, ui_1.uiAccountDescription)(parentAccountId),
78
79
  }));
@@ -82,7 +83,7 @@ async function syncSandbox(accountConfig, parentAccountConfig, env, syncTasks, s
82
83
  category: 'RATE_LIMITS',
83
84
  subCategory: 'sandboxes-sync-api.SYNC_IN_PROGRESS',
84
85
  })) {
85
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.syncInProgress`, {
86
+ logger_1.logger.error((0, lang_1.i18n)(`lib.sandbox.sync.failure.syncInProgress`, {
86
87
  url: `${baseUrl}/sandboxes-developer/${parentAccountId}/syncactivitylog`,
87
88
  }));
88
89
  }
@@ -92,7 +93,7 @@ async function syncSandbox(accountConfig, parentAccountConfig, env, syncTasks, s
92
93
  subCategory: 'sandboxes-sync-api.SYNC_NOT_ALLOWED_INVALID_USERID',
93
94
  })) {
94
95
  // This will only trigger if a user is not a super admin of the target account.
95
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.notSuperAdmin`, {
96
+ logger_1.logger.error((0, lang_1.i18n)(`lib.sandbox.sync.failure.notSuperAdmin`, {
96
97
  account: (0, ui_1.uiAccountDescription)(accountId),
97
98
  }));
98
99
  }
@@ -101,7 +102,7 @@ async function syncSandbox(accountConfig, parentAccountConfig, env, syncTasks, s
101
102
  category: 'OBJECT_NOT_FOUND',
102
103
  subCategory: 'SandboxErrors.SANDBOX_NOT_FOUND',
103
104
  })) {
104
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.objectNotFound`, {
105
+ logger_1.logger.error((0, lang_1.i18n)(`lib.sandbox.sync.failure.objectNotFound`, {
105
106
  account: (0, ui_1.uiAccountDescription)(accountId),
106
107
  }));
107
108
  }
@@ -122,8 +123,8 @@ async function syncSandbox(accountConfig, parentAccountConfig, env, syncTasks, s
122
123
  if (!slimInfoMessage) {
123
124
  logger_1.logger.log();
124
125
  (0, ui_1.uiLine)();
125
- logger_1.logger.info((0, lang_1.i18n)(`${i18nKey}.info.${isDevSandbox ? 'syncMessageDevSb' : 'syncMessage'}`, {
126
- url: (0, ui_1.uiLink)((0, lang_1.i18n)(`${i18nKey}.info.syncStatusDetailsLinkText`), syncStatusUrl),
126
+ logger_1.logger.info((0, lang_1.i18n)(`lib.sandbox.sync.info.${isDevSandbox ? 'syncMessageDevSb' : 'syncMessage'}`, {
127
+ url: (0, ui_1.uiLink)((0, lang_1.i18n)(`lib.sandbox.sync.info.syncStatusDetailsLinkText`), syncStatusUrl),
127
128
  }));
128
129
  (0, ui_1.uiLine)();
129
130
  logger_1.logger.log();
package/lib/sandboxes.js CHANGED
@@ -17,7 +17,6 @@ const index_1 = require("@hubspot/local-dev-lib/errors/index");
17
17
  const lang_1 = require("./lang");
18
18
  const ui_1 = require("./ui");
19
19
  const index_2 = require("./errorHandlers/index");
20
- const i18nKey = 'lib.sandbox';
21
20
  exports.SYNC_TYPES = {
22
21
  OBJECT_RECORDS: 'object-records',
23
22
  };
@@ -59,11 +58,11 @@ async function getAvailableSyncTypes(parentAccountConfig, config) {
59
58
  const id = (0, getAccountIdentifier_1.getAccountIdentifier)(config);
60
59
  const portalId = (0, config_1.getAccountId)(id);
61
60
  if (!parentPortalId || !portalId) {
62
- throw new Error((0, lang_1.i18n)(`${i18nKey}.sync.failure.syncTypeFetch`));
61
+ throw new Error((0, lang_1.i18n)(`lib.sandbox.sync.failure.syncTypeFetch`));
63
62
  }
64
63
  const { data: { results: syncTypes }, } = await (0, sandboxSync_1.fetchTypes)(parentPortalId, portalId);
65
64
  if (!syncTypes) {
66
- throw new Error((0, lang_1.i18n)(`${i18nKey}.sync.failure.syncTypeFetch`));
65
+ throw new Error((0, lang_1.i18n)(`lib.sandbox.sync.failure.syncTypeFetch`));
67
66
  }
68
67
  return syncTypes.map(t => ({ type: t.name }));
69
68
  }
@@ -71,11 +70,11 @@ async function validateSandboxUsageLimits(accountConfig, sandboxType, env) {
71
70
  const id = (0, getAccountIdentifier_1.getAccountIdentifier)(accountConfig);
72
71
  const accountId = (0, config_1.getAccountId)(id);
73
72
  if (!accountId) {
74
- throw new Error((0, lang_1.i18n)(`${i18nKey}.create.failure.usageLimitFetch`));
73
+ throw new Error((0, lang_1.i18n)(`lib.sandbox.create.failure.usageLimitFetch`));
75
74
  }
76
75
  const { data: { usage }, } = await (0, sandboxHubs_1.getSandboxUsageLimits)(accountId);
77
76
  if (!usage) {
78
- throw new Error((0, lang_1.i18n)(`${i18nKey}.create.failure.usageLimitFetch`));
77
+ throw new Error((0, lang_1.i18n)(`lib.sandbox.create.failure.usageLimitFetch`));
79
78
  }
80
79
  if (sandboxType === config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX) {
81
80
  if (usage['DEVELOPER'].available === 0) {
@@ -83,14 +82,14 @@ async function validateSandboxUsageLimits(accountConfig, sandboxType, env) {
83
82
  const plural = devSandboxLimit !== 1;
84
83
  const hasDevelopmentSandboxes = getHasSandboxesByType(accountConfig, config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX);
85
84
  if (hasDevelopmentSandboxes) {
86
- throw new Error((0, lang_1.i18n)(`${i18nKey}.create.failure.alreadyInConfig.developer.${plural ? 'other' : 'one'}`, {
85
+ throw new Error((0, lang_1.i18n)(`lib.sandbox.create.failure.alreadyInConfig.developer.${plural ? 'other' : 'one'}`, {
87
86
  accountName: accountConfig.name || accountId,
88
87
  limit: devSandboxLimit,
89
88
  }));
90
89
  }
91
90
  else {
92
91
  const baseUrl = (0, urls_1.getHubSpotWebsiteOrigin)(env);
93
- throw new Error((0, lang_1.i18n)(`${i18nKey}.create.failure.limit.developer.${plural ? 'other' : 'one'}`, {
92
+ throw new Error((0, lang_1.i18n)(`lib.sandbox.create.failure.limit.developer.${plural ? 'other' : 'one'}`, {
94
93
  accountName: accountConfig.name || accountId,
95
94
  limit: devSandboxLimit,
96
95
  link: `${baseUrl}/sandboxes-developer/${accountId}/development`,
@@ -104,14 +103,14 @@ async function validateSandboxUsageLimits(accountConfig, sandboxType, env) {
104
103
  const plural = standardSandboxLimit !== 1;
105
104
  const hasStandardSandboxes = getHasSandboxesByType(accountConfig, config_2.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX);
106
105
  if (hasStandardSandboxes) {
107
- throw new Error((0, lang_1.i18n)(`${i18nKey}.create.failure.alreadyInConfig.standard.${plural ? 'other' : 'one'}`, {
106
+ throw new Error((0, lang_1.i18n)(`lib.sandbox.create.failure.alreadyInConfig.standard.${plural ? 'other' : 'one'}`, {
108
107
  accountName: accountConfig.name || accountId,
109
108
  limit: standardSandboxLimit,
110
109
  }));
111
110
  }
112
111
  else {
113
112
  const baseUrl = (0, urls_1.getHubSpotWebsiteOrigin)(env);
114
- throw new Error((0, lang_1.i18n)(`${i18nKey}.create.failure.limit.standard.${plural ? 'other' : 'one'}`, {
113
+ throw new Error((0, lang_1.i18n)(`lib.sandbox.create.failure.limit.standard.${plural ? 'other' : 'one'}`, {
115
114
  accountName: accountConfig.name || accountId,
116
115
  limit: standardSandboxLimit,
117
116
  link: `${baseUrl}/sandboxes-developer/${accountId}/standard`,
@@ -122,12 +121,12 @@ async function validateSandboxUsageLimits(accountConfig, sandboxType, env) {
122
121
  }
123
122
  function handleSandboxCreateError(err, env, name, accountId) {
124
123
  if ((0, index_1.isMissingScopeError)(err)) {
125
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.create.failure.scopes.message`, {
124
+ logger_1.logger.error((0, lang_1.i18n)(`lib.sandbox.create.failure.scopes.message`, {
126
125
  accountName: (0, ui_1.uiAccountDescription)(accountId),
127
126
  }));
128
127
  const websiteOrigin = (0, urls_1.getHubSpotWebsiteOrigin)(env);
129
128
  const url = `${websiteOrigin}/personal-access-key/${accountId}`;
130
- logger_1.logger.info((0, lang_1.i18n)(`${i18nKey}.create.failure.scopes.instructions`, {
129
+ logger_1.logger.info((0, lang_1.i18n)(`lib.sandbox.create.failure.scopes.instructions`, {
131
130
  accountName: (0, ui_1.uiAccountDescription)(accountId),
132
131
  url,
133
132
  }));
@@ -138,7 +137,7 @@ function handleSandboxCreateError(err, env, name, accountId) {
138
137
  subCategory: 'SandboxErrors.USER_ACCESS_NOT_ALLOWED',
139
138
  })) {
140
139
  logger_1.logger.log('');
141
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.create.failure.invalidUser`, {
140
+ logger_1.logger.error((0, lang_1.i18n)(`lib.sandbox.create.failure.invalidUser`, {
142
141
  accountName: name,
143
142
  parentAccountName: (0, ui_1.uiAccountDescription)(accountId),
144
143
  }));
@@ -150,7 +149,7 @@ function handleSandboxCreateError(err, env, name, accountId) {
150
149
  subCategory: 'SandboxErrors.DEVELOPMENT_SANDBOX_ACCESS_NOT_ALLOWED',
151
150
  })) {
152
151
  logger_1.logger.log('');
153
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.create.failure.403Gating`, {
152
+ logger_1.logger.error((0, lang_1.i18n)(`lib.sandbox.create.failure.403Gating`, {
154
153
  accountName: name,
155
154
  parentAccountName: (0, ui_1.uiAccountDescription)(accountId),
156
155
  accountId,
@@ -44,8 +44,6 @@ async function verifyAccessKeyAndUserAccess(accountId, scopeGroup) {
44
44
  if (!accountConfig) {
45
45
  return;
46
46
  }
47
- // TODO[JOE]: Update this i18n key
48
- const i18nKey = 'lib.serverless';
49
47
  const { authType } = accountConfig;
50
48
  if (authType !== auth_1.PERSONAL_ACCESS_KEY_AUTH_METHOD.value) {
51
49
  return;
@@ -56,7 +54,7 @@ async function verifyAccessKeyAndUserAccess(accountId, scopeGroup) {
56
54
  scopesData = resp.data;
57
55
  }
58
56
  catch (e) {
59
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.verifyAccessKeyAndUserAccess.fetchScopeDataError`, {
57
+ logger_1.logger.debug((0, lang_1.i18n)(`lib.serverless.verifyAccessKeyAndUserAccess.fetchScopeDataError`, {
60
58
  scopeGroup,
61
59
  }));
62
60
  logger_1.logger.debug(e);
@@ -64,14 +62,14 @@ async function verifyAccessKeyAndUserAccess(accountId, scopeGroup) {
64
62
  }
65
63
  const { portalScopesInGroup, userScopesInGroup } = scopesData;
66
64
  if (!portalScopesInGroup.length) {
67
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.verifyAccessKeyAndUserAccess.portalMissingScope`));
65
+ logger_1.logger.error((0, lang_1.i18n)(`lib.serverless.verifyAccessKeyAndUserAccess.portalMissingScope`));
68
66
  return;
69
67
  }
70
68
  if (!portalScopesInGroup.every(s => userScopesInGroup.includes(s))) {
71
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.verifyAccessKeyAndUserAccess.userMissingScope`));
69
+ logger_1.logger.error((0, lang_1.i18n)(`lib.serverless.verifyAccessKeyAndUserAccess.userMissingScope`));
72
70
  }
73
71
  else {
74
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.verifyAccessKeyAndUserAccess.genericMissingScope`));
72
+ logger_1.logger.error((0, lang_1.i18n)(`lib.serverless.verifyAccessKeyAndUserAccess.genericMissingScope`));
75
73
  }
76
74
  }
77
75
  async function tailLogs(accountId, name, fetchLatest, tailCall, compact = false) {
@@ -1,4 +1,4 @@
1
- import { AxiosResponse } from 'axios';
1
+ import { HubSpotPromise } from '@hubspot/local-dev-lib/types/Http';
2
2
  import { HubSpotHttpError } from '@hubspot/local-dev-lib/models/HubSpotHttpError';
3
3
  type MockErrorResponse = {
4
4
  status: number;
@@ -9,6 +9,6 @@ type MockErrorResponse = {
9
9
  subCategory?: string;
10
10
  };
11
11
  };
12
- export declare const mockHubSpotHttpResponse: (data: any) => AxiosResponse;
13
- export declare const mockHubSpotHttpError: (message: string, response: MockErrorResponse) => HubSpotHttpError;
12
+ export declare function mockHubSpotHttpResponse<T>(data?: any): HubSpotPromise<T>;
13
+ export declare function mockHubSpotHttpError(message: string, response: MockErrorResponse): HubSpotHttpError;
14
14
  export {};
package/lib/testUtils.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mockHubSpotHttpError = exports.mockHubSpotHttpResponse = void 0;
3
+ exports.mockHubSpotHttpResponse = mockHubSpotHttpResponse;
4
+ exports.mockHubSpotHttpError = mockHubSpotHttpError;
4
5
  const axios_1 = require("axios");
5
6
  const HubSpotHttpError_1 = require("@hubspot/local-dev-lib/models/HubSpotHttpError");
6
7
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- const mockHubSpotHttpResponse = (data) => {
8
- return {
8
+ function mockHubSpotHttpResponse(data) {
9
+ return Promise.resolve({
9
10
  data,
10
11
  status: 200,
11
12
  statusText: 'OK',
@@ -13,12 +14,10 @@ const mockHubSpotHttpResponse = (data) => {
13
14
  config: {
14
15
  headers: new axios_1.AxiosHeaders(),
15
16
  },
16
- };
17
- };
18
- exports.mockHubSpotHttpResponse = mockHubSpotHttpResponse;
19
- const mockHubSpotHttpError = (message, response) => {
17
+ });
18
+ }
19
+ function mockHubSpotHttpError(message, response) {
20
20
  return new HubSpotHttpError_1.HubSpotHttpError(message, {
21
21
  cause: { isAxiosError: true, response },
22
22
  });
23
- };
24
- exports.mockHubSpotHttpError = mockHubSpotHttpError;
23
+ }
@@ -22,7 +22,7 @@ declare class SpinniesManager {
22
22
  succeed(name: string, options?: Partial<SpinnerState>): SpinnerState;
23
23
  fail(name: string, options?: Partial<SpinnerState>): SpinnerState;
24
24
  remove(name: string): SpinnerState;
25
- stopAll(newStatus?: typeof VALID_STATUSES[number]): {
25
+ stopAll(newStatus?: (typeof VALID_STATUSES)[number]): {
26
26
  [key: string]: SpinnerState;
27
27
  };
28
28
  private hasAnySpinners;
@@ -0,0 +1,5 @@
1
+ import { Options } from 'boxen';
2
+ export declare function logInBox({ contents, options, }: {
3
+ contents: string;
4
+ options?: Options;
5
+ }): Promise<void>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logInBox = logInBox;
4
+ const logger_1 = require("./logger");
5
+ const index_1 = require("./index");
6
+ const logger_2 = require("@hubspot/local-dev-lib/logger");
7
+ const en_1 = require("../../lang/en");
8
+ const defaultOptions = {
9
+ titleAlignment: 'left',
10
+ borderColor: index_1.UI_COLORS.MARIGOLD,
11
+ margin: 1,
12
+ padding: 1,
13
+ textAlignment: 'left',
14
+ borderStyle: 'round',
15
+ };
16
+ async function logInBox({ contents, options, }) {
17
+ try {
18
+ const boxen = (await import('boxen')).default;
19
+ logger_1.uiLogger.log(boxen(contents, { ...defaultOptions, ...options }));
20
+ return;
21
+ }
22
+ catch (error) {
23
+ logger_2.logger.debug(en_1.lib.boxen.failedToLoad);
24
+ if (options?.title) {
25
+ logger_1.uiLogger.log(options.title);
26
+ logger_1.uiLogger.log('');
27
+ }
28
+ logger_1.uiLogger.log(contents);
29
+ }
30
+ }
package/lib/ui/git.js CHANGED
@@ -8,22 +8,21 @@ const os_1 = __importDefault(require("os"));
8
8
  const gitignore_1 = require("@hubspot/local-dev-lib/gitignore");
9
9
  const logger_1 = require("@hubspot/local-dev-lib/logger");
10
10
  const lang_1 = require("../lang");
11
- const i18nKey = 'lib.ui.git';
12
11
  function checkAndWarnGitInclusion(configPath) {
13
12
  try {
14
13
  const { inGit, configIgnored } = (0, gitignore_1.checkGitInclusion)(configPath);
15
14
  if (!inGit || configIgnored)
16
15
  return;
17
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.securityIssue`));
18
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.configFileTracked`));
19
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.fileName`, { configPath }));
20
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.remediate`));
21
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.moveConfig`, { homeDir: os_1.default.homedir() }));
22
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.addGitignore`, { configPath }));
23
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.noRemote`));
16
+ logger_1.logger.warn((0, lang_1.i18n)(`lib.ui.git.securityIssue`));
17
+ logger_1.logger.warn((0, lang_1.i18n)(`lib.ui.git.configFileTracked`));
18
+ logger_1.logger.warn((0, lang_1.i18n)(`lib.ui.git.fileName`, { configPath }));
19
+ logger_1.logger.warn((0, lang_1.i18n)(`lib.ui.git.remediate`));
20
+ logger_1.logger.warn((0, lang_1.i18n)(`lib.ui.git.moveConfig`, { homeDir: os_1.default.homedir() }));
21
+ logger_1.logger.warn((0, lang_1.i18n)(`lib.ui.git.addGitignore`, { configPath }));
22
+ logger_1.logger.warn((0, lang_1.i18n)(`lib.ui.git.noRemote`));
24
23
  }
25
24
  catch (e) {
26
25
  // fail silently
27
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.checkFailed`));
26
+ logger_1.logger.debug((0, lang_1.i18n)(`lib.ui.git.checkFailed`));
28
27
  }
29
28
  }
package/lib/ui/index.d.ts CHANGED
@@ -11,7 +11,9 @@ export declare function uiCommandReference(command: string, withQuotes?: boolean
11
11
  export declare function uiFeatureHighlight(features: string[], title?: string): void;
12
12
  export declare function uiBetaTag(message: string, log?: true): undefined;
13
13
  export declare function uiBetaTag(message: string, log: false): string;
14
- export declare function uiDeprecatedTag(message: string, log?: boolean): string | undefined;
14
+ export declare function uiDeprecatedTag(message: string, log?: true): undefined;
15
+ export declare function uiDeprecatedTag(message: string, log: false): string;
15
16
  export declare function uiCommandDisabledBanner(command: string, url?: string, message?: string): void;
16
- export declare function uiDeprecatedDescription(message: string, command: string, url?: string): string | undefined;
17
+ export declare function uiDeprecatedDescription(message: string, command: string, url?: string): undefined;
17
18
  export declare function uiDeprecatedMessage(command: string, url?: string, message?: string): void;
19
+ export declare function indent(level: number): string;
package/lib/ui/index.js CHANGED
@@ -15,6 +15,7 @@ exports.uiDeprecatedTag = uiDeprecatedTag;
15
15
  exports.uiCommandDisabledBanner = uiCommandDisabledBanner;
16
16
  exports.uiDeprecatedDescription = uiDeprecatedDescription;
17
17
  exports.uiDeprecatedMessage = uiDeprecatedMessage;
18
+ exports.indent = indent;
18
19
  const chalk_1 = __importDefault(require("chalk"));
19
20
  const config_1 = require("@hubspot/local-dev-lib/config");
20
21
  const logger_1 = require("@hubspot/local-dev-lib/logger");
@@ -60,7 +61,10 @@ function uiAccountDescription(accountId, bold = true) {
60
61
  if (account && account.accountType) {
61
62
  message = `${account.name} [${HUBSPOT_ACCOUNT_TYPE_STRINGS[account.accountType]}] (${accountId})`;
62
63
  }
63
- return bold ? chalk_1.default.bold(message) : message || '';
64
+ else {
65
+ message = accountId ? accountId.toString() : '';
66
+ }
67
+ return bold ? chalk_1.default.bold(message) : message;
64
68
  }
65
69
  function uiInfoSection(title, logContent) {
66
70
  uiLine();
@@ -78,10 +82,9 @@ function uiCommandReference(command, withQuotes = true) {
78
82
  : commandReference);
79
83
  }
80
84
  function uiFeatureHighlight(features, title) {
81
- const i18nKey = 'lib.ui.featureHighlight';
82
- uiInfoSection(title ? title : (0, lang_1.i18n)(`${i18nKey}.defaultTitle`), () => {
85
+ uiInfoSection(title ? title : (0, lang_1.i18n)(`lib.ui.featureHighlight.defaultTitle`), () => {
83
86
  features.forEach((c, i) => {
84
- const featureKey = `${i18nKey}.featureKeys.${c}`;
87
+ const featureKey = `lib.ui.featureHighlight.featureKeys.${c}`;
85
88
  const message = (0, lang_1.i18n)(`${featureKey}.message`, {
86
89
  command: uiCommandReference((0, lang_1.i18n)(`${featureKey}.command`)),
87
90
  link: uiLink((0, lang_1.i18n)(`${featureKey}.linkText`), (0, lang_1.i18n)(`${featureKey}.url`)),
@@ -94,9 +97,8 @@ function uiFeatureHighlight(features, title) {
94
97
  });
95
98
  }
96
99
  function uiBetaTag(message, log = true) {
97
- const i18nKey = 'lib.ui';
98
100
  const terminalUISupport = getTerminalUISupport();
99
- const tag = (0, lang_1.i18n)(`${i18nKey}.betaTag`);
101
+ const tag = (0, lang_1.i18n)(`lib.ui.betaTag`);
100
102
  const result = `${terminalUISupport.color ? chalk_1.default.hex(exports.UI_COLORS.SORBET)(tag) : tag} ${message}`;
101
103
  if (log) {
102
104
  logger_1.logger.log(result);
@@ -105,21 +107,20 @@ function uiBetaTag(message, log = true) {
105
107
  return result;
106
108
  }
107
109
  function uiDeprecatedTag(message, log = true) {
108
- const i18nKey = 'lib.ui';
109
110
  const terminalUISupport = getTerminalUISupport();
110
- const tag = (0, lang_1.i18n)(`${i18nKey}.deprecatedTag`);
111
+ const tag = (0, lang_1.i18n)(`lib.ui.deprecatedTag`);
111
112
  const result = `${terminalUISupport.color ? chalk_1.default.yellow(tag) : tag} ${message}`;
112
113
  if (log) {
113
114
  logger_1.logger.log(result);
115
+ return;
114
116
  }
115
117
  return result;
116
118
  }
117
119
  function uiCommandDisabledBanner(command, url, message) {
118
- const i18nKey = 'lib.ui';
119
120
  const tag = message ||
120
- (0, lang_1.i18n)(`${i18nKey}.disabledMessage`, {
121
+ (0, lang_1.i18n)(`lib.ui.disabledMessage`, {
121
122
  command: uiCommandReference(command),
122
- url: url ? uiLink((0, lang_1.i18n)(`${i18nKey}.disabledUrlText`), url) : '',
123
+ url: url ? uiLink((0, lang_1.i18n)(`lib.ui.disabledUrlText`), url) : '',
123
124
  npmCommand: uiCommandReference('npm i -g @hubspot/cli@latest'),
124
125
  });
125
126
  logger_1.logger.log();
@@ -129,22 +130,24 @@ function uiCommandDisabledBanner(command, url, message) {
129
130
  logger_1.logger.log();
130
131
  }
131
132
  function uiDeprecatedDescription(message, command, url) {
132
- const i18nKey = 'lib.ui';
133
- const tag = (0, lang_1.i18n)(`${i18nKey}.deprecatedDescription`, {
133
+ const tag = (0, lang_1.i18n)(`lib.ui.deprecatedDescription`, {
134
134
  message,
135
135
  command: uiCommandReference(command),
136
- url: url ? uiLink((0, lang_1.i18n)(`${i18nKey}.deprecatedUrlText`), url) : '',
136
+ url: url ? uiLink((0, lang_1.i18n)(`lib.ui.deprecatedUrlText`), url) : '',
137
137
  });
138
138
  return uiDeprecatedTag(tag);
139
139
  }
140
140
  function uiDeprecatedMessage(command, url, message) {
141
- const i18nKey = 'lib.ui';
142
141
  const tag = message ||
143
- (0, lang_1.i18n)(`${i18nKey}.deprecatedMessage`, {
142
+ (0, lang_1.i18n)(`lib.ui.deprecatedMessage`, {
144
143
  command: uiCommandReference(command),
145
- url: url ? uiLink((0, lang_1.i18n)(`${i18nKey}.deprecatedUrlText`), url) : '',
144
+ url: url ? uiLink((0, lang_1.i18n)(`lib.ui.deprecatedUrlText`), url) : '',
146
145
  });
147
146
  logger_1.logger.log();
148
147
  uiDeprecatedTag(tag);
149
148
  logger_1.logger.log();
150
149
  }
150
+ function indent(level) {
151
+ const indentation = ' ';
152
+ return indentation.repeat(level);
153
+ }
@@ -0,0 +1,10 @@
1
+ export declare const uiLogger: {
2
+ log: (message: string) => void;
3
+ error: (message: string) => void;
4
+ warn: (message: string) => void;
5
+ success: (message: string) => void;
6
+ info: (message: string) => void;
7
+ debug: (...args: any[]) => void;
8
+ group: (message: string) => void;
9
+ groupEnd: () => void;
10
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uiLogger = void 0;
4
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
5
+ // Wrapper around LDL logger to provide type checking
6
+ exports.uiLogger = {
7
+ log: (message) => logger_1.logger.log(message),
8
+ error: (message) => logger_1.logger.error(message),
9
+ warn: (message) => logger_1.logger.warn(message),
10
+ success: (message) => logger_1.logger.success(message),
11
+ info: (message) => logger_1.logger.info(message),
12
+ debug: logger_1.logger.debug,
13
+ group: (message) => logger_1.logger.group(message),
14
+ groupEnd: () => logger_1.logger.groupEnd(),
15
+ };
@@ -8,7 +8,6 @@ const moment_1 = __importDefault(require("moment"));
8
8
  const chalk_1 = __importDefault(require("chalk"));
9
9
  const logger_1 = require("@hubspot/local-dev-lib/logger");
10
10
  const lang_1 = require("../lang");
11
- const i18nKey = 'lib.ui.serverlessFunctionLogs';
12
11
  const SEPARATOR = ' - ';
13
12
  const LOG_STATUS_COLORS = {
14
13
  SUCCESS: logger_1.Styles.success,
@@ -63,7 +62,7 @@ function processLog(log, options) {
63
62
  return logHandler[log.status](log, options);
64
63
  }
65
64
  catch (e) {
66
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.unableToProcessLog`, {
65
+ logger_1.logger.error((0, lang_1.i18n)(`lib.ui.serverlessFunctionLogs.unableToProcessLog`, {
67
66
  log: JSON.stringify(log),
68
67
  }));
69
68
  }
@@ -77,7 +76,7 @@ function isLogsResponse(logsResp) {
77
76
  function processLogs(logsResp, options) {
78
77
  const isLogsResp = isLogsResponse(logsResp);
79
78
  if (!logsResp || (isLogsResp && logsResp.results.length === 0)) {
80
- return (0, lang_1.i18n)(`${i18nKey}.noLogsFound`);
79
+ return (0, lang_1.i18n)(`lib.ui.serverlessFunctionLogs.noLogsFound`);
81
80
  }
82
81
  else if (isLogsResp) {
83
82
  return logsResp
@@ -6,14 +6,14 @@ export type Spinner = {
6
6
  };
7
7
  export type SpinnerOptions = {
8
8
  text?: string;
9
- status?: typeof VALID_STATUSES[number];
9
+ status?: (typeof VALID_STATUSES)[number];
10
10
  indent?: number;
11
11
  spinner?: Partial<Spinner>;
12
12
  disableSpins?: boolean;
13
- color?: typeof VALID_COLORS[number];
14
- spinnerColor?: typeof VALID_COLORS[number];
15
- succeedColor?: typeof VALID_COLORS[number];
16
- failColor?: typeof VALID_COLORS[number];
13
+ color?: (typeof VALID_COLORS)[number];
14
+ spinnerColor?: (typeof VALID_COLORS)[number];
15
+ succeedColor?: (typeof VALID_COLORS)[number];
16
+ failColor?: (typeof VALID_COLORS)[number];
17
17
  succeedPrefix?: string;
18
18
  failPrefix?: string;
19
19
  };
package/lib/upload.d.ts CHANGED
@@ -1 +1 @@
1
- export declare function getUploadableFileList(src: string, convertFields: boolean): Promise<string[]>;
1
+ export declare function getUploadableFileList(src: string, convertFields?: boolean): Promise<string[]>;
package/lib/validation.js CHANGED
@@ -145,28 +145,27 @@ function validateCmsPublishMode(options) {
145
145
  return false;
146
146
  }
147
147
  function fileExists(_path) {
148
- let isFile;
149
148
  try {
150
149
  const absoluteSrcPath = path.resolve((0, path_1.getCwd)(), _path);
151
150
  if (!absoluteSrcPath)
152
151
  return false;
153
152
  const stats = fs.statSync(absoluteSrcPath);
154
- isFile = stats.isFile();
153
+ const isFile = stats.isFile();
155
154
  if (!isFile) {
156
- logger_1.logger.error(`The path "${_path}" is not a path to a file`);
157
155
  return false;
158
156
  }
159
157
  }
160
158
  catch (e) {
161
- logger_1.logger.error(`The path "${_path}" is not a path to a file`);
162
159
  return false;
163
160
  }
164
161
  return true;
165
162
  }
166
163
  function checkAndConvertToJson(_path) {
167
164
  const filePath = (0, path_1.getAbsoluteFilePath)(_path);
168
- if (!fileExists(filePath))
165
+ if (!fileExists(filePath)) {
166
+ logger_1.logger.error(`The path "${_path}" is not a path to a file`);
169
167
  return null;
168
+ }
170
169
  if ((0, path_1.getExt)(_path) !== 'json') {
171
170
  logger_1.logger.error(`The file "${_path}" must be a valid JSON file`);
172
171
  return null;
@@ -1,9 +1,13 @@
1
1
  import { Argv } from 'yargs';
2
2
  export declare function hasFlag(flag: string, argv?: string[]): boolean;
3
- export declare function makeYargsBuilder<T>(callback: (yargs: Argv) => Argv<T>, command: string, describe: string, options?: {
3
+ export declare function makeYargsBuilder<T>(callback: (yargs: Argv) => Argv<T>, command: string | string[], describe?: string, options?: {
4
4
  useGlobalOptions?: boolean;
5
5
  useAccountOptions?: boolean;
6
6
  useConfigOptions?: boolean;
7
7
  useEnvironmentOptions?: boolean;
8
8
  useTestingOptions?: boolean;
9
+ useCmsPublishModeOptions?: boolean | {
10
+ read?: boolean;
11
+ write?: boolean;
12
+ };
9
13
  }): (yargs: Argv) => Promise<Argv<T>>;
package/lib/yargsUtils.js CHANGED
@@ -32,6 +32,12 @@ function makeYargsBuilder(callback, command, describe, options = {}) {
32
32
  if (options.useTestingOptions) {
33
33
  (0, commonOpts_1.addTestingOptions)(yargs);
34
34
  }
35
+ if (options.useCmsPublishModeOptions) {
36
+ const opts = typeof options.useCmsPublishModeOptions === 'object'
37
+ ? options.useCmsPublishModeOptions
38
+ : { write: true };
39
+ (0, commonOpts_1.addCmsPublishModeOptions)(yargs, opts);
40
+ }
35
41
  const result = callback(yargs);
36
42
  // Must go last to pick up available options
37
43
  await (0, commonOpts_1.addCustomHelpOutput)(result, command, describe);