diff --git a/.github/workflows/compile-site.yaml b/.github/workflows/compile-site.yaml index 18010390..c3ae7557 100644 --- a/.github/workflows/compile-site.yaml +++ b/.github/workflows/compile-site.yaml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: '18.x' + node-version: '24.x' cache: yarn - run: yarn working-directory: site diff --git a/packages/cli-common/.nvmrc b/packages/cli-common/.nvmrc index e44a38e0..3d487129 100644 --- a/packages/cli-common/.nvmrc +++ b/packages/cli-common/.nvmrc @@ -1 +1 @@ -v18.12.1 +v24.3.0 diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json index 608dd5b4..ab532279 100644 --- a/packages/cli-common/package.json +++ b/packages/cli-common/package.json @@ -27,7 +27,7 @@ "@stylistic/eslint-plugin": "^4.2.0", "@stylistic/eslint-plugin-ts": "^4.2.0", "@types/lodash-es": "^4.17.12", - "@types/node": "18", + "@types/node": "24", "@typescript-eslint/eslint-plugin": "8.30.1", "@typescript-eslint/parser": "8.30.1", "eslint": "^9.25.0", diff --git a/packages/cli/.nvmrc b/packages/cli/.nvmrc index eb800ed4..3d487129 100644 --- a/packages/cli/.nvmrc +++ b/packages/cli/.nvmrc @@ -1 +1 @@ -v18.19.0 +v24.3.0 diff --git a/packages/cli/package.json b/packages/cli/package.json index 103f4905..b424a280 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -53,7 +53,7 @@ "@types/inquirer": "^8.0.0", "@types/inquirer-autocomplete-prompt": "^3.0.3", "@types/lodash-es": "^4.17.12", - "@types/node": "18", + "@types/node": "24", "@types/shell-escape": "^0.2.1", "@typescript-eslint/eslint-plugin": "8.30.1", "@typescript-eslint/parser": "8.30.1", @@ -119,7 +119,7 @@ "version": "oclif readme && git add README.md" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" }, "bugs": "https://github.com/livecycle/preevy/issues", "keywords": [ diff --git a/packages/common/package.json b/packages/common/package.json index 8f84f889..18ee3662 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -28,7 +28,7 @@ "@stylistic/eslint-plugin-ts": "^4.2.0", "@types/dockerode": "^3.3.26", "@types/lodash-es": "^4.17.12", - "@types/node": "18", + "@types/node": "24", "@types/shell-escape": "^0.2.1", "@types/ssh2": "^1.11.8", "@typescript-eslint/eslint-plugin": "8.30.1", diff --git a/packages/compose-tunnel-agent/.nvmrc b/packages/compose-tunnel-agent/.nvmrc index e44a38e0..3d487129 100644 --- a/packages/compose-tunnel-agent/.nvmrc +++ b/packages/compose-tunnel-agent/.nvmrc @@ -1 +1 @@ -v18.12.1 +v24.3.0 diff --git a/packages/compose-tunnel-agent/Dockerfile b/packages/compose-tunnel-agent/Dockerfile index 9684697c..83db8d5a 100644 --- a/packages/compose-tunnel-agent/Dockerfile +++ b/packages/compose-tunnel-agent/Dockerfile @@ -1,6 +1,6 @@ -FROM node:18-alpine as base +FROM node:24-alpine AS base WORKDIR /app -FROM base as production +FROM base AS production COPY out /app/ CMD [ "node", "/app/index.mjs" ] diff --git a/packages/compose-tunnel-agent/Dockerfile.dev b/packages/compose-tunnel-agent/Dockerfile.dev index be1f7a6c..89dc4a63 100644 --- a/packages/compose-tunnel-agent/Dockerfile.dev +++ b/packages/compose-tunnel-agent/Dockerfile.dev @@ -1,3 +1,3 @@ -FROM node:18-alpine as development +FROM node:24-alpine AS development WORKDIR /app CMD [ "yarn", "-s", "dev" ] diff --git a/packages/compose-tunnel-agent/package.json b/packages/compose-tunnel-agent/package.json index 74273773..ae1b9f9e 100644 --- a/packages/compose-tunnel-agent/package.json +++ b/packages/compose-tunnel-agent/package.json @@ -12,7 +12,7 @@ "Dockerfile" ], "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" }, "license": "Apache-2.0", "dependencies": { @@ -39,7 +39,7 @@ "@types/dockerode": "^3.3.26", "@types/http-proxy": "^1.17.9", "@types/lodash-es": "^4.17.12", - "@types/node": "18", + "@types/node": "24", "@types/node-fetch": "^2.6.3", "@types/shell-escape": "^0.2.1", "@types/ssh2": "^1.11.8", diff --git a/packages/core/.nvmrc b/packages/core/.nvmrc index e44a38e0..3d487129 100644 --- a/packages/core/.nvmrc +++ b/packages/core/.nvmrc @@ -1 +1 @@ -v18.12.1 +v24.3.0 diff --git a/packages/core/package.json b/packages/core/package.json index f3a9f593..0e7e42c4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -51,7 +51,7 @@ "@types/inquirer-autocomplete-prompt": "^3.0.3", "@types/is-stream": "^2.0.0", "@types/lodash-es": "^4.17.12", - "@types/node": "18", + "@types/node": "24", "@types/node-fetch": "^2.6.3", "@types/node-forge": "^1.3.1", "@types/shell-escape": "^0.2.1", diff --git a/packages/driver-azure/.nvmrc b/packages/driver-azure/.nvmrc index e44a38e0..3d487129 100644 --- a/packages/driver-azure/.nvmrc +++ b/packages/driver-azure/.nvmrc @@ -1 +1 @@ -v18.12.1 +v24.3.0 diff --git a/packages/driver-azure/package.json b/packages/driver-azure/package.json index 68bad5f6..047ceb0f 100644 --- a/packages/driver-azure/package.json +++ b/packages/driver-azure/package.json @@ -38,7 +38,7 @@ "@types/inquirer": "^8.0.0", "@types/inquirer-autocomplete-prompt": "^3.0.3", "@types/lodash-es": "^4.17.12", - "@types/node": "18", + "@types/node": "24", "@typescript-eslint/eslint-plugin": "8.30.1", "@typescript-eslint/parser": "8.30.1", "eslint": "^9.25.0", diff --git a/packages/driver-gce/.nvmrc b/packages/driver-gce/.nvmrc index e44a38e0..3d487129 100644 --- a/packages/driver-gce/.nvmrc +++ b/packages/driver-gce/.nvmrc @@ -1 +1 @@ -v18.12.1 +v24.3.0 diff --git a/packages/driver-gce/package.json b/packages/driver-gce/package.json index f072c485..25e6d6f0 100644 --- a/packages/driver-gce/package.json +++ b/packages/driver-gce/package.json @@ -32,7 +32,7 @@ "@types/inquirer": "^8.0.0", "@types/inquirer-autocomplete-prompt": "^3.0.3", "@types/lodash-es": "^4.17.12", - "@types/node": "18", + "@types/node": "24", "@typescript-eslint/eslint-plugin": "8.30.1", "@typescript-eslint/parser": "8.30.1", "eslint": "^9.25.0", diff --git a/packages/driver-kube-pod/.nvmrc b/packages/driver-kube-pod/.nvmrc index e44a38e0..3d487129 100644 --- a/packages/driver-kube-pod/.nvmrc +++ b/packages/driver-kube-pod/.nvmrc @@ -1 +1 @@ -v18.12.1 +v24.3.0 diff --git a/packages/driver-kube-pod/package.json b/packages/driver-kube-pod/package.json index 2c0bed0f..4424c87e 100644 --- a/packages/driver-kube-pod/package.json +++ b/packages/driver-kube-pod/package.json @@ -33,7 +33,7 @@ "@stylistic/eslint-plugin": "^4.2.0", "@stylistic/eslint-plugin-ts": "^4.2.0", "@types/lodash-es": "^4.17.12", - "@types/node": "18", + "@types/node": "24", "@types/stream-buffers": "^3.0.4", "@typescript-eslint/eslint-plugin": "8.30.1", "@typescript-eslint/parser": "8.30.1", diff --git a/packages/driver-lightsail/.nvmrc b/packages/driver-lightsail/.nvmrc index e44a38e0..3d487129 100644 --- a/packages/driver-lightsail/.nvmrc +++ b/packages/driver-lightsail/.nvmrc @@ -1 +1 @@ -v18.12.1 +v24.3.0 diff --git a/packages/driver-lightsail/package.json b/packages/driver-lightsail/package.json index 237e2ecf..9d84111e 100644 --- a/packages/driver-lightsail/package.json +++ b/packages/driver-lightsail/package.json @@ -31,7 +31,7 @@ "@types/inquirer": "^8.0.0", "@types/inquirer-autocomplete-prompt": "^3.0.3", "@types/lodash-es": "^4.17.12", - "@types/node": "18", + "@types/node": "24", "@typescript-eslint/eslint-plugin": "8.30.1", "@typescript-eslint/parser": "8.30.1", "eslint": "^9.25.0", diff --git a/packages/plugin-github/.nvmrc b/packages/plugin-github/.nvmrc index e44a38e0..3d487129 100644 --- a/packages/plugin-github/.nvmrc +++ b/packages/plugin-github/.nvmrc @@ -1 +1 @@ -v18.12.1 +v24.3.0 diff --git a/site/package.json b/site/package.json index af14e2dd..985b41f8 100644 --- a/site/package.json +++ b/site/package.json @@ -46,6 +46,6 @@ ] }, "engines": { - "node": ">=16.14" + "node": ">=20" } } diff --git a/tunnel-server/.nvmrc b/tunnel-server/.nvmrc index e44a38e0..3d487129 100644 --- a/tunnel-server/.nvmrc +++ b/tunnel-server/.nvmrc @@ -1 +1 @@ -v18.12.1 +v24.3.0 diff --git a/tunnel-server/Dockerfile b/tunnel-server/Dockerfile index 05a0da1e..66ae88b0 100644 --- a/tunnel-server/Dockerfile +++ b/tunnel-server/Dockerfile @@ -1,14 +1,14 @@ -FROM node:18-alpine as base +FROM node:24-alpine AS base WORKDIR /app COPY package.json yarn.lock ./ RUN yarn --mount=type=cache,id=livecycle/preview-proxy/npm-cache,target=/usr/local/share/.cache/yarn/v6 EXPOSE 3000 2222 -FROM base as build +FROM base AS build COPY . /app RUN yarn clean && yarn build -FROM node:18-alpine as production +FROM node:24-alpine AS production WORKDIR /app EXPOSE 3000 2222 LABEL org.opencontainers.image.source=https://github.com/livecycle/preevy diff --git a/tunnel-server/package.json b/tunnel-server/package.json index 3a8bb65a..8ef3b174 100644 --- a/tunnel-server/package.json +++ b/tunnel-server/package.json @@ -32,7 +32,7 @@ "zod": "^3.22.4" }, "engines": { - "node": ">=18.12.1" + "node": ">=20.12.1" }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", @@ -44,7 +44,7 @@ "@types/cookies": "^0.7.8", "@types/http-proxy": "^1.17.9", "@types/lodash-es": "^4.17.12", - "@types/node": "18", + "@types/node": "24", "@types/ssh2": "^1.11.8", "@types/tough-cookie": "^4.0.3", "@typescript-eslint/eslint-plugin": "8.30.1", diff --git a/tunnel-server/src/events.ts b/tunnel-server/src/events.ts index 61b2cc12..13a5022e 100644 --- a/tunnel-server/src/events.ts +++ b/tunnel-server/src/events.ts @@ -21,7 +21,7 @@ export async function onceWithTimeout ( { milliseconds, fallback }: { milliseconds: number; fallback?: () => T | Promise }, ): Promise { const signal = AbortSignal.timeout(milliseconds) - return await events.once(target, event, { signal }).then( + return await events.once(target as NodeJS.EventEmitter, event, { signal }).then( () => undefined, async e => { if (!signal.aborted || (e as Error).name !== 'AbortError') { diff --git a/tunnel-server/yarn.lock b/tunnel-server/yarn.lock index fbb6934a..c5fa5fda 100644 --- a/tunnel-server/yarn.lock +++ b/tunnel-server/yarn.lock @@ -1116,13 +1116,20 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== -"@types/node@*", "@types/node@18", "@types/node@^18.11.18": +"@types/node@*", "@types/node@^18.11.18": version "18.19.112" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.112.tgz#cd2aee9c075402e0e1942a44101428881dbeb110" integrity sha512-i+Vukt9POdS/MBI7YrrkkI5fMfwFtOjphSmt4WXYLfwqsfr6z/HdCx7LqT9M7JktGob8WNgj8nFB4TbGNE4Cog== dependencies: undici-types "~5.26.4" +"@types/node@24": + version "24.0.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.0.7.tgz#ee580f7850c7eabaeef61ef96b8d8c04fdf94f53" + integrity sha512-YIEUUr4yf8q8oQoXPpSlnvKNVKDQlPMWrmOcgzoduo7kvA2UF0/BwJ/eMKFTiTtkNL17I0M6Xe2tvwFU7be6iw== + dependencies: + undici-types "~7.8.0" + "@types/qs@*": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" @@ -4999,6 +5006,11 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.8.0.tgz#de00b85b710c54122e44fbfd911f8d70174cd294" + integrity sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw== + undici@^6.4.0: version "6.21.3" resolved "https://registry.yarnpkg.com/undici/-/undici-6.21.3.tgz#185752ad92c3d0efe7a7d1f6854a50f83b552d7a" diff --git a/yarn.lock b/yarn.lock index 7f08a5b8..5fa43dcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4003,7 +4003,14 @@ dependencies: undici-types "~6.21.0" -"@types/node@18", "@types/node@^18.11.17", "@types/node@^18.11.18": +"@types/node@24": + version "24.0.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.0.7.tgz#ee580f7850c7eabaeef61ef96b8d8c04fdf94f53" + integrity sha512-YIEUUr4yf8q8oQoXPpSlnvKNVKDQlPMWrmOcgzoduo7kvA2UF0/BwJ/eMKFTiTtkNL17I0M6Xe2tvwFU7be6iw== + dependencies: + undici-types "~7.8.0" + +"@types/node@^18.11.17", "@types/node@^18.11.18": version "18.19.112" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.112.tgz#cd2aee9c075402e0e1942a44101428881dbeb110" integrity sha512-i+Vukt9POdS/MBI7YrrkkI5fMfwFtOjphSmt4WXYLfwqsfr6z/HdCx7LqT9M7JktGob8WNgj8nFB4TbGNE4Cog== @@ -12518,6 +12525,11 @@ undici-types@~6.21.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== +undici-types@~7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.8.0.tgz#de00b85b710c54122e44fbfd911f8d70174cd294" + integrity sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw== + unique-filename@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea"