@hubspot/cli 6.2.1 → 6.2.2-experimental.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 (346) hide show
  1. package/bin/cli.d.ts +2 -0
  2. package/bin/cli.js +107 -128
  3. package/commands/accounts/clean.d.ts +4 -0
  4. package/commands/accounts/clean.js +80 -116
  5. package/commands/accounts/info.d.ts +4 -0
  6. package/commands/accounts/info.js +30 -43
  7. package/commands/accounts/list.d.ts +4 -0
  8. package/commands/accounts/list.js +63 -92
  9. package/commands/accounts/remove.d.ts +4 -0
  10. package/commands/accounts/remove.js +41 -73
  11. package/commands/accounts/rename.d.ts +4 -0
  12. package/commands/accounts/rename.js +24 -41
  13. package/commands/accounts/use.d.ts +4 -0
  14. package/commands/accounts/use.js +34 -57
  15. package/commands/accounts.d.ts +3 -0
  16. package/commands/accounts.js +14 -18
  17. package/commands/auth.d.ts +4 -0
  18. package/commands/auth.js +131 -200
  19. package/commands/cms/convertFields.d.ts +4 -0
  20. package/commands/cms/convertFields.js +64 -81
  21. package/commands/cms/lighthouseScore.d.ts +4 -0
  22. package/commands/cms/lighthouseScore.js +234 -298
  23. package/commands/cms/reactModules.d.ts +4 -0
  24. package/commands/cms/reactModules.js +44 -53
  25. package/commands/cms.d.ts +3 -0
  26. package/commands/cms.js +9 -13
  27. package/commands/config/set/allowUsageTracking.d.ts +4 -0
  28. package/commands/config/set/allowUsageTracking.js +31 -38
  29. package/commands/config/set/defaultMode.d.ts +4 -0
  30. package/commands/config/set/defaultMode.js +32 -43
  31. package/commands/config/set/httpTimeout.d.ts +4 -0
  32. package/commands/config/set/httpTimeout.js +21 -30
  33. package/commands/config/set.d.ts +4 -0
  34. package/commands/config/set.js +61 -76
  35. package/commands/config.d.ts +3 -0
  36. package/commands/config.js +5 -9
  37. package/commands/create/api-sample.d.ts +13 -0
  38. package/commands/create/api-sample.js +52 -72
  39. package/commands/create/app.d.ts +10 -0
  40. package/commands/create/app.js +6 -7
  41. package/commands/create/function.d.ts +6 -0
  42. package/commands/create/function.js +13 -14
  43. package/commands/create/index.d.ts +109 -0
  44. package/commands/create/index.js +10 -9
  45. package/commands/create/module.d.ts +11 -0
  46. package/commands/create/module.js +19 -19
  47. package/commands/create/react-app.d.ts +9 -0
  48. package/commands/create/react-app.js +5 -6
  49. package/commands/create/template.d.ts +12 -0
  50. package/commands/create/template.js +21 -24
  51. package/commands/create/vue-app.d.ts +9 -0
  52. package/commands/create/vue-app.js +5 -6
  53. package/commands/create/webpack-serverless.d.ts +9 -0
  54. package/commands/create/webpack-serverless.js +5 -6
  55. package/commands/create/website-theme.d.ts +9 -0
  56. package/commands/create/website-theme.js +13 -15
  57. package/commands/create.d.ts +4 -0
  58. package/commands/create.js +62 -80
  59. package/commands/customObject/create.d.ts +4 -0
  60. package/commands/customObject/create.js +31 -47
  61. package/commands/customObject/schema/create.d.ts +4 -0
  62. package/commands/customObject/schema/create.js +40 -67
  63. package/commands/customObject/schema/delete.d.ts +4 -0
  64. package/commands/customObject/schema/delete.js +26 -39
  65. package/commands/customObject/schema/fetch-all.d.ts +4 -0
  66. package/commands/customObject/schema/fetch-all.js +28 -39
  67. package/commands/customObject/schema/fetch.d.ts +4 -0
  68. package/commands/customObject/schema/fetch.js +46 -63
  69. package/commands/customObject/schema/list.d.ts +3 -0
  70. package/commands/customObject/schema/list.js +12 -17
  71. package/commands/customObject/schema/update.d.ts +4 -0
  72. package/commands/customObject/schema/update.js +44 -72
  73. package/commands/customObject/schema.d.ts +3 -0
  74. package/commands/customObject/schema.js +10 -12
  75. package/commands/customObject.d.ts +3 -0
  76. package/commands/customObject.js +12 -22
  77. package/commands/feedback.d.ts +4 -0
  78. package/commands/feedback.js +23 -33
  79. package/commands/fetch.d.ts +4 -0
  80. package/commands/fetch.js +51 -78
  81. package/commands/filemanager/fetch.d.ts +4 -0
  82. package/commands/filemanager/fetch.js +36 -56
  83. package/commands/filemanager/upload.d.ts +4 -0
  84. package/commands/filemanager/upload.js +86 -128
  85. package/commands/filemanager.d.ts +3 -0
  86. package/commands/filemanager.js +10 -18
  87. package/commands/functions/deploy.d.ts +4 -0
  88. package/commands/functions/deploy.js +71 -104
  89. package/commands/functions/list.d.ts +4 -0
  90. package/commands/functions/list.js +29 -47
  91. package/commands/functions/server.d.ts +4 -0
  92. package/commands/functions/server.js +48 -65
  93. package/commands/functions.d.ts +3 -0
  94. package/commands/functions.js +11 -15
  95. package/commands/hubdb/clear.d.ts +4 -0
  96. package/commands/hubdb/clear.js +35 -56
  97. package/commands/hubdb/create.d.ts +4 -0
  98. package/commands/hubdb/create.js +32 -57
  99. package/commands/hubdb/delete.d.ts +4 -0
  100. package/commands/hubdb/delete.js +27 -44
  101. package/commands/hubdb/fetch.d.ts +4 -0
  102. package/commands/hubdb/fetch.js +28 -46
  103. package/commands/hubdb.d.ts +3 -0
  104. package/commands/hubdb.js +10 -14
  105. package/commands/init.d.ts +4 -0
  106. package/commands/init.js +101 -160
  107. package/commands/lint.d.ts +4 -0
  108. package/commands/lint.js +32 -45
  109. package/commands/list.d.ts +4 -0
  110. package/commands/list.js +72 -101
  111. package/commands/logs.d.ts +4 -0
  112. package/commands/logs.js +96 -121
  113. package/commands/module/marketplace-validate.d.ts +4 -0
  114. package/commands/module/marketplace-validate.js +30 -57
  115. package/commands/module.d.ts +3 -0
  116. package/commands/module.js +5 -9
  117. package/commands/mv.d.ts +4 -0
  118. package/commands/mv.js +51 -71
  119. package/commands/open.d.ts +4 -0
  120. package/commands/open.js +46 -62
  121. package/commands/project/add.d.ts +4 -0
  122. package/commands/project/add.js +45 -70
  123. package/commands/project/cloneApp.d.ts +4 -0
  124. package/commands/project/cloneApp.js +117 -178
  125. package/commands/project/create.d.ts +4 -0
  126. package/commands/project/create.js +47 -81
  127. package/commands/project/deploy.d.ts +4 -0
  128. package/commands/project/deploy.js +103 -182
  129. package/commands/project/dev.d.ts +4 -0
  130. package/commands/project/dev.js +123 -227
  131. package/commands/project/download.d.ts +4 -0
  132. package/commands/project/download.js +71 -123
  133. package/commands/project/installDeps.d.ts +6 -0
  134. package/commands/project/installDeps.js +50 -59
  135. package/commands/project/listBuilds.d.ts +4 -0
  136. package/commands/project/listBuilds.js +95 -139
  137. package/commands/project/logs.d.ts +4 -0
  138. package/commands/project/logs.js +84 -128
  139. package/commands/project/migrateApp.d.ts +4 -0
  140. package/commands/project/migrateApp.js +156 -248
  141. package/commands/project/open.d.ts +4 -0
  142. package/commands/project/open.js +42 -68
  143. package/commands/project/upload.d.ts +4 -0
  144. package/commands/project/upload.js +70 -116
  145. package/commands/project/watch.d.ts +4 -0
  146. package/commands/project/watch.js +92 -152
  147. package/commands/project.d.ts +3 -0
  148. package/commands/project.js +19 -23
  149. package/commands/remove.d.ts +4 -0
  150. package/commands/remove.js +26 -43
  151. package/commands/sandbox/create.d.ts +4 -0
  152. package/commands/sandbox/create.js +141 -187
  153. package/commands/sandbox/delete.d.ts +4 -0
  154. package/commands/sandbox/delete.js +164 -221
  155. package/commands/sandbox.d.ts +3 -0
  156. package/commands/sandbox.js +8 -12
  157. package/commands/secrets/addSecret.d.ts +4 -0
  158. package/commands/secrets/addSecret.js +32 -52
  159. package/commands/secrets/deleteSecret.d.ts +4 -0
  160. package/commands/secrets/deleteSecret.js +31 -50
  161. package/commands/secrets/listSecrets.d.ts +4 -0
  162. package/commands/secrets/listSecrets.js +26 -42
  163. package/commands/secrets/updateSecret.d.ts +4 -0
  164. package/commands/secrets/updateSecret.js +33 -53
  165. package/commands/secrets.d.ts +3 -0
  166. package/commands/secrets.js +10 -13
  167. package/commands/theme/generate-selectors.d.ts +4 -0
  168. package/commands/theme/generate-selectors.js +127 -192
  169. package/commands/theme/marketplace-validate.d.ts +4 -0
  170. package/commands/theme/marketplace-validate.js +30 -57
  171. package/commands/theme/preview.d.ts +4 -0
  172. package/commands/theme/preview.js +161 -196
  173. package/commands/theme.d.ts +3 -0
  174. package/commands/theme.js +7 -11
  175. package/commands/upload.d.ts +4 -0
  176. package/commands/upload.js +197 -287
  177. package/commands/watch.d.ts +4 -0
  178. package/commands/watch.js +126 -172
  179. package/lib/DevServerManager.d.ts +35 -0
  180. package/lib/DevServerManager.js +97 -124
  181. package/lib/LocalDevManager.d.ts +41 -0
  182. package/lib/LocalDevManager.js +320 -490
  183. package/lib/accountTypes.d.ts +6 -0
  184. package/lib/accountTypes.js +16 -32
  185. package/lib/buildAccount.d.ts +22 -0
  186. package/lib/buildAccount.js +130 -179
  187. package/lib/commonOpts.d.ts +20 -0
  188. package/lib/commonOpts.js +58 -91
  189. package/lib/constants.d.ts +83 -0
  190. package/lib/constants.js +61 -71
  191. package/lib/debugInfo.d.ts +3 -0
  192. package/lib/debugInfo.js +12 -13
  193. package/lib/dependencyManagement.d.ts +7 -0
  194. package/lib/dependencyManagement.js +90 -132
  195. package/lib/developerTestAccounts.d.ts +7 -0
  196. package/lib/developerTestAccounts.js +65 -91
  197. package/lib/enums/exitCodes.d.ts +5 -0
  198. package/lib/enums/exitCodes.js +5 -7
  199. package/lib/environment.d.ts +1 -0
  200. package/lib/environment.js +10 -10
  201. package/lib/errorHandlers/index.d.ts +19 -0
  202. package/lib/errorHandlers/index.js +64 -80
  203. package/lib/errorHandlers/suppressError.d.ts +1 -0
  204. package/lib/errorHandlers/suppressError.js +64 -106
  205. package/lib/filesystem.d.ts +2 -0
  206. package/lib/filesystem.js +16 -24
  207. package/lib/generate-selectors.d.ts +6 -0
  208. package/lib/generate-selectors.js +99 -137
  209. package/lib/getFunctionArrays.d.ts +1 -0
  210. package/lib/getFunctionArrays.js +12 -13
  211. package/lib/hasFeature.d.ts +1 -0
  212. package/lib/hasFeature.js +5 -11
  213. package/lib/hasFlag.d.ts +2 -0
  214. package/lib/hasFlag.js +6 -10
  215. package/lib/hublValidate.d.ts +4 -0
  216. package/lib/hublValidate.js +20 -24
  217. package/lib/interpolation.d.ts +10 -0
  218. package/lib/interpolation.js +48 -92
  219. package/lib/interpolationHelpers.d.ts +6 -0
  220. package/lib/interpolationHelpers.js +19 -19
  221. package/lib/lang.d.ts +3 -0
  222. package/lib/lang.js +50 -78
  223. package/lib/links.d.ts +127 -0
  224. package/lib/links.js +92 -114
  225. package/lib/localDev.d.ts +11 -0
  226. package/lib/localDev.js +283 -439
  227. package/lib/marketplace-validate.d.ts +5 -0
  228. package/lib/marketplace-validate.js +103 -126
  229. package/lib/oauth.d.ts +1 -0
  230. package/lib/oauth.js +62 -78
  231. package/lib/polling.d.ts +1 -0
  232. package/lib/polling.js +24 -26
  233. package/lib/process.d.ts +2 -0
  234. package/lib/process.js +39 -53
  235. package/lib/projectLogsManager.d.ts +19 -0
  236. package/lib/projectLogsManager.js +76 -130
  237. package/lib/projectStructure.d.ts +13 -0
  238. package/lib/projectStructure.js +87 -109
  239. package/lib/projects.d.ts +40 -0
  240. package/lib/projects.js +589 -960
  241. package/lib/projectsWatch.d.ts +1 -0
  242. package/lib/projectsWatch.js +122 -228
  243. package/lib/prompts/accountNamePrompt.d.ts +11 -0
  244. package/lib/prompts/accountNamePrompt.js +58 -65
  245. package/lib/prompts/accountsPrompt.d.ts +3 -0
  246. package/lib/prompts/accountsPrompt.js +31 -37
  247. package/lib/prompts/activeInstallConfirmationPrompt.d.ts +1 -0
  248. package/lib/prompts/activeInstallConfirmationPrompt.js +11 -13
  249. package/lib/prompts/cleanUploadPrompt.d.ts +1 -0
  250. package/lib/prompts/cleanUploadPrompt.js +11 -13
  251. package/lib/prompts/cmsFieldPrompt.d.ts +1 -0
  252. package/lib/prompts/cmsFieldPrompt.js +35 -39
  253. package/lib/prompts/createApiSamplePrompt.d.ts +1 -0
  254. package/lib/prompts/createApiSamplePrompt.js +47 -52
  255. package/lib/prompts/createFunctionPrompt.d.ts +1 -0
  256. package/lib/prompts/createFunctionPrompt.js +55 -56
  257. package/lib/prompts/createModulePrompt.d.ts +1 -0
  258. package/lib/prompts/createModulePrompt.js +45 -50
  259. package/lib/prompts/createProjectPrompt.d.ts +1 -0
  260. package/lib/prompts/createProjectPrompt.js +88 -127
  261. package/lib/prompts/createTemplatePrompt.d.ts +1 -0
  262. package/lib/prompts/createTemplatePrompt.js +16 -19
  263. package/lib/prompts/deployBuildIdPrompt.d.ts +1 -0
  264. package/lib/prompts/deployBuildIdPrompt.js +13 -15
  265. package/lib/prompts/downloadProjectPrompt.d.ts +1 -0
  266. package/lib/prompts/downloadProjectPrompt.js +36 -40
  267. package/lib/prompts/feedbackPrompt.d.ts +2 -0
  268. package/lib/prompts/feedbackPrompt.js +27 -30
  269. package/lib/prompts/folderOverwritePrompt.d.ts +1 -0
  270. package/lib/prompts/folderOverwritePrompt.js +8 -10
  271. package/lib/prompts/installPublicAppPrompt.d.ts +1 -0
  272. package/lib/prompts/installPublicAppPrompt.js +27 -42
  273. package/lib/prompts/personalAccessKeyPrompt.d.ts +69 -0
  274. package/lib/prompts/personalAccessKeyPrompt.js +102 -110
  275. package/lib/prompts/previewPrompt.d.ts +2 -0
  276. package/lib/prompts/previewPrompt.js +44 -47
  277. package/lib/prompts/projectAddPrompt.d.ts +1 -0
  278. package/lib/prompts/projectAddPrompt.js +35 -38
  279. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +4 -0
  280. package/lib/prompts/projectDevTargetAccountPrompt.js +148 -193
  281. package/lib/prompts/projectNamePrompt.d.ts +1 -0
  282. package/lib/prompts/projectNamePrompt.js +23 -25
  283. package/lib/prompts/projectsLogsPrompt.d.ts +5 -0
  284. package/lib/prompts/projectsLogsPrompt.js +19 -27
  285. package/lib/prompts/promptUtils.d.ts +2 -0
  286. package/lib/prompts/promptUtils.js +15 -17
  287. package/lib/prompts/sandboxesPrompt.d.ts +2 -0
  288. package/lib/prompts/sandboxesPrompt.js +48 -59
  289. package/lib/prompts/secretPrompt.d.ts +1 -0
  290. package/lib/prompts/secretPrompt.js +13 -16
  291. package/lib/prompts/selectPublicAppPrompt.d.ts +5 -0
  292. package/lib/prompts/selectPublicAppPrompt.js +55 -83
  293. package/lib/prompts/setAsDefaultAccountPrompt.d.ts +1 -0
  294. package/lib/prompts/setAsDefaultAccountPrompt.js +17 -24
  295. package/lib/prompts/uploadPrompt.d.ts +1 -0
  296. package/lib/prompts/uploadPrompt.js +28 -30
  297. package/lib/regex.d.ts +1 -0
  298. package/lib/regex.js +2 -2
  299. package/lib/sandboxSync.d.ts +8 -0
  300. package/lib/sandboxSync.js +98 -166
  301. package/lib/sandboxes.d.ts +40 -0
  302. package/lib/sandboxes.js +199 -316
  303. package/lib/schema.d.ts +2 -0
  304. package/lib/schema.js +20 -26
  305. package/lib/serverlessLogs.d.ts +8 -0
  306. package/lib/serverlessLogs.js +128 -172
  307. package/lib/ui/SpinniesManager.d.ts +61 -0
  308. package/lib/ui/SpinniesManager.js +196 -254
  309. package/lib/ui/git.d.ts +1 -0
  310. package/lib/ui/git.js +18 -19
  311. package/lib/ui/index.d.ts +36 -0
  312. package/lib/ui/index.js +115 -167
  313. package/lib/ui/serverlessFunctionLogs.d.ts +1 -0
  314. package/lib/ui/serverlessFunctionLogs.js +51 -70
  315. package/lib/ui/spinniesUtils.d.ts +60 -0
  316. package/lib/ui/spinniesUtils.js +109 -133
  317. package/lib/ui/supportHyperlinks.d.ts +3 -0
  318. package/lib/ui/supportHyperlinks.js +46 -61
  319. package/lib/ui/supportsColor.d.ts +13 -0
  320. package/lib/ui/supportsColor.js +78 -108
  321. package/lib/ui/table.d.ts +2 -0
  322. package/lib/ui/table.js +47 -55
  323. package/lib/upload.d.ts +1 -0
  324. package/lib/upload.js +37 -42
  325. package/lib/usageTracking.d.ts +6 -0
  326. package/lib/usageTracking.js +131 -155
  327. package/lib/validation.d.ts +16 -0
  328. package/lib/validation.js +142 -203
  329. package/package.json +78 -47
  330. package/CHANGELOG.md +0 -16
  331. package/LICENSE +0 -12
  332. package/README.md +0 -154
  333. package/commands/__tests__/projects.test.js +0 -105
  334. package/commands/project/__tests__/deploy.test.js +0 -443
  335. package/commands/project/__tests__/installDeps.test.js +0 -168
  336. package/commands/project/__tests__/logs.test.js +0 -304
  337. package/hubspot.sample.config.yml +0 -28
  338. package/jest.config.js +0 -4
  339. package/lib/__tests__/commonOpts.test.js +0 -83
  340. package/lib/__tests__/dependencyManagement.test.js +0 -243
  341. package/lib/__tests__/downloadProjectPrompt.test.js +0 -31
  342. package/lib/__tests__/projectLogsManager.test.js +0 -212
  343. package/lib/__tests__/projects.test.js +0 -140
  344. package/lib/__tests__/serverlessLogs.test.js +0 -162
  345. package/lib/__tests__/validation.test.js +0 -140
  346. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -46
package/commands/init.js CHANGED
@@ -1,195 +1,136 @@
1
+ "use strict";
1
2
  const path = require('path');
2
3
  const fs = require('fs-extra');
3
- const {
4
- getConfigPath,
5
- createEmptyConfigFile,
6
- deleteEmptyConfigFile,
7
- updateDefaultAccount,
8
- } = require('@hubspot/local-dev-lib/config');
4
+ const { getConfigPath, createEmptyConfigFile, deleteEmptyConfigFile, updateDefaultAccount, } = require('@hubspot/local-dev-lib/config');
9
5
  const { addConfigOptions } = require('../lib/commonOpts');
10
6
  const { handleExit } = require('../lib/process');
11
- const {
12
- checkAndAddConfigToGitignore,
13
- } = require('@hubspot/local-dev-lib/gitignore');
7
+ const { checkAndAddConfigToGitignore, } = require('@hubspot/local-dev-lib/gitignore');
14
8
  const { debugError, logError } = require('../lib/errorHandlers/index');
15
- const {
16
- OAUTH_AUTH_METHOD,
17
- PERSONAL_ACCESS_KEY_AUTH_METHOD,
18
- } = require('@hubspot/local-dev-lib/constants/auth');
19
- const {
20
- ENVIRONMENTS,
21
- } = require('@hubspot/local-dev-lib/constants/environments');
22
- const {
23
- DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
24
- } = require('@hubspot/local-dev-lib/constants/config');
9
+ const { OAUTH_AUTH_METHOD, PERSONAL_ACCESS_KEY_AUTH_METHOD, } = require('@hubspot/local-dev-lib/constants/auth');
10
+ const { ENVIRONMENTS, } = require('@hubspot/local-dev-lib/constants/environments');
11
+ const { DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME, } = require('@hubspot/local-dev-lib/constants/config');
25
12
  const { i18n } = require('../lib/lang');
