@hubspot/cli 7.4.3-experimental.0 → 7.4.4-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 (149) hide show
  1. package/api/migrate.d.ts +71 -0
  2. package/api/migrate.js +58 -0
  3. package/bin/cli.js +8 -183
  4. package/commands/account/auth.d.ts +10 -0
  5. package/commands/account/auth.js +168 -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 +24 -12
  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.js +7 -8
  30. package/commands/customObject/schema/delete.js +4 -1
  31. package/commands/customObject/schema/fetch-all.js +2 -1
  32. package/commands/customObject/schema/fetch.js +2 -1
  33. package/commands/customObject.js +3 -4
  34. package/commands/doctor.js +5 -6
  35. package/commands/feedback.js +7 -8
  36. package/commands/fetch.js +6 -7
  37. package/commands/filemanager.js +1 -2
  38. package/commands/function.js +1 -2
  39. package/commands/hubdb/clear.js +5 -6
  40. package/commands/hubdb/create.js +7 -8
  41. package/commands/hubdb/delete.js +8 -7
  42. package/commands/hubdb/fetch.js +4 -5
  43. package/commands/hubdb.js +1 -2
  44. package/commands/init.js +18 -20
  45. package/commands/lint.js +3 -4
  46. package/commands/list.js +5 -6
  47. package/commands/logs.js +12 -13
  48. package/commands/module/marketplace-validate.js +5 -6
  49. package/commands/module.js +1 -3
  50. package/commands/mv.js +4 -5
  51. package/commands/open.js +4 -5
  52. package/commands/project/add.js +17 -13
  53. package/commands/project/cloneApp.d.ts +5 -1
  54. package/commands/project/cloneApp.js +17 -12
  55. package/commands/project/create.js +18 -14
  56. package/commands/project/deploy.js +17 -15
  57. package/commands/project/dev/deprecatedFlow.js +19 -12
  58. package/commands/project/dev/index.js +12 -8
  59. package/commands/project/dev/unifiedFlow.js +2 -3
  60. package/commands/project/download.js +8 -9
  61. package/commands/project/installDeps.d.ts +9 -1
  62. package/commands/project/installDeps.js +46 -31
  63. package/commands/project/listBuilds.js +15 -11
  64. package/commands/project/logs.d.ts +13 -1
  65. package/commands/project/logs.js +72 -63
  66. package/commands/project/migrate.d.ts +11 -0
  67. package/commands/project/migrate.js +67 -0
  68. package/commands/project/migrateApp.d.ts +4 -4
  69. package/commands/project/migrateApp.js +7 -5
  70. package/commands/project/open.js +11 -5
  71. package/commands/project/upload.d.ts +12 -0
  72. package/commands/project/upload.js +67 -50
  73. package/commands/project/watch.js +22 -6
  74. package/commands/project.js +3 -2
  75. package/commands/remove.js +7 -5
  76. package/commands/sandbox/create.js +10 -11
  77. package/commands/sandbox/delete.js +18 -19
  78. package/commands/sandbox.js +1 -2
  79. package/commands/secret/addSecret.js +5 -6
  80. package/commands/secret/deleteSecret.js +12 -9
  81. package/commands/secret/listSecret.js +3 -4
  82. package/commands/secret/updateSecret.js +9 -8
  83. package/commands/secret.js +1 -2
  84. package/commands/theme/generate-selectors.js +5 -6
  85. package/commands/theme/marketplace-validate.js +5 -6
  86. package/commands/theme/preview.js +14 -14
  87. package/commands/theme.js +1 -2
  88. package/commands/upload.js +23 -24
  89. package/commands/watch.js +18 -19
  90. package/lang/en.d.ts +2792 -0
  91. package/lang/en.js +2648 -3300
  92. package/lang/en.lyaml +97 -43
  93. package/lib/accountTypes.d.ts +1 -0
  94. package/lib/accountTypes.js +12 -0
  95. package/lib/app/migrate.d.ts +10 -6
  96. package/lib/app/migrate.js +206 -220
  97. package/lib/app/migrate_legacy.d.ts +4 -0
  98. package/lib/app/migrate_legacy.js +132 -0
  99. package/lib/configMigrate.d.ts +2 -0
  100. package/lib/configMigrate.js +104 -0
  101. package/lib/constants.d.ts +4 -0
  102. package/lib/constants.js +5 -1
  103. package/lib/doctor/Diagnosis.d.ts +1 -2
  104. package/lib/doctor/Diagnosis.js +10 -6
  105. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -0
  106. package/lib/doctor/DiagnosticInfoBuilder.js +1 -0
  107. package/lib/doctor/Doctor.d.ts +1 -0
  108. package/lib/doctor/Doctor.js +18 -0
  109. package/lib/errorHandlers/index.js +1 -1
  110. package/lib/hasFeature.d.ts +3 -1
  111. package/lib/localDev.d.ts +2 -1
  112. package/lib/localDev.js +21 -3
  113. package/lib/middleware/__test__/configMiddleware.test.d.ts +1 -0
  114. package/lib/middleware/__test__/configMiddleware.test.js +194 -0
  115. package/lib/middleware/__test__/gitMiddleware.test.d.ts +1 -0
  116. package/lib/middleware/__test__/gitMiddleware.test.js +76 -0
  117. package/lib/middleware/__test__/notificationsMiddleware.test.d.ts +1 -0
  118. package/lib/middleware/__test__/notificationsMiddleware.test.js +10 -0
  119. package/lib/middleware/__test__/requestMiddleware.test.d.ts +1 -0
  120. package/lib/middleware/__test__/requestMiddleware.test.js +20 -0
  121. package/lib/middleware/__test__/utils.test.d.ts +1 -0
  122. package/lib/middleware/__test__/utils.test.js +53 -0
  123. package/lib/middleware/__test__/yargsChecksMiddleware.test.d.ts +1 -0
  124. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +81 -0
  125. package/lib/middleware/configMiddleware.d.ts +13 -0
  126. package/lib/middleware/configMiddleware.js +116 -0
  127. package/lib/middleware/fireAlarmMiddleware.d.ts +4 -0
  128. package/lib/middleware/fireAlarmMiddleware.js +137 -0
  129. package/lib/middleware/gitMiddleware.d.ts +2 -0
  130. package/lib/middleware/gitMiddleware.js +14 -0
  131. package/lib/middleware/notificationsMiddleware.d.ts +1 -0
  132. package/lib/middleware/notificationsMiddleware.js +38 -0
  133. package/lib/middleware/requestMiddleware.d.ts +1 -0
  134. package/lib/middleware/requestMiddleware.js +11 -0
  135. package/lib/middleware/utils.d.ts +8 -0
  136. package/lib/middleware/utils.js +17 -0
  137. package/lib/middleware/yargsChecksMiddleware.d.ts +4 -0
  138. package/lib/middleware/yargsChecksMiddleware.js +24 -0
  139. package/lib/projects/ProjectLogsManager.d.ts +1 -1
  140. package/lib/projects/ProjectLogsManager.js +1 -1
  141. package/lib/projects/index.d.ts +4 -3
  142. package/lib/projects/upload.d.ts +1 -1
  143. package/lib/prompts/promptUtils.d.ts +1 -1
  144. package/lib/ui/SpinniesManager.d.ts +1 -1
  145. package/lib/ui/index.d.ts +1 -0
  146. package/lib/ui/index.js +5 -0
  147. package/lib/ui/spinniesUtils.d.ts +5 -5
  148. package/package.json +7 -6
  149. package/types/Yargs.d.ts +0 -10
