@hubspot/cli 7.4.8-experimental.0 → 7.5.0-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.
Files changed (44) hide show
  1. package/bin/cli.js +6 -183
  2. package/commands/account/info.js +15 -4
  3. package/commands/account/list.js +3 -1
  4. package/commands/account/remove.js +8 -2
  5. package/commands/account/use.js +12 -3
  6. package/commands/cms/lighthouseScore.js +6 -2
  7. package/commands/config/set.js +6 -1
  8. package/commands/create/api-sample.js +3 -1
  9. package/commands/customObject/schema/delete.js +4 -1
  10. package/commands/customObject/schema/fetch-all.js +2 -1
  11. package/commands/customObject/schema/fetch.js +2 -1
  12. package/commands/project/upload.js +7 -1
  13. package/lang/en.js +0 -2
  14. package/lang/en.lyaml +0 -1
  15. package/lib/app/migrate.js +17 -13
  16. package/lib/middleware/__test__/configMiddleware.test.d.ts +1 -0
  17. package/lib/middleware/__test__/configMiddleware.test.js +194 -0
  18. package/lib/middleware/__test__/gitMiddleware.test.d.ts +1 -0
  19. package/lib/middleware/__test__/gitMiddleware.test.js +76 -0
  20. package/lib/middleware/__test__/notificationsMiddleware.test.d.ts +1 -0
  21. package/lib/middleware/__test__/notificationsMiddleware.test.js +10 -0
  22. package/lib/middleware/__test__/requestMiddleware.test.d.ts +1 -0
  23. package/lib/middleware/__test__/requestMiddleware.test.js +20 -0
  24. package/lib/middleware/__test__/utils.test.d.ts +1 -0
  25. package/lib/middleware/__test__/utils.test.js +53 -0
  26. package/lib/middleware/__test__/yargsChecksMiddleware.test.d.ts +1 -0
  27. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +81 -0
  28. package/lib/middleware/configMiddleware.d.ts +13 -0
  29. package/lib/middleware/configMiddleware.js +105 -0
  30. package/lib/middleware/gitMiddleware.d.ts +2 -0
  31. package/lib/middleware/gitMiddleware.js +14 -0
  32. package/lib/middleware/notificationsMiddleware.d.ts +1 -0
  33. package/lib/middleware/notificationsMiddleware.js +38 -0
  34. package/lib/middleware/requestMiddleware.d.ts +1 -0
  35. package/lib/middleware/requestMiddleware.js +11 -0
  36. package/lib/middleware/utils.d.ts +8 -0
  37. package/lib/middleware/utils.js +17 -0
  38. package/lib/middleware/yargsChecksMiddleware.d.ts +4 -0
  39. package/lib/middleware/yargsChecksMiddleware.js +24 -0
  40. package/lib/projects/upload.d.ts +1 -1
  41. package/lib/projects/upload.js +3 -3
  42. package/lib/ui/SpinniesManager.d.ts +1 -1
  43. package/lib/ui/spinniesUtils.d.ts +5 -5
  44. package/package.json +4 -4
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTargetedCommand = isTargetedCommand;
4
+ function isTargetedCommand(commandParts, targetCommandMap) {
5
+ const currentCommand = commandParts[0];
6
+ if (!targetCommandMap[currentCommand]) {
7
+ return false;
8
+ }
9
+ if (targetCommandMap[currentCommand].target) {
10
+ return true;
11
+ }
12
+ const subCommands = targetCommandMap[currentCommand].subCommands || {};
13
+ if (commandParts.length > 1) {
14
+ return isTargetedCommand(commandParts.slice(1), subCommands);
15
+ }
16
+ return false;
17
+ }
@@ -0,0 +1,4 @@
1
+ import { Arguments } from 'yargs';
2
+ export declare function performChecks(argv: Arguments<{
3
+ src?: string;
4
+ }>): boolean;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.performChecks = performChecks;
4
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
5
+ const exitCodes_1 = require("../enums/exitCodes");
6
+ const lang_1 = require("../lang");
7
+ const projects_1 = require("../projects");
8
+ const utils_1 = require("./utils");
9
+ const UPLOAD_AND_WATCH_COMMANDS = {
10
+ upload: { target: true },
11
+ watch: { target: true },
12
+ };
13
+ function performChecks(argv) {
14
+ // Require "project" command when running upload/watch inside of a project
15
+ if ((0, utils_1.isTargetedCommand)(argv._, UPLOAD_AND_WATCH_COMMANDS) &&
16
+ (0, projects_1.getIsInProject)(argv.src)) {
17
+ logger_1.logger.error((0, lang_1.i18n)(`commands.generalErrors.srcIsProject`, {
18
+ src: argv.src || './',
19
+ command: argv._.join(' '),
20
+ }));
21
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
22
+ }
23
+ return true;
24
+ }
@@ -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, sendIR?: boolean, skipValidation?: boolean): Promise<ProjectUploadResult<T>>;
8
+ export declare function handleProjectUpload<T>(accountId: number, projectConfig: ProjectConfig, projectDir: string, callbackFunc: ProjectUploadCallbackFunction<T>, uploadMessage: string, sendIR?: boolean, skipValidation?: boolean, projectEnv?: string): Promise<ProjectUploadResult<T>>;
9
9
  export {};
@@ -19,7 +19,7 @@ const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
19
19
  const errorHandlers_1 = require("../errorHandlers");
20
20
  const node_util_1 = __importDefault(require("node:util"));
21
21
  const i18nKey = 'lib.projectUpload';
22
- async function uploadProjectFiles(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation) {
22
+ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation, projectEnv) {
23
23
  SpinniesManager_1.default.init({});
24
24
  const accountIdentifier = (0, ui_1.uiAccountDescription)(accountId);
25
25
  SpinniesManager_1.default.add('upload', {
@@ -58,7 +58,7 @@ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessag
58
58
  }
59
59
  return { buildId, error };
60
60
  }
61
- async function handleProjectUpload(accountId, projectConfig, projectDir, callbackFunc, uploadMessage, sendIR = false, skipValidation = false) {
61
+ async function handleProjectUpload(accountId, projectConfig, projectDir, callbackFunc, uploadMessage, sendIR = false, skipValidation = false, projectEnv) {
62
62
  const srcDir = path_1.default.resolve(projectDir, projectConfig.srcDir);
63
63
  const filenames = fs_extra_1.default.readdirSync(srcDir);
64
64
  if (!filenames || filenames.length === 0) {
@@ -84,7 +84,7 @@ async function handleProjectUpload(accountId, projectConfig, projectDir, callbac
84
84
  projectSourceDir: path_1.default.join(projectDir, projectConfig.srcDir),
85
85
  platformVersion: projectConfig.platformVersion,
86
86
  accountId,
87
- }, { skipValidation });
87
+ }, { skipValidation, projectEnv });
88
88
  logger_1.logger.debug(node_util_1.default.inspect(intermediateRepresentation, false, null, true));
89
89
  }
90
90
  catch (e) {
@@ -22,7 +22,7 @@ declare class SpinniesManager {
22
22
  succeed(name: string, options?: Partial<SpinnerState>): SpinnerState;
23
23
  fail(name: string, options?: Partial<SpinnerState>): SpinnerState;
24
24
  remove(name: string): SpinnerState;
25
- stopAll(newStatus?: typeof VALID_STATUSES[number]): {
25
+ stopAll(newStatus?: (typeof VALID_STATUSES)[number]): {
26
26
  [key: string]: SpinnerState;
27
27
  };
28
28
  private hasAnySpinners;
@@ -6,14 +6,14 @@ export type Spinner = {
6
6
  };
7
7
  export type SpinnerOptions = {
8
8
  text?: string;
9
- status?: typeof VALID_STATUSES[number];
9
+ status?: (typeof VALID_STATUSES)[number];
10
10
  indent?: number;
11
11
  spinner?: Partial<Spinner>;
12
12
  disableSpins?: boolean;
13
- color?: typeof VALID_COLORS[number];
14
- spinnerColor?: typeof VALID_COLORS[number];
15
- succeedColor?: typeof VALID_COLORS[number];
16
- failColor?: typeof VALID_COLORS[number];
13
+ color?: (typeof VALID_COLORS)[number];
14
+ spinnerColor?: (typeof VALID_COLORS)[number];
15
+ succeedColor?: (typeof VALID_COLORS)[number];
16
+ failColor?: (typeof VALID_COLORS)[number];
17
17
  succeedPrefix?: string;
18
18
  failPrefix?: string;
19
19
  };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@hubspot/cli",
3
- "version": "7.4.8-experimental.0",
3
+ "version": "7.5.0-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.5.1",
9
- "@hubspot/project-parsing-lib": "0.1.5",
9
+ "@hubspot/project-parsing-lib": "0.0.14-experimental.0",
10
10
  "@hubspot/serverless-dev-runtime": "7.0.2",
11
11
  "@hubspot/theme-preview-dev-server": "0.0.10",
12
12
  "@hubspot/ui-extensions-dev-server": "0.8.52",
@@ -62,9 +62,9 @@
62
62
  },
63
63
  "scripts": {
64
64
  "build": "ts-node ./scripts/build.ts",
65
- "lint": "eslint . && prettier --list-different ./**/*.{js,json}",
65
+ "lint": "eslint . && prettier --list-different './**/*.{ts,js,json}'",
66
66
  "list-all-commands": "yarn ts-node ./scripts/get-all-commands.ts",
67
- "prettier:write": "prettier --write ./**/*.{ts,js,json}",
67
+ "prettier:write": "prettier --write './**/*.{ts,js,json}'",
68
68
  "test": "yarn node --experimental-vm-modules $(yarn bin jest)",
69
69
  "test-cli": "yarn build && yarn --cwd 'acceptance-tests' test-ci",
70
70
  "test-cli-debug": "yarn build && yarn --cwd 'acceptance-tests' test-debug",