diff --git a/package.json b/package.json index 5026fc2..cd2f98a 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ }, "devDependencies": { "@effect/vitest": "4.0.0-beta.85", - "@types/node": "^25.9.3", + "@types/node": "^26.0.0", "typescript": "^6.0.2", "vite-plus": "^0.2.1", "vitest": "^4.1.7" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 66f8655..cd1821f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,19 +23,19 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.0-beta.85 - version: 4.0.0-beta.85(effect@4.0.0-beta.85)(vitest@4.1.9(@types/node@25.9.3)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))) + version: 4.0.0-beta.85(effect@4.0.0-beta.85)(vitest@4.1.9(@types/node@26.0.0)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))) '@types/node': - specifier: ^25.9.3 - version: 25.9.3 + specifier: ^26.0.0 + version: 26.0.0 typescript: specifier: ^6.0.2 version: 6.0.3 vite-plus: specifier: ^0.2.1 - version: 0.2.1(@types/node@25.9.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(yaml@2.9.0) + version: 0.2.1(@types/node@26.0.0)(typescript@6.0.3)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(yaml@2.9.0) vitest: specifier: ^4.1.7 - version: 4.1.9(@types/node@25.9.3)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0)) + version: 4.1.9(@types/node@26.0.0)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0)) packages: @@ -567,8 +567,8 @@ packages: '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@types/node@25.9.3': - resolution: {integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==} + '@types/node@26.0.0': + resolution: {integrity: sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==} '@types/request@2.48.13': resolution: {integrity: sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg==} @@ -1475,8 +1475,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - undici-types@7.24.6: - resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} + undici-types@8.3.0: + resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} undici@8.3.0: resolution: {integrity: sha512-TkUDgb6tl7KOGZ+7e8E3d2FYgUQgF6z5YypqjWmixVQSQERFcVrVg0ySADm2LVLRh5ljAaHTCR5Fmz3Q34rB7Q==} @@ -1670,10 +1670,10 @@ snapshots: - bufferutil - utf-8-validate - '@effect/vitest@4.0.0-beta.85(effect@4.0.0-beta.85)(vitest@4.1.9(@types/node@25.9.3)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0)))': + '@effect/vitest@4.0.0-beta.85(effect@4.0.0-beta.85)(vitest@4.1.9(@types/node@26.0.0)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0)))': dependencies: effect: 4.0.0-beta.85 - vitest: 4.1.9(@types/node@25.9.3)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0)) + vitest: 4.1.9(@types/node@26.0.0)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0)) '@emnapi/core@1.10.0': dependencies: @@ -1977,14 +1977,14 @@ snapshots: '@types/estree@1.0.9': {} - '@types/node@25.9.3': + '@types/node@26.0.0': dependencies: - undici-types: 7.24.6 + undici-types: 8.3.0 '@types/request@2.48.13': dependencies: '@types/caseless': 0.12.5 - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@types/tough-cookie': 4.0.5 form-data: 2.5.5 @@ -1992,30 +1992,30 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 - '@vitest/browser-preview@4.1.9(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(vitest@4.1.9)': + '@vitest/browser-preview@4.1.9(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(vitest@4.1.9)': dependencies: '@testing-library/dom': 10.4.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) - '@vitest/browser': 4.1.9(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(vitest@4.1.9) - vitest: 4.1.9(@types/node@25.9.3)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0)) + '@vitest/browser': 4.1.9(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(vitest@4.1.9) + vitest: 4.1.9(@types/node@26.0.0)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@4.1.9(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(vitest@4.1.9)': + '@vitest/browser@4.1.9(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(vitest@4.1.9)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.9(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0)) + '@vitest/mocker': 4.1.9(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0)) '@vitest/utils': 4.1.9 magic-string: 0.30.21 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.1.0 - vitest: 4.1.9(@types/node@25.9.3)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0)) + vitest: 4.1.9(@types/node@26.0.0)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0)) ws: 8.21.0 transitivePeerDependencies: - bufferutil @@ -2032,13 +2032,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.9(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))': + '@vitest/mocker@4.1.9(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.13(@types/node@25.9.3)(yaml@2.9.0) + vite: 8.0.13(@types/node@26.0.0)(yaml@2.9.0) '@vitest/pretty-format@4.1.9': dependencies: @@ -2064,14 +2064,14 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.0 - '@voidzero-dev/vite-plus-core@0.2.1(@types/node@25.9.3)(typescript@6.0.3)(yaml@2.9.0)': + '@voidzero-dev/vite-plus-core@0.2.1(@types/node@26.0.0)(typescript@6.0.3)(yaml@2.9.0)': dependencies: '@oxc-project/runtime': 0.136.0 '@oxc-project/types': 0.136.0 lightningcss: 1.32.0 postcss: 8.5.15 optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 fsevents: 2.3.3 typescript: 6.0.3 yaml: 2.9.0 @@ -2532,7 +2532,7 @@ snapshots: obug@2.1.3: {} - oxfmt@0.55.0(vite-plus@0.2.1(@types/node@25.9.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(yaml@2.9.0)): + oxfmt@0.55.0(vite-plus@0.2.1(@types/node@26.0.0)(typescript@6.0.3)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(yaml@2.9.0)): dependencies: tinypool: 2.1.0 optionalDependencies: @@ -2555,7 +2555,7 @@ snapshots: '@oxfmt/binding-win32-arm64-msvc': 0.55.0 '@oxfmt/binding-win32-ia32-msvc': 0.55.0 '@oxfmt/binding-win32-x64-msvc': 0.55.0 - vite-plus: 0.2.1(@types/node@25.9.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(yaml@2.9.0) + vite-plus: 0.2.1(@types/node@26.0.0)(typescript@6.0.3)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(yaml@2.9.0) oxlint-tsgolint@0.23.0: optionalDependencies: @@ -2566,7 +2566,7 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 0.23.0 '@oxlint-tsgolint/win32-x64': 0.23.0 - oxlint@1.70.0(oxlint-tsgolint@0.23.0)(vite-plus@0.2.1(@types/node@25.9.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(yaml@2.9.0)): + oxlint@1.70.0(oxlint-tsgolint@0.23.0)(vite-plus@0.2.1(@types/node@26.0.0)(typescript@6.0.3)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(yaml@2.9.0)): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.70.0 '@oxlint/binding-android-arm64': 1.70.0 @@ -2588,7 +2588,7 @@ snapshots: '@oxlint/binding-win32-ia32-msvc': 1.70.0 '@oxlint/binding-win32-x64-msvc': 1.70.0 oxlint-tsgolint: 0.23.0 - vite-plus: 0.2.1(@types/node@25.9.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(yaml@2.9.0) + vite-plus: 0.2.1(@types/node@26.0.0)(typescript@6.0.3)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(yaml@2.9.0) pako@1.0.11: {} @@ -2853,7 +2853,7 @@ snapshots: typescript@6.0.3: {} - undici-types@7.24.6: {} + undici-types@8.3.0: {} undici@8.3.0: {} @@ -2878,24 +2878,24 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-plus@0.2.1(@types/node@25.9.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(yaml@2.9.0): + vite-plus@0.2.1(@types/node@26.0.0)(typescript@6.0.3)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(yaml@2.9.0): dependencies: '@oxc-project/types': 0.136.0 '@oxlint/plugins': 1.68.0 - '@vitest/browser': 4.1.9(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(vitest@4.1.9) - '@vitest/browser-preview': 4.1.9(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(vitest@4.1.9) + '@vitest/browser': 4.1.9(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(vitest@4.1.9) + '@vitest/browser-preview': 4.1.9(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(vitest@4.1.9) '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0)) + '@vitest/mocker': 4.1.9(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.9 '@vitest/runner': 4.1.9 '@vitest/snapshot': 4.1.9 '@vitest/spy': 4.1.9 '@vitest/utils': 4.1.9 - '@voidzero-dev/vite-plus-core': 0.2.1(@types/node@25.9.3)(typescript@6.0.3)(yaml@2.9.0) - oxfmt: 0.55.0(vite-plus@0.2.1(@types/node@25.9.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(yaml@2.9.0)) - oxlint: 1.70.0(oxlint-tsgolint@0.23.0)(vite-plus@0.2.1(@types/node@25.9.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(yaml@2.9.0)) + '@voidzero-dev/vite-plus-core': 0.2.1(@types/node@26.0.0)(typescript@6.0.3)(yaml@2.9.0) + oxfmt: 0.55.0(vite-plus@0.2.1(@types/node@26.0.0)(typescript@6.0.3)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(yaml@2.9.0)) + oxlint: 1.70.0(oxlint-tsgolint@0.23.0)(vite-plus@0.2.1(@types/node@26.0.0)(typescript@6.0.3)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(yaml@2.9.0)) oxlint-tsgolint: 0.23.0 - vitest: 4.1.9(@types/node@25.9.3)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0)) + vitest: 4.1.9(@types/node@26.0.0)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0)) optionalDependencies: '@voidzero-dev/vite-plus-darwin-arm64': 0.2.1 '@voidzero-dev/vite-plus-darwin-x64': 0.2.1 @@ -2938,7 +2938,7 @@ snapshots: - vite - yaml - vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0): + vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -2946,14 +2946,14 @@ snapshots: rolldown: 1.0.1 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 fsevents: 2.3.3 yaml: 2.9.0 - vitest@4.1.9(@types/node@25.9.3)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0)): + vitest@4.1.9(@types/node@26.0.0)(@vitest/browser-preview@4.1.9)(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0)) + '@vitest/mocker': 4.1.9(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.9 '@vitest/runner': 4.1.9 '@vitest/snapshot': 4.1.9 @@ -2970,11 +2970,11 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.0.13(@types/node@25.9.3)(yaml@2.9.0) + vite: 8.0.13(@types/node@26.0.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.9.3 - '@vitest/browser-preview': 4.1.9(vite@8.0.13(@types/node@25.9.3)(yaml@2.9.0))(vitest@4.1.9) + '@types/node': 26.0.0 + '@vitest/browser-preview': 4.1.9(vite@8.0.13(@types/node@26.0.0)(yaml@2.9.0))(vitest@4.1.9) transitivePeerDependencies: - msw diff --git a/test/package-config.test.ts b/test/package-config.test.ts index 3832c81..a3fe922 100644 --- a/test/package-config.test.ts +++ b/test/package-config.test.ts @@ -44,14 +44,25 @@ const readPackageConfig = (): PackageConfig => { }; }; +const readNodeTypesMajor = (specifier: string): string => { + const match = /^\^(\d+)\./.exec(specifier); + + if (match?.[1] === undefined) { + throw new Error("@types/node must use a caret major version specifier"); + } + + return match[1]; +}; + describe("package config", () => { it("keeps Node ambient types at or above the minimum supported engine major", () => { const packageConfig = readPackageConfig(); const lockfile = readFileSync("pnpm-lock.yaml", "utf8"); + const nodeTypesMajor = readNodeTypesMajor(packageConfig.devDependencies["@types/node"]); expect(packageConfig.engines.node).toContain(">=24."); expect(packageConfig.devDependencies["@types/node"]).toMatch(/^\^(2[5-9]|[3-9]\d)\./); - expect(lockfile).toContain("@types/node@25."); + expect(lockfile).toContain(`@types/node@${nodeTypesMajor}.`); }); it("packages the generic live probe with agent-facing docs", () => {