@@ -1,43 +1,48 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- // @ts-nocheck
4
- const { installPackages, getProjectPackageJsonLocations, } = require('../../lib/dependencyManagement');
5
- const { logger } = require('@hubspot/local-dev-lib/logger');
6
- const { EXIT_CODES } = require('../../lib/enums/exitCodes');
7
- const { getProjectConfig } = require('../../lib/projects');
8
- const { promptUser } = require('../../lib/prompts/promptUtils');
9
- const path = require('path');
10
- const { i18n } = require('../../lib/lang');
11
- const { trackCommandUsage } = require('../../lib/usageTracking');
12
- const { uiBetaTag } = require('../../lib/ui');
13
- const i18nKey = `commands.project.subcommands.installDeps`;
6
+ exports.builder = exports.describe = exports.command = void 0;
7
+ exports.handler = handler;
8
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
9
+ const dependencyManagement_1 = require("../../lib/dependencyManagement");
10
+ const exitCodes_1 = require("../../lib/enums/exitCodes");
11
+ const projects_1 = require("../../lib/projects");
12
+ const promptUtils_1 = require("../../lib/prompts/promptUtils");
13
+ const path_1 = __importDefault(require("path"));
14
+ const lang_1 = require("../../lib/lang");
15
+ const usageTracking_1 = require("../../lib/usageTracking");
16
+ const ui_1 = require("../../lib/ui");
17
+ const errorHandlers_1 = require("../../lib/errorHandlers");
18
+ const yargsUtils_1 = require("../../lib/yargsUtils");
14
19
  exports.command = 'install-deps [packages..]';
15
- exports.describe = uiBetaTag(i18n(`${i18nKey}.help.describe`), false);
16
- exports.handler = async (options) => {
17
- const { derivedAccountId, packages } = options || {};
20
+ exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.project.subcommands.installDeps.help.describe`), false);
21
+ async function handler(args) {
22
+ const { derivedAccountId, packages } = args;
18
23
  try {
19
- trackCommandUsage('project-install-deps', null, derivedAccountId);
20
- const projectConfig = await getProjectConfig();
24
+ (0, usageTracking_1.trackCommandUsage)('project-install-deps', undefined, derivedAccountId);
25
+ const projectConfig = await (0, projects_1.getProjectConfig)();
21
26
  if (!projectConfig || !projectConfig.projectDir) {
22
- logger.error(i18n(`${i18nKey}.noProjectConfig`));
23
- return process.exit(EXIT_CODES.ERROR);
27
+ logger_1.logger.error((0, lang_1.i18n)(`commands.project.subcommands.installDeps.noProjectConfig`));
28
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
24
29
  }
25
30
  const { projectDir } = projectConfig;
26
- let installLocations = await getProjectPackageJsonLocations();
31
+ let installLocations = await (0, dependencyManagement_1.getProjectPackageJsonLocations)();
27
32
  if (packages) {
28
- const { selectedInstallLocations } = await promptUser([
33
+ const { selectedInstallLocations } = await (0, promptUtils_1.promptUser)([
29
34
  {
30
35
  name: 'selectedInstallLocations',
31
36
  type: 'checkbox',
32
37
  when: () => packages && packages.length > 0,
33
- message: i18n(`${i18nKey}.installLocationPrompt`),
38
+ message: (0, lang_1.i18n)(`commands.project.subcommands.installDeps.installLocationPrompt`),
34
39
  choices: installLocations.map(dir => ({
35
- name: path.relative(projectDir, dir),
40
+ name: path_1.default.relative(projectDir, dir),
36
41
  value: dir,
37
42
  })),
38
43
  validate: choices => {
39
44
  if (choices === undefined || choices.length === 0) {
40
- return i18n(`${i18nKey}.installLocationPromptRequired`);
45
+ return (0, lang_1.i18n)(`commands.project.subcommands.installDeps.installLocationPromptRequired`);
41
46
  }
42
47
  return true;
43
48
  },
@@ -47,23 +52,33 @@ exports.handler = async (options) => {
47
52
  installLocations = selectedInstallLocations;
48
53
  }
49
54
  }
50
- await installPackages({
55
+ await (0, dependencyManagement_1.installPackages)({
51
56
  packages,
52
57
  installLocations,
53
58
  });
54
59
  }
55
60
  catch (e) {
56
- logger.debug(e);
57
- logger.error(e.message);
58
- return process.exit(EXIT_CODES.ERROR);
61
+ (0, errorHandlers_1.logError)(e);
62
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
59
63
  }
60
- };
61
- exports.builder = yargs => {
64
+ }
65
+ function projectInstallDepsBuilder(yargs) {
62
66
  yargs.example([
63
- ['$0 project install-deps', i18n(`${i18nKey}.help.installAppDepsExample`)],
67
+ [
68
+ '$0 project install-deps',
69
+ (0, lang_1.i18n)(`commands.project.subcommands.installDeps.help.installAppDepsExample`),
70
+ ],
64
71
  [
65
72
  '$0 project install-deps dependency1 dependency2',
66
- i18n(`${i18nKey}.help.addDepToSubComponentExample`),
73
+ (0, lang_1.i18n)(`commands.project.subcommands.installDeps.help.addDepToSubComponentExample`),
67
74
  ],
68
75
  ]);
76
+ return yargs;
77
+ }
78
+ exports.builder = (0, yargsUtils_1.makeYargsBuilder)(projectInstallDepsBuilder, exports.command, exports.describe);
79
+ module.exports = {
80
+ command: exports.command,
81
+ describe: exports.describe,
82
+ builder: exports.builder,
83
+ handler,
69
84
  };
@@ -20,27 +20,26 @@ const usageTracking_1 = require("../../lib/usageTracking");
20
20
  const lang_1 = require("../../lib/lang");
21
21
  const index_2 = require("../../lib/errorHandlers/index");
22
22
  const exitCodes_1 = require("../../lib/enums/exitCodes");
23
- const i18nKey = 'commands.project.subcommands.listBuilds';
24
23
  exports.command = 'list-builds';
25
- exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.describe`), false);
24
+ exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.project.subcommands.listBuilds.describe`), false);
26
25
  async function fetchAndDisplayBuilds(accountId, project, options) {
27
26
  const { data: { results, paging }, } = await (0, projects_1.fetchProjectBuilds)(accountId, project.name, options);
28
27
  const currentDeploy = project.deployedBuildId;
29
28
  if (options && options.after) {
30
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.logs.showingNextBuilds`, {
29
+ logger_1.logger.log((0, lang_1.i18n)(`commands.project.subcommands.listBuilds.logs.showingNextBuilds`, {
31
30
  count: results.length,
32
31
  projectName: project.name,
33
32
  }));
34
33
  }
35
34
  else {
36
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.logs.showingRecentBuilds`, {
35
+ logger_1.logger.log((0, lang_1.i18n)(`commands.project.subcommands.listBuilds.logs.showingRecentBuilds`, {
37
36
  count: results.length,
38
37
  projectName: project.name,
39
- viewBuildsLink: (0, ui_1.uiLink)((0, lang_1.i18n)(`${i18nKey}.logs.viewAllBuildsLink`), (0, urls_1.getProjectDetailUrl)(project.name, accountId)),
38
+ viewBuildsLink: (0, ui_1.uiLink)((0, lang_1.i18n)(`commands.project.subcommands.listBuilds.logs.viewAllBuildsLink`), (0, urls_1.getProjectDetailUrl)(project.name, accountId)),
40
39
  }));
41
40
  }
42
41
  if (results.length === 0) {
43
- logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.errors.noBuilds`));
42
+ logger_1.logger.log((0, lang_1.i18n)(`commands.project.subcommands.listBuilds.errors.noBuilds`));
44
43
  }
45
44
  else {
46
45
  const builds = results.map(build => {
@@ -70,7 +69,7 @@ async function fetchAndDisplayBuilds(accountId, project, options) {
70
69
  if (paging && paging.next) {
71
70
  await (0, promptUtils_1.promptUser)({
72
71
  name: 'more',
73
- message: (0, lang_1.i18n)(`${i18nKey}.continueOrExitPrompt`),
72
+ message: (0, lang_1.i18n)(`commands.project.subcommands.listBuilds.continueOrExitPrompt`),
74
73
  });
75
74
  await fetchAndDisplayBuilds(accountId, project, {
76
75
  limit: options.limit,
@@ -93,7 +92,9 @@ async function handler(args) {
93
92
  }
94
93
  catch (e) {
95
94
  if ((0, index_1.isHubSpotHttpError)(e) && e.status === 404) {
96
- logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.projectNotFound`, { projectName }));
95
+ logger_1.logger.error((0, lang_1.i18n)(`commands.project.subcommands.listBuilds.errors.projectNotFound`, {
96
+ projectName,
97
+ }));
97
98
  }
98
99
  else {
99
100
  (0, index_2.logError)(e, new index_2.ApiErrorContext({
@@ -110,16 +111,19 @@ function builder(yargs) {
110
111
  (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
111
112
  yargs.options({
112
113
  project: {
113
- describe: (0, lang_1.i18n)(`${i18nKey}.options.project.describe`),
114
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.listBuilds.options.project.describe`),
114
115
  type: 'string',
115
116
  },
116
117
  limit: {
117
- describe: (0, lang_1.i18n)(`${i18nKey}.options.limit.describe`),
118
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.listBuilds.options.limit.describe`),
118
119
  type: 'string',
119
120
  },
120
121
  });
121
122
  yargs.example([
122
- ['$0 project list-builds', (0, lang_1.i18n)(`${i18nKey}.examples.default`)],
123
+ [
124
+ '$0 project list-builds',
125
+ (0, lang_1.i18n)(`commands.project.subcommands.listBuilds.examples.default`),
126
+ ],
123
127
  ]);
124
128
  return yargs;
125
129
  }
@@ -1 +1,13 @@
1
- export {};
1
+ import { Argv, ArgumentsCamelCase } from 'yargs';
2
+ import { CommonArgs } from '../../types/Yargs';
3
+ export declare const command = "logs";
4
+ export declare const describe: string;
5
+ export type ProjectLogsArgs = CommonArgs & {
6
+ function?: string;
7
+ latest?: boolean;
8
+ compact?: boolean;
9
+ tail?: boolean;
10
+ limit?: number;
11
+ };
12
+ export declare const handler: (args: ArgumentsCamelCase<ProjectLogsArgs>) => Promise<never>;
13
+ export declare const builder: (yargs: Argv) => Promise<Argv<ProjectLogsArgs>>;
@@ -1,110 +1,119 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- // @ts-nocheck
4
- const { getEnv } = require('@hubspot/local-dev-lib/config');
5
- const { getHubSpotWebsiteOrigin } = require('@hubspot/local-dev-lib/urls');
6
- const { ENVIRONMENTS, } = require('@hubspot/local-dev-lib/constants/environments');
7
- const { addUseEnvironmentOptions } = require('../../lib/commonOpts');
8
- const { trackCommandUsage } = require('../../lib/usageTracking');
9
- const { logger } = require('@hubspot/local-dev-lib/logger');
10
- const { getTableContents, getTableHeader } = require('../../lib/ui/table');
11
- const { logError } = require('../../lib/errorHandlers/');
12
- const { uiBetaTag, uiLine, uiLink } = require('../../lib/ui');
13
- const { projectLogsPrompt } = require('../../lib/prompts/projectsLogsPrompt');
14
- const { i18n } = require('../../lib/lang');
15
- const { EXIT_CODES } = require('../../lib/enums/exitCodes');
16
- const { ProjectLogsManager } = require('../../lib/projects/ProjectLogsManager');
17
- const i18nKey = 'commands.project.subcommands.logs';
18
- const getPrivateAppsUrl = accountId => {
19
- const baseUrl = getHubSpotWebsiteOrigin(getEnv(accountId) === 'qa' ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD);
3
+ exports.builder = exports.handler = exports.describe = exports.command = void 0;
4
+ const config_1 = require("@hubspot/local-dev-lib/config");
5
+ const urls_1 = require("@hubspot/local-dev-lib/urls");
6
+ const environments_1 = require("@hubspot/local-dev-lib/constants/environments");
7
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
8
+ const usageTracking_1 = require("../../lib/usageTracking");
9
+ const table_1 = require("../../lib/ui/table");
10
+ const errorHandlers_1 = require("../../lib/errorHandlers/");
11
+ const ui_1 = require("../../lib/ui");
12
+ const projectsLogsPrompt_1 = require("../../lib/prompts/projectsLogsPrompt");
13
+ const lang_1 = require("../../lib/lang");
14
+ const exitCodes_1 = require("../../lib/enums/exitCodes");
15
+ const ProjectLogsManager_1 = require("../../lib/projects/ProjectLogsManager");
16
+ const yargsUtils_1 = require("../../lib/yargsUtils");
17
+ function getPrivateAppsUrl(accountId) {
18
+ const baseUrl = (0, urls_1.getHubSpotWebsiteOrigin)((0, config_1.getEnv)(accountId) === 'qa' ? environments_1.ENVIRONMENTS.QA : environments_1.ENVIRONMENTS.PROD);
20
19
  return `${baseUrl}/private-apps/${accountId}`;
21
- };
20
+ }
22
21
  function logTable(tableHeader, logsInfo) {
23
- logger.log(i18n(`${i18nKey}.logs.showingLogs`));
24
- logger.log(getTableContents([tableHeader, logsInfo], { border: { bodyLeft: ' ' } }));
22
+ logger_1.logger.log((0, lang_1.i18n)(`commands.project.subcommands.logs.logs.showingLogs`));
23
+ logger_1.logger.log((0, table_1.getTableContents)([tableHeader, logsInfo], { border: { bodyLeft: ' ' } }));
25
24
  }
26
25
  function logPreamble() {
27
- if (ProjectLogsManager.isPublicFunction) {
28
- logTable(getTableHeader([
29
- i18n(`${i18nKey}.table.accountHeader`),
30
- i18n(`${i18nKey}.table.functionHeader`),
31
- i18n(`${i18nKey}.table.endpointHeader`),
26
+ if (ProjectLogsManager_1.ProjectLogsManager.isPublicFunction) {
27
+ logTable((0, table_1.getTableHeader)([
28
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.table.accountHeader`),
29
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.table.functionHeader`),
30
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.table.endpointHeader`),
32
31
  ]), [
33
- ProjectLogsManager.accountId,
34
- ProjectLogsManager.functionName,
35
- ProjectLogsManager.endpointName,
32
+ ProjectLogsManager_1.ProjectLogsManager.accountId,
33
+ ProjectLogsManager_1.ProjectLogsManager.functionName,
34
+ ProjectLogsManager_1.ProjectLogsManager.endpointName,
36
35
  ]);
37
- logger.log(uiLink(i18n(`${i18nKey}.logs.hubspotLogsDirectLink`), `${getPrivateAppsUrl(ProjectLogsManager.accountId)}/${ProjectLogsManager.appId}/logs/serverlessGatewayExecution?path=${ProjectLogsManager.endpointName}`));
36
+ logger_1.logger.log((0, ui_1.uiLink)((0, lang_1.i18n)(`commands.project.subcommands.logs.logs.hubspotLogsDirectLink`), `${getPrivateAppsUrl(ProjectLogsManager_1.ProjectLogsManager.accountId)}/${ProjectLogsManager_1.ProjectLogsManager.appId}/logs/serverlessGatewayExecution?path=${ProjectLogsManager_1.ProjectLogsManager.endpointName}`));
38
37
  }
39
38
  else {
40
- logTable(getTableHeader([
41
- i18n(`${i18nKey}.table.accountHeader`),
42
- i18n(`${i18nKey}.table.functionHeader`),
43
- ]), [ProjectLogsManager.accountId, ProjectLogsManager.functionName]);
44
- logger.log(uiLink(i18n(`${i18nKey}.logs.hubspotLogsDirectLink`), `${getPrivateAppsUrl(ProjectLogsManager.accountId)}/${ProjectLogsManager.appId}/logs/crm?serverlessFunction=${ProjectLogsManager.functionName}`));
39
+ logTable((0, table_1.getTableHeader)([
40
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.table.accountHeader`),
41
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.table.functionHeader`),
42
+ ]), [ProjectLogsManager_1.ProjectLogsManager.accountId, ProjectLogsManager_1.ProjectLogsManager.functionName]);
43
+ logger_1.logger.log((0, ui_1.uiLink)((0, lang_1.i18n)(`commands.project.subcommands.logs.logs.hubspotLogsDirectLink`), `${getPrivateAppsUrl(ProjectLogsManager_1.ProjectLogsManager.accountId)}/${ProjectLogsManager_1.ProjectLogsManager.appId}/logs/crm?serverlessFunction=${ProjectLogsManager_1.ProjectLogsManager.functionName}`));
45
44
  }
46
- logger.log();
47
- uiLine();
45
+ logger_1.logger.log();
46
+ (0, ui_1.uiLine)();
48
47
  }
