diff --git a/package-lock.json b/package-lock.json index cb2dac3b..dc5ae7c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "abort-controller": "^3.0.0", "archiver": "^6.0.2", "envfile": "^7.1.0", - "get-port": "^5.1.1", + "get-port": "^7.1.0", "inquirer": "^8.2.6", "listr": "^0.14.3", "node-emoji": "^2.1.3", @@ -8799,11 +8799,11 @@ } }, "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", + "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==", "engines": { - "node": ">=8" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -22192,9 +22192,9 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" }, "get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", + "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==" }, "get-stdin": { "version": "9.0.0", diff --git a/package.json b/package.json index 19c63ccf..6d0e5806 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "abort-controller": "^3.0.0", "archiver": "^6.0.2", "envfile": "^7.1.0", - "get-port": "^5.1.1", + "get-port": "^7.1.0", "inquirer": "^8.2.6", "listr": "^0.14.3", "node-emoji": "^2.1.3", diff --git a/src/autify/connect/client-manager/ClientManager.ts b/src/autify/connect/client-manager/ClientManager.ts index ef3197c4..a62c7a67 100644 --- a/src/autify/connect/client-manager/ClientManager.ts +++ b/src/autify/connect/client-manager/ClientManager.ts @@ -28,9 +28,19 @@ import { } from "./Logger"; import { join } from "node:path"; import TypedEmitter from "typed-emitter"; -import getPort from "get-port"; import { getWebClient } from "../../web/getWebClient"; import { parse } from "shell-quote"; +import type GetPort from "get-port"; + +// Workaround to import get-port, which is an ES module, dynamically and avoid +// having typescript transpile that import into a require. +async function importGetPort(): Promise { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + return new Promise((resolve) => { + // eslint-disable-next-line no-eval + eval(`import("get-port").then((esm) => resolve(esm.default));`); + }); +} export type ClientEvents = TypedEmitter<{ log: (msg: string) => void; @@ -108,6 +118,7 @@ export class ClientManager { try { this.logger.debug("start"); const version = await this.getClientVersion(); + const getPort = await importGetPort(); const debugServerPort = this.options.debugServerPort ?? (await getPort()); this.logger.info( `Starting Autify Connect Client (accessPoint: ${this.accessPointName}, debugServerPort: ${debugServerPort}, path: ${this.clientPath}, version: ${version})`