diff --git a/cspell.config.yaml b/cspell.config.yaml index f13ce8854..6214d817d 100644 --- a/cspell.config.yaml +++ b/cspell.config.yaml @@ -194,6 +194,7 @@ words: - OPFS - opusscript - otelcol + - oxlint - pglite - pgvector - picklist diff --git a/package.json b/package.json index 39cd9f797..39410c427 100644 --- a/package.json +++ b/package.json @@ -29,8 +29,8 @@ "build:crates": "cargo build --workspace", "test": "vitest --coverage", "test:run": "vitest run", - "lint": "eslint --cache .", - "lint:fix": "eslint --cache --fix .", + "lint": "moeru-lint .", + "lint:fix": "moeru-lint --fix .", "lint:rust": "cargo fmt --check && cargo clippy --workspace", "to-avif": "tsx docs/scripts/avif.ts", "typecheck": "pnpm -rF=\"./packages/*\" -F=\"./apps/*\" -F=\"./docs\" --parallel typecheck", @@ -52,7 +52,9 @@ "@vitest/coverage-v8": "^3.2.4", "bumpp": "^10.3.1", "eslint": "^9.37.0", + "eslint-plugin-oxlint": "^1.23.0", "lint-staged": "^16.2.4", + "oxlint": "^1.23.0", "publint": "^0.3.14", "rollup": "^4.52.4", "simple-git-hooks": "^2.13.1", @@ -118,6 +120,6 @@ "pre-commit": "pnpm lint-staged" }, "lint-staged": { - "*": "eslint --fix" + "*": "moeru-lint --fix" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 78e21dc74..fcd06ee78 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,7 +93,7 @@ importers: version: 3.0.2 '@moeru/eslint-config': specifier: 'catalog:' - version: 0.1.0-beta.12(@antfu/eslint-config@6.0.0(@unocss/eslint-plugin@66.5.3(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.22)(eslint-plugin-format@1.0.1(eslint@9.37.0(jiti@2.5.1)))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.5.1)(jsdom@25.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(less@4.4.2)(lightningcss@1.30.2)(msw@2.7.3(@types/node@24.7.2)(typescript@5.9.3))(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3) + version: 0.1.0-beta.12(@antfu/eslint-config@6.0.0(@unocss/eslint-plugin@66.5.3(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.22)(eslint-plugin-format@1.0.1(eslint@9.37.0(jiti@2.5.1)))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.5.1)(jsdom@25.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(less@4.4.2)(lightningcss@1.30.2)(msw@2.7.3(@types/node@24.7.2)(typescript@5.9.3))(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)))(eslint-plugin-oxlint@1.23.0)(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3) '@proj-airi/unocss-preset-chromatic': specifier: ^1.0.2 version: 1.0.2 @@ -121,9 +121,15 @@ importers: eslint: specifier: ^9.37.0 version: 9.37.0(jiti@2.5.1) + eslint-plugin-oxlint: + specifier: ^1.23.0 + version: 1.23.0 lint-staged: specifier: ^16.2.4 version: 16.2.4 + oxlint: + specifier: ^1.23.0 + version: 1.23.0 publint: specifier: ^0.3.14 version: 0.3.14 @@ -5594,6 +5600,46 @@ packages: cpu: [x64] os: [win32] + '@oxlint/darwin-arm64@1.23.0': + resolution: {integrity: sha512-sbxoftgEMKmZQO7O4wHR9Rs7MfiHa2UH2x4QJDoc4LXqSCsI4lUIJbFQ05vX+zOUbt7CQMPdxEzExd4DqeKY2w==} + cpu: [arm64] + os: [darwin] + + '@oxlint/darwin-x64@1.23.0': + resolution: {integrity: sha512-PjByWr1TlwHQiOqEc8CPyXCT4wnujSK3n9l1m4un0Eh0uLJEDG5WM9tyDWOGuakC0Ika9/SMp0HDRg3ySchRRA==} + cpu: [x64] + os: [darwin] + + '@oxlint/linux-arm64-gnu@1.23.0': + resolution: {integrity: sha512-sWlCwQ6xKeKC08qU3SfozqpRGCLJiO/onPYFJKEHbjzHkFp+OubOacFaT4ePcka28jCU1TvQ7Gi5BVQRncr0Xg==} + cpu: [arm64] + os: [linux] + + '@oxlint/linux-arm64-musl@1.23.0': + resolution: {integrity: sha512-MPkmSiezuVgjMbzDSkRhENdnb038JOI+OTpBrOho2crbCAuqSRvyFwkMRhncJGZskzo1yeKxrKXB8T83ofmSXw==} + cpu: [arm64] + os: [linux] + + '@oxlint/linux-x64-gnu@1.23.0': + resolution: {integrity: sha512-F6H9wmLfjBoNqtsgyg3P9abLnkVjNbCAnISKdRtDl7HvkMs4s/eU8np9+tSnqPeKOTBhkS+h/VSWgPGZTqIWQA==} + cpu: [x64] + os: [linux] + + '@oxlint/linux-x64-musl@1.23.0': + resolution: {integrity: sha512-Xra0Cow35mAku8mbUbviPRalTU4Ct6MXQ1Eue8GmN4HFkjosrNa5qfy7QkJBqzjiI+JdnHxPXwackGn92/XOQw==} + cpu: [x64] + os: [linux] + + '@oxlint/win32-arm64@1.23.0': + resolution: {integrity: sha512-FR+I+uGD3eFzTfBw87QRr+Y1jBYil3TqPM0wkSvuf3gOJTEXAfSkh9QHCgQqrseW3HDW7YJJ8ty1+sU31H/N4g==} + cpu: [arm64] + os: [win32] + + '@oxlint/win32-x64@1.23.0': + resolution: {integrity: sha512-/oX0b26YIC1OgS5B+G8Ux1Vs/PIjOP4CBRzsPpYr0T+RoboJ3ZuV32bztLRggJKQqIlozcqiRo9fl/UMOMp8kQ==} + cpu: [x64] + os: [win32] + '@parcel/watcher-android-arm64@2.5.0': resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} engines: {node: '>= 10.0.0'} @@ -9871,6 +9917,9 @@ packages: resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} engines: {node: '>=5.0.0'} + eslint-plugin-oxlint@1.23.0: + resolution: {integrity: sha512-YT/ObCQMluSHVEqDJPwrVLERkUUQnmcRYYQbB7h6t2P4243WE3Z1UmUcPy1Q6vSVP/U7vw5affptlGV2RizDuw==} + eslint-plugin-perfectionist@4.15.1: resolution: {integrity: sha512-MHF0cBoOG0XyBf7G0EAFCuJJu4I18wy0zAoT1OHfx2o6EOx1EFTIzr2HGeuZa1kDcusoX0xJ9V7oZmaeFd773Q==} engines: {node: ^18.0.0 || >=20.0.0} @@ -12629,6 +12678,16 @@ packages: peerDependencies: oxc-parser: '>=0.72.0' + oxlint@1.23.0: + resolution: {integrity: sha512-cLVdSE7Bza8npm+PffU0oufs15+M5uSMbQn0k2fJCayWU0xqQ3dyA3w9tEk8lgNOk1j1VJEdYctz64Vik8VG1w==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=0.2.0' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} @@ -18778,7 +18837,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@moeru/eslint-config@0.1.0-beta.12(@antfu/eslint-config@6.0.0(@unocss/eslint-plugin@66.5.3(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.22)(eslint-plugin-format@1.0.1(eslint@9.37.0(jiti@2.5.1)))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.5.1)(jsdom@25.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(less@4.4.2)(lightningcss@1.30.2)(msw@2.7.3(@types/node@24.7.2)(typescript@5.9.3))(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)': + '@moeru/eslint-config@0.1.0-beta.12(@antfu/eslint-config@6.0.0(@unocss/eslint-plugin@66.5.3(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.22)(eslint-plugin-format@1.0.1(eslint@9.37.0(jiti@2.5.1)))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.5.1)(jsdom@25.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(less@4.4.2)(lightningcss@1.30.2)(msw@2.7.3(@types/node@24.7.2)(typescript@5.9.3))(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)))(eslint-plugin-oxlint@1.23.0)(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)': dependencies: '@antfu/eslint-config': 6.0.0(@unocss/eslint-plugin@66.5.3(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.22)(eslint-plugin-format@1.0.1(eslint@9.37.0(jiti@2.5.1)))(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.5.1)(jsdom@25.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(less@4.4.2)(lightningcss@1.30.2)(msw@2.7.3(@types/node@24.7.2)(typescript@5.9.3))(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) '@masknet/eslint-plugin': 0.4.0(eslint@9.37.0(jiti@2.5.1)) @@ -18790,6 +18849,8 @@ snapshots: eslint-plugin-perfectionist: 4.15.1(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3) eslint-plugin-prefer-arrow: 1.2.3(eslint@9.37.0(jiti@2.5.1)) eslint-plugin-sonarjs: 3.0.5(eslint@9.37.0(jiti@2.5.1)) + optionalDependencies: + eslint-plugin-oxlint: 1.23.0 transitivePeerDependencies: - supports-color - typescript @@ -20226,6 +20287,30 @@ snapshots: '@oxc-transform/binding-win32-x64-msvc@0.80.0': optional: true + '@oxlint/darwin-arm64@1.23.0': + optional: true + + '@oxlint/darwin-x64@1.23.0': + optional: true + + '@oxlint/linux-arm64-gnu@1.23.0': + optional: true + + '@oxlint/linux-arm64-musl@1.23.0': + optional: true + + '@oxlint/linux-x64-gnu@1.23.0': + optional: true + + '@oxlint/linux-x64-musl@1.23.0': + optional: true + + '@oxlint/win32-arm64@1.23.0': + optional: true + + '@oxlint/win32-x64@1.23.0': + optional: true + '@parcel/watcher-android-arm64@2.5.0': optional: true @@ -25528,6 +25613,10 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} + eslint-plugin-oxlint@1.23.0: + dependencies: + jsonc-parser: 3.3.1 + eslint-plugin-perfectionist@4.15.1(eslint@9.37.0(jiti@2.5.1))(typescript@5.9.3): dependencies: '@typescript-eslint/types': 8.46.0 @@ -29582,6 +29671,17 @@ snapshots: oxc-parser: 0.80.0 optional: true + oxlint@1.23.0: + optionalDependencies: + '@oxlint/darwin-arm64': 1.23.0 + '@oxlint/darwin-x64': 1.23.0 + '@oxlint/linux-arm64-gnu': 1.23.0 + '@oxlint/linux-arm64-musl': 1.23.0 + '@oxlint/linux-x64-gnu': 1.23.0 + '@oxlint/linux-x64-musl': 1.23.0 + '@oxlint/win32-arm64': 1.23.0 + '@oxlint/win32-x64': 1.23.0 + p-cancelable@2.1.1: {} p-event@6.0.1: