@hubspot/cli 7.0.7-experimental.0 → 7.0.8-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.
@@ -83,7 +83,7 @@ exports.handler = async (options) => {
83
83
  logger.error(i18n(`${i18nKey}.errors.noBuildId`));
84
84
  return process.exit(EXIT_CODES.ERROR);
85
85
  }
86
- const { data: deployResp } = await deployProject(derivedAccountId, projectName, buildIdToDeploy);
86
+ const { data: deployResp } = await deployProject(derivedAccountId, projectName, buildIdToDeploy, options.useV3);
87
87
  if (!deployResp || deployResp.error) {
88
88
  logger.error(i18n(`${i18nKey}.errors.deploy`, {
89
89
  details: deployResp.error.message,
@@ -123,6 +123,11 @@ exports.builder = yargs => {
123
123
  describe: i18n(`${i18nKey}.options.build.describe`),
124
124
  type: 'number',
125
125
  },
126
+ 'use-v3': {
127
+ hidden: true,
128
+ type: 'boolean',
129
+ default: false,
130
+ },
126
131
  });
127
132
  yargs.example([
128
133
  ['$0 project deploy', i18n(`${i18nKey}.examples.default`)],
@@ -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, uploadError } = await handleProjectUpload(derivedAccountId, projectConfig, projectDir, pollProjectBuildAndDeploy, message);
33
+ const { result, uploadError } = await handleProjectUpload(derivedAccountId, projectConfig, projectDir, pollProjectBuildAndDeploy, message, options.translate);
34
34
  if (uploadError) {
35
35
  if (isSpecifiedError(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);
@@ -5,5 +5,5 @@ type ProjectUploadResult<T> = {
5
5
  result?: T;
6
6
  uploadError?: unknown;
7
7
  };
8
- export declare function handleProjectUpload<T>(accountId: number, projectConfig: ProjectConfig, projectDir: string, callbackFunc: ProjectUploadCallbackFunction<T>, uploadMessage: string): Promise<ProjectUploadResult<T>>;
8
+ export declare function handleProjectUpload<T>(accountId: number, projectConfig: ProjectConfig, projectDir: string, callbackFunc: ProjectUploadCallbackFunction<T>, uploadMessage: string, sendIR?: boolean): Promise<ProjectUploadResult<T>>;
9
9
  export {};
@@ -15,8 +15,11 @@ 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");
20
+ const node_util_1 = __importDefault(require("node:util"));
18
21
  const i18nKey = 'lib.projectUpload';
19
- async function uploadProjectFiles(accountId, projectName, filePath, uploadMessage, platformVersion) {
22
+ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation) {
20
23
  SpinniesManager_1.default.init({});
21
24
  const accountIdentifier = (0, ui_1.uiAccountDescription)(accountId);
22
25
  SpinniesManager_1.default.add('upload', {
@@ -29,7 +32,7 @@ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessag
29
32
  let buildId;
30
33
  let error;
31
34
  try {
32
- const { data: upload } = await (0, projects_1.uploadProject)(accountId, projectName, filePath, uploadMessage, platformVersion);
35
+ const { data: upload } = await (0, projects_1.uploadProject)(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation);
33
36
  buildId = upload.buildId;
34
37
  SpinniesManager_1.default.succeed('upload', {
35
38
  text: (0, lang_1.i18n)(`${i18nKey}.uploadProjectFiles.succeed`, {
@@ -55,7 +58,7 @@ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessag
55
58
  }
56
59
  return { buildId, error };
57
60
  }
58
- async function handleProjectUpload(accountId, projectConfig, projectDir, callbackFunc, uploadMessage) {
61
+ async function handleProjectUpload(accountId, projectConfig, projectDir, callbackFunc, uploadMessage, sendIR = false) {
59
62
  const srcDir = path_1.default.resolve(projectDir, projectConfig.srcDir);
60
63
  const filenames = fs_extra_1.default.readdirSync(srcDir);
61
64
  if (!filenames || filenames.length === 0) {
@@ -74,7 +77,27 @@ async function handleProjectUpload(accountId, projectConfig, projectDir, callbac
74
77
  logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.handleProjectUpload.compressed`, {
75
78
  byteCount: archive.pointer(),
76
79
  }));
77
- 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
+ logger_1.logger.debug(node_util_1.default.inspect(intermediateRepresentation, false, null, true));
89
+ }
90
+ catch (e) {
91
+ if ((0, project_parsing_lib_1.isTranslationError)(e)) {
92
+ logger_1.logger.error(e.toString());
93
+ }
94
+ else {
95
+ (0, errorHandlers_1.logError)(e);
96
+ }
97
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
98
+ }
99
+ }
100
+ const { buildId, error } = await uploadProjectFiles(accountId, projectConfig.name, tempFile.name, uploadMessage, projectConfig.platformVersion, intermediateRepresentation);
78
101
  if (error) {
79
102
  resolve({ uploadError: error });
80
103
  }
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@hubspot/cli",
3
- "version": "7.0.7-experimental.0",
3
+ "version": "7.0.8-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
- "@hubspot/local-dev-lib": "3.1.3",
8
+ "@hubspot/local-dev-lib": "0.1.1-experimental.0",
9
+ "@hubspot/project-parsing-lib": "0.0.3-experimental.0",
9
10
  "@hubspot/serverless-dev-runtime": "7.0.1",
10
11
  "@hubspot/theme-preview-dev-server": "0.0.10",
11
- "@hubspot/ui-extensions-dev-server": "0.8.42",
12
+ "@hubspot/ui-extensions-dev-server": "0.8.40",
12
13
  "archiver": "^7.0.1",
13
14
  "chalk": "^4.1.2",
14
15
  "chokidar": "^3.0.1",