@hubspot/cli 7.2.5-experimental.0 → 7.3.0-experimental.1

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 (66) hide show
  1. package/bin/cli.js +81 -73
  2. package/commands/account/clean.js +5 -36
  3. package/commands/account/info.js +0 -23
  4. package/commands/account/list.js +4 -22
  5. package/commands/account/remove.js +0 -28
  6. package/commands/account/use.js +0 -13
  7. package/commands/account.js +0 -6
  8. package/commands/auth.js +2 -6
  9. package/commands/config/set.d.ts +0 -12
  10. package/commands/config/set.js +29 -30
  11. package/commands/config.d.ts +1 -4
  12. package/commands/config.js +10 -45
  13. package/commands/customObject.d.ts +1 -1
  14. package/commands/init.js +10 -9
  15. package/commands/mv.d.ts +1 -1
  16. package/commands/project/add.d.ts +10 -0
  17. package/commands/project/add.js +64 -52
  18. package/commands/project/deploy.d.ts +11 -1
  19. package/commands/project/deploy.js +79 -71
  20. package/commands/project/dev/index.d.ts +1 -1
  21. package/commands/project/download.d.ts +11 -0
  22. package/commands/project/download.js +56 -54
  23. package/commands/project/listBuilds.d.ts +10 -0
  24. package/commands/project/listBuilds.js +101 -91
  25. package/commands/project/open.d.ts +9 -0
  26. package/commands/project/open.js +43 -35
  27. package/commands/sandbox/create.d.ts +1 -1
  28. package/commands/sandbox/delete.d.ts +1 -1
  29. package/commands/sandbox.d.ts +1 -1
  30. package/lang/en.js +3448 -0
  31. package/lang/en.lyaml +13 -88
  32. package/lib/dependencyManagement.d.ts +0 -5
  33. package/lib/dependencyManagement.js +13 -39
  34. package/lib/doctor/Diagnosis.d.ts +2 -1
  35. package/lib/doctor/Diagnosis.js +6 -10
  36. package/lib/doctor/DiagnosticInfoBuilder.d.ts +0 -1
  37. package/lib/doctor/DiagnosticInfoBuilder.js +0 -1
  38. package/lib/doctor/Doctor.d.ts +0 -1
  39. package/lib/doctor/Doctor.js +2 -19
  40. package/lib/errorHandlers/index.js +17 -0
  41. package/lib/npm.d.ts +9 -0
  42. package/lib/npm.js +36 -0
  43. package/lib/projects/buildAndDeploy.d.ts +1 -1
  44. package/lib/projects/buildAndDeploy.js +1 -1
  45. package/lib/projects/index.d.ts +1 -1
  46. package/lib/projects/index.js +1 -1
  47. package/lib/prompts/downloadProjectPrompt.js +5 -1
  48. package/lib/prompts/projectNamePrompt.d.ts +6 -1
  49. package/lib/prompts/projectNamePrompt.js +17 -16
  50. package/lib/testUtils.d.ts +4 -2
  51. package/lib/testUtils.js +17 -3
  52. package/lib/ui/index.d.ts +2 -2
  53. package/lib/ui/index.js +0 -5
  54. package/lib/yargsUtils.d.ts +2 -2
  55. package/lib/yargsUtils.js +2 -2
  56. package/package.json +2 -2
  57. package/commands/account/auth.d.ts +0 -10
  58. package/commands/account/auth.js +0 -169
  59. package/commands/account/createOverride.d.ts +0 -10
  60. package/commands/account/createOverride.js +0 -103
  61. package/commands/account/removeOverride.d.ts +0 -10
  62. package/commands/account/removeOverride.js +0 -77
  63. package/commands/config/migrate.d.ts +0 -10
  64. package/commands/config/migrate.js +0 -85
  65. package/lib/configMigrate.d.ts +0 -2
  66. package/lib/configMigrate.js +0 -105
package/bin/cli.js CHANGED
@@ -6,7 +6,6 @@ const chalk = require('chalk');
6
6
  const { logger } = require('@hubspot/local-dev-lib/logger');
7
7
  const { addUserAgentHeader } = require('@hubspot/local-dev-lib/http');
8
8
  const { loadConfig, getAccountId, configFileExists, getConfigPath, validateConfig, } = require('@hubspot/local-dev-lib/config');
9
- const { DEFAULT_ACCOUNT_OVERRIDE_ERROR_INVALID_ID, DEFAULT_ACCOUNT_OVERRIDE_ERROR_ACCOUNT_NOT_FOUND, DEFAULT_ACCOUNT_OVERRIDE_FILE_NAME, } = require('@hubspot/local-dev-lib/constants/config');
10
9
  const { logError } = require('../lib/errorHandlers/index');
11
10
  const { setLogLevel, getCommandName } = require('../lib/commonOpts');
12
11
  const { validateAccount } = require('../lib/validation');
@@ -17,6 +16,8 @@ const { i18n } = require('../lib/lang');
17
16
  const { EXIT_CODES } = require('../lib/enums/exitCodes');
18
17
  const { UI_COLORS, uiCommandReference, uiDeprecatedTag } = require('../lib/ui');
19
18
  const { checkAndWarnGitInclusion } = require('../lib/ui/git');
19
+ const SpinniesManager = require('../lib/ui/SpinniesManager');
20
+ const { isGloballyInstalled, executeInstall } = require('../lib/npm');
20
21
  const removeCommand = require('../commands/remove');
21
22
  const initCommand = require('../commands/init');
22
23
  const logsCommand = require('../commands/logs');
@@ -51,27 +52,29 @@ const notifier = updateNotifier({
51
52
  });
52
53
  const i18nKey = 'commands.generalErrors';
53
54
  const CMS_CLI_PACKAGE_NAME = '@hubspot/cms-cli';
54
- notifier.notify({
55
- message: pkg.name === CMS_CLI_PACKAGE_NAME
56
- ? i18n(`${i18nKey}.updateNotify.cmsUpdateNotification`, {
57
- packageName: CMS_CLI_PACKAGE_NAME,
58
- updateCommand: uiCommandReference('{updateCommand}'),
59
- })
60
- : i18n(`${i18nKey}.updateNotify.cliUpdateNotification`, {
61
- updateCommand: uiCommandReference('{updateCommand}'),
62
- }),
63
- defer: false,
64
- boxenOptions: {
65
- borderColor: UI_COLORS.MARIGOLD_DARK,
66
- margin: 1,
67
- padding: 1,
68
- textAlignment: 'center',
69
- borderStyle: 'round',
70
- title: pkg.name === CMS_CLI_PACKAGE_NAME
71
- ? null
72
- : chalk.bold(i18n(`${i18nKey}.updateNotify.notifyTitle`)),
73
- },
74
- });
55
+ const showUpdateNotification = () => {
56
+ notifier.notify({
57
+ message: pkg.name === CMS_CLI_PACKAGE_NAME
58
+ ? i18n(`${i18nKey}.updateNotify.cmsUpdateNotification`, {
59
+ packageName: CMS_CLI_PACKAGE_NAME,
60
+ updateCommand: uiCommandReference('{updateCommand}'),
61
+ })
62
+ : i18n(`${i18nKey}.updateNotify.cliUpdateNotification`, {
63
+ updateCommand: uiCommandReference('{updateCommand}'),
64
+ }),
65
+ defer: false,
66
+ boxenOptions: {
67
+ borderColor: UI_COLORS.MARIGOLD_DARK,
68
+ margin: 1,
69
+ padding: 1,
70
+ textAlignment: 'center',
71
+ borderStyle: 'round',
72
+ title: pkg.name === CMS_CLI_PACKAGE_NAME
73
+ ? null
74
+ : chalk.bold(i18n(`${i18nKey}.updateNotify.notifyTitle`)),
75
+ },
76
+ });
77
+ };
75
78
  const getTerminalWidth = () => {
76
79
  const width = yargs.terminalWidth();
77
80
  if (width >= 100)
@@ -121,6 +124,58 @@ const performChecks = argv => {
121
124
  const setRequestHeaders = () => {
122
125
  addUserAgentHeader('HubSpot CLI', pkg.version);
123
126
  };
127
+ const updateCLIVersion = async () => {
128
+ logger.debug('Checking for CLI updates', notifier);
129
+ if (!process.env.SKIP_HUBSPOT_CLI_AUTO_UPDATES &&
130
+ notifier &&
131
+ notifier.update) {
132
+ let updateInfo;
133
+ try {
134
+ updateInfo = await notifier.fetchInfo();
135
+ }
136
+ catch (e) {
137
+ logger.debug('Error fetching update info', e);
138
+ return;
139
+ }
140
+ // Update if the current version is not the latest version.
141
+ // Don't auto-update if the current version is a pre-release
142
+ // or if this would be a major version update
143
+ if (updateInfo.current.includes('-') &&
144
+ !['major', 'latest'].includes(updateInfo.type)) {
145
+ SpinniesManager.init({
146
+ succeedColor: 'white',
147
+ });
148
+ SpinniesManager.add('cliAutoUpdate', {
149
+ text: `New HubSpot CLI version available. Updating to version ${updateInfo.latest}`,
150
+ });
151
+ let showManualInstallHelp = false;
152
+ try {
153
+ if (await isGloballyInstalled()) {
154
+ await executeInstall(['@hubspot/cli@latest'], '-g');
155
+ SpinniesManager.succeed('cliAutoUpdate', {
156
+ text: `Successfully updated HubSpot CLI to version ${updateInfo.latest}`,
157
+ });
158
+ }
159
+ else {
160
+ SpinniesManager.fail('cliAutoUpdate', {
161
+ text: `Cannot auto-update the HubSpot CLI if it is not globall installed with NPM`,
162
+ });
163
+ showManualInstallHelp = true;
164
+ }
165
+ }
166
+ catch (e) {
167
+ logger.debug('Error updating CLI', e);
168
+ SpinniesManager.fail('cliAutoUpdate', {
169
+ text: `Failed to update HubSpot CLI to version ${updateInfo.latest}`,
170
+ });
171
+ showManualInstallHelp = true;
172
+ }
173
+ if (showManualInstallHelp) {
174
+ showUpdateNotification();
175
+ }
176
+ }
177
+ }
178
+ };
124
179
  const isTargetedCommand = (options, commandMap) => {
125
180
  const checkCommand = (options, commandMap) => {
126
181
  const currentCommand = options._[0];
@@ -138,17 +193,9 @@ const isTargetedCommand = (options, commandMap) => {
138
193
  };
139
194
  return checkCommand(options, commandMap);
140
195
  };
141
- const skipConfigAccountsSubCommands = {
142
- target: false,
143
- subCommands: {
144
- auth: { target: true },
145
- },
146
- };
147
196
  const SKIP_CONFIG_VALIDATION = {
148
197
  init: { target: true },
149
198
  auth: { target: true },
150
- accounts: skipConfigAccountsSubCommands,
151
- account: skipConfigAccountsSubCommands,
152
199
  };
153
200
  const handleDeprecatedEnvVariables = options => {
154
201
  // HUBSPOT_PORTAL_ID is deprecated, but we'll still support it for now
@@ -173,39 +220,9 @@ const injectAccountIdMiddleware = async (options) => {
173
220
  options.derivedAccountId = parseInt(process.env.HUBSPOT_ACCOUNT_ID, 10);
174
221
  }
175
222
  else {
176
- try {
177
- options.derivedAccountId = getAccountId(account);
178
- }
179
- catch (error) {
180
- logError(error);
181
- if (error.cause === DEFAULT_ACCOUNT_OVERRIDE_ERROR_INVALID_ID) {
182
- logger.log(i18n(`${i18nKey}.injectAccountIdMiddleware.invalidAccountId`, {
183
- overrideCommand: uiCommandReference('hs account create-override'),
184
- hsAccountFileName: DEFAULT_ACCOUNT_OVERRIDE_FILE_NAME,
185
- }));
186
- }
187
- if (error.cause === DEFAULT_ACCOUNT_OVERRIDE_ERROR_ACCOUNT_NOT_FOUND) {
188
- logger.log(i18n(`${i18nKey}.injectAccountIdMiddleware.accountNotFound`, {
189
- configPath: getConfigPath(),
190
- authCommand: uiCommandReference('hs account auth'),
191
- hsAccountFileName: DEFAULT_ACCOUNT_OVERRIDE_FILE_NAME,
192
- }));
193
- }
194
- process.exit(EXIT_CODES.ERROR);
195
- }
223
+ options.derivedAccountId = getAccountId(account);
196
224
  }
197
225
  };
198
- const skipLoadConfigAccountSubCommands = {
199
- target: false,
200
- subCommands: { auth: { target: true } },
201
- };
202
- const SKIP_LOAD_CONFIG = {
203
- account: skipLoadConfigAccountSubCommands,
204
- accounts: skipLoadConfigAccountSubCommands,
205
- };
206
- const SKIP_CONFIG_FLAG_VALIDATION = {
207
- config: { target: false, subCommands: { migrate: { target: true } } },
208
- };
209
226
  const loadConfigMiddleware = async (options) => {
210
227
  // Skip this when no command is provided
211
228
  if (!options._.length) {
@@ -217,21 +234,13 @@ const loadConfigMiddleware = async (options) => {
217
234
  process.exit(EXIT_CODES.ERROR);
218
235
  }
219
236
  };
220
- if (configFileExists(true) &&
221
- options.config &&
222
- !isTargetedCommand(options, SKIP_CONFIG_FLAG_VALIDATION)) {
237
+ if (configFileExists(true) && options.config) {
223
238
  logger.error(i18n(`${i18nKey}.loadConfigMiddleware.configFileExists`, {
224
239
  configPath: getConfigPath(),
225
240
  }));
226
241
  process.exit(EXIT_CODES.ERROR);
227
242
  }
228
- // There are two commands where we don't load config:
229
- // 1. `hs init`
230
- // 2. `hs account auth` only if the global config file does not exist
231
- if (!isTargetedCommand(options, {
232
- init: { target: true },
233
- }) &&
234
- !(isTargetedCommand(options, SKIP_LOAD_CONFIG) && !configFileExists(true))) {
243
+ else if (!isTargetedCommand(options, { init: { target: true } })) {
235
244
  const { config: configPath } = options;
236
245
  const config = loadConfig(configPath, options);
237
246
  // We don't run validateConfig() for auth because users should be able to run it when
@@ -252,7 +261,6 @@ const checkAndWarnGitInclusionMiddleware = options => {
252
261
  const accountsSubCommands = {
253
262
  target: false,
254
263
  subCommands: {
255
- auth: { target: true },
256
264
  clean: { target: true },
257
265
  list: { target: true },
258
266
  ls: { target: true },
@@ -268,7 +276,6 @@ const sandboxesSubCommands = {
268
276
  const SKIP_ACCOUNT_VALIDATION = {
269
277
  init: { target: true },
270
278
  auth: { target: true },
271
- config: { target: false, subCommands: { migrate: { target: true } } },
272
279
  account: accountsSubCommands,
273
280
  accounts: accountsSubCommands,
274
281
  sandbox: sandboxesSubCommands,
@@ -292,6 +299,7 @@ const argv = yargs
292
299
  // loadConfigMiddleware loads the new hidden config for all commands
293
300
  .middleware([
294
301
  setLogLevel,
302
+ updateCLIVersion,
295
303
  setRequestHeaders,
296
304
  handleDeprecatedEnvVariables,
297
305
  loadConfigMiddleware,
@@ -6,23 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.describe = exports.command = void 0;
7
7
  exports.handler = handler;
8
8
  exports.builder = builder;
9
- const fs_1 = __importDefault(require("fs"));
10
9
  const logger_1 = require("@hubspot/local-dev-lib/logger");
11
10
  const personalAccessKey_1 = require("@hubspot/local-dev-lib/personalAccessKey");
12
11
  const config_1 = require("@hubspot/local-dev-lib/config");
13
12
  const getAccountIdentifier_1 = require("@hubspot/local-dev-lib/config/getAccountIdentifier");
14
13
  const index_1 = require("@hubspot/local-dev-lib/errors/index");
15
- const config_2 = require("@hubspot/local-dev-lib/config");
16
14
  const usageTracking_1 = require("../../lib/usageTracking");
17
15
  const lang_1 = require("../../lib/lang");
18
16
  const exitCodes_1 = require("../../lib/enums/exitCodes");
19
17
  const commonOpts_1 = require("../../lib/commonOpts");
20
18
  const promptUtils_1 = require("../../lib/prompts/promptUtils");
21
- const accountsPrompt_1 = require("../../lib/prompts/accountsPrompt");
22
19
  const table_1 = require("../../lib/ui/table");
23
20
  const SpinniesManager_1 = __importDefault(require("../../lib/ui/SpinniesManager"));
24
21
  const ui_1 = require("../../lib/ui");
25
- const errorHandlers_1 = require("../../lib/errorHandlers");
26
22
  const i18nKey = 'commands.account.subcommands.clean';
27
23
  exports.command = 'clean';
28
24
  exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
@@ -74,52 +70,25 @@ async function handler(args) {
74
70
  logger_1.logger.log((0, table_1.getTableContents)(accountsToRemove.map(p => [
75
71
  (0, ui_1.uiAccountDescription)((0, getAccountIdentifier_1.getAccountIdentifier)(p)),
76
72
  ]), { border: { bodyLeft: ' ' } }));
77
- let promptMessage = (0, lang_1.i18n)(oneAccountFound ? `${i18nKey}.confirm.one` : `${i18nKey}.confirm.other`, {
78
- count: accountsToRemove.length,
79
- });
80
- const accountOverride = (0, config_2.getCWDAccountOverride)();
81
- const overrideFilePath = (0, config_2.getDefaultAccountOverrideFilePath)();
82
- const accountOverrideMatches = accountsToRemove.some(account => account.name === accountOverride ||
83
- // @ts-expect-error: Default account override files can only exist with global config
84
- account.accountId === accountOverride);
85
- if (overrideFilePath && accountOverride && accountOverrideMatches) {
86
- promptMessage = `${promptMessage}${(0, lang_1.i18n)(`${i18nKey}.defaultAccountOverride`, {
87
- overrideFilePath,
88
- })}`;
89
- }
90
73
  const { accountsCleanPrompt } = await (0, promptUtils_1.promptUser)([
91
74
  {
92
75
  name: 'accountsCleanPrompt',
93
76
  type: 'confirm',
94
- message: promptMessage,
77
+ message: (0, lang_1.i18n)(oneAccountFound
78
+ ? `${i18nKey}.confirm.one`
79
+ : `${i18nKey}.confirm.other`, {
80
+ count: accountsToRemove.length,
81
+ }),
95
82
  },
96
83
  ]);
97
84
  if (accountsCleanPrompt) {
98
85
  logger_1.logger.log('');
99
- try {
100
- if (overrideFilePath) {
101
- fs_1.default.unlinkSync(overrideFilePath);
102
- }
103
- }
104
- catch (error) {
105
- (0, errorHandlers_1.logError)(error);
106
- }
107
86
  for (const accountToRemove of accountsToRemove) {
108
87
  await (0, config_1.deleteAccount)(accountToRemove.name);
109
88
  logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.removeSuccess`, {
110
89
  accountName: accountToRemove.name,
111
90
  }));
112
91
  }
113
- // Get updated version of the config
114
- (0, config_1.loadConfig)((0, config_1.getConfigPath)());
115
- const defaultAccount = (0, config_1.getConfigDefaultAccount)();
116
- if (defaultAccount &&
117
- accountsToRemove.some(p => p.name === defaultAccount)) {
118
- logger_1.logger.log();
119
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.replaceDefaultAccount`));
120
- const newDefaultAccount = await (0, accountsPrompt_1.selectAccountFromConfig)();
121
- (0, config_1.updateDefaultAccount)(newDefaultAccount);
122
- }
123
92
  }
124
93
  }
125
94
  else {
@@ -7,7 +7,6 @@ const config_1 = require("@hubspot/local-dev-lib/config");
7
7
  const personalAccessKey_1 = require("@hubspot/local-dev-lib/personalAccessKey");
8
8
  const yargsUtils_1 = require("../../lib/yargsUtils");
9
9
  const lang_1 = require("../../lib/lang");
10
- const index_1 = require("../../lib/ui/index");
11
10
  const table_1 = require("../../lib/ui/table");
12
11
  const i18nKey = 'commands.account.subcommands.info';
13
12
  exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
@@ -21,28 +20,6 @@ async function handler(args) {
21
20
  let scopeGroups = [];
22
21
  const response = await (0, personalAccessKey_1.getAccessToken)(personalAccessKey, env, derivedAccountId);
23
22
  scopeGroups = response.scopeGroups.map(s => [s]);
24
- // If a default account is present in the config, display it
25
- const configPath = (0, config_1.getConfigPath)();
26
- if (configPath) {
27
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.defaultAccountTitle`));
28
- logger_1.logger.log(`${(0, index_1.indent)(1)}${(0, lang_1.i18n)(`${i18nKey}.configPath`, {
29
- configPath,
30
- })}`);
31
- logger_1.logger.log(`${(0, index_1.indent)(1)}${(0, lang_1.i18n)(`${i18nKey}.defaultAccount`, {
32
- account: (0, config_1.getDisplayDefaultAccount)(),
33
- })}`);
34
- }
35
- // If a default account override is present, display it
36
- const overrideFilePath = (0, config_1.getDefaultAccountOverrideFilePath)();
37
- if (overrideFilePath) {
38
- logger_1.logger.log('');
39
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.overrideFilePathTitle`));
40
- logger_1.logger.log(`${(0, index_1.indent)(1)}${(0, lang_1.i18n)(`${i18nKey}.overrideFilePath`, { overrideFilePath })}`);
41
- logger_1.logger.log(`${(0, index_1.indent)(1)}${(0, lang_1.i18n)(`${i18nKey}.overrideAccount`, {
42
- account: (0, config_1.getConfigDefaultAccount)(),
43
- })}`);
44
- }
45
- logger_1.logger.log('');
46
23
  logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.name`, { name: name }));
47
24
  logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.accountId`, { accountId: derivedAccountId }));
48
25
  logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.scopeGroups`));
@@ -7,7 +7,6 @@ const logger_1 = require("@hubspot/local-dev-lib/logger");
7
7
  const config_1 = require("@hubspot/local-dev-lib/config");
8
8
  const getAccountIdentifier_1 = require("@hubspot/local-dev-lib/config/getAccountIdentifier");
9
9
  const commonOpts_1 = require("../../lib/commonOpts");
10
- const index_1 = require("../../lib/ui/index");
11
10
  const table_1 = require("../../lib/ui/table");
12
11
  const usageTracking_1 = require("../../lib/usageTracking");
13
12
  const accountTypes_1 = require("../../lib/accountTypes");
@@ -82,27 +81,10 @@ async function handler(args) {
82
81
  (0, lang_1.i18n)(`${i18nKey}.labels.accountId`),
83
82
  (0, lang_1.i18n)(`${i18nKey}.labels.authType`),
84
83
  ]));
85
- // If a default account is present in the config, display it
86
- if (configPath) {
87
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.defaultAccountTitle`));
88
- logger_1.logger.log(`${(0, index_1.indent)(1)}${(0, lang_1.i18n)(`${i18nKey}.configPath`, {
89
- configPath,
90
- })}`);
91
- logger_1.logger.log(`${(0, index_1.indent)(1)}${(0, lang_1.i18n)(`${i18nKey}.defaultAccount`, {
92
- account: (0, config_1.getDisplayDefaultAccount)(),
93
- })}`);
94
- logger_1.logger.log('');
95
- }
96
- // If a default account override is present, display it
97
- const overrideFilePath = (0, config_1.getDefaultAccountOverrideFilePath)();
98
- if (overrideFilePath) {
99
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.overrideFilePathTitle`));
100
- logger_1.logger.log(`${(0, index_1.indent)(1)}${(0, lang_1.i18n)(`${i18nKey}.overrideFilePath`, { overrideFilePath })}`);
101
- logger_1.logger.log(`${(0, index_1.indent)(1)}${(0, lang_1.i18n)(`${i18nKey}.overrideAccount`, {
102
- account: (0, config_1.getConfigDefaultAccount)(),
103
- })}`);
104
- logger_1.logger.log('');
105
- }
84
+ logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.configPath`, { configPath: configPath }));
85
+ logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.defaultAccount`, {
86
+ account: (0, config_1.getConfigDefaultAccount)(),
87
+ }));
106
88
  logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.accounts`));
107
89
  logger_1.logger.log((0, table_1.getTableContents)(accountData, { border: { bodyLeft: ' ' } }));
108
90
  }
@@ -1,18 +1,12 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.describe = exports.command = void 0;
7
4
  exports.handler = handler;
8
5
  exports.builder = builder;
9
- const fs_1 = __importDefault(require("fs"));
10
6
  const logger_1 = require("@hubspot/local-dev-lib/logger");
11
7
  const config_1 = require("@hubspot/local-dev-lib/config");
12
8
  const usageTracking_1 = require("../../lib/usageTracking");
13
9
  const lang_1 = require("../../lib/lang");
14
- const promptUtils_1 = require("../../lib/prompts/promptUtils");
15
- const errorHandlers_1 = require("../../lib/errorHandlers");
16
10
  const accountsPrompt_1 = require("../../lib/prompts/accountsPrompt");
17
11
  const commonOpts_1 = require("../../lib/commonOpts");
18
12
  const i18nKey = 'commands.account.subcommands.remove';
@@ -32,28 +26,6 @@ async function handler(args) {
32
26
  }
33
27
  (0, usageTracking_1.trackCommandUsage)('accounts-remove', undefined, (0, config_1.getAccountId)(accountToRemove));
34
28
  const currentDefaultAccount = (0, config_1.getConfigDefaultAccount)();
35
- const accountOverride = (0, config_1.getCWDAccountOverride)();
36
- const overrideFilePath = (0, config_1.getDefaultAccountOverrideFilePath)();
37
- if (overrideFilePath &&
38
- accountOverride &&
39
- accountOverride === accountToRemove) {
40
- const { deleteOverrideFile } = await (0, promptUtils_1.promptUser)({
41
- type: 'confirm',
42
- name: 'deleteOverrideFile',
43
- message: (0, lang_1.i18n)(`${i18nKey}.prompts.deleteOverrideFile`, {
44
- overrideFilePath,
45
- accountName: accountToRemove,
46
- }),
47
- });
48
- try {
49
- if (deleteOverrideFile) {
50
- fs_1.default.unlinkSync(overrideFilePath);
51
- }
52
- }
53
- catch (error) {
54
- (0, errorHandlers_1.logError)(error);
55
- }
56
- }
57
29
  await (0, config_1.deleteAccount)(accountToRemove);
58
30
  logger_1.logger.success((0, lang_1.i18n)(`${i18nKey}.success.accountRemoved`, {
59
31
  accountName: accountToRemove,
@@ -8,7 +8,6 @@ const config_1 = require("@hubspot/local-dev-lib/config");
8
8
  const usageTracking_1 = require("../../lib/usageTracking");
9
9
  const lang_1 = require("../../lib/lang");
10
10
  const accountsPrompt_1 = require("../../lib/prompts/accountsPrompt");
11
- const ui_1 = require("../../lib/ui");
12
11
  const i18nKey = 'commands.account.subcommands.use';
13
12
  exports.command = 'use [account]';
14
13
  exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
@@ -25,18 +24,6 @@ async function handler(args) {
25
24
  newDefaultAccount = await (0, accountsPrompt_1.selectAccountFromConfig)();
26
25
  }
27
26
  (0, usageTracking_1.trackCommandUsage)('accounts-use', undefined, (0, config_1.getAccountId)(newDefaultAccount));
28
- const accountOverride = (0, config_1.getCWDAccountOverride)();
29
- const overrideFilePath = (0, config_1.getDefaultAccountOverrideFilePath)();
30
- if (accountOverride && overrideFilePath) {
31
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.accountOverride`, {
32
- accountOverride,
33
- }));
34
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.accountOverrideCommands`, {
35
- createOverrideCommand: (0, ui_1.uiCommandReference)('hs account create-override'),
36
- removeOverrideCommand: (0, ui_1.uiCommandReference)('hs account remove-override'),
37
- }));
38
- logger_1.logger.log('');
39
- }
40
27
  (0, config_1.updateDefaultAccount)(newDefaultAccount);
41
28
  return logger_1.logger.success((0, lang_1.i18n)(`${i18nKey}.success.defaultAccountUpdated`, {
42
29
  accountName: newDefaultAccount,
@@ -37,30 +37,24 @@ exports.describe = exports.command = void 0;
37
37
  exports.builder = builder;
38
38
  const commonOpts_1 = require("../lib/commonOpts");
39
39
  const lang_1 = require("../lib/lang");
40
- const auth = __importStar(require("./account/auth"));
41
40
  const list = __importStar(require("./account/list"));
42
41
  const rename = __importStar(require("./account/rename"));
43
42
  const use = __importStar(require("./account/use"));
44
43
  const info = __importStar(require("./account/info"));
45
44
  const remove = __importStar(require("./account/remove"));
46
45
  const clean = __importStar(require("./account/clean"));
47
- const createOverride = __importStar(require("./account/createOverride"));
48
- const removeOverride = __importStar(require("./account/removeOverride"));
49
46
  const i18nKey = 'commands.account';
50
47
  exports.command = ['account', 'accounts'];
51
48
  exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
52
49
  function builder(yargs) {
53
50
  (0, commonOpts_1.addGlobalOptions)(yargs);
54
51
  yargs
55
- .command(auth)
56
52
  .command(list)
57
53
  .command(rename)
58
54
  .command(use)
59
55
  .command(info)
60
56
  .command(remove)
61
57
  .command(clean)
62
- .command(createOverride)
63
- .command(removeOverride)
64
58
  .demandCommand(1, '');
65
59
  return yargs;
66
60
  }
package/commands/auth.js CHANGED
@@ -47,12 +47,8 @@ async function handler(args) {
47
47
  if (configPath) {
48
48
  (0, git_1.checkAndWarnGitInclusion)(configPath);
49
49
  }
50
- if ((0, config_2.configFileExists)(true)) {
51
- const globalConfigPath = (0, config_2.getConfigPath)('', true);
52
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.globalConfigFileExists`, {
53
- configPath: globalConfigPath,
54
- authCommand: (0, ui_1.uiCommandReference)('hs account auth'),
55
- }));
50
+ if (!(0, config_2.getConfigPath)(configFlagValue)) {
51
+ logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.noConfigFileFound`));
56
52
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
57
53
  }
58
54
  (0, usageTracking_1.trackCommandUsage)('auth');
@@ -1,13 +1 @@
1
- import { ArgumentsCamelCase, Argv } from 'yargs';
2
- import { CommonArgs } from '../../types/Yargs';
3
- import { CmsPublishMode } from '@hubspot/local-dev-lib/types/Files';
4
- export declare const command = "set";
5
- export declare const describe: string;
6
- type ConfigSetArgs = CommonArgs & {
7
- defaultCmsPublishMode: CmsPublishMode;
8
- allowUsageTracking?: boolean;
9
- httpTimeout?: string;
10
- };
11
- export declare function handler(args: ArgumentsCamelCase<ConfigSetArgs>): Promise<void>;
12
- export declare function builder(yargs: Argv): Argv<ConfigSetArgs>;
13
1
  export {};
@@ -1,23 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.describe = exports.command = void 0;
4
- exports.handler = handler;
5
- exports.builder = builder;
6
- const lang_1 = require("../../lib/lang");
7
- const usageTracking_1 = require("../../lib/usageTracking");
8
- const promptUtils_1 = require("../../lib/prompts/promptUtils");
9
- const exitCodes_1 = require("../../lib/enums/exitCodes");
10
- const configOptions_1 = require("../../lib/configOptions");
3
+ // @ts-nocheck
4
+ const { i18n } = require('../../lib/lang');
5
+ const { trackCommandUsage } = require('../../lib/usageTracking');
6
+ const { promptUser } = require('../../lib/prompts/promptUtils');
7
+ const { EXIT_CODES } = require('../../lib/enums/exitCodes');
8
+ const { setDefaultCmsPublishMode, setHttpTimeout, setAllowUsageTracking, } = require('../../lib/configOptions');
11
9
  const i18nKey = 'commands.config.subcommands.set';
12
10
  exports.command = 'set';
13
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
14
- async function selectOptions() {
15
- const { cmsPublishMode } = await (0, promptUtils_1.promptUser)([
11
+ exports.describe = i18n(`${i18nKey}.describe`);
12
+ const selectOptions = async () => {
13
+ const { cmsPublishMode } = await promptUser([
16
14
  {
17
15
  type: 'list',
16
+ look: false,
18
17
  name: 'cmsPublishMode',
19
18
  pageSize: 20,
20
- message: (0, lang_1.i18n)(`${i18nKey}.promptMessage`),
19
+ message: i18n(`${i18nKey}.promptMessage`),
21
20
  choices: [
22
21
  {
23
22
  name: 'Default CMS publish mode',
@@ -29,52 +28,52 @@ async function selectOptions() {
29
28
  },
30
29
  ]);
31
30
  return cmsPublishMode;
32
- }
33
- async function handleConfigUpdate(accountId, options) {
31
+ };
32
+ const handleConfigUpdate = async (accountId, options) => {
34
33
  const { allowUsageTracking, defaultCmsPublishMode, httpTimeout } = options;
35
34
  if (typeof defaultCmsPublishMode !== 'undefined') {
36
- await (0, configOptions_1.setDefaultCmsPublishMode)({ defaultCmsPublishMode, accountId });
35
+ await setDefaultCmsPublishMode({ defaultCmsPublishMode, accountId });
37
36
  return true;
38
37
  }
39
38
  else if (typeof httpTimeout !== 'undefined') {
40
- await (0, configOptions_1.setHttpTimeout)({ httpTimeout, accountId });
39
+ await setHttpTimeout({ httpTimeout, accountId });
41
40
  return true;
42
41
  }
43
42
  else if (typeof allowUsageTracking !== 'undefined') {
44
- await (0, configOptions_1.setAllowUsageTracking)({ allowUsageTracking, accountId });
43
+ await setAllowUsageTracking({ allowUsageTracking, accountId });
45
44
  return true;
46
45
  }
47
46
  return false;
48
- }
49
- async function handler(args) {
50
- const { derivedAccountId } = args;
51
- (0, usageTracking_1.trackCommandUsage)('config-set', {}, derivedAccountId);
52
- const configUpdated = await handleConfigUpdate(derivedAccountId, args);
47
+ };
48
+ exports.handler = async (options) => {
49
+ const { derivedAccountId } = options;
50
+ trackCommandUsage('config-set', null, derivedAccountId);
51
+ const configUpdated = await handleConfigUpdate(derivedAccountId, options);
53
52
  if (!configUpdated) {
54
53
  const selectedOptions = await selectOptions();
55
54
  await handleConfigUpdate(derivedAccountId, selectedOptions);
56
55
  }
57
- process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
58
- }
59
- function builder(yargs) {
56
+ process.exit(EXIT_CODES.SUCCESS);
57
+ };
58
+ exports.builder = yargs => {
60
59
  yargs
61
60
  .options({
62
61
  'default-cms-publish-mode': {
63
- describe: (0, lang_1.i18n)(`${i18nKey}.options.defaultMode.describe`),
62
+ describe: i18n(`${i18nKey}.options.defaultMode.describe`),
64
63
  type: 'string',
65
64
  },
66
65
  'allow-usage-tracking': {
67
- describe: (0, lang_1.i18n)(`${i18nKey}.options.allowUsageTracking.describe`),
66
+ describe: i18n(`${i18nKey}.options.allowUsageTracking.describe`),
68
67
  type: 'boolean',
69
68
  },
70
69
  'http-timeout': {
71
- describe: (0, lang_1.i18n)(`${i18nKey}.options.httpTimeout.describe`),
70
+ describe: i18n(`${i18nKey}.options.httpTimeout.describe`),
72
71
  type: 'string',
73
72
  },
74
73
  })
75
74
  .conflicts('defaultCmsPublishMode', 'allowUsageTracking')
76
75
  .conflicts('defaultCmsPublishMode', 'httpTimeout')
77
76
  .conflicts('allowUsageTracking', 'httpTimeout')
78
- .example([['$0 config set', (0, lang_1.i18n)(`${i18nKey}.examples.default`)]]);
77
+ .example([['$0 config set', i18n(`${i18nKey}.examples.default`)]]);
79
78
  return yargs;
80
- }
79
+ };
@@ -1,4 +1 @@
1
- import { Argv } from 'yargs';
2
- export declare const command = "config";
3
- export declare const describe: string;
4
- export declare function builder(yargs: Argv): Argv;
1
+ export {};