49
48
  exports.command = 'logs';
50
- exports.describe = uiBetaTag(i18n(`${i18nKey}.describe`), false);
51
- exports.handler = async (options) => {
52
- const { derivedAccountId } = options;
53
- trackCommandUsage('project-logs', null, derivedAccountId);
49
+ exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.project.subcommands.logs.describe`), false);
50
+ const handler = async (args) => {
51
+ const { derivedAccountId } = args;
52
+ (0, usageTracking_1.trackCommandUsage)('project-logs', undefined, derivedAccountId);
54
53
  try {
55
- await ProjectLogsManager.init(derivedAccountId);
56
- const { functionName } = await projectLogsPrompt({
57
- functionChoices: ProjectLogsManager.getFunctionNames(),
58
- promptOptions: options,
59
- projectName: ProjectLogsManager.projectName,
54
+ await ProjectLogsManager_1.ProjectLogsManager.init(derivedAccountId);
55
+ const { functionName } = await (0, projectsLogsPrompt_1.projectLogsPrompt)({
56
+ functionChoices: ProjectLogsManager_1.ProjectLogsManager.getFunctionNames(),
57
+ promptOptions: args,
58
+ projectName: ProjectLogsManager_1.ProjectLogsManager.projectName,
60
59
  });
61
- ProjectLogsManager.setFunction(functionName);
60
+ ProjectLogsManager_1.ProjectLogsManager.setFunction(functionName);
62
61
  logPreamble();
63
62
  }
64
63
  catch (e) {
65
- logError(e, {
64
+ (0, errorHandlers_1.logError)(e, {
66
65
  accountId: derivedAccountId,
67
- projectName: ProjectLogsManager.projectName,
66
+ projectName: ProjectLogsManager_1.ProjectLogsManager.projectName,
68
67
  });
69
- return process.exit(EXIT_CODES.ERROR);
68
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
70
69
  }
70
+ process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
71
71
  };
72
- exports.builder = yargs => {
73
- yargs
74
- .options({
72
+ exports.handler = handler;
73
+ function projectLogsBuilder(yargs) {
74
+ yargs.options({
75
75
  function: {
76
76
  alias: 'function',
77
- describe: i18n(`${i18nKey}.options.function.describe`),
77
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.logs.options.function.describe`),
78
78
  requiresArg: true,
