@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
@@ -1,110 +1,118 @@
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
+ const config_1 = require("@hubspot/local-dev-lib/config");
4
+ const urls_1 = require("@hubspot/local-dev-lib/urls");
5
+ const environments_1 = require("@hubspot/local-dev-lib/constants/environments");
6
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
7
+ const usageTracking_1 = require("../../lib/usageTracking");
8
+ const table_1 = require("../../lib/ui/table");
9
+ const errorHandlers_1 = require("../../lib/errorHandlers/");
10
+ const ui_1 = require("../../lib/ui");
11
+ const projectsLogsPrompt_1 = require("../../lib/prompts/projectsLogsPrompt");
12
+ const lang_1 = require("../../lib/lang");
13
+ const exitCodes_1 = require("../../lib/enums/exitCodes");
14
+ const ProjectLogsManager_1 = require("../../lib/projects/ProjectLogsManager");
15
+ const yargsUtils_1 = require("../../lib/yargsUtils");
16
+ function getPrivateAppsUrl(accountId) {
17
+ const baseUrl = (0, urls_1.getHubSpotWebsiteOrigin)((0, config_1.getEnv)(accountId) === 'qa' ? environments_1.ENVIRONMENTS.QA : environments_1.ENVIRONMENTS.PROD);
20
18
  return `${baseUrl}/private-apps/${accountId}`;
21
- };
19
+ }
22
20
  function logTable(tableHeader, logsInfo) {
23
- logger.log(i18n(`${i18nKey}.logs.showingLogs`));
24
- logger.log(getTableContents([tableHeader, logsInfo], { border: { bodyLeft: ' ' } }));
21
+ logger_1.logger.log((0, lang_1.i18n)(`commands.project.subcommands.logs.logs.showingLogs`));
22
+ logger_1.logger.log((0, table_1.getTableContents)([tableHeader, logsInfo], { border: { bodyLeft: ' ' } }));
25
23
  }
26
24
  function logPreamble() {
27
- if (ProjectLogsManager.isPublicFunction) {
28
- logTable(getTableHeader([
29
- i18n(`${i18nKey}.table.accountHeader`),
30
- i18n(`${i18nKey}.table.functionHeader`),
31
- i18n(`${i18nKey}.table.endpointHeader`),
25
+ if (ProjectLogsManager_1.ProjectLogsManager.isPublicFunction) {
26
+ logTable((0, table_1.getTableHeader)([
27
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.table.accountHeader`),
28
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.table.functionHeader`),
29
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.table.endpointHeader`),
32
30
  ]), [
33
- ProjectLogsManager.accountId,
34
- ProjectLogsManager.functionName,
35
- ProjectLogsManager.endpointName,
31
+ ProjectLogsManager_1.ProjectLogsManager.accountId,
32
+ ProjectLogsManager_1.ProjectLogsManager.functionName,
33
+ ProjectLogsManager_1.ProjectLogsManager.endpointName,
36
34
  ]);
37
- logger.log(uiLink(i18n(`${i18nKey}.logs.hubspotLogsDirectLink`), `${getPrivateAppsUrl(ProjectLogsManager.accountId)}/${ProjectLogsManager.appId}/logs/serverlessGatewayExecution?path=${ProjectLogsManager.endpointName}`));
35
+ 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
36
  }
39
37
  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}`));
38
+ logTable((0, table_1.getTableHeader)([
39
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.table.accountHeader`),
40
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.table.functionHeader`),
41
+ ]), [ProjectLogsManager_1.ProjectLogsManager.accountId, ProjectLogsManager_1.ProjectLogsManager.functionName]);
42
+ 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
43
  }
46
- logger.log();
47
- uiLine();
44
+ logger_1.logger.log();
45
+ (0, ui_1.uiLine)();
48
46
  }
49
- 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);
47
+ const command = 'logs';
48
+ const describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.project.subcommands.logs.describe`), false);
49
+ async function handler(args) {
50
+ const { derivedAccountId } = args;
51
+ (0, usageTracking_1.trackCommandUsage)('project-logs', undefined, derivedAccountId);
54
52
  try {
55
- await ProjectLogsManager.init(derivedAccountId);
56
- const { functionName } = await projectLogsPrompt({
57
- functionChoices: ProjectLogsManager.getFunctionNames(),
58
- promptOptions: options,
59
- projectName: ProjectLogsManager.projectName,
53
+ await ProjectLogsManager_1.ProjectLogsManager.init(derivedAccountId);
54
+ const { functionName } = await (0, projectsLogsPrompt_1.projectLogsPrompt)({
55
+ functionChoices: ProjectLogsManager_1.ProjectLogsManager.getFunctionNames(),
56
+ promptOptions: args,
57
+ projectName: ProjectLogsManager_1.ProjectLogsManager.projectName,
60
58
  });
61
- ProjectLogsManager.setFunction(functionName);
59
+ ProjectLogsManager_1.ProjectLogsManager.setFunction(functionName);
62
60
  logPreamble();
63
61
  }
64
62
  catch (e) {
65
- logError(e, {
63
+ (0, errorHandlers_1.logError)(e, {
66
64
  accountId: derivedAccountId,
67
- projectName: ProjectLogsManager.projectName,
65
+ projectName: ProjectLogsManager_1.ProjectLogsManager.projectName,
68
66
  });
69
- return process.exit(EXIT_CODES.ERROR);
67
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
70
68
  }
71
- };
72
- exports.builder = yargs => {
73
- yargs
74
- .options({
69
+ process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
70
+ }
71
+ function projectLogsBuilder(yargs) {
72
+ yargs.options({
75
73
  function: {
76
74
  alias: 'function',
77
- describe: i18n(`${i18nKey}.options.function.describe`),
75
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.logs.options.function.describe`),
78
76
  requiresArg: true,
79
77
  type: 'string',
80
78
  },
81
79
  latest: {
82
80
  alias: 'l',
83
- describe: i18n(`${i18nKey}.options.latest.describe`),
81
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.logs.options.latest.describe`),
84
82
  type: 'boolean',
85
83
  },
86
84
  compact: {
87
- describe: i18n(`${i18nKey}.options.compact.describe`),
85
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.logs.options.compact.describe`),
88
86
  type: 'boolean',
89
87
  },
90
88
  tail: {
91
89
  alias: ['t', 'follow'],
92
- describe: i18n(`${i18nKey}.options.tail.describe`),
90
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.logs.options.tail.describe`),
93
91
  type: 'boolean',
94
92
  },
95
93
  limit: {
96
- describe: i18n(`${i18nKey}.options.limit.describe`),
94
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.logs.options.limit.describe`),
97
95
  type: 'number',
98
96
  },
99
- })
100
- .conflicts('tail', 'limit')
101
- .example([
102
- ['$0 project logs', i18n(`${i18nKey}.examples.default`)],
97
+ });
98
+ yargs.conflicts('tail', 'limit');
99
+ yargs.example([
100
+ [
101
+ '$0 project logs',
102
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.examples.default`),
103
+ ],
103
104
  [
104
105
  '$0 project logs --function=my-function',
105
- i18n(`${i18nKey}.examples.withOptions`),
106
+ (0, lang_1.i18n)(`commands.project.subcommands.logs.examples.withOptions`),
106
107
  ],
107
108
  ]);
108
- addUseEnvironmentOptions(yargs);
109
109
  return yargs;
110
+ }
111
+ const builder = (0, yargsUtils_1.makeYargsBuilder)(projectLogsBuilder, command, describe, { useGlobalOptions: true, useEnvironmentOptions: true });
112
+ const projectLogsCommand = {
113
+ command,
114
+ describe,
115
+ handler,
116
+ builder,
110
117
  };
118
+ exports.default = projectLogsCommand;
@@ -0,0 +1,6 @@
1
+ import { AccountArgs, CommonArgs, ConfigArgs, EnvironmentArgs, YargsCommandModule } from '../../types/Yargs';
2
+ export type ProjectMigrateArgs = CommonArgs & AccountArgs & EnvironmentArgs & ConfigArgs & {
3
+ platformVersion: string;
4
+ };
5
+ declare const migrateCommand: YargsCommandModule<unknown, ProjectMigrateArgs>;
6
+ export default migrateCommand;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const migrate_1 = require("../../lib/app/migrate");
4
+ const config_1 = require("../../lib/projects/config");
5
+ const projects_1 = require("@hubspot/local-dev-lib/constants/projects");
6
+ const errorHandlers_1 = require("../../lib/errorHandlers");
7
+ const exitCodes_1 = require("../../lib/enums/exitCodes");
8
+ const yargsUtils_1 = require("../../lib/yargsUtils");
9
+ const ui_1 = require("../../lib/ui");
10
+ const en_1 = require("../../lang/en");
11
+ const logger_1 = require("../../lib/ui/logger");
12
+ const boxen_1 = require("../../lib/ui/boxen");
13
+ const { v2025_2 } = projects_1.PLATFORM_VERSIONS;
14
+ const command = 'migrate';
15
+ const describe = undefined; // commands.project.migrate.describe
16
+ async function handler(args) {
17
+ const { platformVersion, unstable } = args;
18
+ const projectConfig = await (0, config_1.getProjectConfig)();
19
+ if (!projectConfig.projectConfig) {
20
+ logger_1.uiLogger.error(en_1.commands.project.migrate.errors.noProjectConfig((0, ui_1.uiCommandReference)('hs app migrate')));
21
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
22
+ }
23
+ if (projectConfig?.projectConfig) {
24
+ await (0, boxen_1.logInBox)({
25
+ contents: en_1.lib.migrate.projectMigrationWarning,
26
+ options: { title: en_1.lib.migrate.projectMigrationWarningTitle },
27
+ });
28
+ }
29
+ const { derivedAccountId } = args;
30
+ try {
31
+ await (0, migrate_1.migrateApp2025_2)(derivedAccountId, {
32
+ ...args,
33
+ name: projectConfig?.projectConfig?.name,
34
+ platformVersion: unstable
35
+ ? projects_1.PLATFORM_VERSIONS.unstable
36
+ : platformVersion,
37
+ }, projectConfig);
38
+ }
39
+ catch (error) {
40
+ (0, errorHandlers_1.logError)(error);
41
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
42
+ }
43
+ return process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
44
+ }
45
+ function projectMigrateBuilder(yargs) {
46
+ yargs
47
+ .option('platform-version', {
48
+ type: 'string',
49
+ choices: [v2025_2],
50
+ default: v2025_2,
51
+ hidden: true,
52
+ })
53
+ .option('unstable', {
54
+ type: 'boolean',
55
+ default: false,
56
+ hidden: true,
57
+ });
58
+ return yargs;
59
+ }
60
+ const builder = (0, yargsUtils_1.makeYargsBuilder)(projectMigrateBuilder, command, en_1.commands.project.migrate.describe, {
61
+ useGlobalOptions: true,
62
+ useConfigOptions: true,
63
+ useAccountOptions: true,
64
+ });
65
+ const migrateCommand = {
66
+ command,
67
+ describe,
68
+ handler,
69
+ builder,
70
+ };
71
+ exports.default = migrateCommand;
@@ -1,9 +1,4 @@
1
- import { ArgumentsCamelCase, Argv, CommandModule } from 'yargs';
2
- import { MigrateAppOptions } from '../../types/Yargs';
3
- export declare const command = "migrate-app";
4
- export declare const describe: string | undefined;
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>;
1
+ import { YargsCommandModule } from '../../types/Yargs';
2
+ import { MigrateAppArgs } from '../../lib/app/migrate';
3
+ declare const migrateAppCommand: YargsCommandModule<unknown, MigrateAppArgs>;
9
4
  export default migrateAppCommand;
@@ -1,28 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deprecated = exports.describe = exports.command = void 0;
4
- exports.handler = handler;
5
- exports.builder = builder;
3
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
6
4
  const lang_1 = require("../../lib/lang");
7
5
  const ui_1 = require("../../lib/ui");
8
6
  const migrate_1 = require("../app/migrate");
9
- const logger_1 = require("@hubspot/local-dev-lib/logger");
10
- const commonOpts_1 = require("../../lib/commonOpts");
11
- exports.command = 'migrate-app';
7
+ const yargsUtils_1 = require("../../lib/yargsUtils");
8
+ const projects_1 = require("@hubspot/local-dev-lib/constants/projects");
9
+ const { v2023_2, v2025_2 } = projects_1.PLATFORM_VERSIONS;
10
+ const command = 'migrate-app';
12
11
  // TODO: Leave this as deprecated and remove in the next major release
13
- exports.describe = (0, ui_1.uiDeprecatedTag)((0, lang_1.i18n)(`commands.project.subcommands.migrateApp.describe`), false);
14
- exports.deprecated = true;
15
- async function handler(yargs) {
12
+ const describe = (0, ui_1.uiDeprecatedTag)((0, lang_1.i18n)(`commands.project.subcommands.migrateApp.describe`), false);
13
+ const deprecated = true;
14
+ async function handler(args) {
16
15
  logger_1.logger.warn((0, lang_1.i18n)(`commands.project.subcommands.migrateApp.deprecationWarning`, {
17
16
  oldCommand: (0, ui_1.uiCommandReference)('hs project migrate-app'),
18
- newCommand: (0, ui_1.uiCommandReference)('hs app migrate'),
17
+ newCommand: (0, ui_1.uiCommandReference)(`hs app migrate --platform-version=${args.platformVersion}`),
19
18
  }));
20
- await (0, migrate_1.handler)(yargs);
19
+ const localHandler = (0, migrate_1.handlerGenerator)('migrate-app');
20
+ await localHandler(args);
21
21
  }
22
- function builder(yargs) {
23
- (0, commonOpts_1.addConfigOptions)(yargs);
24
- (0, commonOpts_1.addAccountOptions)(yargs);
25
- (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
22
+ function projectMigrateAppBuilder(yargs) {
26
23
  yargs.options({
27
24
  name: {
28
25
  describe: (0, lang_1.i18n)(`commands.project.subcommands.migrateApp.options.name.describe`),
@@ -38,9 +35,9 @@ function builder(yargs) {
38
35
  },
39
36
  'platform-version': {
40
37
  type: 'string',
41
- choices: migrate_1.validMigrationTargets,
38
+ choices: [v2023_2, v2025_2],
42
39
  hidden: true,
43
- default: '2023.2',
40
+ default: v2023_2,
44
41
  },
45
42
  });
46
43
  yargs.example([
@@ -51,10 +48,16 @@ function builder(yargs) {
51
48
  ]);
52
49
  return yargs;
53
50
  }
51
+ const builder = (0, yargsUtils_1.makeYargsBuilder)(projectMigrateAppBuilder, command, describe, {
52
+ useGlobalOptions: true,
53
+ useConfigOptions: true,
54
+ useAccountOptions: true,
55
+ useEnvironmentOptions: true,
56
+ });
54
57
  const migrateAppCommand = {
55
- command: exports.command,
56
- describe: exports.describe,
57
- deprecated: exports.deprecated,
58
+ command,
59
+ describe,
60
+ deprecated,
58
61
  handler,
59
62
  builder,
60
63
  };
@@ -1,10 +1,6 @@
1
- import { Argv, ArgumentsCamelCase } from 'yargs';
2
- import { AccountArgs, CommonArgs, ConfigArgs, EnvironmentArgs, TestingArgs } from '../../types/Yargs';
3
- export declare const command = "open";
4
- export declare const describe: string;
1
+ import { AccountArgs, CommonArgs, ConfigArgs, EnvironmentArgs, TestingArgs, YargsCommandModule } from '../../types/Yargs';
5
2
  type ProjectOpenArgs = CommonArgs & ConfigArgs & AccountArgs & EnvironmentArgs & TestingArgs & {
6
3
  project?: string;
7
4
  };
8
- export declare function handler(args: ArgumentsCamelCase<ProjectOpenArgs>): Promise<void>;
9
- export declare function builder(yargs: Argv): Argv<ProjectOpenArgs>;
10
- export {};
5
+ declare const projectOpenCommand: YargsCommandModule<unknown, ProjectOpenArgs>;
6
+ export default projectOpenCommand;
@@ -3,29 +3,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.describe = exports.command = void 0;
7
- exports.handler = handler;
8
- exports.builder = builder;
9
6
  const open_1 = __importDefault(require("open"));
10
- const commonOpts_1 = require("../../lib/commonOpts");
11
7
  const usageTracking_1 = require("../../lib/usageTracking");
12
8
  const lang_1 = require("../../lib/lang");
13
9
  const logger_1 = require("@hubspot/local-dev-lib/logger");
14
- const projects_1 = require("../../lib/projects");
10
+ const config_1 = require("../../lib/projects/config");
11
+ const ensureProjectExists_1 = require("../../lib/projects/ensureProjectExists");
15
12
  const urls_1 = require("../../lib/projects/urls");
16
13
  const projectNamePrompt_1 = require("../../lib/prompts/projectNamePrompt");
17
14
  const ui_1 = require("../../lib/ui");
18
15
  const exitCodes_1 = require("../../lib/enums/exitCodes");
19
- const i18nKey = 'commands.project.subcommands.open';
20
- exports.command = 'open';
21
- exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.describe`), false);
16
+ const yargsUtils_1 = require("../../lib/yargsUtils");
17
+ const command = 'open';
18
+ const describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.project.subcommands.open.describe`), false);
22
19
  async function handler(args) {
23
20
  const { project, derivedAccountId } = args;
24
21
  (0, usageTracking_1.trackCommandUsage)('project-open', undefined, derivedAccountId);
25
- const { projectConfig } = await (0, projects_1.getProjectConfig)();
22
+ const { projectConfig } = await (0, config_1.getProjectConfig)();
26
23
  let projectName = project;
27
24
  if (projectName) {
28
- const { projectExists } = await (0, projects_1.ensureProjectExists)(derivedAccountId, projectName, {
25
+ const { projectExists } = await (0, ensureProjectExists_1.ensureProjectExists)(derivedAccountId, projectName, {
29
26
  allowCreate: false,
30
27
  });
31
28
  if (!projectExists) {
@@ -41,26 +38,37 @@ async function handler(args) {
41
38
  }
42
39
  const url = (0, urls_1.getProjectDetailUrl)(projectName, derivedAccountId);
43
40
  (0, open_1.default)(url, { url: true });
44
- logger_1.logger.success((0, lang_1.i18n)(`${i18nKey}.success`, { projectName: projectName }));
41
+ logger_1.logger.success((0, lang_1.i18n)(`commands.project.subcommands.open.success`, {
42
+ projectName: projectName,
43
+ }));
45
44
  process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
46
45
  }
47
- function builder(yargs) {
48
- (0, commonOpts_1.addConfigOptions)(yargs);
49
- (0, commonOpts_1.addAccountOptions)(yargs);
50
- (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
51
- (0, commonOpts_1.addTestingOptions)(yargs);
46
+ function projectOpenBuilder(yargs) {
52
47
  yargs.options({
53
48
  project: {
54
- describe: (0, lang_1.i18n)(`${i18nKey}.options.project.describe`),
49
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.open.options.project.describe`),
55
50
  type: 'string',