26
13
  const { logger } = require('@hubspot/local-dev-lib/logger');
27
- const {
28
- getAccessToken,
29
- updateConfigWithAccessToken,
30
- } = require('@hubspot/local-dev-lib/personalAccessKey');
14
+ const { getAccessToken, updateConfigWithAccessToken, } = require('@hubspot/local-dev-lib/personalAccessKey');
31
15
  const { getCwd } = require('@hubspot/local-dev-lib/path');
32
16
  const { toKebabCase } = require('@hubspot/local-dev-lib/text');
33
17
  const { trackCommandUsage, trackAuthAction } = require('../lib/usageTracking');
34
18
  const { setLogLevel, addTestingOptions } = require('../lib/commonOpts');
35
19
  const { promptUser } = require('../lib/prompts/promptUtils');
36
- const {
37
- OAUTH_FLOW,
38
- personalAccessKeyPrompt,
39
- } = require('../lib/prompts/personalAccessKeyPrompt');
20
+ const { OAUTH_FLOW, personalAccessKeyPrompt, } = require('../lib/prompts/personalAccessKeyPrompt');
40
21
  const { cliAccountNamePrompt } = require('../lib/prompts/accountNamePrompt');
41
22
  const { logDebugInfo } = require('../lib/debugInfo');
42
23
  const { authenticateWithOauth } = require('../lib/oauth');
