@hubspot/cli 7.4.4-experimental.0 → 7.4.5-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) 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 +4 -5
  17. package/commands/app/migrate.js +19 -8
  18. package/commands/auth.js +14 -11
  19. package/commands/cms/lighthouseScore.js +6 -2
  20. package/commands/cms.js +1 -2
  21. package/commands/completion.js +2 -3
  22. package/commands/config/migrate.d.ts +10 -0
  23. package/commands/config/migrate.js +84 -0
  24. package/commands/config/set.d.ts +10 -0
  25. package/commands/config/set.js +34 -29
  26. package/commands/config.d.ts +4 -1
  27. package/commands/config.js +45 -11
  28. package/commands/create/api-sample.js +3 -1
  29. package/commands/create/website-theme.js +1 -1
  30. package/commands/create.js +7 -8
  31. package/commands/customObject/schema/delete.js +4 -1
  32. package/commands/customObject/schema/fetch-all.js +2 -1
  33. package/commands/customObject/schema/fetch.js +2 -1
  34. package/commands/customObject.js +3 -4
  35. package/commands/doctor.js +5 -6
  36. package/commands/feedback.js +7 -8
  37. package/commands/fetch.js +6 -7
  38. package/commands/filemanager.js +1 -2
  39. package/commands/function.js +1 -2
  40. package/commands/hubdb/clear.js +5 -6
  41. package/commands/hubdb/create.js +7 -8
  42. package/commands/hubdb/delete.js +8 -7
  43. package/commands/hubdb/fetch.js +4 -5
  44. package/commands/hubdb.js +1 -2
  45. package/commands/init.js +18 -20
  46. package/commands/lint.js +3 -4
  47. package/commands/list.js +5 -6
  48. package/commands/logs.js +12 -13
  49. package/commands/module/marketplace-validate.js +5 -6
  50. package/commands/module.js +1 -3
  51. package/commands/mv.js +4 -5
  52. package/commands/open.js +4 -5
  53. package/commands/project/add.js +19 -15
  54. package/commands/project/cloneApp.d.ts +5 -1
  55. package/commands/project/cloneApp.js +25 -20
  56. package/commands/project/create.js +19 -15
  57. package/commands/project/deploy.js +19 -17
  58. package/commands/project/dev/deprecatedFlow.js +32 -25
  59. package/commands/project/dev/index.js +15 -11
  60. package/commands/project/dev/unifiedFlow.js +10 -11
  61. package/commands/project/download.js +10 -11
  62. package/commands/project/installDeps.d.ts +9 -1
  63. package/commands/project/installDeps.js +46 -31
  64. package/commands/project/listBuilds.js +18 -14
  65. package/commands/project/logs.d.ts +13 -1
  66. package/commands/project/logs.js +72 -63
  67. package/commands/project/migrate.d.ts +11 -0
  68. package/commands/project/migrate.js +67 -0
  69. package/commands/project/migrateApp.d.ts +4 -4
  70. package/commands/project/migrateApp.js +7 -5
  71. package/commands/project/open.js +15 -8
  72. package/commands/project/upload.d.ts +12 -0
  73. package/commands/project/upload.js +69 -50
  74. package/commands/project/watch.js +25 -7
  75. package/commands/project.js +3 -2
  76. package/commands/remove.js +7 -5
  77. package/commands/sandbox/create.js +10 -11
  78. package/commands/sandbox/delete.js +18 -19
  79. package/commands/sandbox.js +1 -2
  80. package/commands/secret/addSecret.js +5 -6
  81. package/commands/secret/deleteSecret.js +12 -9
  82. package/commands/secret/listSecret.js +3 -4
  83. package/commands/secret/updateSecret.js +9 -8
  84. package/commands/secret.js +1 -2
  85. package/commands/theme/generate-selectors.js +5 -6
  86. package/commands/theme/marketplace-validate.js +5 -6
  87. package/commands/theme/preview.js +16 -16
  88. package/commands/theme.js +1 -2
  89. package/commands/upload.js +23 -24
  90. package/commands/watch.js +18 -19
  91. package/lang/en.d.ts +2797 -0
  92. package/lang/en.js +2652 -3300
  93. package/lang/en.lyaml +97 -43
  94. package/lib/accountTypes.d.ts +1 -0
  95. package/lib/accountTypes.js +12 -0
  96. package/lib/app/migrate.d.ts +10 -4
  97. package/lib/app/migrate.js +188 -92
  98. package/lib/app/migrate_legacy.d.ts +2 -2
  99. package/lib/app/migrate_legacy.js +10 -7
  100. package/lib/buildAccount.d.ts +1 -2
  101. package/lib/buildAccount.js +7 -5
  102. package/lib/commonOpts.d.ts +2 -3
  103. package/lib/commonOpts.js +12 -2
  104. package/lib/configMigrate.d.ts +2 -0
  105. package/lib/configMigrate.js +104 -0
  106. package/lib/constants.d.ts +4 -0
  107. package/lib/constants.js +5 -1
  108. package/lib/dependencyManagement.js +2 -2
  109. package/lib/doctor/Diagnosis.d.ts +1 -2
  110. package/lib/doctor/Diagnosis.js +10 -6
  111. package/lib/doctor/DiagnosticInfoBuilder.d.ts +2 -1
  112. package/lib/doctor/DiagnosticInfoBuilder.js +10 -9
  113. package/lib/doctor/Doctor.d.ts +1 -0
  114. package/lib/doctor/Doctor.js +18 -0
  115. package/lib/hasFeature.d.ts +3 -1
  116. package/lib/middleware/__test__/configMiddleware.test.d.ts +1 -0
  117. package/lib/middleware/__test__/configMiddleware.test.js +194 -0
  118. package/lib/middleware/__test__/gitMiddleware.test.d.ts +1 -0
  119. package/lib/middleware/__test__/gitMiddleware.test.js +76 -0
  120. package/lib/middleware/__test__/notificationsMiddleware.test.d.ts +1 -0
  121. package/lib/middleware/__test__/notificationsMiddleware.test.js +10 -0
  122. package/lib/middleware/__test__/requestMiddleware.test.d.ts +1 -0
  123. package/lib/middleware/__test__/requestMiddleware.test.js +20 -0
  124. package/lib/middleware/__test__/utils.test.d.ts +1 -0
  125. package/lib/middleware/__test__/utils.test.js +53 -0
  126. package/lib/middleware/__test__/yargsChecksMiddleware.test.d.ts +1 -0
  127. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +81 -0
  128. package/lib/middleware/configMiddleware.d.ts +13 -0
  129. package/lib/middleware/configMiddleware.js +116 -0
  130. package/lib/middleware/fireAlarmMiddleware.d.ts +4 -0
  131. package/lib/middleware/fireAlarmMiddleware.js +137 -0
  132. package/lib/middleware/gitMiddleware.d.ts +2 -0
  133. package/lib/middleware/gitMiddleware.js +14 -0
  134. package/lib/middleware/notificationsMiddleware.d.ts +1 -0
  135. package/lib/middleware/notificationsMiddleware.js +38 -0
  136. package/lib/middleware/requestMiddleware.d.ts +1 -0
  137. package/lib/middleware/requestMiddleware.js +11 -0
  138. package/lib/middleware/utils.d.ts +8 -0
  139. package/lib/middleware/utils.js +17 -0
  140. package/lib/middleware/yargsChecksMiddleware.d.ts +4 -0
  141. package/lib/middleware/yargsChecksMiddleware.js +24 -0
  142. package/lib/projects/ProjectLogsManager.d.ts +1 -1
  143. package/lib/projects/ProjectLogsManager.js +15 -20
  144. package/lib/projects/buildAndDeploy.js +15 -26
  145. package/lib/projects/config.d.ts +9 -0
  146. package/lib/projects/config.js +79 -0
  147. package/lib/projects/create.js +4 -5
  148. package/lib/projects/ensureProjectExists.d.ts +11 -0
  149. package/lib/projects/ensureProjectExists.js +97 -0
  150. package/lib/{DevServerManager.d.ts → projects/localDev/DevServerManager.d.ts} +1 -1
  151. package/lib/{DevServerManager.js → projects/localDev/DevServerManager.js} +5 -6
  152. package/lib/{DevServerManagerV2.d.ts → projects/localDev/DevServerManagerV2.d.ts} +1 -1
  153. package/lib/{DevServerManagerV2.js → projects/localDev/DevServerManagerV2.js} +3 -4
  154. package/lib/{LocalDevManager.d.ts → projects/localDev/LocalDevManager.d.ts} +1 -1
  155. package/lib/{LocalDevManager.js → projects/localDev/LocalDevManager.js} +42 -76
  156. package/lib/{LocalDevManagerV2.d.ts → projects/localDev/LocalDevManagerV2.d.ts} +2 -2
  157. package/lib/{LocalDevManagerV2.js → projects/localDev/LocalDevManagerV2.js} +37 -70
  158. package/lib/{localDev.d.ts → projects/localDev/helpers.d.ts} +4 -3
  159. package/lib/{localDev.js → projects/localDev/helpers.js} +72 -99
  160. package/lib/projects/ui.d.ts +1 -0
  161. package/lib/projects/ui.js +15 -0
  162. package/lib/projects/upload.d.ts +1 -1
  163. package/lib/projects/upload.js +9 -30
  164. package/lib/projects/urls.d.ts +1 -0
  165. package/lib/projects/urls.js +6 -0
  166. package/lib/projects/watch.js +18 -15
  167. package/lib/prompts/projectNamePrompt.js +2 -2
  168. package/lib/prompts/promptUtils.d.ts +1 -1
  169. package/lib/ui/SpinniesManager.d.ts +1 -1
  170. package/lib/ui/index.d.ts +1 -0
  171. package/lib/ui/index.js +5 -0
  172. package/lib/ui/spinniesUtils.d.ts +5 -5
  173. package/package.json +7 -6
  174. package/types/Yargs.d.ts +0 -10
  175. package/lib/projects/index.d.ts +0 -20
  176. package/lib/projects/index.js +0 -194
@@ -19,9 +19,8 @@ const accountsPrompt_1 = require("../../lib/prompts/accountsPrompt");
19
19
  const exitCodes_1 = require("../../lib/enums/exitCodes");
20
20
  const promptUtils_1 = require("../../lib/prompts/promptUtils");
21
21
  const ui_1 = require("../../lib/ui");
22
- const i18nKey = 'commands.sandbox.subcommands.delete';
23
22
  exports.command = 'delete';
24
- exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.describe`), false);
23
+ exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.describe`), false);
25
24
  async function handler(args) {
26
25
  const { providedAccountId, force } = args;
27
26
  (0, usageTracking_1.trackCommandUsage)('sandbox-delete', {}, providedAccountId);
@@ -33,12 +32,12 @@ async function handler(args) {
33
32
  else {
34
33
  // Account is required, throw error if force flag is present and no account is specified
35
34
  logger_1.logger.log('');
36
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.noAccount`));
35
+ logger_1.logger.error((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.failure.noAccount`));
37
36
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
38
37
  }
39
38
  if (!accountPrompt) {
40
39
  logger_1.logger.log('');
41
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.noSandboxAccounts`, {
40
+ logger_1.logger.error((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.failure.noSandboxAccounts`, {
42
41
  authCommand: (0, ui_1.uiCommandReference)('hs auth'),
43
42
  }));
44
43
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
@@ -46,7 +45,7 @@ async function handler(args) {
46
45
  }
47
46
  const sandboxAccountId = (0, config_1.getAccountId)(providedAccountId || accountPrompt.account);
48
47
  if (!sandboxAccountId) {
49
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.noSandboxAccountId`));
48
+ logger_1.logger.error((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.failure.noSandboxAccountId`));
50
49
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
51
50
  }
52
51
  const isDefaultAccount = sandboxAccountId === (0, config_1.getAccountId)();
@@ -61,7 +60,7 @@ async function handler(args) {
61
60
  else if (!force) {
62
61
  const parentAccountPrompt = await (0, sandboxesPrompt_1.deleteSandboxPrompt)(true);
63
62
  if (!parentAccountPrompt) {
64
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.noParentAccount`, {
63
+ logger_1.logger.error((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.failure.noParentAccount`, {
65
64
  authCommand: (0, ui_1.uiCommandReference)('hs auth'),
66
65
  }));
67
66
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
@@ -69,7 +68,7 @@ async function handler(args) {
69
68
  parentAccountId = (0, config_1.getAccountId)(parentAccountPrompt.account);
70
69
  }
71
70
  else {
72
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.noParentAccount`, {
71
+ logger_1.logger.error((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.failure.noParentAccount`, {
73
72
  authCommand: (0, ui_1.uiCommandReference)('hs auth'),
74
73
  }));