56
51
  },
57
52
  });
58
- yargs.example([['$0 project open', (0, lang_1.i18n)(`${i18nKey}.examples.default`)]]);
53
+ yargs.example([
54
+ [
55
+ '$0 project open',
56
+ (0, lang_1.i18n)(`commands.project.subcommands.open.examples.default`),
57
+ ],
58
+ ]);
59
59
  return yargs;
60
60
  }
61
- module.exports = {
62
- command: exports.command,
63
- describe: exports.describe,
61
+ const builder = (0, yargsUtils_1.makeYargsBuilder)(projectOpenBuilder, command, describe, {
62
+ useGlobalOptions: true,
63
+ useConfigOptions: true,
64
+ useAccountOptions: true,
65
+ useEnvironmentOptions: true,
66
+ useTestingOptions: true,
67
+ });
68
+ const projectOpenCommand = {
69
+ command,
70
+ describe,
64
71
  handler,
65
72
  builder,
66
73
  };
74
+ exports.default = projectOpenCommand;
@@ -1 +1,9 @@
1
- export {};
1
+ import { CommonArgs, YargsCommandModule } from '../../types/Yargs';
2
+ type ProjectUploadArgs = CommonArgs & {
3
+ forceCreate: boolean;
4
+ message: string;
5
+ m: string;
6
+ skipValidation: boolean;
7
+ };
8
+ declare const projectUploadCommand: YargsCommandModule<unknown, ProjectUploadArgs>;
9
+ export default projectUploadCommand;
@@ -1,83 +1,92 @@
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 { useV3Api } = require('../../lib/projects/buildAndDeploy');
5
- const { addAccountOptions, addConfigOptions, addUseEnvironmentOptions, } = require('../../lib/commonOpts');
6
- const chalk = require('chalk');
7
- const { logger } = require('@hubspot/local-dev-lib/logger');
8
- const { uiBetaTag, uiCommandReference } = require('../../lib/ui');
9
- const { trackCommandUsage } = require('../../lib/usageTracking');
10
- const { ensureProjectExists, getProjectConfig, logFeedbackMessage, validateProjectConfig, } = require('../../lib/projects');
11
- const { handleProjectUpload } = require('../../lib/projects/upload');
12
- const { displayWarnLogs, pollProjectBuildAndDeploy, } = require('../../lib/projects/buildAndDeploy');
13
- const { i18n } = require('../../lib/lang');
14
- const { getAccountConfig } = require('@hubspot/local-dev-lib/config');
15
- const { isSpecifiedError } = require('@hubspot/local-dev-lib/errors/index');
16
- const { PROJECT_ERROR_TYPES } = require('../../lib/constants');
17
- const { logError, ApiErrorContext } = require('../../lib/errorHandlers/index');
18
- const { EXIT_CODES } = require('../../lib/enums/exitCodes');
19
- const i18nKey = 'commands.project.subcommands.upload';
20
- exports.command = 'upload';
21
- exports.describe = uiBetaTag(i18n(`${i18nKey}.describe`), false);
22
- exports.handler = async (options) => {
23
- const { forceCreate, message, derivedAccountId, skipValidation } = options;
24
- const accountConfig = getAccountConfig(derivedAccountId);
6
+ const chalk_1 = __importDefault(require("chalk"));
7
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
8
+ const config_1 = require("@hubspot/local-dev-lib/config");
9
+ const index_1 = require("@hubspot/local-dev-lib/errors/index");
10
+ const buildAndDeploy_1 = require("../../lib/projects/buildAndDeploy");
11
+ const ui_1 = require("../../lib/ui");
12
+ const usageTracking_1 = require("../../lib/usageTracking");
13
+ const config_2 = require("../../lib/projects/config");
14
+ const ui_2 = require("../../lib/projects/ui");
15
+ const upload_1 = require("../../lib/projects/upload");
16
+ const buildAndDeploy_2 = require("../../lib/projects/buildAndDeploy");
17
+ const lang_1 = require("../../lib/lang");
18
+ const constants_1 = require("../../lib/constants");
19
+ const index_2 = require("../../lib/errorHandlers/index");
20
+ const exitCodes_1 = require("../../lib/enums/exitCodes");
21
+ const yargsUtils_1 = require("../../lib/yargsUtils");
22
+ const command = 'upload';
23
+ const describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.project.subcommands.upload.describe`), false);
24
+ async function handler(args) {
25
+ const { forceCreate, message, derivedAccountId, skipValidation } = args;
26
+ const accountConfig = (0, config_1.getAccountConfig)(derivedAccountId);
25
27
  const accountType = accountConfig && accountConfig.accountType;
26
- const { projectConfig, projectDir } = await getProjectConfig();
27
- trackCommandUsage('project-upload', { type: accountType }, derivedAccountId);
28
- validateProjectConfig(projectConfig, projectDir);
29
- await ensureProjectExists(derivedAccountId, projectConfig.name, {
30
- forceCreate,
31
- uploadCommand: true,
32
- });
28
+ const { projectConfig, projectDir } = await (0, config_2.getProjectConfig)();
29
+ (0, usageTracking_1.trackCommandUsage)('project-upload', { type: accountType }, derivedAccountId);
30
+ (0, config_2.validateProjectConfig)(projectConfig, projectDir);
33
31
  try {
34
- const { result, uploadError } = await handleProjectUpload(derivedAccountId, projectConfig, projectDir, pollProjectBuildAndDeploy, message, useV3Api(projectConfig?.platformVersion), skipValidation);
32
+ const { result, uploadError } = await (0, upload_1.handleProjectUpload)({
33
+ accountId: derivedAccountId,
34
+ projectConfig,
35
+ projectDir: projectDir,
36
+ callbackFunc: buildAndDeploy_2.pollProjectBuildAndDeploy,
37
+ uploadMessage: message,
38
+ forceCreate,
39
+ isUploadCommand: true,
40
+ sendIR: (0, buildAndDeploy_1.useV3Api)(projectConfig.platformVersion),
41
+ skipValidation,
42
+ });
35
43
  if (uploadError) {
36
- if (isSpecifiedError(uploadError, {
37
- subCategory: PROJECT_ERROR_TYPES.PROJECT_LOCKED,
44
+ if ((0, index_1.isSpecifiedError)(uploadError, {
45
+ subCategory: constants_1.PROJECT_ERROR_TYPES.PROJECT_LOCKED,
38
46
  })) {
39
- logger.log();
40
- logger.error(i18n(`${i18nKey}.errors.projectLockedError`));
41
- logger.log();
47
+ logger_1.logger.log();
48
+ logger_1.logger.error((0, lang_1.i18n)(`commands.project.subcommands.upload.errors.projectLockedError`));
49
+ logger_1.logger.log();
42
50
  }
43
51
  else {
44
- logError(uploadError, new ApiErrorContext({
52
+ (0, index_2.logError)(uploadError, new index_2.ApiErrorContext({
45
53
  accountId: derivedAccountId,
46
54
  request: 'project upload',
47
55
  }));
48
56
  }
49
- process.exit(EXIT_CODES.ERROR);
57
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
50
58
  }
51
- if (result.succeeded && !result.buildResult.isAutoDeployEnabled) {
52
- logger.log(chalk.bold(i18n(`${i18nKey}.logs.buildSucceeded`, {
59
+ if (result && result.succeeded && !result.buildResult.isAutoDeployEnabled) {
60
+ logger_1.logger.log(chalk_1.default.bold((0, lang_1.i18n)(`commands.project.subcommands.upload.logs.buildSucceeded`, {
53
61
  buildId: result.buildId,
54
62
  })));
55
- logger.log(i18n(`${i18nKey}.logs.autoDeployDisabled`, {
56
- deployCommand: uiCommandReference(`hs project deploy --build=${result.buildId}`),
63
+ logger_1.logger.log((0, lang_1.i18n)(`commands.project.subcommands.upload.logs.autoDeployDisabled`, {
64
+ deployCommand: (0, ui_1.uiCommandReference)(`hs project deploy --build=${result.buildId}`),
57
65
  }));
58
- logFeedbackMessage(result.buildId);
59
- await displayWarnLogs(derivedAccountId, projectConfig.name, result.buildId);
60
- process.exit(EXIT_CODES.SUCCESS);
66
+ (0, ui_2.logFeedbackMessage)(result.buildId);
67
+ await (0, buildAndDeploy_2.displayWarnLogs)(derivedAccountId, projectConfig.name, result.buildId);
68
+ process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
61
69
  }
62
70
  }
63
71
  catch (e) {
64
- logError(e, new ApiErrorContext({
72
+ (0, index_2.logError)(e, new index_2.ApiErrorContext({
65
73
  accountId: derivedAccountId,
66
74
  request: 'project upload',
67
75
  }));
68
- process.exit(EXIT_CODES.ERROR);
76
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
69
77
  }
70
- };
71
- exports.builder = yargs => {
78
+ process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
79
+ }
80
+ function projectUploadBuilder(yargs) {
72
81
  yargs.options({
73
82
  'force-create': {
74
- describe: i18n(`${i18nKey}.options.forceCreate.describe`),
83
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.upload.options.forceCreate.describe`),
75
84
  type: 'boolean',
76
85
  default: false,
77
86
  },
