diff --git a/.oxlintrc.json b/.oxlintrc.json deleted file mode 100644 index e52922ecd5..0000000000 --- a/.oxlintrc.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "$schema": "./node_modules/oxlint/configuration_schema.json", - "plugins": ["eslint", "typescript", "import", "unicorn", "oxc"], - "categories": { - "correctness": "warn", - "suspicious": "warn" - }, - "rules": { - "typescript/restrict-template-expressions": "off", - "typescript/no-unsafe-type-assertion": "off", - "typescript/no-explicit-any": "error", - "typescript/no-non-null-assertion": "error", - "eslint-plugin-unicorn/prefer-add-event-listener": "off", - "eslint-plugin-import/no-named-as-default": "off", - "eslint-plugin-import/no-named-as-default-member": "off", - "eslint-plugin-import/extensions": [ - "error", - "always", - { "ignorePackages": true } - ] - }, - "ignorePatterns": ["**/*.astro", "**/*.mjs"], - "overrides": [ - { - "files": ["**/*.test.ts", "**/tests/**"], - "rules": { - "typescript/unbound-method": "off", - "typescript/no-non-null-assertion": "off", - "eslint/no-unused-vars": "off", - "eslint/no-unused-expressions": "off", - "eslint-plugin-unicorn/consistent-function-scoping": "off", - "eslint/no-unsafe-optional-chaining": "off", - "eslint/no-constant-condition": "off" - } - } - ], - "settings": { - "jsx-a11y": { - "polymorphicPropName": null, - "components": {}, - "attributes": {} - }, - "next": { - "rootDir": [] - }, - "react": { - "formComponents": [], - "linkComponents": [], - "version": null, - "componentWrapperFunctions": [] - }, - "jsdoc": { - "ignorePrivate": false, - "ignoreInternal": false, - "ignoreReplacesDocs": true, - "overrideReplacesDocs": true, - "augmentsExtendsReplacesDocs": false, - "implementsReplacesDocs": false, - "exemptDestructuredRootsFromChecks": false, - "tagNamePreference": {} - }, - "vitest": { - "typecheck": false - } - }, - "env": { - "builtin": true - }, - "globals": {} -} diff --git a/apps/typegpu-docs/src/examples/algorithms/concurrent-chart/index.ts b/apps/typegpu-docs/src/examples/algorithms/concurrent-chart/index.ts index a6c772abd5..e2624f2036 100644 --- a/apps/typegpu-docs/src/examples/algorithms/concurrent-chart/index.ts +++ b/apps/typegpu-docs/src/examples/algorithms/concurrent-chart/index.ts @@ -72,7 +72,7 @@ async function runBenchmarks() { drawCharts(); } -runBenchmarks(); +void runBenchmarks(); // #region Example controls & Cleanup diff --git a/apps/typegpu-docs/src/examples/common/setup-first-person-camera.ts b/apps/typegpu-docs/src/examples/common/setup-first-person-camera.ts index b6e6d331f7..37c4f2aaa1 100644 --- a/apps/typegpu-docs/src/examples/common/setup-first-person-camera.ts +++ b/apps/typegpu-docs/src/examples/common/setup-first-person-camera.ts @@ -106,7 +106,7 @@ export function setupFirstPersonCamera( // mouse events canvas.addEventListener('mousedown', () => { - canvas.requestPointerLock(); + void canvas.requestPointerLock(); }); canvas.addEventListener('mousemove', (event: MouseEvent) => { diff --git a/apps/typegpu-docs/src/examples/tests/prefix-scan/functions.ts b/apps/typegpu-docs/src/examples/tests/prefix-scan/functions.ts index 7ef8cbfcc4..abf698bb49 100644 --- a/apps/typegpu-docs/src/examples/tests/prefix-scan/functions.ts +++ b/apps/typegpu-docs/src/examples/tests/prefix-scan/functions.ts @@ -37,7 +37,7 @@ function applyOp( a: number | undefined, b: number | undefined, ): number { - return op.operation(a as number & d.F32, b as number & d.F32) as number; + return op.operation(a as number & d.F32, b as number & d.F32); } export function prefixScanJS(arr: number[], op: BinaryOp) { diff --git a/apps/typegpu-docs/src/examples/tests/prefix-scan/index.ts b/apps/typegpu-docs/src/examples/tests/prefix-scan/index.ts index 88baaa5e18..0a662f3348 100644 --- a/apps/typegpu-docs/src/examples/tests/prefix-scan/index.ts +++ b/apps/typegpu-docs/src/examples/tests/prefix-scan/index.ts @@ -263,7 +263,7 @@ const table = document.querySelector('.result'); if (!table) { throw new Error('Nowhere to display the results'); } -runTests().then((result) => { +void runTests().then((result) => { table.innerText = `Tests ${result ? 'succeeded' : 'failed'}.`; }); diff --git a/apps/typegpu-docs/src/examples/threejs/varyings/index.ts b/apps/typegpu-docs/src/examples/threejs/varyings/index.ts index 68adc98939..d680ceb451 100644 --- a/apps/typegpu-docs/src/examples/threejs/varyings/index.ts +++ b/apps/typegpu-docs/src/examples/threejs/varyings/index.ts @@ -82,7 +82,7 @@ dirLight.position.set(-7, 10, 0); scene.add(dirLight); scene.add(new THREE.AmbientLight(0x444444)); -renderer.setAnimationLoop(() => { +void renderer.setAnimationLoop(() => { renderer.render(scene, camera); }); diff --git a/oxlint.config.ts b/oxlint.config.ts new file mode 100644 index 0000000000..160ee6ddca --- /dev/null +++ b/oxlint.config.ts @@ -0,0 +1,51 @@ +import { defineConfig } from 'oxlint'; +import typegpu from 'eslint-plugin-typegpu'; + +const typegpuPreset = typegpu.configs?.recommended; +const typegpuRules = typegpuPreset && 'rules' in typegpuPreset + ? typegpuPreset.rules + : {}; + +export default defineConfig({ + plugins: ['eslint', 'typescript', 'import', 'unicorn', 'oxc'], + jsPlugins: ['eslint-plugin-typegpu'], + categories: { + correctness: 'warn', + suspicious: 'warn', + }, + rules: { + ...typegpuRules, + 'typescript/no-unsafe-enum-comparison': 'off', + 'typescript/restrict-template-expressions': 'off', + 'typescript/no-unsafe-type-assertion': 'off', + 'typescript/no-explicit-any': 'error', + 'typescript/no-non-null-assertion': 'error', + 'eslint/no-shadow': 'off', + 'eslint-plugin-unicorn/prefer-add-event-listener': 'off', + 'eslint-plugin-import/no-named-as-default': 'off', + 'eslint-plugin-import/no-named-as-default-member': 'off', + 'eslint-plugin-import/extensions': [ + 'error', + 'always', + { ignorePackages: true }, + ], + }, + ignorePatterns: ['**/*.astro', '**/*.mjs'], + overrides: [ + { + files: ['**/*.test.ts', '**/tests/**'], + rules: { + 'typescript/unbound-method': 'off', + 'typescript/no-non-null-assertion': 'off', + 'eslint/no-unused-vars': 'off', + 'eslint/no-unused-expressions': 'off', + 'eslint-plugin-unicorn/consistent-function-scoping': 'off', + 'eslint/no-unsafe-optional-chaining': 'off', + 'eslint/no-constant-condition': 'off', + }, + }, + ], + env: { + builtin: true, + }, +}); diff --git a/package.json b/package.json index 4f6d9ad641..a6743d6176 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "test": "pnpm run test:types && pnpm run test:style && pnpm run test:unit-and-attest && pnpm run test:circular-deps", "test:circular-deps": "pnpm dpdm -T --exit-code circular:1 packages/**/index.ts", "test:types": "pnpm run -r --parallel test:types", - "test:style": "oxlint --type-aware && deno fmt --check", + "test:style": "oxlint --max-warnings=0 --type-aware && deno fmt --check", "test:unit-and-attest": "vitest run --project=!browser", "test:unit": "ATTEST_skipTypes=1 vitest run --project=!browser", "test:unit:watch": "ATTEST_skipTypes=1 vitest --project=!browser", @@ -43,8 +43,9 @@ "@vitest/coverage-v8": "3.1.2", "@webgpu/types": "catalog:types", "dpdm": "^3.14.0", + "eslint-plugin-typegpu": "workspace:*", "jiti": "catalog:build", - "oxlint": "^1.43.0", + "oxlint": "^1.49.0", "oxlint-tsgolint": "^0.12.1", "pkg-pr-new": "^0.0.62", "typescript": "catalog:types", diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 5a111ecd85..f68ec84afb 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -5,12 +5,20 @@ "type": "module", "exports": { ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js" + "types": "./src/index.ts", + "import": "./src/index.ts" + } + }, + "publishConfig": { + "exports": { + ".": { + "types": "./dist/index.d.mts", + "import": "./dist/index.mjs" + } } }, "scripts": { - "build": "tsup", + "build": "tsdown", "test:types": "pnpm tsc --p ./tsconfig.json --noEmit", "test": "vitest" }, @@ -27,6 +35,7 @@ "@types/node": "^25.0.10", "@typescript-eslint/rule-tester": "^8.53.1", "eslint": "^9.39.2", + "tsdown": "^0.20.3", "typescript": "^5.9.3", "vitest": "^4.0.17" } diff --git a/packages/eslint-plugin/src/index.ts b/packages/eslint-plugin/src/index.ts index 7a3dfcf2bb..08763811d3 100644 --- a/packages/eslint-plugin/src/index.ts +++ b/packages/eslint-plugin/src/index.ts @@ -1,4 +1,4 @@ -import pkg from '../package.json'; +import pkg from '../package.json' with { type: 'json' }; import type { TSESLint } from '@typescript-eslint/utils'; import { allRules, recommendedRules, rules } from './configs.ts'; diff --git a/packages/eslint-plugin/tsdown.config.ts b/packages/eslint-plugin/tsdown.config.ts new file mode 100644 index 0000000000..3ec1155cc3 --- /dev/null +++ b/packages/eslint-plugin/tsdown.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + entry: ['src/index.ts'], + format: ['esm'], + dts: true, + clean: true, + sourcemap: true, +}); diff --git a/packages/eslint-plugin/tsup.config.ts b/packages/eslint-plugin/tsup.config.ts deleted file mode 100644 index e06072d65f..0000000000 --- a/packages/eslint-plugin/tsup.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig, type Options } from 'tsup'; - -const config: Options = { - entry: ['src/index.ts'], - format: ['esm'], - dts: true, - clean: true, - splitting: true, - sourcemap: true, -}; - -export default defineConfig(config); diff --git a/packages/typegpu/src/data/wgslTypes.ts b/packages/typegpu/src/data/wgslTypes.ts index b37a0d9d48..3914039367 100644 --- a/packages/typegpu/src/data/wgslTypes.ts +++ b/packages/typegpu/src/data/wgslTypes.ts @@ -1,3 +1,4 @@ +// oxlint-disable-next-line no-unused-vars it is used import type { Operator } from 'tsover-runtime'; import type { TgpuNamable } from '../shared/meta.ts'; import type { diff --git a/packages/typegpu/tests/offsetUtils.test.ts b/packages/typegpu/tests/offsetUtils.test.ts index baf87d7274..d12d3a9edf 100644 --- a/packages/typegpu/tests/offsetUtils.test.ts +++ b/packages/typegpu/tests/offsetUtils.test.ts @@ -33,7 +33,7 @@ describe('getOffsetInfoAt (vectors)', () => { }); it('supports numeric component access', () => { - const info = getOffsetInfoAt(d.vec3f, (v) => v[1] as number); + const info = getOffsetInfoAt(d.vec3f, (v) => v[1]); expect(info.offset).toBe(4); expect(info.contiguous).toBe(8); @@ -172,7 +172,7 @@ describe('getOffsetInfoAt (edge cases)', () => { const info = getOffsetInfoAt( S, - (s) => s.l.vec.z as number, + (s) => s.l.vec.z, ); expect(info.offset).toBe(8); diff --git a/packages/typegpu/tests/std/numeric/div.test.ts b/packages/typegpu/tests/std/numeric/div.test.ts index 993efee171..94f5ba7921 100644 --- a/packages/typegpu/tests/std/numeric/div.test.ts +++ b/packages/typegpu/tests/std/numeric/div.test.ts @@ -83,6 +83,7 @@ describe('div', () => { }); it('const u32 / const u32', () => { + // oxlint-disable-next-line typegpu/integer-division it's a test const foo = tgpu.fn([], d.f32)(() => d.u32(1) / d.u32(2)); expect(foo()).toBe(0.5); expect(tgpu.resolve([foo])).toMatchInlineSnapshot(` @@ -93,6 +94,7 @@ describe('div', () => { }); it('const i32 / const i32', () => { + // oxlint-disable-next-line typegpu/integer-division it's a test const foo = tgpu.fn([], d.f32)(() => d.i32(1) / d.i32(2)); expect(foo()).toBe(0.5); expect(tgpu.resolve([foo])).toMatchInlineSnapshot(` @@ -133,6 +135,7 @@ describe('div', () => { }); it('const f32 / const i32', () => { + // oxlint-disable-next-line typegpu/integer-division it's a test const foo = tgpu.fn([], d.f32)(() => d.f32(1.0) / d.i32(2.0)); expect(foo()).toBe(0.5); expect(tgpu.resolve([foo])).toMatchInlineSnapshot(` @@ -143,6 +146,7 @@ describe('div', () => { }); it('const u32 / const i32', () => { + // oxlint-disable-next-line typegpu/integer-division it's a test const foo = tgpu.fn([], d.f32)(() => d.u32(1) / d.i32(2)); expect(foo()).toBe(0.5); expect(tgpu.resolve([foo])).toMatchInlineSnapshot(` diff --git a/packages/unplugin-typegpu/src/babel.ts b/packages/unplugin-typegpu/src/babel.ts index 9a72f056ce..c00aa7e040 100644 --- a/packages/unplugin-typegpu/src/babel.ts +++ b/packages/unplugin-typegpu/src/babel.ts @@ -161,7 +161,7 @@ function functionVisitor(ctx: Context): TraverseOptions { path.node.left, types.callExpression(types.identifier(runtimeFn), [ path.node.left as babel.Expression, - path.node.right as babel.Expression, + path.node.right, ]), ), ); @@ -202,7 +202,7 @@ function functionVisitor(ctx: Context): TraverseOptions { path.replaceWith( types.callExpression(types.identifier(runtimeFn), [ path.node.left as babel.Expression, - path.node.right as babel.Expression, + path.node.right, ]), ); } @@ -306,7 +306,7 @@ function functionVisitor(ctx: Context): TraverseOptions { const transpiled = functionToTranspiled( implementation, null, - ) as babel.CallExpression; + ); path.replaceWith( types.callExpression(node.callee, [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f4f4638a6f..ae169c0a43 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,12 +66,15 @@ importers: dpdm: specifier: ^3.14.0 version: 3.14.0 + eslint-plugin-typegpu: + specifier: workspace:* + version: link:packages/eslint-plugin jiti: specifier: catalog:build version: 2.6.1 oxlint: - specifier: ^1.43.0 - version: 1.43.0(oxlint-tsgolint@0.12.1) + specifier: ^1.49.0 + version: 1.49.0(oxlint-tsgolint@0.12.1) oxlint-tsgolint: specifier: ^0.12.1 version: 0.12.1 @@ -385,6 +388,9 @@ importers: eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) + tsdown: + specifier: ^0.20.3 + version: 0.20.3(tsover@5.9.11) typescript: specifier: npm:tsover@^5.9.11 version: tsover@5.9.11 @@ -2087,43 +2093,117 @@ packages: cpu: [x64] os: [win32] - '@oxlint/darwin-arm64@1.43.0': - resolution: {integrity: sha512-C/GhObv/pQZg34NOzB6Mk8x0wc9AKj8fXzJF8ZRKTsBPyHusC6AZ6bba0QG0TUufw1KWuD0j++oebQfWeiFXNw==} + '@oxlint/binding-android-arm-eabi@1.49.0': + resolution: {integrity: sha512-2WPoh/2oK9r/i2R4o4J18AOrm3HVlWiHZ8TnuCaS4dX8m5ZzRmHW0I3eLxEurQLHWVruhQN7fHgZnah+ag5iQg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxlint/binding-android-arm64@1.49.0': + resolution: {integrity: sha512-YqJAGvNB11EzoKm1euVhZntb79alhMvWW/j12bYqdvVxn6xzEQWrEDCJg9BPo3A3tBCSUBKH7bVkAiCBqK/L1w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxlint/binding-darwin-arm64@1.49.0': + resolution: {integrity: sha512-WFocCRlvVkMhChCJ2qpJfp1Gj/IjvyjuifH9Pex8m8yHonxxQa3d8DZYreuDQU3T4jvSY8rqhoRqnpc61Nlbxw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/darwin-x64@1.43.0': - resolution: {integrity: sha512-4NjfUtEEH8ewRQ2KlZGmm6DyrvypMdHwBnQT92vD0dLScNOQzr0V9O8Ua4IWXdeCNl/XMVhAV3h4/3YEYern5A==} + '@oxlint/binding-darwin-x64@1.49.0': + resolution: {integrity: sha512-BN0KniwvehbUfYztOMwEDkYoojGm/narf5oJf+/ap+6PnzMeWLezMaVARNIS0j3OdMkjHTEP8s3+GdPJ7WDywQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/linux-arm64-gnu@1.43.0': - resolution: {integrity: sha512-75tf1HvwdZ3ebk83yMbSB+moAEWK98mYqpXiaFAi6Zshie7r+Cx5PLXZFUEqkscenoZ+fcNXakHxfn94V6nf1g==} + '@oxlint/binding-freebsd-x64@1.49.0': + resolution: {integrity: sha512-SnkAc/DPIY6joMCiP/+53Q+N2UOGMU6ULvbztpmvPJNF/jYPGhNbKtN982uj2Gs6fpbxYkmyj08QnpkD4fbHJA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.49.0': + resolution: {integrity: sha512-6Z3EzRvpQVIpO7uFhdiGhdE8Mh3S2VWKLL9xuxVqD6fzPhyI3ugthpYXlCChXzO8FzcYIZ3t1+Kau+h2NY1hqA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.49.0': + resolution: {integrity: sha512-wdjXaQYAL/L25732mLlngfst4Jdmi/HLPVHb3yfCoP5mE3lO/pFFrmOJpqWodgv29suWY74Ij+RmJ/YIG5VuzQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.49.0': + resolution: {integrity: sha512-oSHpm8zmSvAG1BWUumbDRSg7moJbnwoEXKAkwDf/xTQJOzvbUknq95NVQdw/AduZr5dePftalB8rzJNGBogUMg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxlint/linux-arm64-musl@1.43.0': - resolution: {integrity: sha512-BHV4fb36T2p/7bpA9fiJ5ayt7oJbiYX10nklW5arYp4l9/9yG/FQC5J4G1evzbJ/YbipF9UH0vYBAm5xbqGrvw==} + '@oxlint/binding-linux-arm64-musl@1.49.0': + resolution: {integrity: sha512-xeqkMOARgGBlEg9BQuPDf6ZW711X6BT5qjDyeM5XNowCJeTSdmMhpePJjTEiVbbr3t21sIlK8RE6X5bc04nWyQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxlint/linux-x64-gnu@1.43.0': - resolution: {integrity: sha512-1l3nvnzWWse1YHibzZ4HQXdF/ibfbKZhp9IguElni3bBqEyPEyurzZ0ikWynDxKGXqZa+UNXTFuU1NRVX1RJ3g==} + '@oxlint/binding-linux-ppc64-gnu@1.49.0': + resolution: {integrity: sha512-uvcqRO6PnlJGbL7TeePhTK5+7/JXbxGbN+C6FVmfICDeeRomgQqrfVjf0lUrVpUU8ii8TSkIbNdft3M+oNlOsQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxlint/binding-linux-riscv64-gnu@1.49.0': + resolution: {integrity: sha512-Dw1HkdXAwHNH+ZDserHP2RzXQmhHtpsYYI0hf8fuGAVCIVwvS6w1+InLxpPMY25P8ASRNiFN3hADtoh6lI+4lg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxlint/binding-linux-riscv64-musl@1.49.0': + resolution: {integrity: sha512-EPlMYaA05tJ9km/0dI9K57iuMq3Tw+nHst7TNIegAJZrBPtsOtYaMFZEaWj02HA8FI5QvSnRHMt+CI+RIhXJBQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxlint/binding-linux-s390x-gnu@1.49.0': + resolution: {integrity: sha512-yZiQL9qEwse34aMbnMb5VqiAWfDY+fLFuoJbHOuzB1OaJZbN1MRF9Nk+W89PIpGr5DNPDipwjZb8+Q7wOywoUQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@oxlint/binding-linux-x64-gnu@1.49.0': + resolution: {integrity: sha512-CcCDwMMXSchNkhdgvhVn3DLZ4EnBXAD8o8+gRzahg+IdSt/72y19xBgShJgadIRF0TsRcV/MhDUMwL5N/W54aQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxlint/linux-x64-musl@1.43.0': - resolution: {integrity: sha512-+jNYgLGRFTJxJuaSOZJBwlYo5M0TWRw0+3y5MHOL4ArrIdHyCthg6r4RbVWrsR1qUfUE1VSSHQ2bfbC99RXqMg==} + '@oxlint/binding-linux-x64-musl@1.49.0': + resolution: {integrity: sha512-u3HfKV8BV6t6UCCbN0RRiyqcymhrnpunVmLFI8sEa5S/EBu+p/0bJ3D7LZ2KT6PsBbrB71SWq4DeFrskOVgIZg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxlint/win32-arm64@1.43.0': - resolution: {integrity: sha512-dvs1C/HCjCyGTURMagiHprsOvVTT3omDiSzi5Qw0D4QFJ1pEaNlfBhVnOUYgUfS6O7Mcmj4+G+sidRsQcWQ/kA==} + '@oxlint/binding-openharmony-arm64@1.49.0': + resolution: {integrity: sha512-dRDpH9fw+oeUMpM4br0taYCFpW6jQtOuEIec89rOgDA1YhqwmeRcx0XYeCv7U48p57qJ1XZHeMGM9LdItIjfzA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.49.0': + resolution: {integrity: sha512-6rrKe/wL9tn0qnOy76i1/0f4Dc3dtQnibGlU4HqR/brVHlVjzLSoaH0gAFnLnznh9yQ6gcFTBFOPrcN/eKPDGA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/win32-x64@1.43.0': - resolution: {integrity: sha512-bSuItSU8mTSDsvmmLTepTdCL2FkJI6dwt9tot/k0EmiYF+ArRzmsl4lXVLssJNRV5lJEc5IViyTrh7oiwrjUqA==} + '@oxlint/binding-win32-ia32-msvc@1.49.0': + resolution: {integrity: sha512-CXHLWAtLs2xG/aVy1OZiYJzrULlq0QkYpI6cd7VKMrab+qur4fXVE/B1Bp1m0h1qKTj5/FTGg6oU4qaXMjS/ug==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.49.0': + resolution: {integrity: sha512-VteIelt78kwzSglOozaQcs6BCS4Lk0j+QA+hGV0W8UeyaqQ3XpbZRhDU55NW1PPvCy1tg4VXsTlEaPovqto7nQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -5721,12 +5801,12 @@ packages: resolution: {integrity: sha512-2Od1S2pA+VkfIlmvHmDwMfhfHyL0jR6JAkP4BkoAidUqYJS1cY2JoLd4uMWcG4mhCQrPYIcEz56VrQ9qUVcoXw==} hasBin: true - oxlint@1.43.0: - resolution: {integrity: sha512-xiqTCsKZch+R61DPCjyqUVP2MhkQlRRYxLRBeBDi+dtQJ90MOgdcjIktvDCgXz0bgtx94EQzHEndsizZjMX2OA==} + oxlint@1.49.0: + resolution: {integrity: sha512-YZffp0gM+63CJoRhHjtjRnwKtAgUnXM6j63YQ++aigji2NVvLGsUlrXo9gJUXZOdcbfShLYtA6RuTu8GZ4lzOQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - oxlint-tsgolint: '>=0.11.2' + oxlint-tsgolint: '>=0.14.1' peerDependenciesMeta: oxlint-tsgolint: optional: true @@ -6477,6 +6557,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -9172,28 +9257,61 @@ snapshots: '@oxlint-tsgolint/win32-x64@0.12.1': optional: true - '@oxlint/darwin-arm64@1.43.0': + '@oxlint/binding-android-arm-eabi@1.49.0': optional: true - '@oxlint/darwin-x64@1.43.0': + '@oxlint/binding-android-arm64@1.49.0': optional: true - '@oxlint/linux-arm64-gnu@1.43.0': + '@oxlint/binding-darwin-arm64@1.49.0': optional: true - '@oxlint/linux-arm64-musl@1.43.0': + '@oxlint/binding-darwin-x64@1.49.0': optional: true - '@oxlint/linux-x64-gnu@1.43.0': + '@oxlint/binding-freebsd-x64@1.49.0': optional: true - '@oxlint/linux-x64-musl@1.43.0': + '@oxlint/binding-linux-arm-gnueabihf@1.49.0': optional: true - '@oxlint/win32-arm64@1.43.0': + '@oxlint/binding-linux-arm-musleabihf@1.49.0': optional: true - '@oxlint/win32-x64@1.43.0': + '@oxlint/binding-linux-arm64-gnu@1.49.0': + optional: true + + '@oxlint/binding-linux-arm64-musl@1.49.0': + optional: true + + '@oxlint/binding-linux-ppc64-gnu@1.49.0': + optional: true + + '@oxlint/binding-linux-riscv64-gnu@1.49.0': + optional: true + + '@oxlint/binding-linux-riscv64-musl@1.49.0': + optional: true + + '@oxlint/binding-linux-s390x-gnu@1.49.0': + optional: true + + '@oxlint/binding-linux-x64-gnu@1.49.0': + optional: true + + '@oxlint/binding-linux-x64-musl@1.49.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.49.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.49.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.49.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.49.0': optional: true '@pagefind/darwin-arm64@1.3.0': @@ -13153,7 +13271,7 @@ snapshots: pkg-types: 1.3.1 postcss: 8.5.6 postcss-nested: 7.0.2(postcss@8.5.6) - semver: 7.7.3 + semver: 7.7.4 tinyglobby: 0.2.15 optionalDependencies: typescript: tsover@5.9.11 @@ -13266,7 +13384,7 @@ snapshots: node-abi@3.87.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 optional: true node-addon-api@7.1.1: @@ -13365,16 +13483,27 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 0.12.1 '@oxlint-tsgolint/win32-x64': 0.12.1 - oxlint@1.43.0(oxlint-tsgolint@0.12.1): + oxlint@1.49.0(oxlint-tsgolint@0.12.1): optionalDependencies: - '@oxlint/darwin-arm64': 1.43.0 - '@oxlint/darwin-x64': 1.43.0 - '@oxlint/linux-arm64-gnu': 1.43.0 - '@oxlint/linux-arm64-musl': 1.43.0 - '@oxlint/linux-x64-gnu': 1.43.0 - '@oxlint/linux-x64-musl': 1.43.0 - '@oxlint/win32-arm64': 1.43.0 - '@oxlint/win32-x64': 1.43.0 + '@oxlint/binding-android-arm-eabi': 1.49.0 + '@oxlint/binding-android-arm64': 1.49.0 + '@oxlint/binding-darwin-arm64': 1.49.0 + '@oxlint/binding-darwin-x64': 1.49.0 + '@oxlint/binding-freebsd-x64': 1.49.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.49.0 + '@oxlint/binding-linux-arm-musleabihf': 1.49.0 + '@oxlint/binding-linux-arm64-gnu': 1.49.0 + '@oxlint/binding-linux-arm64-musl': 1.49.0 + '@oxlint/binding-linux-ppc64-gnu': 1.49.0 + '@oxlint/binding-linux-riscv64-gnu': 1.49.0 + '@oxlint/binding-linux-riscv64-musl': 1.49.0 + '@oxlint/binding-linux-s390x-gnu': 1.49.0 + '@oxlint/binding-linux-x64-gnu': 1.49.0 + '@oxlint/binding-linux-x64-musl': 1.49.0 + '@oxlint/binding-openharmony-arm64': 1.49.0 + '@oxlint/binding-win32-arm64-msvc': 1.49.0 + '@oxlint/binding-win32-ia32-msvc': 1.49.0 + '@oxlint/binding-win32-x64-msvc': 1.49.0 oxlint-tsgolint: 0.12.1 p-limit@2.3.0: @@ -14262,6 +14391,8 @@ snapshots: semver@7.7.3: {} + semver@7.7.4: {} + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0