79
79
  type: 'string',
80
80
  },
81
81
  latest: {
82
82
  alias: 'l',
83
- describe: i18n(`${i18nKey}.options.latest.describe`),
83
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.logs.options.latest.describe`),
84
84
  type: 'boolean',
85
85
  },
86
86
  compact: {
87
- describe: i18n(`${i18nKey}.options.compact.describe`),
87
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.logs.options.compact.describe`),
88
88
  type: 'boolean',
89
89
  },
90
90
  tail: {
91
91
  alias: ['t', 'follow'],
92
- describe: i18n(`${i18nKey}.options.tail.describe`),
92
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.logs.options.tail.describe`),
93
93
  type: 'boolean',
94
94
  },
95
95
  limit: {
96
- describe: i18n(`${i18nKey}.options.limit.describe`),
96
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.logs.options.limit.describe`),
97
97
  type: 'number',
98
98
  },
99
- })
100
- .conflicts('tail', 'limit')
101
- .example([
102
- ['$0 project logs', i18n(`${i18nKey}.examples.default`)],
99
+ });
100
+ yargs.conflicts('tail', 'limit');
101
+ yargs.example([
102
+ [
103
+ '$0 project logs',
104
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.examples.default`),
105
+ ],
103
106
  [
104
107
  '$0 project logs --function=my-function',
105
- i18n(`${i18nKey}.examples.withOptions`),
108
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.examples.withOptions`),
106
109
  ],
107
110
  ]);
108
- addUseEnvironmentOptions(yargs);
109
111
  return yargs;
112
+ }
113
+ exports.builder = (0, yargsUtils_1.makeYargsBuilder)(projectLogsBuilder, exports.command, exports.describe, { useEnvironmentOptions: true });
114
+ module.exports = {
115
+ command: exports.command,
116
+ describe: exports.describe,
117
+ builder: exports.builder,
118
+ handler: exports.handler,
110
119
  };