78
87
  message: {
79
88
  alias: 'm',
80
- describe: i18n(`${i18nKey}.options.message.describe`),
89
+ describe: (0, lang_1.i18n)(`commands.project.subcommands.upload.options.message.describe`),
81
90
  type: 'string',
82
91
  default: '',
83
92
  },
@@ -87,9 +96,24 @@ exports.builder = yargs => {
87
96
  default: false,
88
97
  },
89
98
  });
90
- yargs.example([['$0 project upload', i18n(`${i18nKey}.examples.default`)]]);
91
- addConfigOptions(yargs);
92
- addAccountOptions(yargs);
93
- addUseEnvironmentOptions(yargs);
99
+ yargs.example([
100
+ [
101
+ '$0 project upload',
102
+ (0, lang_1.i18n)(`commands.project.subcommands.upload.examples.default`),
103
+ ],
104
+ ]);
94
105
  return yargs;
106
+ }
107
+ const builder = (0, yargsUtils_1.makeYargsBuilder)(projectUploadBuilder, command, describe, {
108
+ useGlobalOptions: true,
109
+ useConfigOptions: true,
110
+ useAccountOptions: true,
111
+ useEnvironmentOptions: true,
112
+ });
113
+ const projectUploadCommand = {
114
+ command,
115
+ describe,
116
+ handler,
117
+ builder,
95
118
  };
119
+ exports.default = projectUploadCommand;