@hubspot/cli 7.4.7-experimental.0 → 7.4.7

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 (225) hide show
  1. package/api/migrate.d.ts +14 -4
  2. package/api/migrate.js +16 -2
  3. package/bin/cli.js +8 -183
  4. package/commands/account/auth.d.ts +10 -0
  5. package/commands/account/auth.js +188 -0
  6. package/commands/account/clean.js +38 -5
  7. package/commands/account/createOverride.d.ts +10 -0
  8. package/commands/account/createOverride.js +104 -0
  9. package/commands/account/info.js +38 -4
  10. package/commands/account/list.js +23 -5
  11. package/commands/account/remove.js +36 -2
  12. package/commands/account/removeOverride.d.ts +10 -0
  13. package/commands/account/removeOverride.js +76 -0
  14. package/commands/account/use.js +25 -3
  15. package/commands/account.js +7 -2
  16. package/commands/app/migrate.d.ts +6 -6
  17. package/commands/app/migrate.js +62 -45
  18. package/commands/app.js +0 -2
  19. package/commands/auth.js +14 -11
  20. package/commands/cms/lighthouseScore.js +7 -3
  21. package/commands/cms.js +1 -2
  22. package/commands/completion.js +2 -3
  23. package/commands/config/migrate.d.ts +10 -0
  24. package/commands/config/migrate.js +84 -0
  25. package/commands/config/set.d.ts +10 -0
  26. package/commands/config/set.js +34 -29
  27. package/commands/config.d.ts +4 -1
  28. package/commands/config.js +45 -11
  29. package/commands/create/api-sample.js +3 -1
  30. package/commands/create/website-theme.js +1 -1
  31. package/commands/create.js +7 -8
  32. package/commands/customObject/schema/delete.js +4 -1
  33. package/commands/customObject/schema/fetch-all.js +2 -1
  34. package/commands/customObject/schema/fetch.js +2 -1
  35. package/commands/customObject.js +3 -4
  36. package/commands/doctor.js +5 -6
  37. package/commands/feedback.js +7 -8
  38. package/commands/fetch.js +6 -7
  39. package/commands/filemanager.js +1 -2
  40. package/commands/function.js +1 -2
  41. package/commands/hubdb/clear.js +5 -6
  42. package/commands/hubdb/create.js +7 -8
  43. package/commands/hubdb/delete.js +8 -7
  44. package/commands/hubdb/fetch.js +4 -5
  45. package/commands/hubdb.js +1 -2
  46. package/commands/init.js +18 -20
  47. package/commands/lint.js +3 -4
  48. package/commands/list.js +5 -6
  49. package/commands/logs.js +12 -13
  50. package/commands/module/marketplace-validate.js +5 -6
  51. package/commands/module.js +1 -3
  52. package/commands/mv.js +4 -5
  53. package/commands/open.js +4 -5
  54. package/commands/project/add.d.ts +3 -7
  55. package/commands/project/add.js +28 -23
  56. package/commands/project/cloneApp.d.ts +6 -8
  57. package/commands/project/cloneApp.js +49 -45
  58. package/commands/project/create.d.ts +10 -1
  59. package/commands/project/create.js +85 -63
  60. package/commands/project/deploy.d.ts +3 -6
  61. package/commands/project/deploy.js +27 -25
  62. package/commands/project/dev/deprecatedFlow.js +32 -25
  63. package/commands/project/dev/index.d.ts +4 -2
  64. package/commands/project/dev/index.js +31 -18
  65. package/commands/project/dev/unifiedFlow.js +10 -11
  66. package/commands/project/download.d.ts +3 -7
  67. package/commands/project/download.js +18 -19
  68. package/commands/project/installDeps.d.ts +6 -1
  69. package/commands/project/installDeps.js +48 -32
  70. package/commands/project/listBuilds.d.ts +3 -7
  71. package/commands/project/listBuilds.js +32 -27
  72. package/commands/project/logs.d.ts +10 -1
  73. package/commands/project/logs.js +73 -65
  74. package/commands/project/migrate.d.ts +6 -0
  75. package/commands/project/migrate.js +71 -0
  76. package/commands/project/migrateApp.d.ts +3 -8
  77. package/commands/project/migrateApp.js +23 -20
  78. package/commands/project/open.d.ts +3 -7
  79. package/commands/project/open.js +29 -21
  80. package/commands/project/upload.d.ts +9 -1
  81. package/commands/project/upload.js +78 -54
  82. package/commands/project/watch.d.ts +6 -1
  83. package/commands/project/watch.js +95 -61
  84. package/commands/project.d.ts +3 -1
  85. package/commands/project.js +47 -35
  86. package/commands/remove.js +7 -5
  87. package/commands/sandbox/create.js +10 -11
  88. package/commands/sandbox/delete.js +18 -19
  89. package/commands/sandbox.js +1 -2
  90. package/commands/secret/addSecret.js +5 -6
  91. package/commands/secret/deleteSecret.js +12 -9
  92. package/commands/secret/listSecret.js +3 -4
  93. package/commands/secret/updateSecret.js +9 -8
  94. package/commands/secret.js +1 -2
  95. package/commands/theme/generate-selectors.js +5 -6
  96. package/commands/theme/marketplace-validate.js +5 -6
  97. package/commands/theme/preview.js +16 -16
  98. package/commands/theme.js +1 -2
  99. package/commands/upload.js +23 -24
  100. package/commands/watch.js +18 -19
  101. package/lang/en.d.ts +2806 -0
  102. package/lang/en.js +2659 -3300
  103. package/lang/en.lyaml +98 -41
  104. package/lib/accountTypes.d.ts +1 -0
  105. package/lib/accountTypes.js +12 -0
  106. package/lib/app/migrate.d.ts +10 -4
  107. package/lib/app/migrate.js +208 -94
  108. package/lib/app/migrate_legacy.d.ts +2 -2
  109. package/lib/app/migrate_legacy.js +10 -7
  110. package/lib/buildAccount.d.ts +1 -2
  111. package/lib/buildAccount.js +11 -10
  112. package/lib/commonOpts.d.ts +3 -4
  113. package/lib/commonOpts.js +46 -18
  114. package/lib/configMigrate.d.ts +2 -0
  115. package/lib/configMigrate.js +104 -0
  116. package/lib/configOptions.js +11 -10
  117. package/lib/constants.d.ts +4 -0
  118. package/lib/constants.js +5 -1
  119. package/lib/dependencyManagement.js +2 -2
  120. package/lib/doctor/Diagnosis.d.ts +1 -2
  121. package/lib/doctor/Diagnosis.js +19 -16
  122. package/lib/doctor/DiagnosticInfoBuilder.d.ts +2 -1
  123. package/lib/doctor/DiagnosticInfoBuilder.js +10 -9
  124. package/lib/doctor/Doctor.d.ts +1 -0
  125. package/lib/doctor/Doctor.js +57 -44
  126. package/lib/errorHandlers/index.js +6 -7
  127. package/lib/errorHandlers/suppressError.js +6 -7
  128. package/lib/generateSelectors.js +1 -2
  129. package/lib/hasFeature.d.ts +3 -1
  130. package/lib/middleware/__test__/configMiddleware.test.d.ts +1 -0
  131. package/lib/middleware/__test__/configMiddleware.test.js +194 -0
  132. package/lib/middleware/__test__/gitMiddleware.test.d.ts +1 -0
  133. package/lib/middleware/__test__/gitMiddleware.test.js +76 -0
  134. package/lib/middleware/__test__/notificationsMiddleware.test.d.ts +1 -0
  135. package/lib/middleware/__test__/notificationsMiddleware.test.js +10 -0
  136. package/lib/middleware/__test__/requestMiddleware.test.d.ts +1 -0
  137. package/lib/middleware/__test__/requestMiddleware.test.js +20 -0
  138. package/lib/middleware/__test__/utils.test.d.ts +1 -0
  139. package/lib/middleware/__test__/utils.test.js +53 -0
  140. package/lib/middleware/__test__/yargsChecksMiddleware.test.d.ts +1 -0
  141. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +81 -0
  142. package/lib/middleware/configMiddleware.d.ts +13 -0
  143. package/lib/middleware/configMiddleware.js +116 -0
  144. package/lib/middleware/fireAlarmMiddleware.d.ts +4 -0
  145. package/lib/middleware/fireAlarmMiddleware.js +123 -0
  146. package/lib/middleware/gitMiddleware.d.ts +2 -0
  147. package/lib/middleware/gitMiddleware.js +14 -0
  148. package/lib/middleware/notificationsMiddleware.d.ts +1 -0
  149. package/lib/middleware/notificationsMiddleware.js +38 -0
  150. package/lib/middleware/requestMiddleware.d.ts +1 -0
  151. package/lib/middleware/requestMiddleware.js +11 -0
  152. package/lib/middleware/utils.d.ts +8 -0
  153. package/lib/middleware/utils.js +17 -0
  154. package/lib/middleware/yargsChecksMiddleware.d.ts +4 -0
  155. package/lib/middleware/yargsChecksMiddleware.js +24 -0
  156. package/lib/oauth.js +1 -2
  157. package/lib/process.js +1 -2
  158. package/lib/projects/ProjectLogsManager.d.ts +1 -1
  159. package/lib/projects/ProjectLogsManager.js +16 -21
  160. package/lib/projects/buildAndDeploy.js +28 -39
  161. package/lib/projects/config.d.ts +9 -0
  162. package/lib/projects/config.js +79 -0
  163. package/lib/projects/create.js +5 -6
  164. package/lib/projects/ensureProjectExists.d.ts +11 -0
  165. package/lib/projects/ensureProjectExists.js +97 -0
  166. package/lib/{DevServerManager.d.ts → projects/localDev/DevServerManager.d.ts} +1 -1
  167. package/lib/{DevServerManager.js → projects/localDev/DevServerManager.js} +6 -6
  168. package/lib/{DevServerManagerV2.d.ts → projects/localDev/DevServerManagerV2.d.ts} +1 -1
  169. package/lib/{DevServerManagerV2.js → projects/localDev/DevServerManagerV2.js} +3 -4
  170. package/lib/{LocalDevManager.d.ts → projects/localDev/LocalDevManager.d.ts} +1 -1
  171. package/lib/{LocalDevManager.js → projects/localDev/LocalDevManager.js} +49 -82
  172. package/lib/{LocalDevManagerV2.d.ts → projects/localDev/LocalDevManagerV2.d.ts} +2 -2
  173. package/lib/{LocalDevManagerV2.js → projects/localDev/LocalDevManagerV2.js} +43 -75
  174. package/lib/{localDev.d.ts → projects/localDev/helpers.d.ts} +5 -4
  175. package/lib/{localDev.js → projects/localDev/helpers.js} +97 -114
  176. package/lib/projects/ui.d.ts +1 -0
  177. package/lib/projects/ui.js +15 -0
  178. package/lib/projects/upload.d.ts +13 -2
  179. package/lib/projects/upload.js +18 -34
  180. package/lib/projects/urls.d.ts +1 -0
  181. package/lib/projects/urls.js +6 -0
  182. package/lib/projects/watch.d.ts +1 -1
  183. package/lib/projects/watch.js +21 -18
  184. package/lib/prompts/accountNamePrompt.js +16 -13
  185. package/lib/prompts/accountsPrompt.js +1 -2
  186. package/lib/prompts/cmsFieldPrompt.js +1 -2
  187. package/lib/prompts/createApiSamplePrompt.js +4 -5
  188. package/lib/prompts/createFunctionPrompt.js +13 -14
  189. package/lib/prompts/createModulePrompt.js +8 -9
  190. package/lib/prompts/createProjectPrompt.d.ts +11 -4
  191. package/lib/prompts/createProjectPrompt.js +14 -9
  192. package/lib/prompts/createTemplatePrompt.js +1 -2
  193. package/lib/prompts/downloadProjectPrompt.js +3 -4
  194. package/lib/prompts/installPublicAppPrompt.js +6 -5
  195. package/lib/prompts/personalAccessKeyPrompt.js +17 -18
  196. package/lib/prompts/previewPrompt.js +5 -6
  197. package/lib/prompts/projectAddPrompt.js +4 -5
  198. package/lib/prompts/projectDevTargetAccountPrompt.js +11 -12
  199. package/lib/prompts/projectNamePrompt.js +5 -6
  200. package/lib/prompts/projectsLogsPrompt.js +3 -2
  201. package/lib/prompts/promptUtils.d.ts +1 -1
  202. package/lib/prompts/sandboxesPrompt.js +5 -6
  203. package/lib/prompts/secretPrompt.js +2 -3
  204. package/lib/prompts/selectHubDBTablePrompt.js +11 -8
  205. package/lib/prompts/selectPublicAppPrompt.js +6 -7
  206. package/lib/prompts/setAsDefaultAccountPrompt.js +1 -2
  207. package/lib/prompts/uploadPrompt.js +4 -5
  208. package/lib/sandboxSync.js +15 -14
  209. package/lib/sandboxes.js +12 -13
  210. package/lib/serverlessLogs.js +4 -6
  211. package/lib/ui/SpinniesManager.d.ts +1 -1
  212. package/lib/ui/boxen.d.ts +5 -0
  213. package/lib/ui/boxen.js +30 -0
  214. package/lib/ui/git.js +8 -9
  215. package/lib/ui/index.d.ts +4 -2
  216. package/lib/ui/index.js +16 -16
  217. package/lib/ui/logger.d.ts +10 -0
  218. package/lib/ui/logger.js +15 -0
  219. package/lib/ui/serverlessFunctionLogs.js +2 -3
  220. package/lib/ui/spinniesUtils.d.ts +5 -5
  221. package/lib/yargsUtils.d.ts +1 -1
  222. package/package.json +7 -6
  223. package/types/Yargs.d.ts +5 -11
  224. package/lib/projects/index.d.ts +0 -20
  225. package/lib/projects/index.js +0 -195
package/commands/auth.js CHANGED
@@ -22,7 +22,6 @@ const oauth_1 = require("../lib/oauth");
22
22
  const exitCodes_1 = require("../lib/enums/exitCodes");
23
23
  const ui_1 = require("../lib/ui");
24
24
  const index_1 = require("../lib/errorHandlers/index");
25
- const i18nKey = 'commands.auth';
26
25
  const TRACKING_STATUS = {
27
26
  STARTED: 'started',
28
27
  ERROR: 'error',
@@ -34,7 +33,7 @@ const ALLOWED_AUTH_METHODS = [
34
33
  ];
35
34
  const SUPPORTED_AUTHENTICATION_PROTOCOLS_TEXT = (0, text_1.commaSeparatedValues)(ALLOWED_AUTH_METHODS);
36
35
  exports.command = 'auth';
37
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
36
+ exports.describe = (0, lang_1.i18n)('commands.auth.describe');
38
37
  async function handler(args) {
39
38
  const { authType: authTypeFlagValue, config: configFlagValue, qa, providedAccountId, } = args;
40
39
  const authType = (authTypeFlagValue && authTypeFlagValue.toLowerCase()) ||
@@ -47,8 +46,12 @@ async function handler(args) {
47
46
  if (configPath) {
48
47
  (0, git_1.checkAndWarnGitInclusion)(configPath);
49
48
  }
50
- if (!(0, config_2.getConfigPath)(configFlagValue)) {
51
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.noConfigFileFound`));
49
+ if ((0, config_2.configFileExists)(true)) {
50
+ const globalConfigPath = (0, config_2.getConfigPath)('', true);
51
+ logger_1.logger.error((0, lang_1.i18n)(`commands.auth.errors.globalConfigFileExists`, {
52
+ configPath: globalConfigPath,
53
+ authCommand: (0, ui_1.uiCommandReference)('hs account auth'),
54
+ }));
52
55
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
53
56
  }
54
57
  (0, usageTracking_1.trackCommandUsage)('auth');
@@ -99,7 +102,7 @@ async function handler(args) {
99
102
  successAuthMethod = auth_1.PERSONAL_ACCESS_KEY_AUTH_METHOD.name;
100
103
  break;
101
104
  default:
102
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.unsupportedAuthType`, {
105
+ logger_1.logger.error((0, lang_1.i18n)('commands.auth.errors.unsupportedAuthType', {
103
106
  supportedProtocols: SUPPORTED_AUTHENTICATION_PROTOCOLS_TEXT,
104
107
  type: authType,
105
108
  }));
@@ -114,16 +117,16 @@ async function handler(args) {
114
117
  const setAsDefault = await (0, setAsDefaultAccountPrompt_1.setAsDefaultAccountPrompt)(accountName);
115
118
  logger_1.logger.log('');
116
119
  if (setAsDefault) {
117
- logger_1.logger.success((0, lang_1.i18n)(`lib.prompts.setAsDefaultAccountPrompt.setAsDefaultAccount`, {
120
+ logger_1.logger.success((0, lang_1.i18n)('lib.prompts.setAsDefaultAccountPrompt.setAsDefaultAccount', {
118
121
  accountName,
119
122
  }));
120
123
  }
121
124
  else {
122
- logger_1.logger.info((0, lang_1.i18n)(`lib.prompts.setAsDefaultAccountPrompt.keepingCurrentDefault`, {
125
+ logger_1.logger.info((0, lang_1.i18n)('lib.prompts.setAsDefaultAccountPrompt.keepingCurrentDefault', {
123
126
  accountName: (0, config_2.getConfigDefaultAccount)(),
124
127
  }));
125
128
  }
126
- logger_1.logger.success((0, lang_1.i18n)(`${i18nKey}.success.configFileUpdated`, {
129
+ logger_1.logger.success((0, lang_1.i18n)('commands.auth.success.configFileUpdated', {
127
130
  configFilename: config_1.DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
128
131
  authType: successAuthMethod,
129
132
  accountName,
@@ -140,7 +143,7 @@ async function handler(args) {
140
143
  function authBuilder(yargs) {
141
144
  yargs.options({
142
145
  'auth-type': {
143
- describe: (0, lang_1.i18n)(`${i18nKey}.options.authType.describe`),
146
+ describe: (0, lang_1.i18n)('commands.auth.options.authType.describe'),
144
147
  type: 'string',
145
148
  choices: [
146
149
  `${auth_1.PERSONAL_ACCESS_KEY_AUTH_METHOD.value}`,
@@ -149,14 +152,14 @@ function authBuilder(yargs) {
149
152
  default: auth_1.PERSONAL_ACCESS_KEY_AUTH_METHOD.value,
150
153
  },
151
154
  account: {
152
- describe: (0, lang_1.i18n)(`${i18nKey}.options.account.describe`),
155
+ describe: (0, lang_1.i18n)('commands.auth.options.account.describe'),
153
156
  type: 'string',
154
157
  alias: 'a',
155
158
  },
156
159
  });
157
160
  return yargs;
158
161
  }
159
- exports.builder = (0, yargsUtils_1.makeYargsBuilder)(authBuilder, exports.command, (0, lang_1.i18n)(`${i18nKey}.verboseDescribe`, {
162
+ exports.builder = (0, yargsUtils_1.makeYargsBuilder)(authBuilder, exports.command, (0, lang_1.i18n)('commands.auth.verboseDescribe', {
160
163
  authMethod: auth_1.PERSONAL_ACCESS_KEY_AUTH_METHOD.value,
161
164
  configName: config_1.DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
162
165
  }), {
@@ -20,7 +20,7 @@ const DEFAULT_TABLE_HEADER = [
20
20
  'SEO',
21
21
  ];
22
22
  exports.command = 'lighthouse-score [--theme]';
23
- exports.describe = false; // i18n(`${i18nKey}.describe`);
23
+ exports.describe = false;
24
24
  const selectTheme = async (accountId) => {
25
25
  const { theme: selectedTheme } = await promptUser([
26
26
  {
@@ -67,7 +67,9 @@ exports.handler = async (options) => {
67
67
  isValidTheme = false;
68
68
  }
69
69
  if (!isValidTheme) {
70
- logger.error(i18n(`commands.cms.subcommands.lighthouseScore.errors.themeNotFound`, { theme: themeToCheck }));
70
+ logger.error(i18n(`commands.cms.subcommands.lighthouseScore.errors.themeNotFound`, {
71
+ theme: themeToCheck,
72
+ }));
71
73
  process.exit(EXIT_CODES.ERROR);
72
74
  }
73
75
  }
@@ -206,7 +208,9 @@ exports.handler = async (options) => {
206
208
  });
207
209
  }
208
210
  logger.log();
209
- logger.info(i18n(`commands.cms.subcommands.lighthouseScore.info.targetDeviceNote`, { target }));
211
+ logger.info(i18n(`commands.cms.subcommands.lighthouseScore.info.targetDeviceNote`, {
212
+ target,
213
+ }));
210
214
  }
211
215
  else {
212
216
  logger.log(`Theme: ${themeToCheck}`);
package/commands/cms.js CHANGED
@@ -6,9 +6,8 @@ const { addConfigOptions, addAccountOptions, addGlobalOptions, } = require('../l
6
6
  const lighthouseScore = require('./cms/lighthouseScore');
7
7
  const convertFields = require('./cms/convertFields');
8
8
  const getReactModule = require('./cms/getReactModule');
9
- const i18nKey = 'commands.cms';
10
9
  exports.command = 'cms';
11
- exports.describe = i18n(`${i18nKey}.describe`);
10
+ exports.describe = i18n(`commands.cms.describe`);
12
11
  exports.builder = yargs => {
13
12
  addConfigOptions(yargs);
14
13
  addAccountOptions(yargs);
@@ -4,9 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const yargsParser = require('yargs-parser');
5
5
  const { i18n } = require('../lib/lang');
6
6
  const { trackCommandUsage } = require('../lib/usageTracking');
7
- const i18nKey = 'commands.completion';
8
7
  exports.command = 'completion';
9
- exports.describe = i18n(`${i18nKey}.describe`);
8
+ exports.describe = i18n('commands.completion.describe');
10
9
  exports.handler = async () => {
11
10
  await trackCommandUsage('completion');
12
11
  };
@@ -16,7 +15,7 @@ exports.builder = yargs => {
16
15
  yargs.completion();
17
16
  }
18
17
  yargs.example([
19
- ['$0 completion >> ~/.zshrc', i18n(`${i18nKey}.examples.default`)],
18
+ ['$0 completion >> ~/.zshrc', i18n('commands.completion.examples.default')],
20
19
  ]);
21
20
  return yargs;
22
21
  };
@@ -0,0 +1,10 @@
1
+ import { Argv, ArgumentsCamelCase } from 'yargs';
2
+ import { CommonArgs, ConfigArgs } from '../../types/Yargs';
3
+ export declare const describe: string;
4
+ export declare const command = "migrate";
5
+ type ConfigMigrateArgs = CommonArgs & ConfigArgs & {
6
+ force?: boolean;
7
+ };
8
+ export declare function handler(args: ArgumentsCamelCase<ConfigMigrateArgs>): Promise<void>;
9
+ export declare function builder(yargs: Argv): Argv<ConfigMigrateArgs>;
10
+ export {};
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.command = exports.describe = void 0;
7
+ exports.handler = handler;
8
+ exports.builder = builder;
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const config_1 = require("@hubspot/local-dev-lib/constants/config");
11
+ const migrate_1 = require("@hubspot/local-dev-lib/config/migrate");
12
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
13
+ const configMigrate_1 = require("../../lib/configMigrate");
14
+ const commonOpts_1 = require("../../lib/commonOpts");
15
+ const lang_1 = require("../../lib/lang");
16
+ const usageTracking_1 = require("../../lib/usageTracking");
17
+ const index_1 = require("../../lib/errorHandlers/index");
18
+ const exitCodes_1 = require("../../lib/enums/exitCodes");
19
+ exports.describe = (0, lang_1.i18n)('commands.config.subcommands.migrate.describe', {
20
+ deprecatedConfigPath: config_1.DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
21
+ globalConfigPath: config_1.GLOBAL_CONFIG_PATH,
22
+ });
23
+ exports.command = 'migrate';
24
+ async function handler(args) {
25
+ const { config: configPath, force, derivedAccountId } = args;
26
+ if (configPath && !fs_1.default.existsSync(configPath)) {
27
+ logger_1.logger.log((0, lang_1.i18n)('commands.config.subcommands.migrate.errors.configNotFound', {
28
+ configPath,
29
+ }));
30
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
31
+ }
32
+ const deprecatedConfigExists = (0, migrate_1.configFileExists)(false, configPath);
33
+ const globalConfigExists = (0, migrate_1.configFileExists)(true);
34
+ if (!deprecatedConfigExists) {
35
+ logger_1.logger.log((0, lang_1.i18n)('commands.config.subcommands.migrate.migrationAlreadyCompleted', {
36
+ deprecatedConfigPath: config_1.DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
37
+ }));
38
+ process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
39
+ }
40
+ try {
41
+ if (!globalConfigExists) {
42
+ await (0, configMigrate_1.handleMigration)(derivedAccountId, configPath);
43
+ }
44
+ else {
45
+ await (0, configMigrate_1.handleMerge)(derivedAccountId, configPath, force);
46
+ }
47
+ process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
48
+ }
49
+ catch (error) {
50
+ (0, usageTracking_1.trackCommandMetadataUsage)('config-migrate', {
51
+ command: 'hs config migrate',
52
+ type: 'Migration/merge',
53
+ successful: false,
54
+ }, derivedAccountId);
55
+ (0, index_1.logError)(error);
56
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
57
+ }
58
+ }
59
+ function builder(yargs) {
60
+ (0, commonOpts_1.addConfigOptions)(yargs);
61
+ yargs
62
+ .option('force', {
63
+ alias: 'f',
64
+ type: 'boolean',
65
+ default: false,
66
+ description: (0, lang_1.i18n)('commands.config.subcommands.migrate.options.force'),
67
+ })
68
+ .example([
69
+ [
70
+ '$0 config migrate',
71
+ (0, lang_1.i18n)('commands.config.subcommands.migrate.examples.default', {
72
+ deprecatedConfigPath: config_1.DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
73
+ globalConfigPath: config_1.GLOBAL_CONFIG_PATH,
74
+ }),
75
+ ],
76
+ [
77
+ '$0 config migrate --config=/path/to/config.yml',
78
+ (0, lang_1.i18n)('commands.config.subcommands.migrate.examples.configFlag', {
79
+ globalConfigPath: config_1.GLOBAL_CONFIG_PATH,
80
+ }),
81
+ ],
82
+ ]);
83
+ return yargs;
84
+ }
@@ -1 +1,11 @@
1
+ import { ArgumentsCamelCase, Argv } from 'yargs';
2
+ import { CommonArgs } from '../../types/Yargs';
3
+ import { CmsPublishMode } from '@hubspot/local-dev-lib/types/Files';
4
+ type ConfigSetArgs = CommonArgs & {
5
+ defaultCmsPublishMode: CmsPublishMode;
6
+ allowUsageTracking?: boolean;
7
+ httpTimeout?: string;
8
+ };
9
+ export declare function handler(args: ArgumentsCamelCase<ConfigSetArgs>): Promise<void>;
10
+ export declare function builder(yargs: Argv): Argv<ConfigSetArgs>;
1
11
  export {};
@@ -1,21 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
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');
3
+ exports.handler = handler;
4
+ exports.builder = builder;
5
+ const lang_1 = require("../../lib/lang");
6
+ const usageTracking_1 = require("../../lib/usageTracking");
7
+ const promptUtils_1 = require("../../lib/prompts/promptUtils");
8
+ const exitCodes_1 = require("../../lib/enums/exitCodes");
9
+ const configOptions_1 = require("../../lib/configOptions");
9
10
  exports.command = 'set';
10
- exports.describe = i18n(`commands.config.subcommands.set.describe`);
11
- const selectOptions = async () => {
12
- const { cmsPublishMode } = await promptUser([
11
+ exports.describe = (0, lang_1.i18n)(`commands.config.subcommands.set.describe`);
12
+ async function selectOptions() {
13
+ const { cmsPublishMode } = await (0, promptUtils_1.promptUser)([
13
14
  {
14
15
  type: 'list',
15
- look: false,
16
16
  name: 'cmsPublishMode',
17
17
  pageSize: 20,
18
- message: i18n(`commands.config.subcommands.set.promptMessage`),
18
+ message: (0, lang_1.i18n)(`commands.config.subcommands.set.promptMessage`),
19
19
  choices: [
20
20
  {
21
21
  name: 'Default CMS publish mode',
@@ -27,52 +27,57 @@ const selectOptions = async () => {
27
27
  },
28
28
  ]);
29
29
  return cmsPublishMode;
30
- };
31
- const handleConfigUpdate = async (accountId, options) => {
30
+ }
31
+ async function handleConfigUpdate(accountId, options) {
32
32
  const { allowUsageTracking, defaultCmsPublishMode, httpTimeout } = options;
33
33
  if (typeof defaultCmsPublishMode !== 'undefined') {
34
- await setDefaultCmsPublishMode({ defaultCmsPublishMode, accountId });
34
+ await (0, configOptions_1.setDefaultCmsPublishMode)({ defaultCmsPublishMode, accountId });
35
35
  return true;
36
36
  }
37
37
  else if (typeof httpTimeout !== 'undefined') {
38
- await setHttpTimeout({ httpTimeout, accountId });
38
+ await (0, configOptions_1.setHttpTimeout)({ httpTimeout, accountId });
39
39
  return true;
40
40
  }
41
41
  else if (typeof allowUsageTracking !== 'undefined') {
42
- await setAllowUsageTracking({ allowUsageTracking, accountId });
42
+ await (0, configOptions_1.setAllowUsageTracking)({ allowUsageTracking, accountId });
43
43
  return true;
44
44
  }
45
45
  return false;
46
- };
47
- exports.handler = async (options) => {
48
- const { derivedAccountId } = options;
49
- trackCommandUsage('config-set', null, derivedAccountId);
50
- const configUpdated = await handleConfigUpdate(derivedAccountId, options);
46
+ }
47
+ async function handler(args) {
48
+ const { derivedAccountId } = args;
49
+ (0, usageTracking_1.trackCommandUsage)('config-set', {}, derivedAccountId);
50
+ const configUpdated = await handleConfigUpdate(derivedAccountId, args);
51
51
  if (!configUpdated) {
52
52
  const selectedOptions = await selectOptions();
53
53
  await handleConfigUpdate(derivedAccountId, selectedOptions);
54
54
  }
55
- process.exit(EXIT_CODES.SUCCESS);
56
- };
57
- exports.builder = yargs => {
55
+ process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
56
+ }
57
+ function builder(yargs) {
58
58
  yargs
59
59
  .options({
60
60
  'default-cms-publish-mode': {
61
- describe: i18n(`commands.config.subcommands.set.options.defaultMode.describe`),
61
+ describe: (0, lang_1.i18n)(`commands.config.subcommands.set.options.defaultMode.describe`),
62
62
  type: 'string',
63
63
  },
64
64
  'allow-usage-tracking': {
65
- describe: i18n(`commands.config.subcommands.set.options.allowUsageTracking.describe`),
65
+ describe: (0, lang_1.i18n)(`commands.config.subcommands.set.options.allowUsageTracking.describe`),
66
66
  type: 'boolean',
67
67
  },
68
68
  'http-timeout': {
69
- describe: i18n(`commands.config.subcommands.set.options.httpTimeout.describe`),
69
+ describe: (0, lang_1.i18n)(`commands.config.subcommands.set.options.httpTimeout.describe`),
70
70
  type: 'string',
71
71
  },
72
72
  })
73
73
  .conflicts('defaultCmsPublishMode', 'allowUsageTracking')
74
74
  .conflicts('defaultCmsPublishMode', 'httpTimeout')
75
75
  .conflicts('allowUsageTracking', 'httpTimeout')
76
- .example([['$0 config set', i18n(`commands.config.subcommands.set.examples.default`)]]);
76
+ .example([
77
+ [
78
+ '$0 config set',
79
+ (0, lang_1.i18n)(`commands.config.subcommands.set.examples.default`),
80
+ ],
81
+ ]);
77
82
  return yargs;
78
- };
83
+ }
@@ -1 +1,4 @@
1
- export {};
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,15 +1,49 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- // @ts-nocheck
4
- const { addConfigOptions, addGlobalOptions } = require('../lib/commonOpts');
5
- const { i18n } = require('../lib/lang');
6
- const set = require('./config/set');
7
- const i18nKey = 'commands.config';
36
+ exports.describe = exports.command = void 0;
37
+ exports.builder = builder;
38
+ const commonOpts_1 = require("../lib/commonOpts");
39
+ const lang_1 = require("../lib/lang");
40
+ const set = __importStar(require("./config/set"));
41
+ const migrate = __importStar(require("./config/migrate"));
8
42
  exports.command = 'config';
9
- exports.describe = i18n(`${i18nKey}.describe`);
10
- exports.builder = yargs => {
11
- addConfigOptions(yargs);
12
- addGlobalOptions(yargs);
13
- yargs.command(set).demandCommand(1, '');
43
+ exports.describe = (0, lang_1.i18n)('commands.config.describe');
44
+ function builder(yargs) {
45
+ (0, commonOpts_1.addConfigOptions)(yargs);
46
+ (0, commonOpts_1.addGlobalOptions)(yargs);
47
+ yargs.command(set).command(migrate).demandCommand(1, '');
14
48
  return yargs;
15
- };
49
+ }
@@ -24,7 +24,9 @@ module.exports = {
24
24
  execute: async ({ dest, name, assetType, options }) => {
25
25
  const filePath = path.join(dest, name);
26
26
  if (fs.existsSync(filePath)) {
27
- const overwrite = await confirmPrompt(i18n(`commands.create.subcommands.apiSample.folderOverwritePrompt`, { folderName: filePath }), { defaultAnswer: false });
27
+ const overwrite = await confirmPrompt(i18n(`commands.create.subcommands.apiSample.folderOverwritePrompt`, {
28
+ folderName: filePath,
29
+ }), { defaultAnswer: false });
28
30
  if (overwrite) {
29
31
  fs.rmdirSync(filePath, { recursive: true });
30
32
  }
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  // @ts-nocheck
4
4
  const { cloneGithubRepo } = require('@hubspot/local-dev-lib/github');
5
- const { getIsInProject } = require('../../lib/projects');
5
+ const { getIsInProject } = require('../../lib/projects/config');
6
6
  const PROJECT_BOILERPLATE_BRANCH = 'cms-boilerplate-developer-projects';
7
7
  module.exports = {
8
8
  dest: ({ name, assetType }) => name || assetType,
@@ -32,12 +32,11 @@ const { resolveLocalPath } = require('../lib/filesystem');
32
32
  const { trackCommandUsage } = require('../lib/usageTracking');
33
33
  const assets = require('./create/index');
34
34
  const { i18n } = require('../lib/lang');
35
- const i18nKey = 'commands.create';
36
35
  const SUPPORTED_ASSET_TYPES = Object.keys(assets)
37
36
  .filter(t => !assets[t].hidden)
38
37
  .join(', ');
39
38
  exports.command = 'create <type> [name] [dest]';
40
- exports.describe = i18n(`${i18nKey}.describe`, {
39
+ exports.describe = i18n(`commands.create.describe`, {
41
40
  supportedAssetTypes: SUPPORTED_ASSET_TYPES,
42
41
  });
43
42
  exports.handler = async (options) => {
@@ -46,7 +45,7 @@ exports.handler = async (options) => {
46
45
  setLogLevel(options);
47
46
  assetType = typeof assetType === 'string' && assetType.toLowerCase();
48
47
  if (assetType === 'global-partial') {
49
- logger.error(i18n(`${i18nKey}.errors.deprecatedAssetType`, {
48
+ logger.error(i18n(`commands.create.errors.deprecatedAssetType`, {
50
49
  assetType,
51
50
  newCommand: 'hs create template',
52
51
  type: 'global partial',
@@ -54,7 +53,7 @@ exports.handler = async (options) => {
54
53
  return;
55
54
  }
56
55
  if (!assetType || !assets[assetType]) {
57
- logger.error(i18n(`${i18nKey}.errors.unsupportedAssetType`, {
56
+ logger.error(i18n(`commands.create.errors.unsupportedAssetType`, {
58
57
  assetType,
59
58
  supportedAssetTypes: SUPPORTED_ASSET_TYPES,
60
59
  }));
@@ -69,7 +68,7 @@ exports.handler = async (options) => {
69
68
  await fs.ensureDir(dest);
70
69
  }
71
70
  catch (e) {
72
- logger.error(i18n(`${i18nKey}.errors.unusablePath`, {
71
+ logger.error(i18n(`commands.create.errors.unusablePath`, {
73
72
  path: dest,
74
73
  }));
75
74
  logError(e, {
@@ -84,15 +83,15 @@ exports.handler = async (options) => {
84
83
  };
85
84
  exports.builder = yargs => {
86
85
  yargs.positional('type', {
87
- describe: i18n(`${i18nKey}.positionals.type.describe`),
86
+ describe: i18n(`commands.create.positionals.type.describe`),
88
87
  type: 'string',
89
88
  });
90
89
  yargs.positional('name', {
91
- describe: i18n(`${i18nKey}.positionals.name.describe`),
90
+ describe: i18n(`commands.create.positionals.name.describe`),
92
91
  type: 'string',
93
92
  });
94
93
  yargs.positional('dest', {
95
- describe: i18n(`${i18nKey}.positionals.dest.describe`),
94
+ describe: i18n(`commands.create.positionals.dest.describe`),
96
95
  type: 'string',
97
96
  });
98
97
  yargs.option('internal', {
@@ -50,7 +50,10 @@ function builder(yargs) {
50
50
  (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
51
51
  yargs
52
52
  .example([
53
- ['$0 schema delete schemaName', (0, lang_1.i18n)(`commands.customObject.subcommands.schema.subcommands.delete.examples.default`)],
53
+ [
54
+ '$0 schema delete schemaName',
55
+ (0, lang_1.i18n)(`commands.customObject.subcommands.schema.subcommands.delete.examples.default`),
56
+ ],
54
57
  ])
55
58
  .positional('name', {
56
59
  describe: (0, lang_1.i18n)(`commands.customObject.subcommands.schema.subcommands.delete.positionals.name.describe`),
@@ -17,7 +17,8 @@ async function handler(args) {
17
17
  const { derivedAccountId, dest: providedDest } = args;
18
18
  (0, usageTracking_1.trackCommandUsage)('custom-object-schema-fetch-all', {}, derivedAccountId);
19
19
  try {
20
- const dest = providedDest || (await (0, promptUtils_1.inputPrompt)((0, lang_1.i18n)(`commands.customObject.subcommands.schema.subcommands.fetchAll.inputDest`)));
20
+ const dest = providedDest ||
21
+ (await (0, promptUtils_1.inputPrompt)((0, lang_1.i18n)(`commands.customObject.subcommands.schema.subcommands.fetchAll.inputDest`)));
21
22
  const schemas = await (0, customObjects_1.downloadSchemas)(derivedAccountId, dest);
22
23
  (0, schema_1.logSchemas)(schemas);
23
24
  logger_1.logger.success((0, lang_1.i18n)(`commands.customObject.subcommands.schema.subcommands.fetchAll.success.fetch`, {
@@ -25,7 +25,8 @@ async function handler(args) {
25
25
  (await (0, promptUtils_1.listPrompt)((0, lang_1.i18n)(`commands.customObject.subcommands.schema.subcommands.fetch.selectSchema`), {
26
26
  choices: schemaNames,
27
27
  }));
28
- const dest = providedDest || (await (0, promptUtils_1.inputPrompt)((0, lang_1.i18n)(`commands.customObject.subcommands.schema.subcommands.fetch.inputDest`)));
28
+ const dest = providedDest ||
29
+ (await (0, promptUtils_1.inputPrompt)((0, lang_1.i18n)(`commands.customObject.subcommands.schema.subcommands.fetch.inputDest`)));
29
30
  await (0, customObjects_2.downloadSchema)(derivedAccountId, name, dest);
30
31
  logger_1.logger.success((0, lang_1.i18n)(`commands.customObject.subcommands.schema.subcommands.fetch.success.savedToPath`, {
31
32
  path: (0, customObjects_2.getResolvedPath)(dest, name),
@@ -41,12 +41,11 @@ const createCommand = __importStar(require("./customObject/create"));
41
41
  const lang_1 = require("../lib/lang");
42
42
  const logger_1 = require("@hubspot/local-dev-lib/logger");
43
43
  const ui_1 = require("../lib/ui");
44
- const i18nKey = 'commands.customObject';
45
44
  exports.command = ['custom-object', 'custom-objects', 'co'];
46
- exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.describe`), false);
45
+ exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.customObject.describe`), false);
47
46
  function logBetaMessage() {
48
- (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.betaMessage`));
49
- logger_1.logger.log((0, ui_1.uiLink)((0, lang_1.i18n)(`${i18nKey}.seeMoreLink`), 'https://developers.hubspot.com/docs/api/crm/crm-custom-objects'));
47
+ (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.customObject.betaMessage`));
48
+ logger_1.logger.log((0, ui_1.uiLink)((0, lang_1.i18n)(`commands.customObject.seeMoreLink`), 'https://developers.hubspot.com/docs/api/crm/crm-custom-objects'));
50
49
  logger_1.logger.log();
51
50
  }
52
51
  function builder(yargs) {
@@ -13,9 +13,8 @@ const path_1 = __importDefault(require("path"));
13
13
  const path_2 = require("@hubspot/local-dev-lib/path");
14
14
  const commonOpts_1 = require("../lib/commonOpts");
15
15
  const { i18n } = require('../lib/lang');
16
- const i18nKey = 'commands.doctor';
17
16
  exports.command = 'doctor';
18
- exports.describe = i18n(`${i18nKey}.describe`);
17
+ exports.describe = i18n(`commands.doctor.describe`);
19
18
  const handler = async ({ outputDir, }) => {
20
19
  const doctor = new Doctor_1.Doctor();
21
20
  (0, usageTracking_1.trackCommandUsage)(exports.command, undefined, doctor.accountId || undefined);
@@ -29,7 +28,7 @@ const handler = async ({ outputDir, }) => {
29
28
  logger_1.logger.log(output.diagnosis);
30
29
  }
31
30
  else {
32
- logger_1.logger.error(i18n(`${i18nKey}.errors.generatingDiagnosis`));
31
+ logger_1.logger.error(i18n(`commands.doctor.errors.generatingDiagnosis`));
33
32
  return process.exit(exitCodes_1.EXIT_CODES.ERROR);
34
33
  }
35
34
  return process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
@@ -40,10 +39,10 @@ const handler = async ({ outputDir, }) => {
40
39
  const outputFile = path_1.default.join(outputDir, `hubspot-doctor-${new Date().toISOString()}.json`);
41
40
  try {
42
41
  fs_1.default.writeFileSync(outputFile, JSON.stringify(output, null, 4));
43
- logger_1.logger.success(i18n(`${i18nKey}.outputWritten`, { filename: outputFile }));
42
+ logger_1.logger.success(i18n(`commands.doctor.outputWritten`, { filename: outputFile }));
44
43
  }
45
44
  catch (e) {
46
- logger_1.logger.error(i18n(`${i18nKey}.errors.unableToWriteOutputFile`, {
45
+ logger_1.logger.error(i18n(`commands.doctor.errors.unableToWriteOutputFile`, {
47
46
  file: outputFile,
48
47
  errorMessage: e instanceof Error ? e.message : e,
49
48
  }));
@@ -54,7 +53,7 @@ const handler = async ({ outputDir, }) => {
54
53
  exports.handler = handler;
55
54
  const builder = yargs => {
56
55
  yargs.option('output-dir', {
57
- describe: i18n(`${i18nKey}.options.outputDir`),
56
+ describe: i18n(`commands.doctor.options.outputDir`),
58
57
  type: 'string',
59
58
  });
60
59
  (0, commonOpts_1.addGlobalOptions)(yargs);