@@ -0,0 +1,11 @@
1
+ import { ArgumentsCamelCase, Argv, CommandModule } from 'yargs';
2
+ import { AccountArgs, CommonArgs, ConfigArgs, EnvironmentArgs } from '../../types/Yargs';
3
+ export type ProjectMigrateArgs = CommonArgs & AccountArgs & EnvironmentArgs & ConfigArgs & {
4
+ platformVersion: string;
5
+ };
6
+ export declare const command = "migrate";
7
+ export declare const describe: undefined;
8
+ export declare function handler(options: ArgumentsCamelCase<ProjectMigrateArgs>): Promise<void>;
9
+ export declare function builder(yargs: Argv): Argv<ProjectMigrateArgs>;
10
+ declare const migrateAppCommand: CommandModule<unknown, ProjectMigrateArgs>;
11
+ export default migrateAppCommand;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.describe = exports.command = void 0;
4
+ exports.handler = handler;
5
+ exports.builder = builder;
6
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
7
+ const commonOpts_1 = require("../../lib/commonOpts");
8
+ const migrate_1 = require("../../lib/app/migrate");
9
+ const projects_1 = require("../../lib/projects");
10
+ const projects_2 = require("@hubspot/local-dev-lib/constants/projects");
11
+ const errorHandlers_1 = require("../../lib/errorHandlers");
12
+ const exitCodes_1 = require("../../lib/enums/exitCodes");
13
+ const ui_1 = require("../../lib/ui");
14
+ const en_1 = require("../../lang/en");
15
+ const { v2025_2 } = projects_2.PLATFORM_VERSIONS;
16
+ exports.command = 'migrate';
17
+ exports.describe = undefined;
18
+ async function handler(options) {
19
+ const { platformVersion, unstable } = options;
20
+ const projectConfig = await (0, projects_1.getProjectConfig)();
21
+ if (!projectConfig.projectConfig) {
22
+ logger_1.logger.error(en_1.commands.project.migrate.errors.noProjectConfig((0, ui_1.uiCommandReference)('hs app migrate')));
23
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
24
+ }
25
+ logger_1.logger.log();
26
+ logger_1.logger.log((0, ui_1.uiBetaTag)(en_1.commands.project.migrate.preamble(platformVersion), false));
27
+ const { derivedAccountId } = options;
28
+ try {
29
+ await (0, migrate_1.migrateApp2025_2)(derivedAccountId, {
30
+ ...options,
31
+ name: projectConfig?.projectConfig?.name,
32
+ platformVersion: unstable
33
+ ? projects_2.PLATFORM_VERSIONS.unstable
34
+ : platformVersion,
35
+ }, projectConfig);
36
+ }
37
+ catch (error) {
38
+ (0, errorHandlers_1.logError)(error);
39
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
40
+ }
41
+ return process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
42
+ }
43
+ function builder(yargs) {
44
+ (0, commonOpts_1.addConfigOptions)(yargs);
45
+ (0, commonOpts_1.addAccountOptions)(yargs);
46
+ (0, commonOpts_1.addGlobalOptions)(yargs);
47
+ yargs
48
+ .option('platform-version', {
49
+ type: 'string',
50
+ choices: [v2025_2],
51
+ default: v2025_2,
52
+ hidden: true,
53
+ })
54
+ .option('unstable', {
55
+ type: 'boolean',
56
+ default: false,
57
+ hidden: true,
58
+ });
59
+ return yargs;
60
+ }
61
+ const migrateAppCommand = {
62
+ command: exports.command,
63
+ describe: exports.describe,
64
+ handler,
65
+ builder,
66
+ };
67
+ exports.default = migrateAppCommand;
@@ -1,9 +1,9 @@
1
1
  import { ArgumentsCamelCase, Argv, CommandModule } from 'yargs';
2
- import { MigrateAppOptions } from '../../types/Yargs';
2
+ import { MigrateAppArgs } from '../../lib/app/migrate';
3
3
  export declare const command = "migrate-app";
4
4
  export declare const describe: string | undefined;
5
5
  export declare const deprecated = true;
6
- export declare function handler(yargs: ArgumentsCamelCase<MigrateAppOptions>): Promise<void>;
7
- export declare function builder(yargs: Argv): Argv<MigrateAppOptions>;
8
- declare const migrateAppCommand: CommandModule<unknown, MigrateAppOptions>;
6
+ export declare function handler(options: ArgumentsCamelCase<MigrateAppArgs>): Promise<void>;
7
+ export declare function builder(yargs: Argv): Argv<MigrateAppArgs>;
8
+ declare const migrateAppCommand: CommandModule<unknown, MigrateAppArgs>;
9
9
  export default migrateAppCommand;
