diff --git a/.github/buf-logo.svg b/.github/buf-logo.svg index 2a24f001..7e01cf3c 100644 --- a/.github/buf-logo.svg +++ b/.github/buf-logo.svg @@ -1,4 +1,5 @@ +Buf logo diff --git a/biome.base.json b/biome.base.json index 9c79f83c..01c6ef25 100644 --- a/biome.base.json +++ b/biome.base.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "$schema": "https://biomejs.dev/schemas/2.5.14/schema.json", "vcs": { "enabled": false, "clientKind": "git", @@ -7,14 +7,20 @@ }, "files": { "ignoreUnknown": false, - "ignore": ["tsconfig.*.json", "src/gen/**", "packages/*/dist/**", ".turbo"] + "includes": [ + "**", + "!**/tsconfig.*.json", + "!**/src/gen", + "!**/packages/*/dist", + "!**/.turbo" + ] }, "formatter": { "indentStyle": "space" }, "linter": { "rules": { - "recommended": true, + "preset": "recommended", "style": { "useTemplate": "off", "useConst": "off", diff --git a/biome.json b/biome.json index 8ce89a55..620749af 100644 --- a/biome.json +++ b/biome.json @@ -1,7 +1,7 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "$schema": "https://biomejs.dev/schemas/2.5.14/schema.json", "extends": ["./biome.base.json"], "files": { - "ignore": ["packages/**"] + "includes": ["!**/packages"] } } diff --git a/package-lock.json b/package-lock.json index 67a5b34f..09246ade 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ ], "devDependencies": { "@arethetypeswrong/cli": "^0.18.5", - "@biomejs/biome": "^1.9.4", + "@biomejs/biome": "^2.5.14", "@bufbuild/buf": "^1.72.0", "@bufbuild/license-header": "^0.0.4", "@bufbuild/protoc-gen-es": "^2.14.0", @@ -85,11 +85,10 @@ } }, "node_modules/@biomejs/biome": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz", - "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==", + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.5.14.tgz", + "integrity": "sha512-0FabLIjd4M/dm8VFI86RMaLLdgepzbdfiAL2R8cr7V81OYYrP1w7Z73KfAwPK5h9SrEBXTzNG2y+mBwPo9xRnw==", "dev": true, - "hasInstallScript": true, "license": "MIT OR Apache-2.0", "bin": { "biome": "bin/biome" @@ -102,20 +101,20 @@ "url": "https://opencollective.com/biome" }, "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "1.9.4", - "@biomejs/cli-darwin-x64": "1.9.4", - "@biomejs/cli-linux-arm64": "1.9.4", - "@biomejs/cli-linux-arm64-musl": "1.9.4", - "@biomejs/cli-linux-x64": "1.9.4", - "@biomejs/cli-linux-x64-musl": "1.9.4", - "@biomejs/cli-win32-arm64": "1.9.4", - "@biomejs/cli-win32-x64": "1.9.4" + "@biomejs/cli-darwin-arm64": "2.5.14", + "@biomejs/cli-darwin-x64": "2.5.14", + "@biomejs/cli-linux-arm64": "2.5.14", + "@biomejs/cli-linux-arm64-musl": "2.5.14", + "@biomejs/cli-linux-x64": "2.5.14", + "@biomejs/cli-linux-x64-musl": "2.5.14", + "@biomejs/cli-win32-arm64": "2.5.14", + "@biomejs/cli-win32-x64": "2.5.14" } }, "node_modules/@biomejs/cli-darwin-arm64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz", - "integrity": "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==", + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.5.14.tgz", + "integrity": "sha512-UnzaXO65L4tsZimFITFP2M121GyhDcWFrT3pL5ZJ5U4XcS/0L5VHYytVohdCf/gnDUFHgl2I9xnt5bV/J1kxHQ==", "cpu": [ "arm64" ], @@ -130,9 +129,9 @@ } }, "node_modules/@biomejs/cli-darwin-x64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz", - "integrity": "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==", + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.5.14.tgz", + "integrity": "sha512-kiy8qA16K93J7uvFfWi4LgjqDpnRKyePAna6A0Y4jxyUga35SYpIZ2cNWlhy0lsfgqRenCpfymnJWEZ6mgpRgA==", "cpu": [ "x64" ], @@ -147,9 +146,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz", - "integrity": "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==", + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.5.14.tgz", + "integrity": "sha512-vO/9BaU1n30CiFNLx49gMTMtbCAAqlo/EqFoG0BU3deQInTbJrmXSmTQ9e3FoDZIKQnvSLDVNL4lx1ci7y1T1Q==", "cpu": [ "arm64" ], @@ -164,9 +163,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz", - "integrity": "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==", + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.5.14.tgz", + "integrity": "sha512-SJ9PrZkBnnH9dHJDnxk34vKs0GB2dbsioaft6/hPhWJ7AHpwYH83Isnhj0FSRpFkGgpVfJ1lds23ApB2czUDLQ==", "cpu": [ "arm64" ], @@ -181,9 +180,9 @@ } }, "node_modules/@biomejs/cli-linux-x64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz", - "integrity": "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==", + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.5.14.tgz", + "integrity": "sha512-VHZRa7CCQBUWKxNwUvHJeuW03WFRgN5NWO//SDGOitc9QIeNyfA42V9zlKm+x82xFSG9Bzi5fi+hbhm9anO8yA==", "cpu": [ "x64" ], @@ -198,9 +197,9 @@ } }, "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz", - "integrity": "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==", + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.5.14.tgz", + "integrity": "sha512-2kI5PrMgW5dcEZYrstLPmUmCwkUwZY39rP4BN93Vxbwcs2O57LDQOktUZZYPvvspN5i0mhGr3TJtF5sU26NUWg==", "cpu": [ "x64" ], @@ -215,9 +214,9 @@ } }, "node_modules/@biomejs/cli-win32-arm64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz", - "integrity": "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==", + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.5.14.tgz", + "integrity": "sha512-pHgAFffmZtaYoxavEsWEYNvcA7NwOIjLyqw2HXyLbt16xYryX0L4fMV2u0G9ag6LNYPIoqWaWqzUcnc6rLGGXg==", "cpu": [ "arm64" ], @@ -232,9 +231,9 @@ } }, "node_modules/@biomejs/cli-win32-x64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz", - "integrity": "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==", + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.5.14.tgz", + "integrity": "sha512-oJWmBhoHsnhUKIke+0gXDX0mltJrWHA1UyHsrTlXwX0TL64ilVZAo+TYZm97baecV0esBdpzy3k96q+09JaZUQ==", "cpu": [ "x64" ], diff --git a/package.json b/package.json index b29f4c78..644a8ce7 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "devDependencies": { "@arethetypeswrong/cli": "^0.18.5", - "@biomejs/biome": "^1.9.4", + "@biomejs/biome": "^2.5.14", "@bufbuild/buf": "^1.72.0", "@bufbuild/license-header": "^0.0.4", "@bufbuild/protoc-gen-es": "^2.14.0", diff --git a/packages/cel-spec/biome.json b/packages/cel-spec/biome.json index e623da1c..517794aa 100644 --- a/packages/cel-spec/biome.json +++ b/packages/cel-spec/biome.json @@ -1,8 +1,9 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "root": true, + "$schema": "https://biomejs.dev/schemas/2.5.14/schema.json", "extends": ["../../biome.base.json"], "files": { - "ignore": ["dist"], + "includes": ["!**/dist", "!**/src/gen"], "maxSize": 2000000 }, "linter": { diff --git a/packages/cel-spec/package.json b/packages/cel-spec/package.json index 31bda7f7..19d76722 100644 --- a/packages/cel-spec/package.json +++ b/packages/cel-spec/package.json @@ -124,20 +124,42 @@ }, "typesVersions": { "*": { - "testdata/checking.js": ["./dist/cjs/testdata/checking.d.ts"], - "testdata/comprehension.js": ["./dist/cjs/testdata/comprehension.d.ts"], - "testdata/conformance.js": ["./dist/cjs/testdata/conformance.d.ts"], - "testdata/parsing.js": ["./dist/cjs/testdata/parsing.d.ts"], - "testdata/registry.js": ["./dist/cjs/testdata/registry.d.ts"], - "testdata/tests.js": ["./dist/cjs/testdata/tests.d.ts"], + "testdata/checking.js": [ + "./dist/cjs/testdata/checking.d.ts" + ], + "testdata/comprehension.js": [ + "./dist/cjs/testdata/comprehension.d.ts" + ], + "testdata/conformance.js": [ + "./dist/cjs/testdata/conformance.d.ts" + ], + "testdata/parsing.js": [ + "./dist/cjs/testdata/parsing.d.ts" + ], + "testdata/registry.js": [ + "./dist/cjs/testdata/registry.d.ts" + ], + "testdata/tests.js": [ + "./dist/cjs/testdata/tests.d.ts" + ], "testdata/to-debug-string.js": [ "./dist/cjs/testdata/to-debug-string.d.ts" ], - "cel/expr/checked_pb.js": ["./dist/cjs/gen/cel/expr/checked_pb.d.ts"], - "cel/expr/eval_pb.js": ["./dist/cjs/gen/cel/expr/eval_pb.d.ts"], - "cel/expr/explain_pb.js": ["./dist/cjs/gen/cel/expr/explain_pb.d.ts"], - "cel/expr/syntax_pb.js": ["./dist/cjs/gen/cel/expr/syntax_pb.d.ts"], - "cel/expr/value_pb.js": ["./dist/cjs/gen/cel/expr/value_pb.d.ts"], + "cel/expr/checked_pb.js": [ + "./dist/cjs/gen/cel/expr/checked_pb.d.ts" + ], + "cel/expr/eval_pb.js": [ + "./dist/cjs/gen/cel/expr/eval_pb.d.ts" + ], + "cel/expr/explain_pb.js": [ + "./dist/cjs/gen/cel/expr/explain_pb.d.ts" + ], + "cel/expr/syntax_pb.js": [ + "./dist/cjs/gen/cel/expr/syntax_pb.d.ts" + ], + "cel/expr/value_pb.js": [ + "./dist/cjs/gen/cel/expr/value_pb.d.ts" + ], "cel/expr/conformance/conformance_service_pb.js": [ "./dist/cjs/gen/cel/expr/conformance/conformance_service_pb.d.ts" ], diff --git a/packages/cel-spec/src/testdata/to-debug-string.ts b/packages/cel-spec/src/testdata/to-debug-string.ts index 00bcb566..5e91810c 100644 --- a/packages/cel-spec/src/testdata/to-debug-string.ts +++ b/packages/cel-spec/src/testdata/to-debug-string.ts @@ -36,8 +36,6 @@ const decoder = new TextDecoder(); // These expressions MUST capture a single character (a string `S` where `S.length == 1`) // @ts-expect-error - The regex flag `v` is only available in ES2024 or later const UNPRINTABLE_EXP: CharRegExp = /[^\p{L}\p{N}\p{S}\p{P}\p{Cs} ]/v; -// @ts-expect-error - The regex flag `v` is only available in ES2024 or later -const UNPRINTABLE_EXP_GLOBAL: CharRegExp = /[^\p{L}\p{N}\p{S}\p{P}\p{Cs} ]/gv; const SPECIAL_ESCAPES: Map = new Map([ [0x07, "\\a"], @@ -567,7 +565,7 @@ export class SemanticAdorner implements Adorner { } export function formatCELType(t: Type | undefined): string { - if (!t || !t.typeKind.case) { + if (!t?.typeKind.case) { return "dyn"; } @@ -610,7 +608,7 @@ export function formatCELType(t: Type | undefined): string { return "dyn"; } case "type": - if (!t.typeKind.value || !t.typeKind.value.typeKind.case) { + if (!t.typeKind.value?.typeKind.case) { return "type"; } return `type(${formatCELType(t.typeKind.value)})`; diff --git a/packages/cel/biome.json b/packages/cel/biome.json index 4ce16bda..78815488 100644 --- a/packages/cel/biome.json +++ b/packages/cel/biome.json @@ -1,8 +1,12 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "root": true, + "$schema": "https://biomejs.dev/schemas/2.5.14/schema.json", "extends": ["../../biome.base.json"], + "files": { + "includes": ["!**/dist", "!**/src/gen"] + }, "formatter": { - "ignore": ["dist", "src/gen"] + "includes": ["**", "!**/dist/**", "!**/src/gen/**"] }, "linter": { "rules": { diff --git a/packages/cel/package.json b/packages/cel/package.json index 18f0c142..6de7686c 100644 --- a/packages/cel/package.json +++ b/packages/cel/package.json @@ -44,7 +44,9 @@ }, "typesVersions": { "*": { - "ext": ["./dist/cjs/ext/index.d.ts"] + "ext": [ + "./dist/cjs/ext/index.d.ts" + ] } }, "peerDependencies": { diff --git a/packages/cel/src/map.ts b/packages/cel/src/map.ts index 7984aff6..fa01d957 100644 --- a/packages/cel/src/map.ts +++ b/packages/cel/src/map.ts @@ -134,9 +134,9 @@ class NativeMap implements CelMap { // biome-ignore lint/suspicious/noExplicitAny: Part of the Map interface. thisArg?: any, ): void { - this._map.forEach((value, key, _) => - callback.call(thisArg, toCel(value), key, this), - ); + this._map.forEach((value, key, _) => { + callback.call(thisArg, toCel(value), key, this); + }); } *entries(): MapIterator<[string | bigint | boolean | CelUint, CelValue]> { @@ -188,14 +188,14 @@ class ProtoMap implements CelMap { // biome-ignore lint/suspicious/noExplicitAny: Part of the Map interface. thisArg?: any, ): void { - this._map.forEach((value, key, _) => + this._map.forEach((value, key, _) => { callback.call( thisArg, celFromMapValue(this._map.field(), value), celFromMapKey(this._map.field(), key), this, - ), - ); + ); + }); } *entries(): MapIterator<[string | bigint | boolean | CelUint, CelValue]> { diff --git a/packages/example/biome.json b/packages/example/biome.json index 6ae55468..26740736 100644 --- a/packages/example/biome.json +++ b/packages/example/biome.json @@ -1,4 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "root": true, + "$schema": "https://biomejs.dev/schemas/2.5.14/schema.json", "extends": ["../../biome.base.json"] } diff --git a/packages/re2/biome.json b/packages/re2/biome.json index 4ce16bda..78815488 100644 --- a/packages/re2/biome.json +++ b/packages/re2/biome.json @@ -1,8 +1,12 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "root": true, + "$schema": "https://biomejs.dev/schemas/2.5.14/schema.json", "extends": ["../../biome.base.json"], + "files": { + "includes": ["!**/dist", "!**/src/gen"] + }, "formatter": { - "ignore": ["dist", "src/gen"] + "includes": ["**", "!**/dist/**", "!**/src/gen/**"] }, "linter": { "rules": { diff --git a/packages/re2/scripts/genUnicodeTable.js b/packages/re2/scripts/genUnicodeTable.js index a4aa9c8a..de0c9fac 100644 --- a/packages/re2/scripts/genUnicodeTable.js +++ b/packages/re2/scripts/genUnicodeTable.js @@ -395,10 +395,13 @@ const code = [ " }", ' let kind: "category" | "script" | null = null', " let pattern: string | null = null", + // biome-ignore lint/suspicious/noTemplateCurlyInString: These strings emit template literals. ' if (STABLE_CATEGORY_NAMES.has(name)) { kind = "category"; pattern = `\\\\p{General_Category=${name}}` }', + // biome-ignore lint/suspicious/noTemplateCurlyInString: These strings emit template literals. ' else if (STABLE_SCRIPT_NAMES.has(name)) { kind = "script"; pattern = `\\\\p{Script=${name}}` }', " else return null", "", + // biome-ignore lint/suspicious/noTemplateCurlyInString: This string emits a template literal. " const cacheKey = `${kind}:${name}`", " const cached = _sweepCache.get(cacheKey)", " if (cached) return cached", diff --git a/packages/re2/src/Exec.test.ts b/packages/re2/src/Exec.test.ts index ce8fcc60..11ff3f83 100644 --- a/packages/re2/src/Exec.test.ts +++ b/packages/re2/src/Exec.test.ts @@ -13,6 +13,7 @@ import { codePoint, codePointAtOrThrow } from "./chars.js"; // Tests run only via tsx in ESM mode; the CJS-compiled output is never // executed, so suppress the CJS-only complaint about import.meta. +// biome-ignore lint/suspicious/noTsIgnore: TS1343 is emitted only by the CJS build. // @ts-ignore -- TS1343 under --module commonjs; valid under Node16/ESM. const IMPORT_META_URL: string = import.meta.url; @@ -58,8 +59,8 @@ const parseResult = (lineno: number, res: string): number[] | null => { let lo = -1; let hi = -2; try { - lo = parseInt(pair.substring(0, k)); - hi = parseInt(pair.substring(k + 1)); + lo = parseInt(pair.substring(0, k), 10); + hi = parseInt(pair.substring(k + 1), 10); } catch (_e) { /* fall through */ } @@ -260,7 +261,7 @@ const parseFowlerResult = (s: string): [number[], boolean[]] => { } const num = s.substring(0, i); if (num !== "?") { - result.push(parseInt(num)); + result.push(parseInt(num, 10)); } else { result.push(-1); }