@hubspot/local-dev-lib 3.21.1-beta.2 → 3.21.2-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.
package/http/index.js CHANGED
@@ -41,22 +41,29 @@ const lang_1 = require("../utils/lang");
41
41
  const HubSpotHttpError_1 = require("../models/HubSpotHttpError");
42
42
  const localDevAuth_1 = require("../api/localDevAuth");
43
43
  const util = __importStar(require("util"));
44
+ const trackUsage_1 = require("../lib/trackUsage");
44
45
  const i18nKey = 'http.index';
46
+ const IGNORE_URLS_NETWORK_DEBUG = [
47
+ localDevAuth_1.LOCALDEVAUTH_ACCESS_TOKEN_PATH,
48
+ trackUsage_1.CMS_CLI_USAGE_PATH,
49
+ trackUsage_1.VSCODE_USAGE_PATH,
50
+ ];
45
51
  function logRequest(response) {
46
52
  try {
47
- if (process.env.HUBSPOT_NETWORK_LOGGING) {
48
- if (response.config.url === localDevAuth_1.LOCALDEVAUTH_ACCESS_TOKEN_PATH) {
49
- // Don't log access tokens
50
- return;
51
- }
52
- logger_1.logger.debug(util.inspect({
53
- method: response.config.method,
54
- baseURL: response.config.baseURL,
55
- url: response.config.url,
56
- data: response.data,
57
- status: response.status,
58
- }, false, null, true));
53
+ if (!process.env.HUBSPOT_NETWORK_LOGGING) {
54
+ return;
55
+ }
56
+ if (response?.config?.url &&
57
+ IGNORE_URLS_NETWORK_DEBUG.includes(response.config.url)) {
58
+ return;
59
59
  }
60
+ logger_1.logger.debug(util.inspect({
61
+ method: response.config.method,
62
+ baseURL: response.config.baseURL,
63
+ url: response.config.url,
64
+ data: response.data,
65
+ status: response.status,
66
+ }, false, null, true));
60
67
  }
61
68
  catch (error) {
62
69
  // Ignore any errors that occur while logging the response
@@ -7,11 +7,10 @@ exports.portManagerHasActiveServers = exports.deleteServerInstance = exports.get
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const PortManagerServer_1 = require("../utils/PortManagerServer");
9
9
  const ports_1 = require("../constants/ports");
10
- const detectPort_1 = require("../utils/detectPort");
11
10
  const logger_1 = require("./logger");
12
11
  exports.BASE_URL = `http://localhost:${ports_1.PORT_MANAGER_SERVER_PORT}`;
13
12
  async function isPortManagerPortAvailable() {
14
- return ((await (0, detectPort_1.detectPort)(ports_1.PORT_MANAGER_SERVER_PORT)) === ports_1.PORT_MANAGER_SERVER_PORT);
13
+ return PortManagerServer_1.PortManagerServer.portAvailable();
15
14
  }
16
15
  exports.isPortManagerPortAvailable = isPortManagerPortAvailable;
17
16
  async function isPortManagerServerRunning() {
@@ -1 +1,3 @@
1
+ export declare const CMS_CLI_USAGE_PATH: string;
2
+ export declare const VSCODE_USAGE_PATH: string;
1
3
  export declare function trackUsage(eventName: string, eventClass: string, meta?: {}, accountId?: number): Promise<void>;
package/lib/trackUsage.js CHANGED
@@ -3,7 +3,7 @@ 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.trackUsage = void 0;
6
+ exports.trackUsage = exports.VSCODE_USAGE_PATH = exports.CMS_CLI_USAGE_PATH = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const getAxiosConfig_1 = require("../http/getAxiosConfig");
9
9
  const logger_1 = require("./logger");
@@ -12,6 +12,8 @@ const config_1 = require("../config");
12
12
  const fileMapper_1 = require("../api/fileMapper");
13
13
  const lang_1 = require("../utils/lang");
14
14
  const i18nKey = 'lib.trackUsage';
15
+ exports.CMS_CLI_USAGE_PATH = `${fileMapper_1.FILE_MAPPER_API_PATH}/cms-cli-usage`;
16
+ exports.VSCODE_USAGE_PATH = `${fileMapper_1.FILE_MAPPER_API_PATH}/vscode-extension-usage`;
15
17
  async function trackUsage(eventName, eventClass, meta = {}, accountId) {
16
18
  const usageEvent = {
17
19
  accountId,
@@ -23,18 +25,17 @@ async function trackUsage(eventName, eventClass, meta = {}, accountId) {
23
25
  VSCODE_EXTENSION_INTERACTION: 'vscode-extension-interaction',
24
26
  CLI_INTERACTION: 'cli-interaction',
25
27
  };
26
- let analyticsEndpoint;
28
+ let path = fileMapper_1.FILE_MAPPER_API_PATH;
27
29
  switch (eventName) {
28
30
  case EVENT_TYPES.CLI_INTERACTION:
29
- analyticsEndpoint = 'cms-cli-usage';
31
+ path = exports.CMS_CLI_USAGE_PATH;
30
32
  break;
31
33
  case EVENT_TYPES.VSCODE_EXTENSION_INTERACTION:
32
- analyticsEndpoint = 'vscode-extension-usage';
34
+ path = exports.VSCODE_USAGE_PATH;
33
35
  break;
34
36
  default:
35
37
  logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.invalidEvent`, { eventName }));
36
38
  }
37
- const path = `${fileMapper_1.FILE_MAPPER_API_PATH}/${analyticsEndpoint}`;
38
39
  const accountConfig = accountId && (0, config_1.getAccountConfig)(accountId);
39
40
  if (accountConfig && accountConfig.authType === 'personalaccesskey') {
40
41
  logger_1.logger.debug((0, lang_1.i18n)(`${i18nKey}.sendingEventAuthenticated`));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hubspot/local-dev-lib",
3
- "version": "3.21.1-beta.2",
3
+ "version": "3.21.2-beta.0",
4
4
  "description": "Provides library functionality for HubSpot local development tooling, including the HubSpot CLI",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,6 @@
21
21
  "license": "Apache-2.0",
22
22
  "devDependencies": {
23
23
  "@hubspot/npm-scripts": "0.0.4",
24
- "@inquirer/prompts": "^7.0.1",
25
24
  "@types/content-disposition": "^0.5.5",
26
25
  "@types/cors": "^2.8.15",
27
26
  "@types/debounce": "^1.2.1",
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
- import { Express, Request, Response } from 'express';
2
+ import { Express } from 'express';
3
3
  import { Server } from 'http';
4
- import { RequestPortsData, ServerPortMap } from '../types/PortManager';
4
+ import { ServerPortMap } from '../types/PortManager';
5
5
  export declare const HEALTH_CHECK_PATH = "/port-manager-health-check";
6
6
  export declare const SERVICE_HEALTHY = "OK";
7
7
  declare class _PortManagerServer {
@@ -10,19 +10,18 @@ declare class _PortManagerServer {
10
10
  serverPortMap: ServerPortMap;
11
11
  constructor();
12
12
  init(): Promise<void>;
13
- reset(): void;
14
- listen(): Promise<Server>;
15
- setupRoutes(): void;
16
- setPort(instanceId: string, port: number): void;
17
- deletePort(instanceId: string): void;
18
- send404(res: Response, instanceId: string): void;
19
- getServers: (req: Request, res: Response) => Promise<void>;
20
- getServerPortByInstanceId: (req: Request, res: Response) => void;
21
- assignPortsToServers: (req: Request<never, never, {
22
- portData: Array<RequestPortsData>;
23
- }>, res: Response) => Promise<void>;
24
- deleteServerInstance: (req: Request, res: Response) => void;
25
- closeServer: (req: Request, res: Response) => void;
13
+ private reset;
14
+ portAvailable(): Promise<boolean>;
15
+ private listen;
16
+ private setupRoutes;
17
+ private setPort;
18
+ private deletePort;
19
+ private send404;
20
+ private getServers;
21
+ private getServerPortByInstanceId;
22
+ private assignPortsToServers;
23
+ private deleteServerInstance;
24
+ private closeServer;
26
25
  }
27
26
  export declare const PortManagerServer: _PortManagerServer;
28
27
  export {};
@@ -8,7 +8,6 @@ const express_1 = __importDefault(require("express"));
8
8
  const cors_1 = __importDefault(require("cors"));
9
9
  const detectPort_1 = require("./detectPort");
10
10
  const ports_1 = require("../constants/ports");
11
- const errors_1 = require("../errors");
12
11
  const logger_1 = require("../lib/logger");
13
12
  const lang_1 = require("./lang");
14
13
  const i18nKey = 'utils.PortManagerServer';
@@ -22,6 +21,11 @@ class _PortManagerServer {
22
21
  this.serverPortMap = {};
23
22
  }
24
23
  async init() {
24
+ if (!(await this.portAvailable())) {
25
+ throw new Error((0, lang_1.i18n)(`${i18nKey}.errors.portInUse`, {
26
+ port: ports_1.PORT_MANAGER_SERVER_PORT,
27
+ }));
28
+ }
25
29
  if (this.app) {
26
30
  throw new Error((0, lang_1.i18n)(`${i18nKey}.errors.duplicateInstance`));
27
31
  }
@@ -29,24 +33,17 @@ class _PortManagerServer {
29
33
  this.app.use(express_1.default.json());
30
34
  this.app.use((0, cors_1.default)());
31
35
  this.setupRoutes();
32
- try {
33
- this.server = await this.listen();
34
- logger_1.logger.debug(this.server);
35
- }
36
- catch (e) {
37
- if ((0, errors_1.isSystemError)(e) && e.code === 'EADDRINUSE') {
38
- throw new Error((0, lang_1.i18n)(`${i18nKey}.errors.portInUse`, {
39
- port: ports_1.PORT_MANAGER_SERVER_PORT,
40
- }), { cause: e });
41
- }
42
- throw e;
43
- }
36
+ this.server = await this.listen();
37
+ logger_1.logger.debug(this.server);
44
38
  }
45
39
  reset() {
46
40
  this.app = undefined;
47
41
  this.server = undefined;
48
42
  this.serverPortMap = {};
49
43
  }
44
+ async portAvailable() {
45
+ return ((await (0, detectPort_1.detectPort)(ports_1.PORT_MANAGER_SERVER_PORT)) === ports_1.PORT_MANAGER_SERVER_PORT);
46
+ }
50
47
  listen() {
51
48
  return new Promise((resolve, reject) => {
52
49
  const server = this.app.listen(ports_1.PORT_MANAGER_SERVER_PORT, () => {