43
24
  const { EXIT_CODES } = require('../lib/enums/exitCodes');
44
25
  const { uiFeatureHighlight } = require('../lib/ui');
45
-
46
26
  const i18nKey = 'commands.init';
47
-
48
27
  const TRACKING_STATUS = {
49
- STARTED: 'started',
50
- ERROR: 'error',
51
- COMPLETE: 'complete',
28
+ STARTED: 'started',
29
+ ERROR: 'error',
30
+ COMPLETE: 'complete',
52
31
  };
53
-
54
32
  const personalAccessKeyConfigCreationFlow = async (env, account) => {
55
- const { personalAccessKey } = await personalAccessKeyPrompt({ env, account });
56
- let updatedConfig;
57
-
58
- try {
59
- const token = await getAccessToken(personalAccessKey, env);
60
- const defaultName = token.hubName ? toKebabCase(token.hubName) : null;
61
- const { name } = await cliAccountNamePrompt(defaultName);
62
-
63
- updatedConfig = updateConfigWithAccessToken(
64
- token,
65
- personalAccessKey,
66
- env,
67
- name,
68
- true
69
- );
70
- } catch (e) {
71
- logError(e);
72
- }
73
- return updatedConfig;
33
+ const { personalAccessKey } = await personalAccessKeyPrompt({ env, account });
34
+ let updatedConfig;
35
+ try {
36
+ const token = await getAccessToken(personalAccessKey, env);
37
+ const defaultName = token.hubName ? toKebabCase(token.hubName) : null;
38
+ const { name } = await cliAccountNamePrompt(defaultName);
39
+ updatedConfig = updateConfigWithAccessToken(token, personalAccessKey, env, name, true);
40
+ }
41
+ catch (e) {
42
+ logError(e);
43
+ }
44
+ return updatedConfig;
74
45
  };