75
74
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
@@ -80,7 +79,7 @@ async function handler(args) {
80
79
  const command = `hs auth ${(0, config_1.getEnv)(sandboxAccountId) === 'qa' ? '--qa' : ''} --account=${parentAccountId}`;
81
80
  if (parentAccountId && !(0, config_1.getAccountId)(parentAccountId)) {
82
81
  logger_1.logger.log('');
83
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.noParentPortalAvailable`, {
82
+ logger_1.logger.error((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.failure.noParentPortalAvailable`, {
84
83
  parentAccountId,
85
84
  url,
86
85
  command,
@@ -88,11 +87,11 @@ async function handler(args) {
88
87
  logger_1.logger.log('');
89
88
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
90
89
  }
91
- logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.debug.deleting`, {
90
+ logger_1.logger.debug((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.debug.deleting`, {
92
91
  account: (0, ui_1.uiAccountDescription)(sandboxAccountId),
93
92
  }));
94
93
  if (isDefaultAccount) {
95
- logger_1.logger.info((0, lang_1.i18n)(`${i18nKey}.defaultAccountWarning`, {
94
+ logger_1.logger.info((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.defaultAccountWarning`, {
96
95
  account: (0, ui_1.uiAccountDescription)(sandboxAccountId),
97
96
  }));
98
97
  logger_1.logger.log('');
@@ -103,7 +102,7 @@ async function handler(args) {
103
102
  {
104
103
  name: 'confirmSandboxDeletePrompt',
105
104
  type: 'confirm',
106
- message: (0, lang_1.i18n)(`${i18nKey}.confirm`, {
105
+ message: (0, lang_1.i18n)(`commands.sandbox.subcommands.delete.confirm`, {
107
106
  account: (0, ui_1.uiAccountDescription)(sandboxAccountId),
108
107
  }),
109
108
  },
@@ -114,8 +113,8 @@ async function handler(args) {
114
113
  }
115
114
  await (0, sandboxHubs_1.deleteSandbox)(parentAccountId, sandboxAccountId);
116
115
  const deleteKey = isDefaultAccount
117
- ? `${i18nKey}.success.deleteDefault`
118
- : `${i18nKey}.success.delete`;
116
+ ? `commands.sandbox.subcommands.delete.success.deleteDefault`
117
+ : `commands.sandbox.subcommands.delete.success.delete`;
119
118
  logger_1.logger.log('');
120
119
  logger_1.logger.success((0, lang_1.i18n)(deleteKey, {
121
120
  account: providedAccountId || accountPrompt.account,
@@ -139,7 +138,7 @@ async function handler(args) {
139
138
  // Intercept invalid key error
140
139
  // This command uses the parent portal PAK to delete a sandbox, so we must specify which account needs a new key
141
140
  logger_1.logger.log('');
142
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.invalidKey`, {
141
+ logger_1.logger.error((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.failure.invalidKey`, {
143
142
  account: (0, ui_1.uiAccountDescription)(parentAccountId),
144
143
  authCommand: (0, ui_1.uiCommandReference)('hs auth'),
145
144
  }));
@@ -150,7 +149,7 @@ async function handler(args) {
150
149
  subCategory: 'SandboxErrors.USER_ACCESS_NOT_ALLOWED',
151
150
  })) {
152
151
  logger_1.logger.log('');
153
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.invalidUser`, {
152
+ logger_1.logger.error((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.failure.invalidUser`, {
154
153
  accountName: (0, ui_1.uiAccountDescription)(sandboxAccountId),
155
154
  parentAccountName: (0, ui_1.uiAccountDescription)(parentAccountId),
156
155
  }));
@@ -162,7 +161,7 @@ async function handler(args) {
162
161
  subCategory: 'SandboxErrors.SANDBOX_NOT_FOUND',
163
162
  })) {
164
163
  logger_1.logger.log('');
165
- logger_1.logger.warn((0, lang_1.i18n)(`${i18nKey}.failure.objectNotFound`, {
164
+ logger_1.logger.warn((0, lang_1.i18n)(`commands.sandbox.subcommands.delete.failure.objectNotFound`, {
166
165
  account: (0, ui_1.uiAccountDescription)(sandboxAccountId),
167
166
  }));
168
167
  logger_1.logger.log('');
@@ -185,18 +184,18 @@ async function handler(args) {
185
184
  }
186
185
  function builder(yargs) {
187
186
  yargs.option('account', {
188
- describe: (0, lang_1.i18n)(`${i18nKey}.options.account.describe`),
187
+ describe: (0, lang_1.i18n)(`commands.sandbox.subcommands.delete.options.account.describe`),
189
188
  type: 'string',
190
189
  });
191
190
  yargs.option('force', {
192
191
  type: 'boolean',
193
192
  alias: 'f',
194
- describe: (0, lang_1.i18n)(`${i18nKey}.options.force.describe`),
193
+ describe: (0, lang_1.i18n)(`commands.sandbox.subcommands.delete.options.force.describe`),
195
194
  });
196
195
  yargs.example([
197
196
  [
198
197
  '$0 sandbox delete --account=MySandboxAccount',
199
- (0, lang_1.i18n)(`${i18nKey}.examples.default`),
198
+ (0, lang_1.i18n)(`commands.sandbox.subcommands.delete.examples.default`),
200
199
  ],
201
200
  ]);
202
201
  (0, commonOpts_1.addConfigOptions)(yargs);
@@ -40,9 +40,8 @@ const lang_1 = require("../lib/lang");
40
40
  const ui_1 = require("../lib/ui");
41
41
  const create = __importStar(require("./sandbox/create"));
42
42
  const del = __importStar(require("./sandbox/delete"));
43
- const i18nKey = 'commands.sandbox';
44
43
  exports.command = ['sandbox', 'sandboxes'];
45
- exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.describe`), false);
44
+ exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.sandbox.describe`), false);
46
45
  function builder(yargs) {
47
46
  (0, commonOpts_1.addGlobalOptions)(yargs);
48
47
  yargs.command(create).command(del).demandCommand(1, '');
@@ -13,9 +13,8 @@ const secretPrompt_1 = require("../../lib/prompts/secretPrompt");
13
13
  const lang_1 = require("../../lib/lang");
14
14
  const exitCodes_1 = require("../../lib/enums/exitCodes");
15
15
  const ui_2 = require("../../lib/ui");
16
- const i18nKey = 'commands.secret.subcommands.add';
17
16
  exports.command = 'add [name]';
18
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
17
+ exports.describe = (0, lang_1.i18n)(`commands.secret.subcommands.add.describe`);
19
18
  async function handler(args) {
20
19
  const { name, derivedAccountId } = args;
21
20
  let secretName = name;
@@ -27,7 +26,7 @@ async function handler(args) {
27
26
  }
28
27
  const { data: { results: secrets }, } = await (0, secrets_1.fetchSecrets)(derivedAccountId);
29
28
  if (secrets.includes(secretName)) {
30
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.alreadyExists`, {
29
+ logger_1.logger.error((0, lang_1.i18n)(`commands.secret.subcommands.add.errors.alreadyExists`, {
31
30
  secretName,
32
31
  command: (0, ui_2.uiCommandReference)('hs secret update'),
33
32
  }));
@@ -35,13 +34,13 @@ async function handler(args) {
35
34
  }
36
35
  const { secretValue } = await (0, secretPrompt_1.secretValuePrompt)();
37
36
  await (0, secrets_1.addSecret)(derivedAccountId, secretName, secretValue);
38
- logger_1.logger.success((0, lang_1.i18n)(`${i18nKey}.success.add`, {
37
+ logger_1.logger.success((0, lang_1.i18n)(`commands.secret.subcommands.add.success.add`, {
39
38
  accountIdentifier: (0, ui_1.uiAccountDescription)(derivedAccountId),
40
39
  secretName,
41
40
  }));
42
41
  }
43
42
  catch (err) {
44
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.add`, {
43
+ logger_1.logger.error((0, lang_1.i18n)(`commands.secret.subcommands.add.errors.add`, {
45
44
  secretName: secretName || '',
46
45
  }));
47
46
  (0, index_1.logError)(err, new index_1.ApiErrorContext({
@@ -55,7 +54,7 @@ function builder(yargs) {
55
54
  (0, commonOpts_1.addAccountOptions)(yargs);
56
55
  (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
57
56
  yargs.positional('name', {
58
- describe: (0, lang_1.i18n)(`${i18nKey}.positionals.name.describe`),
57
+ describe: (0, lang_1.i18n)(`commands.secret.subcommands.add.positionals.name.describe`),
59
58
  type: 'string',
60
59
  });
61
60
  return yargs;
@@ -13,9 +13,8 @@ const usageTracking_1 = require("../../lib/usageTracking");
13
13
  const ui_1 = require("../../lib/ui");
14
14
  const commonOpts_1 = require("../../lib/commonOpts");
15
15
  const lang_1 = require("../../lib/lang");
16
- const i18nKey = 'commands.secret.subcommands.delete';
17
16
  exports.command = 'delete [name]';
18
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
17
+ exports.describe = (0, lang_1.i18n)(`commands.secret.subcommands.delete.describe`);
19
18
  async function handler(args) {
20
19
  const { name, derivedAccountId, force } = args;
21
20
  let secretName = name;
@@ -23,30 +22,34 @@ async function handler(args) {
23
22
  try {
24
23
  const { data: { results: secrets }, } = await (0, secrets_1.fetchSecrets)(derivedAccountId);
25
24
  if (secretName && !secrets.includes(secretName)) {
26
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.noSecret`, { secretName }));
25
+ logger_1.logger.error((0, lang_1.i18n)(`commands.secret.subcommands.delete.errors.noSecret`, {
26
+ secretName,
27
+ }));
27
28
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
28
29
  }
29
30
  if (!secretName) {
30
- const { secretToModify } = await (0, secretPrompt_1.secretListPrompt)(secrets, (0, lang_1.i18n)(`${i18nKey}.selectSecret`));
31
+ const { secretToModify } = await (0, secretPrompt_1.secretListPrompt)(secrets, (0, lang_1.i18n)(`commands.secret.subcommands.delete.selectSecret`));
31
32
  secretName = secretToModify;
32
33
  }
33
34
  const confirmDelete = force ||
34
- (await (0, promptUtils_1.confirmPrompt)((0, lang_1.i18n)(`${i18nKey}.confirmDelete`, { secretName }), {
35
+ (await (0, promptUtils_1.confirmPrompt)((0, lang_1.i18n)(`commands.secret.subcommands.delete.confirmDelete`, {
36
+ secretName,
37
+ }), {
35
38
  defaultAnswer: false,
36
39
  }));
37
40
  if (!confirmDelete) {
38
- logger_1.logger.success((0, lang_1.i18n)(`${i18nKey}.deleteCanceled`));
41
+ logger_1.logger.success((0, lang_1.i18n)(`commands.secret.subcommands.delete.deleteCanceled`));
39
42
  process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
40
43
  }
41
44
  await (0, secrets_1.deleteSecret)(derivedAccountId, secretName);
42
- logger_1.logger.success((0, lang_1.i18n)(`${i18nKey}.success.delete`, {
45
+ logger_1.logger.success((0, lang_1.i18n)(`commands.secret.subcommands.delete.success.delete`, {
43
46
  accountIdentifier: (0, ui_1.uiAccountDescription)(derivedAccountId),
44
47
  secretName,
45
48
  }));
46
49
  }
47
50
  catch (err) {
48
51
  if (secretName) {
49
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.delete`, {
52
+ logger_1.logger.error((0, lang_1.i18n)(`commands.secret.subcommands.delete.errors.delete`, {
50
53
  secretName,
51
54
  }));
52
55
  }
@@ -62,7 +65,7 @@ function builder(yargs) {
62
65
  (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
63
66
  yargs
64
67
  .positional('name', {
65
- describe: (0, lang_1.i18n)(`${i18nKey}.positionals.name.describe`),
68
+ describe: (0, lang_1.i18n)(`commands.secret.subcommands.delete.positionals.name.describe`),
66
69
  type: 'string',
67
70
  })
68
71
  .options('force', {
@@ -10,15 +10,14 @@ const usageTracking_1 = require("../../lib/usageTracking");
10
10
  const ui_1 = require("../../lib/ui");
11
11
  const commonOpts_1 = require("../../lib/commonOpts");
12
12
  const lang_1 = require("../../lib/lang");
13
- const i18nKey = 'commands.secret.subcommands.list';
14
13
  exports.command = 'list';
15
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
14
+ exports.describe = (0, lang_1.i18n)(`commands.secret.subcommands.list.describe`);
16
15
  async function handler(args) {
17
16
  const { derivedAccountId } = args;
18
17
  (0, usageTracking_1.trackCommandUsage)('secrets-list', {}, derivedAccountId);
19
18
  try {
20
19
  const { data: { results }, } = await (0, secrets_1.fetchSecrets)(derivedAccountId);
21
- const groupLabel = (0, lang_1.i18n)(`${i18nKey}.groupLabel`, {
20
+ const groupLabel = (0, lang_1.i18n)(`commands.secret.subcommands.list.groupLabel`, {
22
21
  accountIdentifier: (0, ui_1.uiAccountDescription)(derivedAccountId),
23
22
  });
24
23
  logger_1.logger.group(groupLabel);
@@ -26,7 +25,7 @@ async function handler(args) {
26
25
  logger_1.logger.groupEnd();
27
26
  }
28
27
  catch (err) {
29
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.list`));
28
+ logger_1.logger.error((0, lang_1.i18n)(`commands.secret.subcommands.list.errors.list`));
30
29
  (0, index_1.logError)(err, new index_1.ApiErrorContext({
31
30
  request: 'add secret',
32
31
  accountId: derivedAccountId,
@@ -12,9 +12,8 @@ const ui_1 = require("../../lib/ui");
12
12
  const commonOpts_1 = require("../../lib/commonOpts");
13
13
  const secretPrompt_1 = require("../../lib/prompts/secretPrompt");
14
14
  const lang_1 = require("../../lib/lang");
15
- const i18nKey = 'commands.secret.subcommands.update';
16
15
  exports.command = 'update [name]';
17
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
16
+ exports.describe = (0, lang_1.i18n)(`commands.secret.subcommands.update.describe`);
18
17
  async function handler(args) {
19
18
  const { name, derivedAccountId } = args;
20
19
  let secretName = name;
@@ -22,23 +21,25 @@ async function handler(args) {
22
21
  try {
23
22
  const { data: { results: secrets }, } = await (0, secrets_1.fetchSecrets)(derivedAccountId);
24
23
  if (secretName && !secrets.includes(secretName)) {
25
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.noSecret`, { secretName }));
24
+ logger_1.logger.error((0, lang_1.i18n)(`commands.secret.subcommands.update.errors.noSecret`, {
25
+ secretName,
26
+ }));
26
27
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
27
28
  }
28
29
  if (!secretName) {
29
- const { secretToModify } = await (0, secretPrompt_1.secretListPrompt)(secrets, (0, lang_1.i18n)(`${i18nKey}.selectSecret`));
30
+ const { secretToModify } = await (0, secretPrompt_1.secretListPrompt)(secrets, (0, lang_1.i18n)(`commands.secret.subcommands.update.selectSecret`));
30
31
  secretName = secretToModify;
31
32
  }
32
33
  const { secretValue } = await (0, secretPrompt_1.secretValuePrompt)();
33
34
  await (0, secrets_1.updateSecret)(derivedAccountId, secretName, secretValue);
34
- logger_1.logger.success((0, lang_1.i18n)(`${i18nKey}.success.update`, {
35
+ logger_1.logger.success((0, lang_1.i18n)(`commands.secret.subcommands.update.success.update`, {
35
36
  accountIdentifier: (0, ui_1.uiAccountDescription)(derivedAccountId),
36
37
  secretName,
37
38
  }));
38
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.success.updateExplanation`));
39
+ logger_1.logger.log((0, lang_1.i18n)(`commands.secret.subcommands.update.success.updateExplanation`));
39
40
  }
40
41
  catch (err) {
41
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.update`, {
42
+ logger_1.logger.error((0, lang_1.i18n)(`commands.secret.subcommands.update.errors.update`, {
42
43
  secretName: secretName || '',
43
44
  }));
44
45
  (0, index_1.logError)(err, new index_1.ApiErrorContext({
@@ -52,7 +53,7 @@ function builder(yargs) {
52
53
  (0, commonOpts_1.addAccountOptions)(yargs);
53
54
  (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
54
55
  yargs.positional('name', {
55
- describe: (0, lang_1.i18n)(`${i18nKey}.positionals.name.describe`),
56
+ describe: (0, lang_1.i18n)(`commands.secret.subcommands.update.positionals.name.describe`),
56
57
  type: 'string',
57
58
  });
58
59
  return yargs;
@@ -41,9 +41,8 @@ const listSecretCommand = __importStar(require("./secret/listSecret"));
41
41
  const deleteSecretCommand = __importStar(require("./secret/deleteSecret"));
42
42
  const updateSecretCommand = __importStar(require("./secret/updateSecret"));
43
43
  const lang_1 = require("../lib/lang");
44
- const i18nKey = 'commands.secret';
45
44
  exports.command = ['secret', 'secrets'];
46
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
45
+ exports.describe = (0, lang_1.i18n)(`commands.secret.describe`);
47
46
  function builder(yargs) {
48
47
  (0, commonOpts_1.addGlobalOptions)(yargs);
49
48
  yargs
@@ -20,14 +20,13 @@ const CSS_VARS_NAME_REGEX = new RegExp(/(--[\w.(,\d\-)]*)/, 'g');
20
20
  const CSS_SELECTORS_REGEX = new RegExp(/([\s\w:.,\0-[\]]*){/, 'i');
21
21
  const CSS_EXPRESSION_REGEX = new RegExp(/(?!\s)([^}])*(?![.#\s,>])[^}]*}/, 'g');
22
22
  const THEME_PATH_REGEX = new RegExp(/=\s*.*(theme\.(\w|\.)*)/, 'i');
23
- const i18nKey = 'commands.theme.subcommands.generateSelectors';
24
23
  exports.command = 'generate-selectors <path>';
25
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
24
+ exports.describe = (0, lang_1.i18n)('commands.theme.subcommands.generateSelectors.describe');
26
25
  async function handler(args) {
27
26
  const { path } = args;
28
27
  const fieldsJsonPath = (0, generateSelectors_1.findFieldsJsonPath)(path);
29
28
  if (!fieldsJsonPath) {
30
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.fieldsNotFound`));
29
+ logger_1.logger.error((0, lang_1.i18n)('commands.theme.subcommands.generateSelectors.errors.fieldsNotFound'));
31
30
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
32
31
  }
33
32
  let fieldsJson = JSON.parse(fs_1.default.readFileSync(fieldsJsonPath, 'utf-8'));
@@ -137,7 +136,7 @@ async function handler(args) {
137
136
  return themeFieldsSelectorMap;
138
137
  }, {});
139
138
  if (!Object.keys(finalMap).length) {
140
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.noSelectorsFound`));
139
+ logger_1.logger.error((0, lang_1.i18n)('commands.theme.subcommands.generateSelectors.errors.noSelectorsFound'));
141
140
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
142
141
  }
143
142
  Object.keys(finalMap).forEach(themeFieldKey => {
@@ -154,14 +153,14 @@ async function handler(args) {
154
153
  const selectorsMap = (0, generateSelectors_1.generateSelectorsMap)(fieldsJson);
155
154
  const selectorsPath = `${path}/editor-preview.json`;
156
155
  fs_1.default.writeFileSync(selectorsPath, `${JSON.stringify({ selectors: selectorsMap }, null, 2)}\n`);
157
- logger_1.logger.success((0, lang_1.i18n)(`${i18nKey}.success`, {
156
+ logger_1.logger.success((0, lang_1.i18n)('commands.theme.subcommands.generateSelectors.success', {
158
157
  themePath: path,
159
158
  selectorsPath,
160
159
  }));
161
160
  }
162
161
  function builder(yargs) {
163
162
  yargs.positional('path', {
164
- describe: (0, lang_1.i18n)(`${i18nKey}.positionals.path.describe`),
163
+ describe: (0, lang_1.i18n)('commands.theme.subcommands.generateSelectors.positionals.path.describe'),
165
164
  type: 'string',
166
165
  required: true,
167
166
  });
@@ -11,15 +11,14 @@ const commonOpts_1 = require("../../lib/commonOpts");
11
11
  const usageTracking_1 = require("../../lib/usageTracking");
12
12
  const marketplaceValidate_1 = require("../../lib/marketplaceValidate");
13
13
  const lang_1 = require("../../lib/lang");
14
- const i18nKey = 'commands.theme.subcommands.marketplaceValidate';
15
14
  exports.command = 'marketplace-validate <path>';
16
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
15
+ exports.describe = (0, lang_1.i18n)('commands.theme.subcommands.marketplaceValidate.describe');
17
16
  async function handler(args) {
18
17
  const { path, derivedAccountId } = args;
19
18
  (0, usageTracking_1.trackCommandUsage)('validate', {}, derivedAccountId);
20
19
  SpinniesManager_1.default.init();
21
20
  SpinniesManager_1.default.add('marketplaceValidation', {
22
- text: (0, lang_1.i18n)(`${i18nKey}.logs.validatingTheme`, {
21
+ text: (0, lang_1.i18n)('commands.theme.subcommands.marketplaceValidate.logs.validatingTheme', {
23
22
  path,
24
23
  }),
25
24
  });
@@ -28,8 +27,8 @@ async function handler(args) {
28
27
  await (0, marketplaceValidate_1.pollForValidationFinish)(derivedAccountId, validationId);
29
28
  SpinniesManager_1.default.remove('marketplaceValidation');
30
29
  const validationResults = await (0, marketplaceValidate_1.fetchValidationResults)(derivedAccountId, validationId);
31
- (0, marketplaceValidate_1.processValidationErrors)(i18nKey, validationResults);
32
- (0, marketplaceValidate_1.displayValidationResults)(i18nKey, validationResults);
30
+ (0, marketplaceValidate_1.processValidationErrors)('commands.theme.subcommands.marketplaceValidate', validationResults);
31
+ (0, marketplaceValidate_1.displayValidationResults)('commands.theme.subcommands.marketplaceValidate', validationResults);
33
32
  process.exit();
34
33
  }
35
34
  function builder(yargs) {
@@ -37,7 +36,7 @@ function builder(yargs) {
37
36
  (0, commonOpts_1.addAccountOptions)(yargs);
38
37
  (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
39
38
  yargs.positional('path', {
40
- describe: (0, lang_1.i18n)(`${i18nKey}.positionals.path.describe`),
39
+ describe: (0, lang_1.i18n)('commands.theme.subcommands.marketplaceValidate.positionals.path.describe'),
41
40
  type: 'string',
42
41
  required: true,
43
42
  });
@@ -22,16 +22,16 @@ const previewPrompt_1 = require("../../lib/prompts/previewPrompt");
22
22
  const exitCodes_1 = require("../../lib/enums/exitCodes");
23
23
  const index_1 = require("../../lib/errorHandlers/index");
24
24
  const process_1 = require("../../lib/process");
25
- const projects_1 = require("../../lib/projects");
25
+ const config_1 = require("../../lib/projects/config");
26
26
  const structure_1 = require("../../lib/projects/structure");
27
27
  const Projects_1 = require("../../types/Projects");
28
28
  const hasFeature_1 = require("../../lib/hasFeature");
29
- const i18nKey = 'commands.theme.subcommands.preview';
29
+ const constants_1 = require("../../lib/constants");
30
30
  exports.command = 'preview [--src] [--dest]';
31
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
31
+ exports.describe = (0, lang_1.i18n)('commands.theme.subcommands.preview.describe');
32
32
  function validateSrcPath(src) {
33
33
  const logInvalidPath = () => {
34
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.invalidPath`, {
34
+ logger_1.logger.error((0, lang_1.i18n)('commands.theme.subcommands.preview.errors.invalidPath', {
35
35
  path: src,
36
36
  }));
37
37
  };
@@ -50,7 +50,7 @@ function validateSrcPath(src) {
50
50
  }
51
51
  function handleUserInput() {
52
52
  const onTerminate = () => {
53
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.logs.processExited`));
53
+ logger_1.logger.log((0, lang_1.i18n)('commands.theme.subcommands.preview.logs.processExited'));
54
54
  process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
55
55
  };
56
56
  (0, process_1.handleExit)(onTerminate);
@@ -63,7 +63,7 @@ function handleUserInput() {
63
63
  async function determineSrcAndDest(args) {
64
64
  let absoluteSrc;
65
65
  let dest;
66
- const { projectDir, projectConfig } = await (0, projects_1.getProjectConfig)();
66
+ const { projectDir, projectConfig } = await (0, config_1.getProjectConfig)();
67
67
  if (!(projectDir && projectConfig)) {
68
68
  // Not in a project, prompt for src and dest of traditional theme
69
69
  const previewPromptAnswers = await (0, previewPrompt_1.previewPrompt)(args);
@@ -81,7 +81,7 @@ async function determineSrcAndDest(args) {
81
81
  const projectComponents = await (0, structure_1.findProjectComponents)(projectDir);
82
82
  const themeComponents = projectComponents.filter(c => c.type === Projects_1.ComponentTypes.HublTheme);
83
83
  if (themeComponents.length === 0) {
84
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.noThemeComponents`));
84
+ logger_1.logger.error((0, lang_1.i18n)('commands.theme.subcommands.preview.errors.noThemeComponents'));
85
85
  process.exit(exitCodes_1.EXIT_CODES.ERROR);
86
86
  }
87
87
  const answer = await (0, previewPrompt_1.previewProjectPrompt)(themeComponents);
@@ -105,7 +105,7 @@ async function handler(args) {
105
105
  hideCursor: true,
106
106
  }, cli_progress_1.default.Presets.rect);
107
107
  initialUploadProgressBar.start(numFiles, 0, {
108
- label: (0, lang_1.i18n)(`${i18nKey}.initialUploadProgressBar.start`),
108
+ label: (0, lang_1.i18n)('commands.theme.subcommands.preview.initialUploadProgressBar.start'),
109
109
  });
110
110
  let uploadsHaveStarted = false;
111
111
  const uploadOptions = {
@@ -117,7 +117,7 @@ async function handler(args) {
117
117
  if (!uploadsHaveStarted) {
118
118
  uploadsHaveStarted = true;
119
119
  initialUploadProgressBar.update(0, {
120
- label: (0, lang_1.i18n)(`${i18nKey}.initialUploadProgressBar.uploading`),
120
+ label: (0, lang_1.i18n)('commands.theme.subcommands.preview.initialUploadProgressBar.uploading'),
121
121
  });
122
122
  }
123
123
  },
@@ -130,7 +130,7 @@ async function handler(args) {
130
130
  onFinalErrorCallback: () => initialUploadProgressBar.increment(),
131
131
  onFinishCallback: (results) => {
132
132
  initialUploadProgressBar.update(numFiles, {
133
- label: (0, lang_1.i18n)(`${i18nKey}.initialUploadProgressBar.finish`),
133
+ label: (0, lang_1.i18n)('commands.theme.subcommands.preview.initialUploadProgressBar.finish'),
134
134
  });
135
135
  initialUploadProgressBar.stop();
136
136
  results.forEach(result => {
@@ -159,7 +159,7 @@ async function handler(args) {
159
159
  catch (e) {
160
160
  logger_1.logger.warn('Unified dev server requires node 20 to run. Defaulting to legacy preview.');
161
161
  }
162
- const isUngatedForUnified = await (0, hasFeature_1.hasFeature)(derivedAccountId, 'cms:react:unifiedThemePreview');
162
+ const isUngatedForUnified = await (0, hasFeature_1.hasFeature)(derivedAccountId, constants_1.FEATURES.UNIFIED_THEME_PREVIEW);
163
163
  if (isUngatedForUnified && createUnifiedDevServer) {
164
164
  if (port) {
165
165
  process.env['PORT'] = port.toString();
@@ -188,27 +188,27 @@ function builder(yargs) {
188
188
  (0, commonOpts_1.addAccountOptions)(yargs);
189
189
  yargs
190
190
  .option('src', {
191
- describe: (0, lang_1.i18n)(`${i18nKey}.options.src.describe`),
191
+ describe: (0, lang_1.i18n)('commands.theme.subcommands.preview.options.src.describe'),
192
192
  type: 'string',
193
193
  requiresArg: true,
194
194
  })
195
195
  .option('dest', {
196
- describe: (0, lang_1.i18n)(`${i18nKey}.options.dest.describe`),
196
+ describe: (0, lang_1.i18n)('commands.theme.subcommands.preview.options.dest.describe'),
197
197
  type: 'string',
198
198
  requiresArg: true,
199
199
  })
200
200
  .option('notify', {
201
201
  alias: 'n',
202
- describe: (0, lang_1.i18n)(`${i18nKey}.options.notify.describe`),
202
+ describe: (0, lang_1.i18n)('commands.theme.subcommands.preview.options.notify.describe'),
203
203
  type: 'string',
204
204
  requiresArg: true,
205
205
  })
206
206
  .option('no-ssl', {
207
- describe: (0, lang_1.i18n)(`${i18nKey}.options.noSsl.describe`),
207
+ describe: (0, lang_1.i18n)('commands.theme.subcommands.preview.options.noSsl.describe'),
208
208
  type: 'boolean',
209
209
  })
210
210
  .option('port', {
211
- describe: (0, lang_1.i18n)(`${i18nKey}.options.port.describe`),
211
+ describe: (0, lang_1.i18n)('commands.theme.subcommands.preview.options.port.describe'),
212
212
  type: 'number',
213
213
  })
214
214
  .option('resetSession', {
package/commands/theme.js CHANGED
@@ -40,9 +40,8 @@ const generateSelectors = __importStar(require("./theme/generate-selectors"));
40
40
  const previewCommand = __importStar(require("./theme/preview"));
41
41
  const commonOpts_1 = require("../lib/commonOpts");
42
42
  const lang_1 = require("../lib/lang");
43
- const i18nKey = 'commands.theme';
44
43
  exports.command = ['theme', 'themes'];
45
- exports.describe = (0, lang_1.i18n)(`${i18nKey}.describe`);
44
+ exports.describe = (0, lang_1.i18n)('commands.theme.describe');
46
45
  function builder(yargs) {
47
46
  (0, commonOpts_1.addGlobalOptions)(yargs);
48
47
  yargs