diff --git a/.oxlintrc.json b/.oxlintrc.json index 08edb5c3..cb4c6c96 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -6,6 +6,7 @@ "unicorn", "react", "react-perf", + "vue", "oxc", "import", "jsdoc", @@ -14,7 +15,11 @@ "promise", "vitest" ], - "categories": {}, + "categories": { + "correctness": "warn", + "suspicious": "warn", + "perf": "warn" + }, "rules": { "import/no-cycle": "error", "import/no-duplicates": "error", @@ -22,105 +27,21 @@ "import/no-unresolved": "error", "eslint/sort-imports": "allow", "eslint/sort-exports": "error", - - "no-children-prop": "allow", - "for-direction": "warn", - "no-async-promise-executor": "warn", - "no-caller": "warn", - "no-class-assign": "warn", - "no-compare-neg-zero": "warn", - "no-cond-assign": "warn", - "no-const-assign": "warn", - "no-constant-binary-expression": "warn", - "no-constant-condition": "warn", - "no-control-regex": "warn", - "no-debugger": "warn", - "no-delete-var": "warn", - "no-dupe-class-members": "warn", - "no-dupe-else-if": "warn", - "no-dupe-keys": "warn", - "no-duplicate-case": "warn", - "no-empty-character-class": "warn", - "no-empty-pattern": "warn", - "no-empty-static-block": "warn", - "no-eval": "warn", - "no-ex-assign": "warn", - "no-extra-boolean-cast": "warn", - "no-func-assign": "warn", - "no-global-assign": "warn", - "no-import-assign": "warn", - "no-invalid-regexp": "warn", - "no-irregular-whitespace": "warn", - "no-loss-of-precision": "warn", - "no-new-native-nonconstructor": "warn", - "no-nonoctal-decimal-escape": "warn", - "no-obj-calls": "warn", - "no-self-assign": "warn", - "no-setter-return": "warn", - "no-shadow-restricted-names": "warn", - "no-sparse-arrays": "warn", - "no-this-before-super": "warn", - "no-unsafe-finally": "warn", - "no-unsafe-negation": "warn", - "no-unsafe-optional-chaining": "warn", - "no-unused-labels": "warn", - "no-unused-private-class-members": "error", - "no-unused-vars": "error", - "no-useless-backreference": "warn", - "no-useless-catch": "warn", - "no-useless-escape": "warn", - "no-useless-rename": "warn", - "no-with": "warn", - "require-yield": "warn", - "use-isnan": "warn", - "valid-typeof": "warn", - "oxc/bad-array-method-on-arguments": "warn", - "oxc/bad-char-at-comparison": "warn", - "oxc/bad-comparison-sequence": "warn", - "oxc/bad-min-max-func": "warn", - "oxc/bad-object-literal-comparison": "warn", - "oxc/bad-replace-all-arg": "warn", - "oxc/const-comparisons": "warn", - "oxc/double-comparisons": "warn", - "oxc/erasing-op": "warn", - "oxc/missing-throw": "warn", - "oxc/number-arg-out-of-range": "warn", - "oxc/only-used-in-recursion": "warn", - "oxc/uninvoked-array-callback": "warn", - "typescript/no-duplicate-enum-values": "warn", - "typescript/no-extra-non-null-assertion": "warn", - "typescript/no-misused-new": "warn", - "typescript/no-non-null-asserted-optional-chain": "warn", - "typescript/no-this-alias": "warn", - "typescript/no-unnecessary-parameter-property-assignment": "warn", - "typescript/no-unsafe-declaration-merging": "warn", - "typescript/no-useless-empty-export": "warn", - "typescript/no-wrapper-object-types": "warn", - "typescript/prefer-as-const": "warn", - "typescript/triple-slash-reference": "warn", + "eslint/no-unused-private-class-members": "error", + "eslint/no-unused-vars": "error", "typescript/consistent-type-imports": "error", - "unicorn/no-await-in-promise-methods": "warn", - "unicorn/no-empty-file": "warn", - "unicorn/no-invalid-fetch-options": "warn", - "unicorn/no-invalid-remove-event-listener": "warn", - "unicorn/no-new-array": "warn", - "unicorn/no-single-promise-in-promise-methods": "warn", - "unicorn/no-thenable": "warn", - "unicorn/no-unnecessary-await": "warn", - "unicorn/no-useless-fallback-in-spread": "warn", - "unicorn/no-useless-length-check": "warn", - "unicorn/no-useless-spread": "warn", - "unicorn/prefer-set-size": "warn", - "unicorn/prefer-string-starts-ends-with": "warn", - "typescript/no-unnecessary-condition": "warn", - "typescript/no-useless-default-assignment": "warn", "typescript/consistent-type-exports": "error", - "typescript/prefer-readonly": "warn", - "typescript/no-unnecessary-qualifier": "warn", - "eslint/no-shadow": "warn", + "react/no-children-prop": "allow", "react/exhaustive-deps": "off", - "jsx_a11y/click-events-have-key-events": "off" + "react/react-in-jsx-scope": "off", + "jsx_a11y/click-events-have-key-events": "off", + + "typescript/dot-notation": "warn", + "typescript/no-unnecessary-type-parameters": "warn", + "typescript/consistent-return": "warn", + "unicorn/prefer-module": "warn", + "unicorn/prefer-ternary": "warn" }, "settings": { "jsx-a11y": { @@ -148,6 +69,8 @@ "env": { "builtin": true }, - "globals": {}, - "ignorePatterns": [] + "options": { + "typeAware": false, + "typeCheck": false + } } diff --git a/package.json b/package.json index e223c1e3..75483ac9 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "husky": "^9.1.7", "lint-staged": "^16.2.7", "oxfmt": "^0.36.0", - "oxlint": "^1.49.0", + "oxlint": "^1.51.0", + "oxlint-tsgolint": "^0.16.0", "playwright": "catalog:", "typescript": "catalog:", "vite": "catalog:" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a7949bb..cf787faa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -99,8 +99,11 @@ importers: specifier: ^0.36.0 version: 0.36.0 oxlint: - specifier: ^1.49.0 - version: 1.51.0 + specifier: ^1.51.0 + version: 1.51.0(oxlint-tsgolint@0.16.0) + oxlint-tsgolint: + specifier: ^0.16.0 + version: 0.16.0 playwright: specifier: 'catalog:' version: 1.58.2 @@ -1546,6 +1549,36 @@ packages: cpu: [x64] os: [win32] + '@oxlint-tsgolint/darwin-arm64@0.16.0': + resolution: {integrity: sha512-WQt5lGwRPJBw7q2KNR0mSPDAaMmZmVvDlEEti96xLO7ONhyomQc6fBZxxwZ4qTFedjJnrHX94sFelZ4OKzS7UQ==} + cpu: [arm64] + os: [darwin] + + '@oxlint-tsgolint/darwin-x64@0.16.0': + resolution: {integrity: sha512-VJo29XOzdkalvCTiE2v6FU3qZlgHaM8x8hUEVJGPU2i5W+FlocPpmn00+Ld2n7Q0pqIjyD5EyvZ5UmoIEJMfqg==} + cpu: [x64] + os: [darwin] + + '@oxlint-tsgolint/linux-arm64@0.16.0': + resolution: {integrity: sha512-MPfqRt1+XRHv9oHomcBMQ3KpTE+CSkZz14wUxDQoqTNdUlV0HWdzwIE9q65I3D9YyxEnqpM7j4qtDQ3apqVvbQ==} + cpu: [arm64] + os: [linux] + + '@oxlint-tsgolint/linux-x64@0.16.0': + resolution: {integrity: sha512-XQSwVUsnwLokMhe1TD6IjgvW5WMTPzOGGkdFDtXWQmlN2YeTw94s/NN0KgDrn2agM1WIgAenEkvnm0u7NgwEyw==} + cpu: [x64] + os: [linux] + + '@oxlint-tsgolint/win32-arm64@0.16.0': + resolution: {integrity: sha512-EWdlspQiiFGsP2AiCYdhg5dTYyAlj6y1nRyNI2dQWq4Q/LITFHiSRVPe+7m7K7lcsZCEz2icN/bCeSkZaORqIg==} + cpu: [arm64] + os: [win32] + + '@oxlint-tsgolint/win32-x64@0.16.0': + resolution: {integrity: sha512-1ufk8cgktXJuJZHKF63zCHAkaLMwZrEXnZ89H2y6NO85PtOXqu4zbdNl0VBpPP3fCUuUBu9RvNqMFiv0VsbXWA==} + cpu: [x64] + os: [win32] + '@oxlint/binding-android-arm-eabi@1.51.0': resolution: {integrity: sha512-jJYIqbx4sX+suIxWstc4P7SzhEwb4ArWA2KVrmEuu9vH2i0qM6QIHz/ehmbGE4/2fZbpuMuBzTl7UkfNoqiSgw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4403,6 +4436,10 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + oxlint-tsgolint@0.16.0: + resolution: {integrity: sha512-4RuJK2jP08XwqtUu+5yhCbxEauCm6tv2MFHKEMsjbosK2+vy5us82oI3VLuHwbNyZG7ekZA26U2LLHnGR4frIA==} + hasBin: true + oxlint@1.51.0: resolution: {integrity: sha512-g6DNPaV9/WI9MoX2XllafxQuxwY1TV++j7hP8fTJByVBuCoVtm3dy9f/2vtH/HU40JztcgWF4G7ua+gkainklQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -6967,6 +7004,24 @@ snapshots: '@oxfmt/binding-win32-x64-msvc@0.36.0': optional: true + '@oxlint-tsgolint/darwin-arm64@0.16.0': + optional: true + + '@oxlint-tsgolint/darwin-x64@0.16.0': + optional: true + + '@oxlint-tsgolint/linux-arm64@0.16.0': + optional: true + + '@oxlint-tsgolint/linux-x64@0.16.0': + optional: true + + '@oxlint-tsgolint/win32-arm64@0.16.0': + optional: true + + '@oxlint-tsgolint/win32-x64@0.16.0': + optional: true + '@oxlint/binding-android-arm-eabi@1.51.0': optional: true @@ -10444,7 +10499,16 @@ snapshots: '@oxfmt/binding-win32-ia32-msvc': 0.36.0 '@oxfmt/binding-win32-x64-msvc': 0.36.0 - oxlint@1.51.0: + oxlint-tsgolint@0.16.0: + optionalDependencies: + '@oxlint-tsgolint/darwin-arm64': 0.16.0 + '@oxlint-tsgolint/darwin-x64': 0.16.0 + '@oxlint-tsgolint/linux-arm64': 0.16.0 + '@oxlint-tsgolint/linux-x64': 0.16.0 + '@oxlint-tsgolint/win32-arm64': 0.16.0 + '@oxlint-tsgolint/win32-x64': 0.16.0 + + oxlint@1.51.0(oxlint-tsgolint@0.16.0): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.51.0 '@oxlint/binding-android-arm64': 1.51.0 @@ -10465,6 +10529,7 @@ snapshots: '@oxlint/binding-win32-arm64-msvc': 1.51.0 '@oxlint/binding-win32-ia32-msvc': 1.51.0 '@oxlint/binding-win32-x64-msvc': 1.51.0 + oxlint-tsgolint: 0.16.0 p-limit@2.3.0: dependencies: