diff --git a/index.js b/index.js index 48271e3..3278ffc 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,7 @@ import js from '@eslint/js' import ts from 'typescript-eslint' import prettier from 'eslint-config-prettier' +import react from '@eslint-react/eslint-plugin' import query from '@tanstack/eslint-plugin-query' import reactHooks from 'eslint-plugin-react-hooks' @@ -8,6 +9,10 @@ export default ts.config( js.configs.recommended, ...ts.configs.recommended, ...query.configs['flat/recommended'], + { + files: ['**/*.{ts,tsx}'], + ...react.configs.recommended, + }, { plugins: { 'react-hooks': reactHooks, diff --git a/package-lock.json b/package-lock.json index f2ab42c..fd7eed3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "28.0.0", "license": "Apache-2.0", "dependencies": { + "@eslint-react/eslint-plugin": "^1.17.3", "@eslint/js": "^9.16.0", "@tanstack/eslint-plugin-query": "^5.62.1", "eslint-config-prettier": "^9.1.0", @@ -453,6 +454,142 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint-react/ast": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@eslint-react/ast/-/ast-1.17.3.tgz", + "integrity": "sha512-mAe7cuWJxPMorrawRmxIaUrL84F2xMz95k55FBwz2qrO2wQkwWjD2nV0hd79Yc2fTZb/8xQ/sYjmT7Flv8nyMg==", + "license": "MIT", + "dependencies": { + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/typescript-estree": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "birecord": "^0.1.1", + "string-ts": "^2.2.0", + "ts-pattern": "^5.5.0" + } + }, + "node_modules/@eslint-react/core": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@eslint-react/core/-/core-1.17.3.tgz", + "integrity": "sha512-hQJvY+Pl4up/eQgmikTF+IhDzD41fZMuQQrtW3jxEojBYAu9ORxRD3vTII4hBq3V/jqLntY4kAaQwi9R9RfKyA==", + "license": "MIT", + "dependencies": { + "@eslint-react/ast": "1.17.3", + "@eslint-react/jsx": "1.17.3", + "@eslint-react/shared": "1.17.3", + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@eslint-react/var": "1.17.3", + "@typescript-eslint/scope-manager": "^8.17.0", + "@typescript-eslint/type-utils": "^8.17.0", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "birecord": "^0.1.1", + "short-unique-id": "^5.2.0", + "ts-pattern": "^5.5.0" + } + }, + "node_modules/@eslint-react/eslint-plugin": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@eslint-react/eslint-plugin/-/eslint-plugin-1.17.3.tgz", + "integrity": "sha512-niB+w7mf6p9NsmV1NFG/KQ5yu8gmBIzCwmfs8U5vxCWiC7e8DIWElwRtIt924tIHuDNDg9p6ptOfjjSrw9iDgQ==", + "license": "MIT", + "dependencies": { + "@eslint-react/shared": "1.17.3", + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@typescript-eslint/scope-manager": "^8.17.0", + "@typescript-eslint/type-utils": "^8.17.0", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "eslint-plugin-react-debug": "1.17.3", + "eslint-plugin-react-dom": "1.17.3", + "eslint-plugin-react-hooks-extra": "1.17.3", + "eslint-plugin-react-naming-convention": "1.17.3", + "eslint-plugin-react-web-api": "1.17.3", + "eslint-plugin-react-x": "1.17.3" + }, + "engines": { + "bun": ">=1.0.15", + "node": ">=18.18.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "^4.9.5 || ^5.3.3" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": false + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@eslint-react/jsx": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@eslint-react/jsx/-/jsx-1.17.3.tgz", + "integrity": "sha512-BUxz8J5nOO6eI+QppRE3GrwO+oi26bgBhVrODV5TdlDq0SQhvuvVdI2RYqZL3fVoRVShKtB5k+3PDPjFqFo5/w==", + "license": "MIT", + "dependencies": { + "@eslint-react/ast": "1.17.3", + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@eslint-react/var": "1.17.3", + "@typescript-eslint/scope-manager": "^8.17.0", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "birecord": "^0.1.1", + "ts-pattern": "^5.5.0" + } + }, + "node_modules/@eslint-react/shared": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@eslint-react/shared/-/shared-1.17.3.tgz", + "integrity": "sha512-FW+j2siqrfPf3o43DK28nVE7GiqmsVLmhhWr1hkYgGKeipCku06RbOcN8+hCntIVx2Kqi9DzlPxM9/PolQYKIg==", + "license": "MIT", + "dependencies": { + "@eslint-react/tools": "1.17.3", + "@typescript-eslint/utils": "^8.17.0", + "local-pkg": "^0.5.1", + "picomatch": "^4.0.2", + "ts-pattern": "^5.5.0" + } + }, + "node_modules/@eslint-react/tools": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@eslint-react/tools/-/tools-1.17.3.tgz", + "integrity": "sha512-l121pjPDPRkNxKqPa8bBWrRKiwI02y6bIF8EGViG6z1iAbJo3H0QRNXnUJTzG84rrXhozMsu4hHqpeAB8AiWaA==", + "license": "MIT" + }, + "node_modules/@eslint-react/types": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@eslint-react/types/-/types-1.17.3.tgz", + "integrity": "sha512-4ct8LhPs4jmOwmME+ylWhLXE9DFEDNS7e4k0YBI/KHE1D8AM6ZDVLCnxAdVhInKkpUUKUx9u+aMK8kjN7ZO0LQ==", + "license": "MIT", + "dependencies": { + "@eslint-react/tools": "1.17.3", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0" + } + }, + "node_modules/@eslint-react/var": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@eslint-react/var/-/var-1.17.3.tgz", + "integrity": "sha512-kTgFM1fCaJ9BezNFKdPXZS1HYP0kqagZLWXVLpff7zPOHmNBw4RsUDdZ8mznfaO8be8B7HkXx3KfyQHQxkPWQw==", + "license": "MIT", + "dependencies": { + "@eslint-react/ast": "1.17.3", + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@typescript-eslint/scope-manager": "^8.17.0", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "ts-pattern": "^5.5.0" + } + }, "node_modules/@eslint/config-array": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", @@ -1385,7 +1522,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1459,6 +1595,12 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/birecord": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/birecord/-/birecord-0.1.1.tgz", + "integrity": "sha512-VUpsf/qykW0heRlC8LooCq28Kxn3mAqKohhDG/49rrsQ1dT1CXyj/pgXS+5BSRzFTR/3DyIBOqQOrGyZOh71Aw==", + "license": "(MIT OR Apache-2.0)" + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -1564,6 +1706,12 @@ "license": "MIT", "peer": true }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1571,6 +1719,12 @@ "license": "MIT", "peer": true }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -1758,6 +1912,79 @@ "eslint": ">=7.0.0" } }, + "node_modules/eslint-plugin-react-debug": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-debug/-/eslint-plugin-react-debug-1.17.3.tgz", + "integrity": "sha512-4EdxKLm++pV/tt/bXDgNpZjcIHJazT8e1IIi/xtfXa7RhYUxdRxrJp5mnI28y0lpyyPZ6uyij+ejx8TCwq8lMg==", + "license": "MIT", + "dependencies": { + "@eslint-react/ast": "1.17.3", + "@eslint-react/core": "1.17.3", + "@eslint-react/jsx": "1.17.3", + "@eslint-react/shared": "1.17.3", + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@eslint-react/var": "1.17.3", + "@typescript-eslint/scope-manager": "^8.17.0", + "@typescript-eslint/type-utils": "^8.17.0", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "string-ts": "^2.2.0", + "ts-pattern": "^5.5.0" + }, + "engines": { + "bun": ">=1.0.15", + "node": ">=18.18.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "^4.9.5 || ^5.3.3" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": false + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-dom": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-dom/-/eslint-plugin-react-dom-1.17.3.tgz", + "integrity": "sha512-sOrEbjEcY40KAR/ZSLx8/wjCQW3hgbEVV6AC9Jw4cYcdHx/8WAN+yb+6WnfYI7iDWjfzSCi2hIsOl5uFDd9/MA==", + "license": "MIT", + "dependencies": { + "@eslint-react/ast": "1.17.3", + "@eslint-react/core": "1.17.3", + "@eslint-react/jsx": "1.17.3", + "@eslint-react/shared": "1.17.3", + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@eslint-react/var": "1.17.3", + "@typescript-eslint/scope-manager": "^8.17.0", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "compare-versions": "^6.1.1", + "ts-pattern": "^5.5.0" + }, + "engines": { + "bun": ">=1.0.15", + "node": ">=18.18.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "^4.9.5 || ^5.3.3" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": false + }, + "typescript": { + "optional": true + } + } + }, "node_modules/eslint-plugin-react-hooks": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz", @@ -1770,6 +1997,151 @@ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, + "node_modules/eslint-plugin-react-hooks-extra": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks-extra/-/eslint-plugin-react-hooks-extra-1.17.3.tgz", + "integrity": "sha512-/L8+mYOMnk+0CL7rgztckrR7lIji1gnBIJ9R2m8Pq+9fBCVNNhQ0NRUOpXcT4QNQ0lqLapHv+eScodUFAobknw==", + "license": "MIT", + "dependencies": { + "@eslint-react/ast": "1.17.3", + "@eslint-react/core": "1.17.3", + "@eslint-react/jsx": "1.17.3", + "@eslint-react/shared": "1.17.3", + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@eslint-react/var": "1.17.3", + "@typescript-eslint/scope-manager": "^8.17.0", + "@typescript-eslint/type-utils": "^8.17.0", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "ts-pattern": "^5.5.0" + }, + "engines": { + "bun": ">=1.0.15", + "node": ">=18.18.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "^4.9.5 || ^5.3.3" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": false + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-naming-convention": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-naming-convention/-/eslint-plugin-react-naming-convention-1.17.3.tgz", + "integrity": "sha512-FyOYS9h2n+6rnZN7E8bY8jzaqqaH0OTqAGFPK4+q1LFKmvgVVD/cRdi1HRF+0tQqNkn4D9SnRXsfsqpPJd7zZw==", + "license": "MIT", + "dependencies": { + "@eslint-react/ast": "1.17.3", + "@eslint-react/core": "1.17.3", + "@eslint-react/jsx": "1.17.3", + "@eslint-react/shared": "1.17.3", + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@typescript-eslint/scope-manager": "^8.17.0", + "@typescript-eslint/type-utils": "^8.17.0", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "ts-pattern": "^5.5.0" + }, + "engines": { + "bun": ">=1.0.15", + "node": ">=18.18.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "^4.9.5 || ^5.3.3" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": false + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-web-api": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-web-api/-/eslint-plugin-react-web-api-1.17.3.tgz", + "integrity": "sha512-U6v5C+d3Szik7qyw3Olm7JywhKR+l+/AhabL564yP9PJGWHXWd0vBz0XAQFGwrGRFpVzcxPY+RpzioA4ntYBFA==", + "license": "MIT", + "dependencies": { + "@eslint-react/ast": "1.17.3", + "@eslint-react/core": "1.17.3", + "@eslint-react/jsx": "1.17.3", + "@eslint-react/shared": "1.17.3", + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@eslint-react/var": "1.17.3", + "@typescript-eslint/scope-manager": "^8.17.0", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "birecord": "^0.1.1", + "ts-pattern": "^5.5.0" + }, + "engines": { + "bun": ">=1.0.15", + "node": ">=18.18.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "^4.9.5 || ^5.3.3" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": false + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-x": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-x/-/eslint-plugin-react-x-1.17.3.tgz", + "integrity": "sha512-d6nZ3/zQY+kDiafxnYoHAwphSrbQL281InbIKVuoww6yrxXQoaoIN8B+Vy1R/ipPKC1U0gK5t9f8RY9EiczzfA==", + "license": "MIT", + "dependencies": { + "@eslint-react/ast": "1.17.3", + "@eslint-react/core": "1.17.3", + "@eslint-react/jsx": "1.17.3", + "@eslint-react/shared": "1.17.3", + "@eslint-react/tools": "1.17.3", + "@eslint-react/types": "1.17.3", + "@eslint-react/var": "1.17.3", + "@typescript-eslint/scope-manager": "^8.17.0", + "@typescript-eslint/type-utils": "^8.17.0", + "@typescript-eslint/types": "^8.17.0", + "@typescript-eslint/utils": "^8.17.0", + "compare-versions": "^6.1.1", + "is-immutable-type": "^5.0.0", + "ts-pattern": "^5.5.0" + }, + "engines": { + "bun": ">=1.0.15", + "node": ">=18.18.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "^4.9.5 || ^5.3.3" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": false + }, + "typescript": { + "optional": true + } + } + }, "node_modules/eslint-scope": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", @@ -2168,6 +2540,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-immutable-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-immutable-type/-/is-immutable-type-5.0.0.tgz", + "integrity": "sha512-mcvHasqbRBWJznuPqqHRKiJgYAz60sZ0mvO3bN70JbkuK7ksfmgc489aKZYxMEjIbRvyOseaTjaRZLRF/xFeRA==", + "license": "BSD-3-Clause", + "dependencies": { + "@typescript-eslint/type-utils": "^8.0.0", + "ts-api-utils": "^1.3.0", + "ts-declaration-location": "^1.0.4" + }, + "peerDependencies": { + "eslint": "*", + "typescript": ">=4.7.4" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -2249,6 +2636,22 @@ "node": ">= 0.8.0" } }, + "node_modules/local-pkg": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", + "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.3", + "pkg-types": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -2324,6 +2727,18 @@ "node": ">=8.6" } }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -2339,6 +2754,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/mlly": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz", + "integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^1.1.2", + "pkg-types": "^1.2.1", + "ufo": "^1.5.4" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -2457,7 +2884,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true, "license": "MIT" }, "node_modules/pathval": { @@ -2478,17 +2904,28 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkg-types": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz", + "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.2", + "pathe": "^1.1.2" + } + }, "node_modules/postcss": { "version": "8.4.49", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", @@ -2783,6 +3220,16 @@ "node": ">=8" } }, + "node_modules/short-unique-id": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/short-unique-id/-/short-unique-id-5.2.0.tgz", + "integrity": "sha512-cMGfwNyfDZ/nzJ2k2M+ClthBIh//GlZl1JEf47Uoa9XR11bz8Pa2T2wQO4bVrRdH48LrIDWJahQziKo3MjhsWg==", + "license": "Apache-2.0", + "bin": { + "short-unique-id": "bin/short-unique-id", + "suid": "bin/short-unique-id" + } + }, "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", @@ -2814,6 +3261,12 @@ "dev": true, "license": "MIT" }, + "node_modules/string-ts": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/string-ts/-/string-ts-2.2.0.tgz", + "integrity": "sha512-VTP0LLZo4Jp9Gz5IiDVMS9WyLx/3IeYh0PXUn0NdPqusUFNgkHPWiEdbB9TU2Iv3myUskraD5WtYEdHUrQEIlQ==", + "license": "MIT" + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -2908,6 +3361,49 @@ "typescript": ">=4.2.0" } }, + "node_modules/ts-declaration-location": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ts-declaration-location/-/ts-declaration-location-1.0.5.tgz", + "integrity": "sha512-WqmlO9IoeYwCqJ2E9kHMcY9GZhhfLYItC3VnHDlPOrg6nNdUWS4wn4hhDZUPt60m1EvtjPIZyprTjpI992Bgzw==", + "funding": [ + { + "type": "ko-fi", + "url": "https://ko-fi.com/rebeccastevens" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/ts-declaration-location" + } + ], + "license": "BSD-3-Clause", + "dependencies": { + "minimatch": "^10.0.1" + }, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, + "node_modules/ts-declaration-location/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ts-pattern": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-5.5.0.tgz", + "integrity": "sha512-jqbIpTsa/KKTJYWgPNsFNbLVpwCgzXfFJ1ukNn4I8hMwyQzHMJnk/BqWzggB0xpkILuKzaO/aMYhS0SkaJyKXg==", + "license": "MIT" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -2960,6 +3456,12 @@ } } }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "license": "MIT" + }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", diff --git a/package.json b/package.json index 02178f8..6aeef4d 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "eslint": "^9.16.0" }, "dependencies": { + "@eslint-react/eslint-plugin": "^1.17.3", "@eslint/js": "^9.16.0", "@tanstack/eslint-plugin-query": "^5.62.1", "eslint-config-prettier": "^9.1.0",