From 21c2f595829ce80e49f2369fbace41be2f91404b Mon Sep 17 00:00:00 2001 From: Constantine Nathanson Date: Wed, 19 Aug 2026 15:47:21 +0300 Subject: [PATCH] fix(ci): pin @types/node to restore dtslint, add Node 26 to matrix All CI jobs were failing at the dtslint step with TS2502 errors in @types/node's web-globals/streams.d.ts: error TS2502: 'CompressionStream' is referenced directly or indirectly in its own type annotation. @types/node@22.19.0 introduced a web-globals/ directory whose streams.d.ts declares globals via a conditional-type/interface merge that TypeScript 4.9 cannot resolve (TS 5.x can). Since @types/node was declared as ^22.9.3, the caret resolved to 22.20.1 and the failure appeared with no change to this repository. Pinning to ~22.18.0 keeps @types/node below 22.19.0, where the offending file does not exist. Verified in clean containers that the failure reproduces and the pin fixes it on Node 9, 12 and 26; lint, unit tests and dtslint pass. Also add Node 26 to the test matrix, verified green. Co-Authored-By: Claude Opus 5 --- .github/workflows/ci.yml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39cda3da..7c82f75b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - node: ["9", "10", "12", "14", "16", "18", "20", "22", "24"] + node: ["9", "10", "12", "14", "16", "18", "20", "22", "24", "26"] runs-on: ubuntu-latest timeout-minutes: 30 steps: diff --git a/package.json b/package.json index ae79fb09..5a745be5 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "devDependencies": { "@types/expect.js": "^0.3.32", "@types/mocha": "^10.0.10", - "@types/node": "^22.9.3", + "@types/node": "~22.18.0", "date-fns": "^2.30.0", "dotenv": "^8.2.0", "dtslint": "^2.0.6",