75
-
76
- const oauthConfigCreationFlow = async env => {
77
- const configData = await promptUser(OAUTH_FLOW);
78
- const accountConfig = {
79
- ...configData,
80
- env,
81
- };
82
- await authenticateWithOauth(accountConfig);
83
- updateDefaultAccount(accountConfig.name);
84
- return accountConfig;
46
+ const oauthConfigCreationFlow = async (env) => {
47
+ const configData = await promptUser(OAUTH_FLOW);
48
+ const accountConfig = {
49
+ ...configData,
50
+ env,
51
+ };
52
+ await authenticateWithOauth(accountConfig);
53
+ updateDefaultAccount(accountConfig.name);
54
+ return accountConfig;
85
55
  };
86
-
87
56
  const CONFIG_CREATION_FLOWS = {
88
- [PERSONAL_ACCESS_KEY_AUTH_METHOD.value]: personalAccessKeyConfigCreationFlow,
89
- [OAUTH_AUTH_METHOD.value]: oauthConfigCreationFlow,
57
+ [PERSONAL_ACCESS_KEY_AUTH_METHOD.value]: personalAccessKeyConfigCreationFlow,
58
+ [OAUTH_AUTH_METHOD.value]: oauthConfigCreationFlow,
90
59
  };
91
-
92
60
  const AUTH_TYPE_NAMES = {
93
- [PERSONAL_ACCESS_KEY_AUTH_METHOD.value]: PERSONAL_ACCESS_KEY_AUTH_METHOD.name,
94
- [OAUTH_AUTH_METHOD.value]: OAUTH_AUTH_METHOD.name,
61
+ [PERSONAL_ACCESS_KEY_AUTH_METHOD.value]: PERSONAL_ACCESS_KEY_AUTH_METHOD.name,
62
+ [OAUTH_AUTH_METHOD.value]: OAUTH_AUTH_METHOD.name,
95
63
  };
96
-
97
64
  exports.command = 'init [--account]';
98
65
  exports.describe = i18n(`${i18nKey}.describe`, {
99
- configName: DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
66
+ configName: DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
100
67
  });
101
-
102
- exports.handler = async options => {
103
- const {
104
- auth: authType = PERSONAL_ACCESS_KEY_AUTH_METHOD.value,
105
- c,
106
- account: optionalAccount,
107
- } = options;
108
- const configPath = (c && path.join(getCwd(), c)) || getConfigPath();
109
- setLogLevel(options);
110
- logDebugInfo(options);
111
- trackCommandUsage('init', {
112
- authType,
113
- });
114
- const env = options.qa ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD;
115
-
116
- if (fs.existsSync(configPath)) {
117
- logger.error(
118
- i18n(`${i18nKey}.errors.configFileExists`, {
119
- configPath,
120
- })
121
- );
122
- logger.info(i18n(`${i18nKey}.logs.updateConfig`));
123
- process.exit(EXIT_CODES.ERROR);
124
- }
125
-
126
- trackAuthAction('init', authType, TRACKING_STATUS.STARTED);
127
- createEmptyConfigFile({ path: configPath });
128
- handleExit(deleteEmptyConfigFile);
129
-
130
- try {
131
- const { accountId, name } = await CONFIG_CREATION_FLOWS[authType](
132
- env,
133
- optionalAccount
134
- );
135
- const configPath = getConfigPath();
136
-
68
+ exports.handler = async (options) => {
69
+ const { auth: authType = PERSONAL_ACCESS_KEY_AUTH_METHOD.value, c, account: optionalAccount, } = options;
70
+ const configPath = (c && path.join(getCwd(), c)) || getConfigPath();
71
+ setLogLevel(options);
72
+ logDebugInfo(options);
73
+ trackCommandUsage('init', {
74
+ authType,
75
+ });
76
+ const env = options.qa ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD;
77
+ if (fs.existsSync(configPath)) {
78
+ logger.error(i18n(`${i18nKey}.errors.configFileExists`, {
79
+ configPath,
80
+ }));
81
+ logger.info(i18n(`${i18nKey}.logs.updateConfig`));
82
+ process.exit(EXIT_CODES.ERROR);
83
+ }
84
+ trackAuthAction('init', authType, TRACKING_STATUS.STARTED);
85
+ createEmptyConfigFile({ path: configPath });
86
+ handleExit(deleteEmptyConfigFile);
137
87
  try {
138
- checkAndAddConfigToGitignore(configPath);
139
- } catch (e) {
140
- debugError(e);
88
+ const { accountId, name } = await CONFIG_CREATION_FLOWS[authType](env, optionalAccount);
89
+ const configPath = getConfigPath();
90
+ try {
91
+ checkAndAddConfigToGitignore(configPath);
92
+ }
93
+ catch (e) {
94
+ debugError(e);
95
+ }
96
+ logger.log('');
97
+ logger.success(i18n(`${i18nKey}.success.configFileCreated`, {
98
+ configPath,
99
+ }));
100
+ logger.success(i18n(`${i18nKey}.success.configFileUpdated`, {
101
+ authType: AUTH_TYPE_NAMES[authType],
102
+ account: name || accountId,
103
+ }));
104
+ uiFeatureHighlight(['helpCommand', 'authCommand', 'accountsListCommand']);
105
+ await trackAuthAction('init', authType, TRACKING_STATUS.COMPLETE, accountId);
106
+ process.exit(EXIT_CODES.SUCCESS);
107
+ }
108
+ catch (err) {
109
+ logError(err);
110
+ await trackAuthAction('init', authType, TRACKING_STATUS.ERROR);
111
+ process.exit(EXIT_CODES.ERROR);
141
112
  }
142
-
143
- logger.log('');
144
- logger.success(
145
- i18n(`${i18nKey}.success.configFileCreated`, {
146
- configPath,
147
- })
148
- );
149
- logger.success(
150
- i18n(`${i18nKey}.success.configFileUpdated`, {
151
- authType: AUTH_TYPE_NAMES[authType],
152
- account: name || accountId,
153
- })
154
- );
155
- uiFeatureHighlight(['helpCommand', 'authCommand', 'accountsListCommand']);
156
-
157
- await trackAuthAction(
158
- 'init',
159
- authType,
160
- TRACKING_STATUS.COMPLETE,
161
- accountId
162
- );
163
- process.exit(EXIT_CODES.SUCCESS);
164
- } catch (err) {
165
- logError(err);
166
- await trackAuthAction('init', authType, TRACKING_STATUS.ERROR);
167
- process.exit(EXIT_CODES.ERROR);
168
- }
169
113
  };
170
-
171
114
  exports.builder = yargs => {
172
- yargs.options({
173
- auth: {
174
- describe: i18n(`${i18nKey}.options.auth.describe`),
175
- type: 'string',
176
- choices: [
177
- `${PERSONAL_ACCESS_KEY_AUTH_METHOD.value}`,
178
- `${OAUTH_AUTH_METHOD.value}`,
179
- ],
180
- default: PERSONAL_ACCESS_KEY_AUTH_METHOD.value,
181
- defaultDescription: i18n(`${i18nKey}.options.auth.defaultDescription`, {
182
- defaultType: PERSONAL_ACCESS_KEY_AUTH_METHOD.value,
183
- }),
184
- },
185
- account: {
186
- describe: i18n(`${i18nKey}.options.account.describe`),
187
- type: 'string',
188
- },
189
- });
190
-
191
- addConfigOptions(yargs);
192
- addTestingOptions(yargs);
193
-
194
- return yargs;
115
+ yargs.options({
116
+ auth: {
117
+ describe: i18n(`${i18nKey}.options.auth.describe`),
118
+ type: 'string',
119
+ choices: [
120
+ `${PERSONAL_ACCESS_KEY_AUTH_METHOD.value}`,
121
+ `${OAUTH_AUTH_METHOD.value}`,
122
+ ],
123
+ default: PERSONAL_ACCESS_KEY_AUTH_METHOD.value,
124
+ defaultDescription: i18n(`${i18nKey}.options.auth.defaultDescription`, {
125
+ defaultType: PERSONAL_ACCESS_KEY_AUTH_METHOD.value,
126
+ }),
127
+ },
128
+ account: {
129
+ describe: i18n(`${i18nKey}.options.account.describe`),
130
+ type: 'string',
131
+ },
132
+ });
133
+ addConfigOptions(yargs);
134
+ addTestingOptions(yargs);
135
+ return yargs;
195
136
  };
@@ -0,0 +1,4 @@
1
+ export const command: "lint <path>";
2
+ export const describe: any;
3
+ export function handler(options: any): Promise<void>;
4
+ export function builder(yargs: any): any;
package/commands/lint.js CHANGED
@@ -1,63 +1,50 @@
1
+ "use strict";
1
2
  const { lint } = require('@hubspot/local-dev-lib/cms/validate');
2
3
  const { printHublValidationResult } = require('../lib/hublValidate');
3
4
  const { logger } = require('@hubspot/local-dev-lib/logger');
4
5
  const { logError } = require('../lib/errorHandlers/index');
5
-
6
- const {
7
- addConfigOptions,
8
- addAccountOptions,
9
- getAccountId,
10
- } = require('../lib/commonOpts');
6
+ const { addConfigOptions, addAccountOptions, getAccountId, } = require('../lib/commonOpts');
11
7
  const { resolveLocalPath } = require('../lib/filesystem');
12
8
  const { trackCommandUsage } = require('../lib/usageTracking');
13
9
  const { loadAndValidateOptions } = require('../lib/validation');
14
10
  const { i18n } = require('../lib/lang');
15
-
16
11
  const i18nKey = 'commands.lint';
17
12
  const { EXIT_CODES } = require('../lib/enums/exitCodes');
18
-
19
13
  exports.command = 'lint <path>';
20
14
  // Hiding since this command is still experimental
21
15
  exports.describe = null; //'Lint a file or folder for HubL syntax';
22
-
23
- exports.handler = async options => {
24
- const { path: lintPath } = options;
25
-
26
- await loadAndValidateOptions(options);
27
-
28
- const accountId = getAccountId(options);
29
- const localPath = resolveLocalPath(lintPath);
30
- const groupName = i18n(`${i18nKey}.groupName`, {
31
- path: localPath,
32
- });
33
-
34
- trackCommandUsage('lint', null, accountId);
35
-
36
- logger.group(groupName);
37
- let count = 0;
38
- try {
39
- await lint(accountId, localPath, result => {
40
- count += printHublValidationResult(result);
16
+ exports.handler = async (options) => {
17
+ const { path: lintPath } = options;
18
+ await loadAndValidateOptions(options);
19
+ const accountId = getAccountId(options);
20
+ const localPath = resolveLocalPath(lintPath);
21
+ const groupName = i18n(`${i18nKey}.groupName`, {
22
+ path: localPath,
41
23
  });
42
- } catch (err) {
24
+ trackCommandUsage('lint', null, accountId);
25
+ logger.group(groupName);
26
+ let count = 0;
27
+ try {
28
+ await lint(accountId, localPath, result => {
29
+ count += printHublValidationResult(result);
30
+ });
31
+ }
32
+ catch (err) {
33
+ logger.groupEnd(groupName);
34
+ logError(err, { accountId });
35
+ process.exit(EXIT_CODES.ERROR);
36
+ }
43
37
  logger.groupEnd(groupName);
44
- logError(err, { accountId });
45
- process.exit(EXIT_CODES.ERROR);
46
- }
47
- logger.groupEnd(groupName);
48
- logger.log(
49
- i18n(`${i18nKey}.issuesFound`, {
50
- count,
51
- })
52
- );
38
+ logger.log(i18n(`${i18nKey}.issuesFound`, {
39
+ count,
40
+ }));
53
41
  };
54
-
55
42
  exports.builder = yargs => {
56
- addConfigOptions(yargs);
57
- addAccountOptions(yargs);
58
- yargs.positional('path', {
59
- describe: i18n(`${i18nKey}.positionals.path.describe`),
60
- type: 'string',
61
- });
62
- return yargs;
43
+ addConfigOptions(yargs);
44
+ addAccountOptions(yargs);
45
+ yargs.positional('path', {
46
+ describe: i18n(`${i18nKey}.positionals.path.describe`),
47
+ type: 'string',
48
+ });
49
+ return yargs;
63
50
  };
@@ -0,0 +1,4 @@
1
+ export const command: "list [path]";
2
+ export const describe: any;
3
+ export function handler(options: any): Promise<void>;
4
+ export function builder(yargs: any): any;
package/commands/list.js CHANGED
@@ -1,121 +1,92 @@
1
+ "use strict";
1
2
  const chalk = require('chalk');
2
- const {
3
- addAccountOptions,
4
- addConfigOptions,
5
- getAccountId,
6
- addUseEnvironmentOptions,
7
- } = require('../lib/commonOpts');
3
+ const { addAccountOptions, addConfigOptions, getAccountId, addUseEnvironmentOptions, } = require('../lib/commonOpts');
8
4
  const { trackCommandUsage } = require('../lib/usageTracking');
9
5
  const { isPathFolder } = require('../lib/filesystem');
10
-
11
6
  const { logger } = require('@hubspot/local-dev-lib/logger');
12
7
  const { logError } = require('../lib/errorHandlers/index');
13
- const {
14
- getDirectoryContentsByPath,
15
- } = require('@hubspot/local-dev-lib/api/fileMapper');
8
+ const { getDirectoryContentsByPath, } = require('@hubspot/local-dev-lib/api/fileMapper');
16
9
  const { HUBSPOT_FOLDER, MARKETPLACE_FOLDER } = require('../lib/constants');
17
10
  const { loadAndValidateOptions } = require('../lib/validation');
18
11
  const { i18n } = require('../lib/lang');
19
-
20
12
  const i18nKey = 'commands.list';
21
13
  const { EXIT_CODES } = require('../lib/enums/exitCodes');
22
-
23
14
  exports.command = 'list [path]';
24
15
  exports.describe = i18n(`${i18nKey}.describe`);
25
-
26
- exports.handler = async options => {
27
- await loadAndValidateOptions(options);
28
-
29
- const { path } = options;
30
- const directoryPath = path || '/';
31
- const accountId = getAccountId(options);
32
- let contentsResp;
33
-
34
- trackCommandUsage('list', null, accountId);
35
-
36
- logger.debug(
37
- i18n(`${i18nKey}.gettingPathContents`, {
38
- path: directoryPath,
39
- })
40
- );
41
-
42
- try {
43
- const { data } = await getDirectoryContentsByPath(accountId, directoryPath);
44
- contentsResp = data;
45
- } catch (e) {
46
- logError(e);
47
- process.exit(EXIT_CODES.SUCCESS);
48
- }
49
-
50
- if (!contentsResp.folder) {
51
- logger.info(
52
- i18n(`${i18nKey}.noFilesFoundAtPath`, {
16
+ exports.handler = async (options) => {
17
+ await loadAndValidateOptions(options);
18
+ const { path } = options;
19
+ const directoryPath = path || '/';
20
+ const accountId = getAccountId(options);
21
+ let contentsResp;
22
+ trackCommandUsage('list', null, accountId);
23
+ logger.debug(i18n(`${i18nKey}.gettingPathContents`, {
53
24
  path: directoryPath,
54
- })
55
- );
56
- return;
57
- }
58
- // getDirectoryContentsByPath omits @hubspot
59
- const contents =
60
- directoryPath === '/'
61
- ? ['@hubspot', ...contentsResp.children]
62
- : contentsResp.children;
63
-
64
- if (contents.length === 0) {
65
- logger.info(
66
- i18n(`${i18nKey}.noFilesFoundAtPath`, {
67
- path: directoryPath,
68
- })
69
- );
70
- return;
71
- }
72
-
73
- const folderContentsOutput = contents
74
- .map(addColorToContents)
75
- .sort(sortContents)
76
- .join('\n');
77
-
78
- logger.log(folderContentsOutput);
25
+ }));
26
+ try {
27
+ const { data } = await getDirectoryContentsByPath(accountId, directoryPath);
28
+ contentsResp = data;
29
+ }
30
+ catch (e) {
31
+ logError(e);
32
+ process.exit(EXIT_CODES.SUCCESS);
33
+ }
34
+ if (!contentsResp.folder) {
35
+ logger.info(i18n(`${i18nKey}.noFilesFoundAtPath`, {
36
+ path: directoryPath,
37
+ }));
38
+ return;
39
+ }
40
+ // getDirectoryContentsByPath omits @hubspot
41
+ const contents = directoryPath === '/'
42
+ ? ['@hubspot', ...contentsResp.children]
43
+ : contentsResp.children;
44
+ if (contents.length === 0) {
45
+ logger.info(i18n(`${i18nKey}.noFilesFoundAtPath`, {
46
+ path: directoryPath,
47
+ }));
48
+ return;
49
+ }
50
+ const folderContentsOutput = contents
51
+ .map(addColorToContents)
52
+ .sort(sortContents)
53
+ .join('\n');
54
+ logger.log(folderContentsOutput);
79
55
  };
80
-
81
56
  exports.builder = yargs => {
82
- yargs.positional('path', {
83
- describe: i18n(`${i18nKey}.positionals.path.describe`),
84
- type: 'string',
85
- });
86
- yargs.example([['$0 list'], ['$0 list /'], ['$0 list serverless']]);
87
-
88
- addConfigOptions(yargs);
89
- addAccountOptions(yargs);
90
- addUseEnvironmentOptions(yargs);
91
-
92
- return yargs;
57
+ yargs.positional('path', {
58
+ describe: i18n(`${i18nKey}.positionals.path.describe`),
59
+ type: 'string',
60
+ });
61
+ yargs.example([['$0 list'], ['$0 list /'], ['$0 list serverless']]);
62
+ addConfigOptions(yargs);
63
+ addAccountOptions(yargs);
64
+ addUseEnvironmentOptions(yargs);
65
+ return yargs;
93
66
  };
94
-
95
67
  const addColorToContents = fileOrFolder => {
96
- if (!isPathFolder(fileOrFolder)) {
97
- return chalk.reset.cyan(fileOrFolder);
98
- }
99
- if (fileOrFolder === HUBSPOT_FOLDER || fileOrFolder === MARKETPLACE_FOLDER) {
100
- return chalk.reset.bold.blue(fileOrFolder);
101
- }
102
- return chalk.reset.blue(fileOrFolder);
68
+ if (!isPathFolder(fileOrFolder)) {
69
+ return chalk.reset.cyan(fileOrFolder);
70
+ }
71
+ if (fileOrFolder === HUBSPOT_FOLDER || fileOrFolder === MARKETPLACE_FOLDER) {
72
+ return chalk.reset.bold.blue(fileOrFolder);
73
+ }
74
+ return chalk.reset.blue(fileOrFolder);
103
75
  };
104
-
105
76
  const sortContents = (a, b) => {
106
- // Pin @hubspot folder to top
107
- if (a === HUBSPOT_FOLDER) {
108
- return -1;
109
- } else if (b === HUBSPOT_FOLDER) {
110
- return 1;
111
- }
112
-
113
- // Pin @marketplace folder to top
114
- if (a === MARKETPLACE_FOLDER) {
115
- return -1;
116
- } else if (b === MARKETPLACE_FOLDER) {
117
- return 1;
118
- }
119
-
120
- return a.localeCompare(b);
77
+ // Pin @hubspot folder to top
78
+ if (a === HUBSPOT_FOLDER) {
79
+ return -1;
80
+ }
81
+ else if (b === HUBSPOT_FOLDER) {
82
+ return 1;
83
+ }
84
+ // Pin @marketplace folder to top
85
+ if (a === MARKETPLACE_FOLDER) {
86
+ return -1;
87
+ }
88
+ else if (b === MARKETPLACE_FOLDER) {
89
+ return 1;
90
+ }
91
+ return a.localeCompare(b);
121
92
  };
@@ -0,0 +1,4 @@
1
+ export const command: "logs [endpoint]";
2
+ export const describe: any;
3
+ export function handler(options: any): Promise<void>;
4
+ export function builder(yargs: any): any;