diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 160111e..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "eslint-config-atomic/strict", - "ignorePatterns": ["dist/", "node_modules/"] -} diff --git a/.vscode/settings.json b/.vscode/settings.json index be99108..c3dd14b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,9 +1,5 @@ { - "cSpell.words": [ - "astrojs", - "Globified", - "globify" - ], + "cSpell.words": ["astrojs", "Globified", "globify"], "explorer.fileNesting.patterns": { "index.js": "*.js" } diff --git a/eslint.config.cjs b/eslint.config.cjs new file mode 100644 index 0000000..39c9fb2 --- /dev/null +++ b/eslint.config.cjs @@ -0,0 +1,2 @@ +const config = require("./index.js") +module.exports = [...config] diff --git a/package.json b/package.json index 8e244ac..76a9ad6 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "bump": "ncu -u -x coffeescript,execa,read-pkg-up,make-synchronous && pnpm update && pnpm dedupe", "clean": "shx rm -rf ./spec/fixtures/ ./dist", "format": "prettier --write .", - "lint": "eslint . --ignore-pattern ./spec/fixtures/ --fix", + "lint": "eslint ./ --ignore dist --fix", "prepare": "pnpm run build", "prepublishOnly": "pnpm run clean && pnpm run build", "test": "node ./spec/test.cjs", @@ -31,33 +31,34 @@ "@babel/eslint-parser": "^7.24.7", "@babel/plugin-syntax-flow": "^7.24.7", "@babel/plugin-syntax-jsx": "^7.24.7", - "@typescript-eslint/eslint-plugin": "7.13.0", - "@typescript-eslint/parser": "7.13.0", + "@typescript-eslint/parser": "^7.13.1", "anymatch": "^3.1.3", - "eslint": "^8.57.0", + "eslint": "^9.5.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-astro": "^0.34.0", + "eslint-plugin-astro": "^1.2.2", "eslint-plugin-html": "^8.1.1", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-json": "^3.1.0", + "eslint-plugin-json": "^4.0.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-only-warn": "npm:@aminya/eslint-plugin-only-warn@^1.2.2", - "eslint-plugin-optimize-regex": "^1.2.1", - "eslint-plugin-react": "^7.34.2", - "eslint-plugin-solid": "^0.14.0", - "eslint-plugin-yaml": "^0.5.0", + "eslint-plugin-optimize-regex": "github:aminya/eslint-plugin-optimize-regex#16f9506ed2", + "eslint-plugin-react": "^7.34.3", + "eslint-plugin-solid": "^0.14.1", + "eslint-plugin-yaml": "^1.0.2", "globify-gitignore": "^1.0.3", "make-synchronous": "^0.1.1", "prettier": "3.3.2", "read-pkg-up": "^7.0.1", "semver": "^7.6.2", - "typescript": "^5.4.5" + "typescript": "^5.4.5", + "typescript-eslint": "^7.13.1" }, "devDependencies": { "@types/babel__core": "^7.20.5", "@types/coffeescript": "^2.5.7", "@types/eslint": "^8.56.10", "@types/eslint-config-prettier": "^6.11.3", + "@types/eslint__js": "^8.42.3", "@types/execa": "^2.0.0", "@types/node": "^20.14.2", "@types/read-pkg-up": "^6.0.0", @@ -65,7 +66,7 @@ "@types/shelljs": "^0.8.15", "eslint-config-atomic": "link:", "execa": "^5.1.1", - "gitly": "^2.5.3", + "gitly": "^3.0.0", "npm-check-updates": "16.14.20", "prettier-config-atomic": "^4.0.0", "shelljs": "^0.8.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 142d52f..e4517fe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,58 +13,55 @@ importers: version: 7.24.7 '@babel/eslint-parser': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7)(eslint@8.57.0) + version: 7.24.7(@babel/core@7.24.7)(eslint@9.5.0) '@babel/plugin-syntax-flow': specifier: ^7.24.7 version: 7.24.7(@babel/core@7.24.7) '@babel/plugin-syntax-jsx': specifier: ^7.24.7 version: 7.24.7(@babel/core@7.24.7) - '@typescript-eslint/eslint-plugin': - specifier: 7.13.0 - version: 7.13.0(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: 7.13.0 - version: 7.13.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.13.1 + version: 7.13.1(eslint@9.5.0)(typescript@5.4.5) anymatch: specifier: ^3.1.3 version: 3.1.3 eslint: - specifier: ^8.57.0 - version: 8.57.0 + specifier: ^9.5.0 + version: 9.5.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.57.0) + version: 9.1.0(eslint@9.5.0) eslint-plugin-astro: - specifier: ^0.34.0 - version: 0.34.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^1.2.2 + version: 1.2.2(eslint@9.5.0)(typescript@5.4.5) eslint-plugin-html: specifier: ^8.1.1 version: 8.1.1 eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0) eslint-plugin-json: - specifier: ^3.1.0 - version: 3.1.0 + specifier: ^4.0.0 + version: 4.0.0 eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.0) + version: 11.1.0(eslint@9.5.0) eslint-plugin-only-warn: specifier: npm:@aminya/eslint-plugin-only-warn@^1.2.2 version: '@aminya/eslint-plugin-only-warn@1.2.2' eslint-plugin-optimize-regex: - specifier: ^1.2.1 - version: 1.2.1 + specifier: github:aminya/eslint-plugin-optimize-regex#16f9506ed2 + version: https://codeload.github.com/aminya/eslint-plugin-optimize-regex/tar.gz/16f9506ed2 eslint-plugin-react: - specifier: ^7.34.2 - version: 7.34.2(eslint@8.57.0) + specifier: ^7.34.3 + version: 7.34.3(eslint@9.5.0) eslint-plugin-solid: - specifier: ^0.14.0 - version: 0.14.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^0.14.1 + version: 0.14.1(eslint@9.5.0)(typescript@5.4.5) eslint-plugin-yaml: - specifier: ^0.5.0 - version: 0.5.0 + specifier: ^1.0.2 + version: 1.0.2 globify-gitignore: specifier: ^1.0.3 version: 1.0.3 @@ -83,16 +80,19 @@ importers: typescript: specifier: ^5.4.5 version: 5.4.5 + typescript-eslint: + specifier: ^7.13.1 + version: 7.13.1(eslint@9.5.0)(typescript@5.4.5) optionalDependencies: coffeescript: specifier: ^1.12.7 version: 1.12.7 eslint-plugin-coffee: specifier: ^0.1.15 - version: 0.1.15(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint@8.57.0) + version: 0.1.15(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint-plugin-react-hooks@4.6.2(eslint@9.5.0))(eslint@9.5.0) eslint-plugin-react-hooks: specifier: ^4.6.2 - version: 4.6.2(eslint@8.57.0) + version: 4.6.2(eslint@9.5.0) devDependencies: '@types/babel__core': specifier: ^7.20.5 @@ -106,6 +106,9 @@ importers: '@types/eslint-config-prettier': specifier: ^6.11.3 version: 6.11.3 + '@types/eslint__js': + specifier: ^8.42.3 + version: 8.42.3 '@types/execa': specifier: ^2.0.0 version: 2.0.0 @@ -128,8 +131,8 @@ importers: specifier: ^5.1.1 version: 5.1.1 gitly: - specifier: ^2.5.3 - version: 2.5.3 + specifier: ^3.0.0 + version: 3.0.0 npm-check-updates: specifier: 16.14.20 version: 16.14.20 @@ -284,34 +287,41 @@ packages: resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.16.0': + resolution: {integrity: sha512-/jmuSd74i4Czf1XXn7wGRWZCuyaUZ330NH1Bek0Pplatt4Sy1S5haN21SCLLdbeKslQ+S0wEJ+++v5YibSi+Lg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.5.0': + resolution: {integrity: sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -459,6 +469,9 @@ packages: '@types/eslint@8.56.10': resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/eslint__js@8.42.3': + resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} + '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -509,8 +522,8 @@ packages: '@types/unist@3.0.2': resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - '@typescript-eslint/eslint-plugin@7.13.0': - resolution: {integrity: sha512-FX1X6AF0w8MdVFLSdqwqN/me2hyhuQg4ykN6ZpVhh1ij/80pTvDKclX1sZB9iqex8SjQfVhwMKs3JtnnMLzG9w==} + '@typescript-eslint/eslint-plugin@7.13.1': + resolution: {integrity: sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -520,8 +533,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.13.0': - resolution: {integrity: sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA==} + '@typescript-eslint/parser@7.13.1': + resolution: {integrity: sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -530,16 +543,16 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@7.13.0': resolution: {integrity: sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.13.0': - resolution: {integrity: sha512-xMEtMzxq9eRkZy48XuxlBFzpVMDurUAfDu5Rz16GouAtXm0TaAoTFzqWUFPPuQYXI/CDaH/Bgx/fk/84t/Bc9A==} + '@typescript-eslint/scope-manager@7.13.1': + resolution: {integrity: sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.13.1': + resolution: {integrity: sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -548,25 +561,25 @@ packages: typescript: optional: true - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@7.13.0': resolution: {integrity: sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/types@7.13.1': + resolution: {integrity: sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@7.13.0': + resolution: {integrity: sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/typescript-estree@7.13.0': - resolution: {integrity: sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==} + '@typescript-eslint/typescript-estree@7.13.1': + resolution: {integrity: sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -574,22 +587,19 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.13.0': - resolution: {integrity: sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==} + '@typescript-eslint/utils@7.13.1': + resolution: {integrity: sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@7.13.0': resolution: {integrity: sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==} engines: {node: ^18.18.0 || >=20.0.0} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@typescript-eslint/visitor-keys@7.13.1': + resolution: {integrity: sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==} + engines: {node: ^18.18.0 || >=20.0.0} abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -714,13 +724,13 @@ packages: ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - astro-eslint-parser@0.17.0: - resolution: {integrity: sha512-yTgzioUI9MKgBF4LxP7YI+uuZLrnXgHDeW4dpa3VqCNbDmPzL7ix93tc0JJIwWGcskoSAAHZZVaBSp8bHyZZZA==} - engines: {node: ^14.18.0 || >=16.0.0} + astro-eslint-parser@1.0.2: + resolution: {integrity: sha512-8hJaCuqxObShWl2wEsnASqh/DbQ2O+S66m0Q3ctJlzBPEQ4pfGwwama3FCjZO3GDLQsjvn1T0v93Vxyu/+5fGw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - astrojs-compiler-sync@0.3.5: - resolution: {integrity: sha512-y420rhIIJ2HHDkYeqKArBHSdJNIIGMztLH90KGIX3zjcJyt/cr9Z2wYA8CP5J1w6KE7xqMh0DAkhfjhNDpQb2Q==} - engines: {node: ^14.18.0 || >=16.0.0} + astrojs-compiler-sync@1.0.0: + resolution: {integrity: sha512-IM6FxpMoBxkGGdKppkFHNQIC9Wge7jspG2MIJff8DOhG41USNJLxJfxRm7wnkTKWlYK5Y1YFFNYr2vUUKkI8sw==} + engines: {node: ^18.18.0 || >=20.9.0} peerDependencies: '@astrojs/compiler': '>=0.27.0' @@ -859,6 +869,10 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -1074,10 +1088,6 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-serializer@0.2.2: resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} @@ -1246,11 +1256,11 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-astro@0.34.0: - resolution: {integrity: sha512-nzw2H4g7HPXPLsWVpGUxuJ/ViVPLI8lM/AaUCJ51qTLTWtaMhvlvoe2d7yIPMFc+7xeCzQdo1POK8eR7NFsdKQ==} - engines: {node: ^14.18.0 || >=16.0.0} + eslint-plugin-astro@1.2.2: + resolution: {integrity: sha512-3UUWo/gwk/YhurYpFKgLJswV33kR9zhtzXk+u2g3WE5Px07wDtWSR3PoyPadHERA4g/9TCCGjsimU/TZyUKxow==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=7.0.0' + eslint: '>=8.57.0' eslint-plugin-coffee@0.1.15: resolution: {integrity: sha512-+qtkIPSc9etYqOODIlENqiRjID/oEoGMAAQJN988Aczy461NIwzaamFY6Fi0QDVVDb2v+OL/StVrk/QmyItfeg==} @@ -1277,9 +1287,9 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-json@3.1.0: - resolution: {integrity: sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==} - engines: {node: '>=12.0'} + eslint-plugin-json@4.0.0: + resolution: {integrity: sha512-l/P3WTzl2HI8PbwsbDIrZ+6jvwQI4TGuz20ReJkG3Y+gZS5ZurTgx+gBmuLpOgiqMyDJWyJ7+GCjevWtNYQcUg==} + engines: {node: '>=18.0'} eslint-plugin-jsx-a11y@6.8.0: resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} @@ -1293,8 +1303,9 @@ packages: peerDependencies: eslint: '>=5.16.0' - eslint-plugin-optimize-regex@1.2.1: - resolution: {integrity: sha512-fUaU7Tj1G/KSTDTABJw4Wp427Rl7RPl9ViYTu1Jrv36fJw4DFhd4elPdXiuYtdPsNsvzn9GcVlKEssGIVjw0UQ==} + eslint-plugin-optimize-regex@https://codeload.github.com/aminya/eslint-plugin-optimize-regex/tar.gz/16f9506ed2: + resolution: {tarball: https://codeload.github.com/aminya/eslint-plugin-optimize-regex/tar.gz/16f9506ed2} + version: 1.2.1 engines: {node: '>=10'} eslint-plugin-react-hooks@4.6.2: @@ -1317,20 +1328,21 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 - eslint-plugin-react@7.34.2: - resolution: {integrity: sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==} + eslint-plugin-react@7.34.3: + resolution: {integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - eslint-plugin-solid@0.14.0: - resolution: {integrity: sha512-EY0GJLOZdLynAyBM39WBLJH2bUftGI0KekyzpfxQEhCTuOhXkIRf648P97mQjME3TDaQQbY+ObVXeE2mjfs4FQ==} + eslint-plugin-solid@0.14.1: + resolution: {integrity: sha512-2bR21xTGhXufK5qqib0h8fQkoZbVm0Xmsgioj+D6ynLXvVq20Atf5F/qyu2WUVNukKJkpd6WsYW0JRWFo2yZvQ==} engines: {node: '>=12.0.0'} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-yaml@0.5.0: - resolution: {integrity: sha512-Z6km4HEiRptSuvzc96nXBND1Vlg57b7pzRmIJOgb9+3PAE+XpaBaiMx+Dg+3Y15tSrEMKCIZ9WoZMwkwUbPI8A==} + eslint-plugin-yaml@1.0.2: + resolution: {integrity: sha512-KMgo8j3dUZgtqh3InQWoUdCB4QYuhyESU6gUGxVOKcW32ABtaqCIDvgBFULRDQurMNdS2qlFGHAD+foXTVh49A==} + engines: {node: '>=12'} eslint-scope@3.7.3: resolution: {integrity: sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==} @@ -1340,9 +1352,9 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.0.1: + resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-utils@1.4.3: resolution: {integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==} @@ -1364,14 +1376,18 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.5.0: + resolution: {integrity: sha512-+NAOZFrW/jFTS3dASCGBxX1pkFD0/fsO+hfAkJ4TyYKwgsXZbqzrw+seCYFCcPCYXvnD67tAnglU7GQTz6kcVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.0.1: + resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} @@ -1423,9 +1439,9 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} @@ -1439,9 +1455,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -1530,9 +1546,9 @@ packages: git-hooks-list@3.1.0: resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} - gitly@2.5.3: - resolution: {integrity: sha512-qaxoDIxe3xlh1NAWulOayVryibgRzHD9E+gVVHbupi5IXa1bKYJi9T5fVXoMd15m0BeRXqXjrMrNOv77EY9Ogw==} - engines: {node: '>=15.x'} + gitly@3.0.0: + resolution: {integrity: sha512-WbWedtix56fVnA0H2x2+fC2SYFcLatplbTa875DSlPe87zNNJqdZzHYTEiFUvcUHwAjMUDINShTrnthm/fZXww==} + engines: {node: '>=20.x'} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -1564,9 +1580,13 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.4.0: + resolution: {integrity: sha512-unnwvMZpv0eDUyjNyh9DH/yxUaRYrEjW/qK4QcdrHg3oO11igUQrCSgODHEqxlKg8v2CD2Sd7UkqqEBoz5U7TQ==} + engines: {node: '>=18'} globals@9.18.0: resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} @@ -2257,11 +2277,20 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} + minizlib@3.0.1: + resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} + engines: {node: '>= 18'} + mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -2944,6 +2973,10 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + tar@7.2.0: + resolution: {integrity: sha512-hctwP0Nb4AB60bj8WQgRYaMOuJYRAPMGiQUAotms5igN8ppfQM+IvjQ5HcKu1MaZh2Wy2KWVTe563Yj8dfc14w==} + engines: {node: '>=18'} + text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -2975,18 +3008,9 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tuf-js@1.1.7: resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2999,10 +3023,6 @@ packages: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -3042,6 +3062,16 @@ packages: resolution: {integrity: sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==} engines: {node: '>= 0.4'} + typescript-eslint@7.13.1: + resolution: {integrity: sha512-pvLEuRs8iS9s3Cnp/Wt//hpK8nKc8hVa3cLljHqzaJJQYP8oys8GUyIFqtlev+2lT/fqMPcyQko+HJ6iYK3nFA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + typescript@5.4.5: resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} @@ -3182,6 +3212,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -3224,11 +3258,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@8.57.0)': + '@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@9.5.0)': dependencies: '@babel/core': 7.24.7 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.0 + eslint: 9.5.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 @@ -3358,19 +3392,27 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.5.0)': dependencies: - eslint: 8.57.0 + eslint: 9.5.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.1': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.16.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.5 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 debug: 4.3.5 - espree: 9.6.1 - globals: 13.24.0 + espree: 10.0.1 + globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -3379,21 +3421,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + '@eslint/js@9.5.0': {} - '@gar/promisify@1.1.3': {} + '@eslint/object-schema@2.1.4': {} - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@gar/promisify@1.1.3': {} '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.0': {} '@isaacs/cliui@8.0.2': dependencies: @@ -3404,6 +3440,10 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -3575,6 +3615,10 @@ snapshots: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 + '@types/eslint__js@8.42.3': + dependencies: + '@types/eslint': 8.56.10 + '@types/estree@1.0.5': {} '@types/execa@2.0.0': @@ -3621,15 +3665,15 @@ snapshots: '@types/unist@3.0.2': {} - '@typescript-eslint/eslint-plugin@7.13.0(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 7.13.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.13.0 - '@typescript-eslint/type-utils': 7.13.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.13.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.13.0 - eslint: 8.57.0 + '@typescript-eslint/parser': 7.13.1(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/type-utils': 7.13.1(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.13.1 + eslint: 9.5.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -3639,63 +3683,64 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 7.13.0 - '@typescript-eslint/types': 7.13.0 - '@typescript-eslint/typescript-estree': 7.13.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.13.0 + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.13.1 debug: 4.3.5 - eslint: 8.57.0 + eslint: 9.5.0 optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@7.13.0': dependencies: '@typescript-eslint/types': 7.13.0 '@typescript-eslint/visitor-keys': 7.13.0 - '@typescript-eslint/type-utils@7.13.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/scope-manager@7.13.1': dependencies: - '@typescript-eslint/typescript-estree': 7.13.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.13.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/visitor-keys': 7.13.1 + + '@typescript-eslint/type-utils@7.13.1(eslint@9.5.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5) + '@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.4.5) debug: 4.3.5 - eslint: 8.57.0 + eslint: 9.5.0 ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@7.13.0': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5)': + '@typescript-eslint/types@7.13.1': {} + + '@typescript-eslint/typescript-estree@7.13.0(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 7.13.0 + '@typescript-eslint/visitor-keys': 7.13.0 debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.4 semver: 7.6.2 - tsutils: 3.21.0(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.13.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@7.13.1(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 7.13.0 - '@typescript-eslint/visitor-keys': 7.13.0 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/visitor-keys': 7.13.1 debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 @@ -3707,28 +3752,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.13.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@7.13.1(eslint@9.5.0)(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.13.0 - '@typescript-eslint/types': 7.13.0 - '@typescript-eslint/typescript-estree': 7.13.0(typescript@5.4.5) - eslint: 8.57.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) + '@typescript-eslint/scope-manager': 7.13.1 + '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5) + eslint: 9.5.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.13.0': dependencies: '@typescript-eslint/types': 7.13.0 eslint-visitor-keys: 3.4.3 - '@ungap/structured-clone@1.2.0': {} + '@typescript-eslint/visitor-keys@7.13.1': + dependencies: + '@typescript-eslint/types': 7.13.1 + eslint-visitor-keys: 3.4.3 abbrev@1.1.1: {} @@ -3883,17 +3926,18 @@ snapshots: ast-types-flow@0.0.8: optional: true - astro-eslint-parser@0.17.0(typescript@5.4.5): + astro-eslint-parser@1.0.2(typescript@5.4.5): dependencies: '@astrojs/compiler': 2.8.0 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - astrojs-compiler-sync: 0.3.5(@astrojs/compiler@2.8.0) + '@typescript-eslint/scope-manager': 7.13.0 + '@typescript-eslint/types': 7.13.0 + '@typescript-eslint/typescript-estree': 7.13.0(typescript@5.4.5) + astrojs-compiler-sync: 1.0.0(@astrojs/compiler@2.8.0) debug: 4.3.5 entities: 4.5.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.0.1 + eslint-visitor-keys: 4.0.0 + espree: 10.0.1 globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.2 @@ -3901,7 +3945,7 @@ snapshots: - supports-color - typescript - astrojs-compiler-sync@0.3.5(@astrojs/compiler@2.8.0): + astrojs-compiler-sync@1.0.0(@astrojs/compiler@2.8.0): dependencies: '@astrojs/compiler': 2.8.0 synckit: 0.9.0 @@ -4119,6 +4163,8 @@ snapshots: chownr@2.0.0: {} + chownr@3.0.0: {} + ci-info@3.9.0: {} clean-stack@2.2.0: {} @@ -4299,10 +4345,6 @@ snapshots: dependencies: esutils: 2.0.3 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-serializer@0.2.2: dependencies: domelementtype: 2.3.0 @@ -4470,35 +4512,35 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.1(eslint@8.57.0): + eslint-compat-utils@0.5.1(eslint@9.5.0): dependencies: - eslint: 8.57.0 + eslint: 9.5.0 semver: 7.6.2 - eslint-config-airbnb-base@14.2.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint@8.57.0): + eslint-config-airbnb-base@14.2.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0))(eslint@9.5.0): dependencies: confusing-browser-globals: 1.0.11 - eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) + eslint: 9.5.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0) object.assign: 4.1.5 object.entries: 1.1.8 optional: true - eslint-config-airbnb@18.2.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.23.2(eslint@8.57.0))(eslint@8.57.0): + eslint-config-airbnb@18.2.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@9.5.0))(eslint-plugin-react-hooks@4.6.2(eslint@9.5.0))(eslint-plugin-react@7.23.2(eslint@9.5.0))(eslint@9.5.0): dependencies: - eslint: 8.57.0 - eslint-config-airbnb-base: 14.2.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) - eslint-plugin-react: 7.23.2(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) + eslint: 9.5.0 + eslint-config-airbnb-base: 14.2.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0))(eslint@9.5.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@9.5.0) + eslint-plugin-react: 7.23.2(eslint@9.5.0) + eslint-plugin-react-hooks: 4.6.2(eslint@9.5.0) object.assign: 4.1.5 object.entries: 1.1.8 optional: true - eslint-config-prettier@9.1.0(eslint@8.57.0): + eslint-config-prettier@9.1.0(eslint@9.5.0): dependencies: - eslint: 8.57.0 + eslint: 9.5.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -4508,45 +4550,45 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@9.5.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.13.0(eslint@8.57.0)(typescript@5.4.5) - eslint: 8.57.0 + '@typescript-eslint/parser': 7.13.1(eslint@9.5.0)(typescript@5.4.5) + eslint: 9.5.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-astro@0.34.0(eslint@8.57.0)(typescript@5.4.5): + eslint-plugin-astro@1.2.2(eslint@9.5.0)(typescript@5.4.5): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) '@jridgewell/sourcemap-codec': 1.4.15 - '@typescript-eslint/types': 5.62.0 - astro-eslint-parser: 0.17.0(typescript@5.4.5) - eslint: 8.57.0 - eslint-compat-utils: 0.5.1(eslint@8.57.0) - globals: 13.24.0 + '@typescript-eslint/types': 7.13.0 + astro-eslint-parser: 1.0.2(typescript@5.4.5) + eslint: 9.5.0 + eslint-compat-utils: 0.5.1(eslint@9.5.0) + globals: 15.4.0 postcss: 8.4.38 postcss-selector-parser: 6.1.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-coffee@0.1.15(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint@8.57.0): + eslint-plugin-coffee@0.1.15(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint-plugin-react-hooks@4.6.2(eslint@9.5.0))(eslint@9.5.0): dependencies: axe-core: 3.5.6 babel-eslint: 7.2.3 babylon: 7.0.0-beta.47 coffeescript: 2.7.0 doctrine: 2.1.0 - eslint: 8.57.0 - eslint-config-airbnb: 18.2.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.23.2(eslint@8.57.0))(eslint@8.57.0) - eslint-config-airbnb-base: 14.2.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) - eslint-plugin-react: 7.23.2(eslint@8.57.0) - eslint-plugin-react-native: 3.11.0(eslint@8.57.0) + eslint: 9.5.0 + eslint-config-airbnb: 18.2.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0))(eslint-plugin-jsx-a11y@6.8.0(eslint@9.5.0))(eslint-plugin-react-hooks@4.6.2(eslint@9.5.0))(eslint-plugin-react@7.23.2(eslint@9.5.0))(eslint@9.5.0) + eslint-config-airbnb-base: 14.2.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0))(eslint@9.5.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@9.5.0) + eslint-plugin-react: 7.23.2(eslint@9.5.0) + eslint-plugin-react-native: 3.11.0(eslint@9.5.0) eslint-scope: 3.7.3 eslint-utils: 1.4.3 eslint-visitor-keys: 1.3.0 @@ -4560,9 +4602,9 @@ snapshots: - supports-color optional: true - eslint-plugin-es@3.0.1(eslint@8.57.0): + eslint-plugin-es@3.0.1(eslint@9.5.0): dependencies: - eslint: 8.57.0 + eslint: 9.5.0 eslint-utils: 2.1.0 regexpp: 3.2.0 @@ -4570,7 +4612,7 @@ snapshots: dependencies: htmlparser2: 9.1.0 - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -4578,9 +4620,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.0 + eslint: 9.5.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@9.5.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -4591,18 +4633,18 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.13.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.13.1(eslint@9.5.0)(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-json@3.1.0: + eslint-plugin-json@4.0.0: dependencies: lodash: 4.17.21 vscode-json-languageservice: 4.2.1 - eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): + eslint-plugin-jsx-a11y@6.8.0(eslint@9.5.0): dependencies: '@babel/runtime': 7.24.7 aria-query: 5.3.0 @@ -4614,7 +4656,7 @@ snapshots: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.19 - eslint: 8.57.0 + eslint: 9.5.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -4623,43 +4665,43 @@ snapshots: object.fromentries: 2.0.8 optional: true - eslint-plugin-node@11.1.0(eslint@8.57.0): + eslint-plugin-node@11.1.0(eslint@9.5.0): dependencies: - eslint: 8.57.0 - eslint-plugin-es: 3.0.1(eslint@8.57.0) + eslint: 9.5.0 + eslint-plugin-es: 3.0.1(eslint@9.5.0) eslint-utils: 2.1.0 ignore: 5.3.1 minimatch: 3.1.2 resolve: 1.22.8 semver: 6.3.1 - eslint-plugin-optimize-regex@1.2.1: + eslint-plugin-optimize-regex@https://codeload.github.com/aminya/eslint-plugin-optimize-regex/tar.gz/16f9506ed2: dependencies: regexp-tree: 0.1.27 - eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + eslint-plugin-react-hooks@4.6.2(eslint@9.5.0): dependencies: - eslint: 8.57.0 + eslint: 9.5.0 optional: true eslint-plugin-react-native-globals@0.1.2: optional: true - eslint-plugin-react-native@3.11.0(eslint@8.57.0): + eslint-plugin-react-native@3.11.0(eslint@9.5.0): dependencies: '@babel/traverse': 7.24.7 - eslint: 8.57.0 + eslint: 9.5.0 eslint-plugin-react-native-globals: 0.1.2 transitivePeerDependencies: - supports-color optional: true - eslint-plugin-react@7.23.2(eslint@8.57.0): + eslint-plugin-react@7.23.2(eslint@9.5.0): dependencies: array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 doctrine: 2.1.0 - eslint: 8.57.0 + eslint: 9.5.0 has: 1.0.4 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -4671,7 +4713,7 @@ snapshots: string.prototype.matchall: 4.0.11 optional: true - eslint-plugin-react@7.34.2(eslint@8.57.0): + eslint-plugin-react@7.34.3(eslint@9.5.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -4680,7 +4722,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.0.19 - eslint: 8.57.0 + eslint: 9.5.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -4693,10 +4735,10 @@ snapshots: semver: 6.3.1 string.prototype.matchall: 4.0.11 - eslint-plugin-solid@0.14.0(eslint@8.57.0)(typescript@5.4.5): + eslint-plugin-solid@0.14.1(eslint@9.5.0)(typescript@5.4.5): dependencies: - '@typescript-eslint/utils': 7.13.0(eslint@8.57.0)(typescript@5.4.5) - eslint: 8.57.0 + '@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.4.5) + eslint: 9.5.0 estraverse: 5.3.0 is-html: 2.0.0 kebab-case: 1.0.2 @@ -4706,7 +4748,7 @@ snapshots: - supports-color - typescript - eslint-plugin-yaml@0.5.0: + eslint-plugin-yaml@1.0.2: dependencies: js-yaml: 4.1.0 jshint: 2.13.6 @@ -4722,7 +4764,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@7.2.2: + eslint-scope@8.0.1: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -4742,38 +4784,36 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint@8.57.0: + eslint-visitor-keys@4.0.0: {} + + eslint@9.5.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) '@eslint-community/regexpp': 4.10.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/config-array': 0.16.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.5.0 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.5 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.0.1 + eslint-visitor-keys: 4.0.0 + espree: 10.0.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 @@ -4785,11 +4825,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@9.6.1: + espree@10.0.1: dependencies: acorn: 8.12.0 acorn-jsx: 5.3.2(acorn@8.12.0) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.0.0 esquery@1.5.0: dependencies: @@ -4841,9 +4881,9 @@ snapshots: dependencies: reusify: 1.0.4 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 fill-range@7.1.1: dependencies: @@ -4859,11 +4899,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 flatted@3.3.1: {} @@ -4946,12 +4985,12 @@ snapshots: git-hooks-list@3.1.0: {} - gitly@2.5.3: + gitly@3.0.0: dependencies: axios: 1.7.2 cross-spawn: 7.0.3 shelljs: 0.8.5 - tar: 6.2.1 + tar: 7.2.0 transitivePeerDependencies: - debug @@ -4994,9 +5033,9 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} + + globals@15.4.0: {} globals@9.18.0: optional: true @@ -5790,8 +5829,15 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 + minizlib@3.0.1: + dependencies: + minipass: 7.1.2 + rimraf: 5.0.7 + mkdirp@1.0.4: {} + mkdirp@3.0.1: {} + ms@2.0.0: optional: true @@ -6590,6 +6636,15 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + tar@7.2.0: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.1 + mkdirp: 3.0.1 + yallist: 5.0.0 + text-table@0.2.0: {} to-fast-properties@1.0.3: @@ -6620,15 +6675,8 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@1.14.1: {} - tslib@2.6.3: {} - tsutils@3.21.0(typescript@5.4.5): - dependencies: - tslib: 1.14.1 - typescript: 5.4.5 - tuf-js@1.1.7: dependencies: '@tufjs/models': 1.0.4 @@ -6643,8 +6691,6 @@ snapshots: type-fest@0.16.0: {} - type-fest@0.20.2: {} - type-fest@0.6.0: {} type-fest@0.8.1: {} @@ -6698,6 +6744,17 @@ snapshots: typed-array-buffer: 1.0.2 typed-array-byte-offset: 1.0.2 + typescript-eslint@7.13.1(eslint@9.5.0)(typescript@5.4.5): + dependencies: + '@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.13.1(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.13.1(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.13.1(eslint@9.5.0)(typescript@5.4.5) + eslint: 9.5.0 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + typescript@5.4.5: {} unbox-primitive@1.0.2: @@ -6874,4 +6931,6 @@ snapshots: yallist@4.0.0: {} + yallist@5.0.0: {} + yocto-queue@0.1.0: {} diff --git a/prettier.config.mjs b/prettier.config.mjs new file mode 100644 index 0000000..f8cf201 --- /dev/null +++ b/prettier.config.mjs @@ -0,0 +1,2 @@ +import config from "prettier-config-atomic" +export default config diff --git a/src/astro.cts b/src/astro.cts index 7e3cd5c..e797816 100644 --- a/src/astro.cts +++ b/src/astro.cts @@ -1,20 +1,30 @@ -import { Linter } from "eslint" +import type { Linter } from "eslint" import { pluginImportAstroRulesExtra } from "./plugin-import-rules.cjs" +import astroPlugin from "eslint-plugin-astro" +import * as onlyWarnPlugin from "eslint-plugin-only-warn" +import astroParser from "astro-eslint-parser" -export const astroConfig: Linter.ConfigOverride = { +export const astroConfig: Linter.FlatConfig[] = [ // astro files - files: ["*.astro"], - parser: "astro-eslint-parser", - parserOptions: { - parser: "@typescript-eslint/parser", - extraFileExtensions: [".astro"], + ...astroPlugin.configs["flat/all"], + { + files: ["*.astro"], + languageOptions: { + parser: astroParser, + parserOptions: { + parser: "@typescript-eslint/parser", + extraFileExtensions: [".astro"], + }, + globals: { + astroHTML: "readonly", + }, + }, + plugins: { + astro: astroPlugin, + "only-warn": onlyWarnPlugin, + }, + rules: { + ...pluginImportAstroRulesExtra, + }, }, - plugins: ["astro", "only-warn"], - extends: ["plugin:astro/recommended"], - rules: { - ...pluginImportAstroRulesExtra - }, - globals: { - astroHTML: "readonly", - }, -} +] diff --git a/src/coffeescript.cts b/src/coffeescript.cts index addb991..4aa6ef3 100644 --- a/src/coffeescript.cts +++ b/src/coffeescript.cts @@ -1,13 +1,24 @@ import { pluginNodeRules } from "./plugin-node-rules.cjs" import { pluginImportRulesExtra } from "./plugin-import-rules.cjs" -import { Linter } from "eslint" +import type { Linter } from "eslint" +import * as eslintPluginCoffee from "eslint-plugin-coffee" +import * as onlyWarnPlugin from "eslint-plugin-only-warn" +import * as nodePlugin from "eslint-plugin-node" +import * as coffeeParser from "eslint-plugin-coffee/parser" -export const coffeeConfig: Linter.ConfigOverride = { +export const coffeeConfig: Linter.FlatConfig = { // CoffeeScript files + ...eslintPluginCoffee.configs!.recommended, + ...eslintPluginCoffee.configs!.prettier, files: ["**/*.coffee"], - parser: "eslint-plugin-coffee", - plugins: ["coffee", "node", "only-warn"], - extends: ["plugin:coffee/eslint-recommended", "plugin:optimize-regex/all", "plugin:coffee/prettier"], + languageOptions: { + parser: coffeeParser, + }, + plugins: { + coffee: eslintPluginCoffee, + node: nodePlugin, + "only-warn": onlyWarnPlugin, + }, rules: { ...pluginNodeRules, ...pluginImportRulesExtra, diff --git a/src/cson.cts b/src/cson.cts index 2861d9c..37352a8 100644 --- a/src/cson.cts +++ b/src/cson.cts @@ -1,7 +1,7 @@ -import { Linter } from "eslint" +import type { Linter } from "eslint" import { coffeeConfig } from "./coffeescript.cjs" -export const csonConfig: Linter.ConfigOverride = { +export const csonConfig: Linter.FlatConfig = { ...coffeeConfig, files: ["**/*.cson"], rules: { diff --git a/src/html.cts b/src/html.cts index 70afc69..8819680 100644 --- a/src/html.cts +++ b/src/html.cts @@ -1,6 +1,7 @@ -import { Linter } from "eslint" +import type { Linter } from "eslint" +import * as htmlPlugin from "eslint-plugin-html" -export const htmlConfig: Linter.ConfigOverride = { +export const htmlConfig: Linter.FlatConfig = { files: [ "**/*.erb", "**/*.handlebars", @@ -16,5 +17,7 @@ export const htmlConfig: Linter.ConfigOverride = { "**/*.xhtml", "**/*.xml", ], - plugins: ["html"], + plugins: { + html: htmlPlugin, + }, } diff --git a/src/index-react.cts b/src/index-react.cts index 0cf1b3d..b05047a 100644 --- a/src/index-react.cts +++ b/src/index-react.cts @@ -1,8 +1,8 @@ -import { Linter } from "eslint" +import type { Linter } from "eslint" import base from "./index.cjs" import { tsConfig } from "./typescript.cjs" -const nonStrictConfig: Linter.Config = { +const nonStrictConfig: Linter.FlatConfig = { ...base, plugins: ["react", ...(base.plugins ?? [])], extends: ["plugin:react/recommended", ...(base.extends ?? [])], diff --git a/src/index-solid.cts b/src/index-solid.cts index e8ec05d..d8adef9 100644 --- a/src/index-solid.cts +++ b/src/index-solid.cts @@ -1,26 +1,24 @@ -import { Linter } from "eslint" +import type { Linter } from "eslint" import base from "./index.cjs" import { tsConfig } from "./typescript.cjs" -const nonStrictConfig: Linter.Config = { +const nonStrictConfig: Linter.FlatConfig[] = [ ...base, - overrides: [ - // JavaScript: - { - files: ["*.js", "*.jsx", "*.mjs", "*.cjs"], - plugins: ["solid", ...(base.plugins ?? [])], - extends: ["plugin:solid/recommended", ...(base.extends ?? [])], - }, - // TypeScript: - { - ...tsConfig, - plugins: ["solid", ...(tsConfig.plugins ?? [])], - extends: ["plugin:solid/typescript", ...(tsConfig.extends ?? [])], - rules: tsConfig.rules, - }, - // The rest is the same - ...(base.overrides?.slice(1) ?? []), - ], -} + // JavaScript: + { + files: ["*.js", "*.jsx", "*.mjs", "*.cjs"], + plugins: ["solid", ...(base.plugins ?? [])], + extends: ["plugin:solid/recommended", ...(base.extends ?? [])], + }, + // TypeScript: + { + ...tsConfig, + plugins: ["solid", ...(tsConfig.plugins ?? [])], + extends: ["plugin:solid/typescript", ...(tsConfig.extends ?? [])], + rules: tsConfig.rules, + }, + // The rest is the same + ...(base.overrides?.slice(1) ?? []), +] export default nonStrictConfig diff --git a/src/index-strict-react.cts b/src/index-strict-react.cts index 9c7e969..15ff83f 100644 --- a/src/index-strict-react.cts +++ b/src/index-strict-react.cts @@ -1,18 +1,18 @@ import nonStrictConfig from "./index-react.cjs" -// remove only-warn from javascript -if ( - nonStrictConfig.plugins !== undefined && - nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn" -) { - nonStrictConfig.plugins.pop() -} +// // remove only-warn from javascript +// if ( +// nonStrictConfig.plugins !== undefined && +// nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn" +// ) { +// nonStrictConfig.plugins.pop() +// } -// remove only-warn from overrides -nonStrictConfig.overrides?.forEach((overrides) => { - if (overrides.plugins !== undefined && overrides.plugins[overrides.plugins.length - 1] === "only-warn") { - overrides.plugins.pop() - } -}) +// // remove only-warn from overrides +// nonStrictConfig.overrides?.forEach((overrides) => { +// if (overrides.plugins !== undefined && overrides.plugins[overrides.plugins.length - 1] === "only-warn") { +// overrides.plugins.pop() +// } +// }) export default nonStrictConfig diff --git a/src/index-strict-solid.cts b/src/index-strict-solid.cts index f2ac87b..65c6ace 100644 --- a/src/index-strict-solid.cts +++ b/src/index-strict-solid.cts @@ -1,18 +1,18 @@ import nonStrictConfig from "./index-solid.cjs" -// remove only-warn from javascript -if ( - nonStrictConfig.plugins !== undefined && - nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn" -) { - nonStrictConfig.plugins.pop() -} +// // remove only-warn from javascript +// if ( +// nonStrictConfig.plugins !== undefined && +// nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn" +// ) { +// nonStrictConfig.plugins.pop() +// } -// remove only-warn from overrides -nonStrictConfig.overrides?.forEach((overrides) => { - if (overrides.plugins !== undefined && overrides.plugins[overrides.plugins.length - 1] === "only-warn") { - overrides.plugins.pop() - } -}) +// // remove only-warn from overrides +// nonStrictConfig.overrides?.forEach((overrides) => { +// if (overrides.plugins !== undefined && overrides.plugins[overrides.plugins.length - 1] === "only-warn") { +// overrides.plugins.pop() +// } +// }) export default nonStrictConfig diff --git a/src/index-strict.cts b/src/index-strict.cts index a9bc76e..2311456 100644 --- a/src/index-strict.cts +++ b/src/index-strict.cts @@ -1,18 +1,18 @@ import nonStrictConfig from "./index.cjs" -// remove only-warn from javascript -if ( - nonStrictConfig.plugins !== undefined && - nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn" -) { - nonStrictConfig.plugins.pop() -} +// // remove only-warn from javascript +// if ( +// nonStrictConfig.plugins !== undefined && +// nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn" +// ) { +// nonStrictConfig.plugins.pop() +// } -// remove only-warn from overrides -nonStrictConfig.overrides?.forEach((overrides) => { - if (overrides.plugins !== undefined && overrides.plugins[overrides.plugins.length - 1] === "only-warn") { - overrides.plugins.pop() - } -}) +// // remove only-warn from overrides +// nonStrictConfig.overrides?.forEach((overrides) => { +// if (overrides.plugins !== undefined && overrides.plugins[overrides.plugins.length - 1] === "only-warn") { +// overrides.plugins.pop() +// } +// }) export default nonStrictConfig diff --git a/src/index.cts b/src/index.cts index 44bcf70..59f71d0 100644 --- a/src/index.cts +++ b/src/index.cts @@ -1,11 +1,10 @@ import { jsConfig } from "./javascript.cjs" import { tsConfig } from "./typescript.cjs" -import { coffeeConfig } from "./coffeescript.cjs" import { jsonConfig } from "./json.cjs" -import { csonConfig } from "./cson.cjs" import { yamlConfig } from "./yaml.cjs" import { htmlConfig } from "./html.cjs" -import { pluginImportSettings } from "./plugin-import-rules.cjs" +// import { pluginImportSettings } from "./plugin-import-rules.cjs" +import pluginOptmizeRegex from "eslint-plugin-optimize-regex" import semverMajor from "semver/functions/major" import { getEslintVersion } from "./eslint-version.cjs" import { astroConfig } from "./astro.cjs" @@ -17,6 +16,9 @@ function maybeAddCoffeeScript() { // check if the eslint version is < 8 // and if coffee installed if (eslintVersion < 8 && require.resolve("eslint-plugin-coffee")) { + const coffeeConfig = require("./coffee.cjs").coffeeConfig + const csonConfig = require("./cson.cjs").csonConfig + // if so try adding the coffee plugin return [coffeeConfig, csonConfig] } @@ -26,23 +28,15 @@ function maybeAddCoffeeScript() { return [] } -const config: Linter.Config = { - root: true, - env: { - atomtest: true, - es6: true, - node: true, - browser: true, - }, - globals: { - atom: "readonly", - }, - ignorePatterns: ["node_modules/"], +const config: Linter.FlatConfig[] = [ ...jsConfig, - overrides: [tsConfig, jsonConfig, yamlConfig, htmlConfig, astroConfig, ...maybeAddCoffeeScript()], - settings: { - ...pluginImportSettings, - }, -} + pluginOptmizeRegex.configs.all, + ...tsConfig, + jsonConfig, + yamlConfig, + htmlConfig, + ...astroConfig, + ...maybeAddCoffeeScript(), +] export default config diff --git a/src/javascript.cts b/src/javascript.cts index aeb3735..ac5d29b 100644 --- a/src/javascript.cts +++ b/src/javascript.cts @@ -1,30 +1,45 @@ import { eslintRulesExtra } from "./official-eslint-rules.cjs" import { pluginNodeRules } from "./plugin-node-rules.cjs" import { pluginImportRulesExtra } from "./plugin-import-rules.cjs" -import { Linter } from "eslint" +import type { Linter } from "eslint" +import * as eslintBabelParser from "@babel/eslint-parser" +import * as nodePlugin from "eslint-plugin-node" +import * as importPlugin from "eslint-plugin-import" +import * as onlyWarnPlugin from "eslint-plugin-only-warn" -export const jsConfig: Linter.Config = { - parser: "@babel/eslint-parser", - parserOptions: { - requireConfigFile: false, - ecmaFeatures: { - jsx: true, +import js from "@eslint/js" + +export const jsConfig: Linter.FlatConfig[] = [ + { + ...js.configs.recommended, + files: ["*.js", "*.mjs", "*.cjs", "*.jsx", "*.flow"], + languageOptions: { + parser: eslintBabelParser, + parserOptions: { + requireConfigFile: false, + ecmaFeatures: { + jsx: true, + }, + babelOptions: { + plugins: ["@babel/plugin-syntax-flow", "@babel/plugin-syntax-jsx"], + }, + ecmaVersion: "latest" as const, + sourceType: "module" as const, + }, + globals: { + atom: "readonly", + }, }, - babelOptions: { - plugins: [ - // enable jsx and flow syntax - "@babel/plugin-syntax-flow", - "@babel/plugin-syntax-jsx", - ], + plugins: { + node: nodePlugin, + import: importPlugin, + "only-warn": onlyWarnPlugin, + }, + rules: { + ...eslintRulesExtra, + ...pluginNodeRules, + ...pluginImportRulesExtra, + ...importPlugin.configs.recommended.rules, }, - ecmaVersion: 2021 as const, - sourceType: "module" as const, - }, - plugins: ["node", "import", "only-warn"], - extends: ["eslint:recommended", "plugin:optimize-regex/all", "plugin:import/recommended", "prettier"], - rules: { - ...eslintRulesExtra, - ...pluginNodeRules, - ...pluginImportRulesExtra, }, -} +] diff --git a/src/json.cts b/src/json.cts index fd91250..4dcb92e 100644 --- a/src/json.cts +++ b/src/json.cts @@ -1,10 +1,15 @@ -import { Linter } from "eslint" +import type { Linter } from "eslint" +import * as jsonPlugin from "eslint-plugin-json" +// import * as prettierPlugin from "eslint-plugin-prettier" -export const jsonConfig: Linter.ConfigOverride = { +export const jsonConfig: Linter.FlatConfig = { // JSON files + ...jsonPlugin.configs!.recommended, + // ...prettierPlugin.configs!.all, files: ["*.json"], - plugins: ["json"], - extends: ["plugin:json/recommended", "prettier"], + plugins: { + json: jsonPlugin, + }, rules: { "json/*": [ "error", diff --git a/src/official-eslint-rules.cts b/src/official-eslint-rules.cts index cbf39bc..b1811b2 100644 --- a/src/official-eslint-rules.cts +++ b/src/official-eslint-rules.cts @@ -1,4 +1,4 @@ -import { Linter } from "eslint" +import type { Linter } from "eslint" /** * The official Eslint rules that are constructive and not included in recommended. The formatting/stylistic rules are diff --git a/src/plugin-import-rules.cts b/src/plugin-import-rules.cts index bebaccf..c2d1f06 100644 --- a/src/plugin-import-rules.cts +++ b/src/plugin-import-rules.cts @@ -1,4 +1,4 @@ -import { Linter } from "eslint" +import type { Linter } from "eslint" export const pluginImportRulesExtra: Linter.RulesRecord = { "import/no-absolute-path": "error", diff --git a/src/plugin-node-rules.cts b/src/plugin-node-rules.cts index 24ced91..f7de59b 100644 --- a/src/plugin-node-rules.cts +++ b/src/plugin-node-rules.cts @@ -1,4 +1,4 @@ -import { Linter } from "eslint" +import type { Linter } from "eslint" export const pluginNodeRules: Linter.RulesRecord = { "node/no-exports-assign": "error", diff --git a/src/types.d.ts b/src/types.d.ts new file mode 100644 index 0000000..9e64352 --- /dev/null +++ b/src/types.d.ts @@ -0,0 +1,80 @@ +// Eslint plugins + +declare module "@eslint/js" { + import * as all from "@types/eslint__js" + export = all +} + +declare module "eslint-plugin-only-warn" { + import type { ESLint } from "eslint" + const plugin: ESLint.Plugin + export = plugin +} + +declare module "eslint-plugin-node" { + import type { ESLint } from "eslint" + const plugin: ESLint.Plugin + export = plugin +} + +declare module "eslint-plugin-import" { + import type { ESLint, Linter } from "eslint" + const plugin: ESLint.Plugin & { + configs: { + recommended: Linter.Config + } + } + export = plugin +} + +declare module "eslint-plugin-coffee" { + import type { ESLint } from "eslint" + const plugin: ESLint.Plugin + export = plugin +} + +declare module "eslint-plugin-html" { + import type { ESLint } from "eslint" + const plugin: ESLint.Plugin + export = plugin +} + +// declare module "eslint-plugin-prettier" { +// import type { ESLint } from "eslint" +// const plugin: ESLint.Plugin +// export = plugin +// } + +declare module "eslint-plugin-json" { + import type { ESLint } from "eslint" + const plugin: ESLint.Plugin + export = plugin +} + +// Eslint parsers + +declare module "@babel/eslint-parser" { + import type { Linter } from "eslint" + const parser: Linter.FlatConfigParserModule + export = parser +} + +declare module "eslint-plugin-coffee/parser" { + import type { Linter } from "eslint" + const parser: Linter.FlatConfigParserModule + export = parser +} + +// Babel plugins + +declare module "@babel/plugin-syntax-flow" { + import type { PluginObj } from "@babel/core" + const plugin: PluginObj + export = plugin +} + +declare module "@babel/plugin-syntax-jsx" { + import type { PluginObj } from "@babel/core" + const plugin: PluginObj + export = plugin +} diff --git a/src/typescript.cts b/src/typescript.cts index 9692a44..cdae2f2 100644 --- a/src/typescript.cts +++ b/src/typescript.cts @@ -1,10 +1,16 @@ +import js from "@eslint/js" +import * as typeScriptPlugin from "typescript-eslint" +import type { Linter } from "eslint" +import * as importPlugin from "eslint-plugin-import" +import * as nodePlugin from "eslint-plugin-node" +import * as onlyWarnPlugin from "eslint-plugin-only-warn" +import type { GlobifiedEntry } from "globify-gitignore" +import makeSynchronous from "make-synchronous" import { eslintRulesExtra } from "./official-eslint-rules.cjs" import { pluginImportRulesExtra, pluginImportTypeScriptRulesExtra } from "./plugin-import-rules.cjs" import { pluginNodeRules } from "./plugin-node-rules.cjs" -import makeSynchronous from "make-synchronous" import { findOneFile } from "./utils.cjs" -import type { GlobifiedEntry } from "globify-gitignore" -import { Linter } from "eslint" +import * as eslintTypeScriptParser from "@typescript-eslint/parser" const tsFiles = ["**/*.tsx", "**/*.ts", "**/*.mts", "**/*.cts"] const project = ["**/tsconfig.json", "!**/node_modules/**/tsconfig.json"] @@ -114,29 +120,32 @@ const pluginTypeScriptProjectRules: Linter.RulesRecord = disableProjectBasedRule "@typescript-eslint/switch-exhaustiveness-check": "warn", } -export const tsConfig: Linter.ConfigOverride = { +export const tsConfig: Linter.FlatConfig[] = [ // TypeScript files - files: tsFiles, - parser: "@typescript-eslint/parser", - parserOptions: { - project, - createDefaultProgram: true, // otherwise Eslint will error if a ts file is not covered by one of the tsconfig.json files - }, - plugins: ["@typescript-eslint", "node", "import", "only-warn"], - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:optimize-regex/all", - "plugin:import/recommended", - "prettier", - ], - rules: { - ...javaScriptRules(), - ...pluginTypeScriptRulesExtra, - ...pluginTypeScriptProjectRules, - ...pluginNodeRules, - ...pluginImportRulesExtra, - ...pluginImportTypeScriptRulesExtra, + js.configs.recommended, + ...typeScriptPlugin.configs.recommended as Linter.FlatConfig[], + { + files: tsFiles, + languageOptions: { + parser: eslintTypeScriptParser, + parserOptions: { + project, + createDefaultProgram: true, // otherwise Eslint will error if a ts file is not covered by one of the tsconfig.json files + }, + }, + plugins: { + node: nodePlugin, + import: importPlugin, + "only-warn": onlyWarnPlugin, + }, + rules: { + ...javaScriptRules(), + ...pluginTypeScriptRulesExtra, + ...pluginTypeScriptProjectRules, + ...pluginNodeRules, + ...pluginImportRulesExtra, + ...pluginImportTypeScriptRulesExtra, + ...importPlugin.configs.recommended.rules, + }, }, -} +] diff --git a/src/yaml.cts b/src/yaml.cts index 74eee63..fe46ee9 100644 --- a/src/yaml.cts +++ b/src/yaml.cts @@ -1,8 +1,4 @@ -import { Linter } from "eslint" +import type { Linter } from "eslint" +import yamlPlugin from "eslint-plugin-yaml" -export const yamlConfig: Linter.ConfigOverride = { - // YAML files - files: ["*.yaml", "*.yml"], - plugins: ["yaml", "only-warn"], - extends: ["plugin:yaml/recommended"], -} +export const yamlConfig: Linter.FlatConfig = yamlPlugin.configs.recommended diff --git a/tsconfig.json b/tsconfig.json index fca9da0..b1a0cbc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,8 +4,8 @@ "target": "ES2022", "lib": ["ES2022"], "importHelpers": false, - "module": "CommonJS", - "moduleResolution": "node", + "module": "NodeNext", + "moduleResolution": "NodeNext", "allowJs": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true,