@@ -8,16 +8,18 @@ const ui_1 = require("../../lib/ui");
8
8
  const migrate_1 = require("../app/migrate");
9
9
  const logger_1 = require("@hubspot/local-dev-lib/logger");
10
10
  const commonOpts_1 = require("../../lib/commonOpts");
11
+ const projects_1 = require("@hubspot/local-dev-lib/constants/projects");
12
+ const { v2023_2, v2025_2 } = projects_1.PLATFORM_VERSIONS;
11
13
  exports.command = 'migrate-app';
12
14
  // TODO: Leave this as deprecated and remove in the next major release
13
15
  exports.describe = (0, ui_1.uiDeprecatedTag)((0, lang_1.i18n)(`commands.project.subcommands.migrateApp.describe`), false);
14
16
  exports.deprecated = true;
15
- async function handler(yargs) {
17
+ async function handler(options) {
16
18
  logger_1.logger.warn((0, lang_1.i18n)(`commands.project.subcommands.migrateApp.deprecationWarning`, {
17
19
  oldCommand: (0, ui_1.uiCommandReference)('hs project migrate-app'),
18
- newCommand: (0, ui_1.uiCommandReference)('hs app migrate'),
20
+ newCommand: (0, ui_1.uiCommandReference)(`hs app migrate --platform-version=${options.platformVersion}`),
19
21
  }));
20
- await (0, migrate_1.handler)(yargs);
22
+ await (0, migrate_1.handler)(options);
21
23
  }
22
24
  function builder(yargs) {
23
25
  (0, commonOpts_1.addConfigOptions)(yargs);
@@ -38,9 +40,9 @@ function builder(yargs) {
38
40
  },
39
41
  'platform-version': {
40
42
  type: 'string',
41
- choices: migrate_1.validMigrationTargets,
43
+ choices: [v2023_2, v2025_2],
42
44
  hidden: true,
43
- default: '2023.2',
45
+ default: v2023_2,
44
46
  },
45
47
  });
46
48
  yargs.example([
@@ -16,9 +16,8 @@ const urls_1 = require("../../lib/projects/urls");
16
16
  const projectNamePrompt_1 = require("../../lib/prompts/projectNamePrompt");
17
17
  const ui_1 = require("../../lib/ui");
18
18
  const exitCodes_1 = require("../../lib/enums/exitCodes");
19
- const i18nKey = 'commands.project.subcommands.open';
20
19
  exports.command = 'open';
21
- exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.describe`), false);
20
+ exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.project.subcommands.open.describe`), false);
22
21
  async function handler(args) {
23
22
  const { project, derivedAccountId } = args;
24
23
  (0, usageTracking_1.trackCommandUsage)('project-open', undefined, derivedAccountId);
@@ -41,7 +40,9 @@ async function handler(args) {
41
40
  }
42
41
  const url = (0, urls_1.getProjectDetailUrl)(projectName, derivedAccountId);
43
42
  (0, open_1.default)(url, { url: true });
44
- logger_1.logger.success((0, lang_1.i18n)(`${i18nKey}.success`, { projectName: projectName }));
43
+ logger_1.logger.success((0, lang_1.i18n)(`commands.project.subcommands.open.success`, {
44
+ projectName: projectName,
45
+ }));
45
46
  process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
46
47
  }
47
48
  function builder(yargs) {
@@ -51,11 +52,16 @@ function builder(yargs) {
51
52
  (0, commonOpts_1.addTestingOptions)(yargs);
52
53
  yargs.options({
53
54
  project: {
54
- describe: (0, lang_1.i18n)(`${i18nKey}.options.project.describe`),
55
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.open.options.project.describe`),
55
56
  type: 'string',
56
57
  },
57
58
  });
58
- yargs.example([['$0 project open', (0, lang_1.i18n)(`${i18nKey}.examples.default`)]]);
59
+ yargs.example([
60
+ [
61
+ '$0 project open',
62
+ (0, lang_1.i18n)(`commands.project.subcommands.open.examples.default`),
63
+ ],
64
+ ]);
59
65
  return yargs;
60
66
  }
61
67
  module.exports = {
@@ -1 +1,13 @@
1
+ import { Argv, ArgumentsCamelCase } from 'yargs';
2
+ import { CommonArgs } from '../../types/Yargs';
3
+ export declare const command = "upload";
4
+ export declare const describe: string;
5
+ type ProjectUploadArgs = CommonArgs & {
6
+ forceCreate: boolean;
7
+ message: string;
8
+ m: string;
9
+ skipValidation: boolean;
10
+ };
11
+ export declare function handler(args: ArgumentsCamelCase<ProjectUploadArgs>): Promise<void>;
12
+ export declare const builder: (yargs: Argv) => Promise<Argv<ProjectUploadArgs>>;
1
13
  export {};