From 84a5ba59d5d0b6b9d8a4763bba621c7fdad95d7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 13:46:02 +0000 Subject: [PATCH 1/2] Bump the typescript group across 2 directories with 1 update Bumps the typescript group with 1 update in the / directory: [typescript](https://github.com/microsoft/TypeScript). Bumps the typescript group with 1 update in the /packages/web-features directory: [typescript](https://github.com/microsoft/TypeScript). Updates `typescript` from 5.9.3 to 6.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v6.0.2) Updates `typescript` from 5.9.3 to 6.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v6.0.2) --- updated-dependencies: - dependency-name: typescript dependency-version: 6.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: typescript - dependency-name: typescript dependency-version: 6.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: typescript ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- packages/web-features/package-lock.json | 8 ++++---- packages/web-features/package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index bd2a83ebe53..52fbfc38d97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,7 +35,7 @@ "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "tsx": "^4.21.0", - "typescript": "^5.9.3", + "typescript": "^6.0.2", "typescript-eslint": "^8.58.0", "unified": "^11.0.5", "web-specs": "^3.82.1", @@ -6112,9 +6112,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", + "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index fde313bc145..5410760a7bc 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "tsx": "^4.21.0", - "typescript": "^5.9.3", + "typescript": "^6.0.2", "typescript-eslint": "^8.58.0", "unified": "^11.0.5", "web-specs": "^3.82.1", diff --git a/packages/web-features/package-lock.json b/packages/web-features/package-lock.json index 58babd505a2..d41f85bdbc1 100644 --- a/packages/web-features/package-lock.json +++ b/packages/web-features/package-lock.json @@ -10,7 +10,7 @@ "license": "Apache-2.0", "devDependencies": { "@types/node": "^20.19.37", - "typescript": "^5.9.3" + "typescript": "^6.0.2" } }, "node_modules/@types/node": { @@ -24,9 +24,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", + "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/packages/web-features/package.json b/packages/web-features/package.json index 4ad669352af..e622afda25a 100644 --- a/packages/web-features/package.json +++ b/packages/web-features/package.json @@ -29,6 +29,6 @@ }, "devDependencies": { "@types/node": "^20.19.37", - "typescript": "^5.9.3" + "typescript": "^6.0.2" } } From ed54c6e091f4316e8bb4200fd79e208f0dce4c57 Mon Sep 17 00:00:00 2001 From: "Daniel D. Beck" Date: Wed, 8 Apr 2026 15:21:30 +0200 Subject: [PATCH 2/2] Update config for TypeScript 6 --- assertions.ts | 2 +- index.ts | 2 +- .../src/browser-compat-data/feature.test.ts | 11 +++++++++-- .../src/browser-compat-data/feature.ts | 2 +- packages/compute-baseline/tsconfig.json | 6 ++++-- packages/web-features/tsconfig.json | 3 ++- tsconfig.json | 5 ++++- type-guards.ts | 12 +++++++++--- 8 files changed, 31 insertions(+), 12 deletions(-) diff --git a/assertions.ts b/assertions.ts index 11bfbd5c22e..7069705efe0 100644 --- a/assertions.ts +++ b/assertions.ts @@ -50,7 +50,7 @@ export function assertRequiredRemovalDateSet( } if ( feature.compat_features && - Object.keys(feature.status.by_compat_key).length > 0 + Object.keys(feature.status.by_compat_key ?? {}).length > 0 ) return; throw new Error( diff --git a/index.ts b/index.ts index cd9a441237b..6720df3a324 100644 --- a/index.ts +++ b/index.ts @@ -107,7 +107,7 @@ const snapshots: { [key: string]: SnapshotData } = Object.fromEntries(yamlEntrie // TODO: validate the snapshot data. // Helper to iterate an optional string-or-array-of-strings value. -function* identifiers(value) { +function* identifiers(value: undefined | string | string[]) { if (value === undefined) { return; } diff --git a/packages/compute-baseline/src/browser-compat-data/feature.test.ts b/packages/compute-baseline/src/browser-compat-data/feature.test.ts index 9ba2f7d07aa..1549b48858c 100644 --- a/packages/compute-baseline/src/browser-compat-data/feature.test.ts +++ b/packages/compute-baseline/src/browser-compat-data/feature.test.ts @@ -118,8 +118,15 @@ describe("features", function () { "css.properties.line-clamp", ).supportedInDetails(cr.version("100")); assert.equal(lineClamp.length, 1); - assert.equal(lineClamp[0]?.supported, true); - assert.equal(lineClamp[0]?.qualifications?.prefix, "-webkit-"); + const release = lineClamp[0]; + assert("supported" in release); + assert(release.supported === true); + assert(release.supported !== null); + if ("qualifications" in release) { + assert.equal(release.qualifications.prefix, "-webkit-"); + } else { + assert(false); + } }); it("returns mixed results for (un)prefixed features", function () { diff --git a/packages/compute-baseline/src/browser-compat-data/feature.ts b/packages/compute-baseline/src/browser-compat-data/feature.ts index 477c17f44ed..554551dab51 100644 --- a/packages/compute-baseline/src/browser-compat-data/feature.ts +++ b/packages/compute-baseline/src/browser-compat-data/feature.ts @@ -126,7 +126,7 @@ export class Feature { let unknown = false; for (const s of this.supportStatements(release.browser)) { const supported = s.supportedInDetails(release); - if (supported.supported && !supported.qualifications) { + if (supported.supported && !("qualifications" in supported)) { return true; } diff --git a/packages/compute-baseline/tsconfig.json b/packages/compute-baseline/tsconfig.json index 8da82e0b5ec..43b8de4d752 100644 --- a/packages/compute-baseline/tsconfig.json +++ b/packages/compute-baseline/tsconfig.json @@ -4,12 +4,14 @@ "module": "NodeNext", "moduleResolution": "NodeNext", "resolveJsonModule": true, + "rootDir": "./src", "outDir": "./dist", "declaration": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, - "strict": true, - "noUncheckedIndexedAccess": true + "noUncheckedIndexedAccess": true, + "types": ["node", "mocha"], + "strict": false }, "include": ["./src"] } diff --git a/packages/web-features/tsconfig.json b/packages/web-features/tsconfig.json index e483fa95943..5b8a54dccaf 100644 --- a/packages/web-features/tsconfig.json +++ b/packages/web-features/tsconfig.json @@ -4,6 +4,7 @@ "module": "ESNext", "moduleResolution": "Bundler", "typeRoots": ["./node_modules/@types"], - "declaration": true + "declaration": true, + "types": ["node"] } } diff --git a/tsconfig.json b/tsconfig.json index e41e938e6e1..37d770fc5f6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,10 @@ "moduleResolution": "Bundler", "esModuleInterop": true, "resolveJsonModule": true, - "noEmit": true + "noEmit": true, + "lib": ["ES2023"], + "types": ["node", "mocha"], + "strict": false }, "exclude": ["packages/", "gh-pages/"] } diff --git a/type-guards.ts b/type-guards.ts index 806a88139d4..8d6a00c0064 100644 --- a/type-guards.ts +++ b/type-guards.ts @@ -1,13 +1,19 @@ import type { FeatureData, FeatureMovedData, FeatureSplitData } from "./types"; export function isOrdinaryFeatureData(x: unknown): x is FeatureData { - return typeof x === "object" && "kind" in x && x.kind === "feature"; + return ( + typeof x === "object" && x !== null && "kind" in x && x.kind === "feature" + ); } export function isSplit(x: unknown): x is FeatureSplitData { - return typeof x === "object" && "kind" in x && x.kind === "split"; + return ( + typeof x === "object" && x !== null && "kind" in x && x.kind === "split" + ); } export function isMoved(x: unknown): x is FeatureMovedData { - return typeof x === "object" && "kind" in x && x.kind === "moved"; + return ( + typeof x === "object" && x !== null && "kind" in x && x.kind === "moved" + ); }