@hubspot/cli 7.0.0-experimental.2 → 7.0.1-experimental.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.
package/bin/cli.js CHANGED
@@ -85,7 +85,7 @@ const handleFailure = (msg, err, yargs) => {
85
85
  logError(err);
86
86
  }
87
87
  if (msg === null) {
88
- yargs.showHelp();
88
+ yargs.showHelp('log');
89
89
  process.exit(EXIT_CODES.SUCCESS);
90
90
  }
91
91
  else {
@@ -142,6 +142,10 @@ const SKIP_CONFIG_VALIDATION = {
142
142
  auth: { target: true },
143
143
  };
144
144
  const loadConfigMiddleware = async (options) => {
145
+ // Skip this when no command is provided
146
+ if (!options._.length) {
147
+ return;
148
+ }
145
149
  const maybeValidateConfig = () => {
146
150
  if (!isTargetedCommand(options, SKIP_CONFIG_VALIDATION) &&
147
151
  !validateConfig()) {
@@ -160,7 +164,11 @@ const loadConfigMiddleware = async (options) => {
160
164
  }
161
165
  maybeValidateConfig();
162
166
  };
163
- const checkAndWarnGitInclusionMiddleware = () => {
167
+ const checkAndWarnGitInclusionMiddleware = options => {
168
+ // Skip this when no command is provided
169
+ if (!options._.length) {
170
+ return;
171
+ }
164
172
  checkAndWarnGitInclusion(getConfigPath());
165
173
  };
166
174
  const accountsSubCommands = {
@@ -187,6 +195,10 @@ const SKIP_ACCOUNT_VALIDATION = {
187
195
  sandboxes: sandboxesSubCommands,
188
196
  };
189
197
  const validateAccountOptions = async (options) => {
198
+ // Skip this when no command is provided
199
+ if (!options._.length) {
200
+ return;
201
+ }
190
202
  let validAccount = true;
191
203
  if (!isTargetedCommand(options, SKIP_ACCOUNT_VALIDATION)) {
192
204
  validAccount = await validateAccount(options);
@@ -22,15 +22,15 @@ exports.handler = async (options) => {
22
22
  const { forceCreate, message, derivedAccountId } = options;
23
23
  const accountConfig = getAccountConfig(derivedAccountId);
24
24
  const accountType = accountConfig && accountConfig.accountType;
25
- trackCommandUsage('project-upload', { type: accountType }, derivedAccountId);
26
25
  const { projectConfig, projectDir } = await getProjectConfig();
26
+ trackCommandUsage('project-upload', { type: accountType }, derivedAccountId);
27
27
  validateProjectConfig(projectConfig, projectDir);
28
28
  await ensureProjectExists(derivedAccountId, projectConfig.name, {
29
29
  forceCreate,
30
30
  uploadCommand: true,
31
31
  });
32
32
  try {
33
- const result = await handleProjectUpload(derivedAccountId, projectConfig, projectDir, pollProjectBuildAndDeploy, message);
33
+ const result = await handleProjectUpload(derivedAccountId, projectConfig, projectDir, pollProjectBuildAndDeploy, message, options.translate);
34
34
  if (result.uploadError) {
35
35
  if (isSpecifiedError(result.uploadError, {
36
36
  subCategory: PROJECT_ERROR_TYPES.PROJECT_LOCKED,
@@ -80,6 +80,11 @@ exports.builder = yargs => {
80
80
  type: 'string',
81
81
  default: '',
82
82
  },
83
+ translate: {
84
+ hidden: true,
85
+ type: 'boolean',
86
+ default: false,
87
+ },
83
88
  });
84
89
  yargs.example([['$0 project upload', i18n(`${i18nKey}.examples.default`)]]);
85
90
  addConfigOptions(yargs);
@@ -43,9 +43,11 @@ exports.handler = async (options) => {
43
43
  }));
44
44
  }
45
45
  catch (err) {
46
- logger.error(i18n(`${i18nKey}.errors.delete`, {
47
- secretName,
48
- }));
46
+ if (secretName) {
47
+ logger.error(i18n(`${i18nKey}.errors.delete`, {
48
+ secretName,
49
+ }));
50
+ }
49
51
  logError(err, new ApiErrorContext({
50
52
  request: 'delete a secret',
51
53
  accountId: derivedAccountId,
@@ -4,5 +4,5 @@ type ProjectUploadCallbackFunction<T> = (accountId: number, projectConfig: Proje
4
4
  type ProjectUploadDefaultResult = {
5
5
  uploadError?: unknown;
6
6
  };
7
- export declare function handleProjectUpload<T = ProjectUploadDefaultResult>(accountId: number, projectConfig: ProjectConfig, projectDir: string, callbackFunc: ProjectUploadCallbackFunction<T>, uploadMessage: string): Promise<unknown>;
7
+ export declare function handleProjectUpload<T = ProjectUploadDefaultResult>(accountId: number, projectConfig: ProjectConfig, projectDir: string, callbackFunc: ProjectUploadCallbackFunction<T>, uploadMessage: string, sendIR?: boolean): Promise<unknown>;
8
8
  export {};
@@ -15,8 +15,10 @@ const SpinniesManager_1 = __importDefault(require("../ui/SpinniesManager"));
15
15
  const ui_1 = require("../ui");
16
16
  const lang_1 = require("../lang");
17
17
  const exitCodes_1 = require("../enums/exitCodes");
18
+ const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
19
+ const errorHandlers_1 = require("../errorHandlers");
18
20
  const i18nKey = 'lib.projectUpload';
19
- async function uploadProjectFiles(accountId, projectName, filePath, uploadMessage, platformVersion) {
21
+ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation) {
20
22
  SpinniesManager_1.default.init({});
21
23
  const accountIdentifier = (0, ui_1.uiAccountDescription)(accountId);
22
24
  SpinniesManager_1.default.add('upload', {
@@ -29,7 +31,7 @@ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessag
29
31
  let buildId;
30
32
  let error;
31
33
  try {
32
- const { data: upload } = await (0, projects_1.uploadProject)(accountId, projectName, filePath, uploadMessage, platformVersion);
34
+ const { data: upload } = await (0, projects_1.uploadProject)(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation);
33
35
  buildId = upload.buildId;
34
36
  SpinniesManager_1.default.succeed('upload', {
35
37
  text: (0, lang_1.i18n)(`${i18nKey}.uploadProjectFiles.succeed`, {
@@ -55,7 +57,7 @@ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessag
55
57
  }
56
58
  return { buildId, error };
57
59
  }
58
- async function handleProjectUpload(accountId, projectConfig, projectDir, callbackFunc, uploadMessage) {
60
+ async function handleProjectUpload(accountId, projectConfig, projectDir, callbackFunc, uploadMessage, sendIR = false) {
59
61
  const srcDir = path_1.default.resolve(projectDir, projectConfig.srcDir);
60
62
  const filenames = fs_extra_1.default.readdirSync(srcDir);
61
63
  if (!filenames || filenames.length === 0) {
@@ -75,7 +77,26 @@ async function handleProjectUpload(accountId, projectConfig, projectDir, callbac
75
77
  logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.handleProjectUpload.compressed`, {
76
78
  byteCount: archive.pointer(),
77
79
  }));
78
- const { buildId, error } = await uploadProjectFiles(accountId, projectConfig.name, tempFile.name, uploadMessage, projectConfig.platformVersion);
80
+ let intermediateRepresentation;
81
+ if (sendIR) {
82
+ try {
83
+ intermediateRepresentation = await (0, project_parsing_lib_1.translate)({
84
+ projectSourceDir: path_1.default.join(projectDir, projectConfig.srcDir),
85
+ platformVersion: projectConfig.platformVersion,
86
+ accountId,
87
+ });
88
+ }
89
+ catch (e) {
90
+ if ((0, project_parsing_lib_1.isTranslationError)(e)) {
91
+ logger_1.logger.error(e.toString());
92
+ }
93
+ else {
94
+ (0, errorHandlers_1.logError)(e);
95
+ }
96
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
97
+ }
98
+ }
99
+ const { buildId, error } = await uploadProjectFiles(accountId, projectConfig.name, tempFile.name, uploadMessage, projectConfig.platformVersion, intermediateRepresentation);
79
100
  if (error) {
80
101
  console.log(error);
81
102
  uploadResult = { uploadError: error };
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@hubspot/cli",
3
- "version": "7.0.0-experimental.2",
3
+ "version": "7.0.1-experimental.0",
4
4
  "description": "The official CLI for developing on HubSpot",
5
5
  "license": "Apache-2.0",
6
6
  "repository": "https://github.com/HubSpot/hubspot-cli",
7
7
  "dependencies": {
8
8
  "@hubspot/local-dev-lib": "3.1.0",
9
+ "@hubspot/project-parsing-lib": "0.0.1",
9
10
  "@hubspot/serverless-dev-runtime": "7.0.0",
10
11
  "@hubspot/theme-preview-dev-server": "0.0.10",
11
12
  "@hubspot/ui-extensions-dev-server": "0.8.33",