From daf9f13da86394ce40358a71f2a4f04deda45d84 Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 8 Dec 2024 00:40:41 +0700 Subject: [PATCH 1/7] chore: upgrade eslint version and relevant packages --- package.json | 29 +- pnpm-lock.yaml | 802 +++++++++++++++++++++++-------------------------- 2 files changed, 393 insertions(+), 438 deletions(-) diff --git a/package.json b/package.json index bd142350..5a14b424 100644 --- a/package.json +++ b/package.json @@ -44,29 +44,26 @@ "execa": "^8.0.1" }, "devDependencies": { + "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@octokit/types": "^13.0.0", "@release-it/conventional-changelog": "^9.0.0", "@types/eslint": "^8.44.3", - "@typescript-eslint/eslint-plugin": "^7.0.0", - "@typescript-eslint/parser": "^8.0.0", "@vercel/ncc": "^0.38.0", "@vitest/coverage-v8": "^0.34.6", "console-fail-test": "^0.5.0", "cspell": "^8.0.0", - "eslint": "^8.50.0", + "eslint": "^9.16.0", "eslint-plugin-deprecation": "^3.0.0", - "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-jsdoc": "^50.0.0", - "eslint-plugin-jsonc": "^2.9.0", - "eslint-plugin-markdown": "^3.0.1", - "eslint-plugin-n": "^17.0.0", - "eslint-plugin-no-only-tests": "^3.1.0", - "eslint-plugin-perfectionist": "^2.1.0", - "eslint-plugin-regexp": "^2.0.0", - "eslint-plugin-vitest": "^0.4.0", - "eslint-plugin-yml": "^1.9.0", + "eslint-plugin-jsdoc": "^50.6.0", + "eslint-plugin-jsonc": "^2.18.2", + "eslint-plugin-markdown": "^5.1.0", + "eslint-plugin-n": "^17.14.0", + "eslint-plugin-no-only-tests": "^3.3.0", + "eslint-plugin-perfectionist": "^4.2.0", + "eslint-plugin-regexp": "^2.7.0", + "eslint-plugin-vitest": "^0.5.4", + "eslint-plugin-yml": "^1.16.0", "husky": "^9.0.0", - "jsonc-eslint-parser": "^2.3.0", "knip": "^5.0.0", "lint-staged": "^15.0.0", "markdownlint": "^0.36.0", @@ -80,8 +77,8 @@ "sentences-per-line": "^0.2.1", "should-semantic-release": "^0.3.0", "typescript": "^5.2.2", - "vitest": "^0.34.6", - "yaml-eslint-parser": "^1.2.2" + "typescript-eslint": "^8.17.0", + "vitest": "^0.34.6" }, "packageManager": "pnpm@9.14.2", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ebe75cc0..b5744d2d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,6 +21,9 @@ importers: specifier: ^8.0.1 version: 8.0.1 devDependencies: + '@eslint-community/eslint-plugin-eslint-comments': + specifier: ^4.4.1 + version: 4.4.1(eslint@9.16.0(jiti@2.4.0)) '@octokit/types': specifier: ^13.0.0 version: 13.6.1 @@ -30,12 +33,6 @@ importers: '@types/eslint': specifier: ^8.44.3 version: 8.56.12 - '@typescript-eslint/eslint-plugin': - specifier: ^7.0.0 - version: 7.2.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/parser': - specifier: ^8.0.0 - version: 8.15.0(eslint@8.57.1)(typescript@5.6.3) '@vercel/ncc': specifier: ^0.38.0 version: 0.38.3 @@ -49,47 +46,41 @@ importers: specifier: ^8.0.0 version: 8.16.0 eslint: - specifier: ^8.50.0 - version: 8.57.1 + specifier: ^9.16.0 + version: 9.16.0(jiti@2.4.0) eslint-plugin-deprecation: specifier: ^3.0.0 - version: 3.0.0(eslint@8.57.1)(typescript@5.6.3) - eslint-plugin-eslint-comments: - specifier: ^3.2.0 - version: 3.2.0(eslint@8.57.1) + version: 3.0.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) eslint-plugin-jsdoc: - specifier: ^50.0.0 - version: 50.5.0(eslint@8.57.1) + specifier: ^50.6.0 + version: 50.6.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-jsonc: - specifier: ^2.9.0 - version: 2.18.2(eslint@8.57.1) + specifier: ^2.18.2 + version: 2.18.2(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-markdown: - specifier: ^3.0.1 - version: 3.0.1(eslint@8.57.1) + specifier: ^5.1.0 + version: 5.1.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-n: - specifier: ^17.0.0 - version: 17.14.0(eslint@8.57.1) + specifier: ^17.14.0 + version: 17.14.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-no-only-tests: - specifier: ^3.1.0 + specifier: ^3.3.0 version: 3.3.0 eslint-plugin-perfectionist: - specifier: ^2.1.0 - version: 2.11.0(eslint@8.57.1)(typescript@5.6.3) + specifier: ^4.2.0 + version: 4.2.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) eslint-plugin-regexp: - specifier: ^2.0.0 - version: 2.7.0(eslint@8.57.1) + specifier: ^2.7.0 + version: 2.7.0(eslint@9.16.0(jiti@2.4.0)) eslint-plugin-vitest: - specifier: ^0.4.0 - version: 0.4.1(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)(vitest@0.34.6) + specifier: ^0.5.4 + version: 0.5.4(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@0.34.6) eslint-plugin-yml: - specifier: ^1.9.0 - version: 1.15.0(eslint@8.57.1) + specifier: ^1.16.0 + version: 1.16.0(eslint@9.16.0(jiti@2.4.0)) husky: specifier: ^9.0.0 version: 9.1.7 - jsonc-eslint-parser: - specifier: ^2.3.0 - version: 2.4.0 knip: specifier: ^5.0.0 version: 5.37.1(@types/node@22.9.1)(typescript@5.6.3) @@ -129,12 +120,12 @@ importers: typescript: specifier: ^5.2.2 version: 5.6.3 + typescript-eslint: + specifier: ^8.17.0 + version: 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) vitest: specifier: ^0.34.6 version: 0.34.6 - yaml-eslint-parser: - specifier: ^1.2.2 - version: 1.2.3 packages: @@ -554,6 +545,12 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-plugin-eslint-comments@4.4.1': + resolution: {integrity: sha512-lb/Z/MzbTf7CaVYM9WCFNQZ4L1yi3ev2fsFPF99h31ljhSEyUoyEsKsNWiU+qD1glbYTDJdqgyaLKtyTkkqtuQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -564,30 +561,53 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 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.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/core@0.9.1': + resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.16.0': + resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.4': + resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/busboy@2.1.1': resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} '@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.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} '@hutson/parse-repository-url@5.0.0': resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==} @@ -771,8 +791,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/mdast@3.0.13': - resolution: {integrity: sha512-HjiGiWedR0DVFkeNljpa6Lv4/IZU1+30VY5d747K7lBudFc3R0Ibr6yJ9lN3BE28VnZyDfLF/VB1Ql1ZIbKrmg==} + '@types/mdast@3.0.15': + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} @@ -786,22 +806,22 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/unist@2.0.8': - resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==} + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@typescript-eslint/eslint-plugin@7.2.0': - resolution: {integrity: sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/eslint-plugin@8.17.0': + resolution: {integrity: sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@8.15.0': - resolution: {integrity: sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==} + '@typescript-eslint/parser@8.17.0': + resolution: {integrity: sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -810,42 +830,34 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.13.0': - resolution: {integrity: sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==} + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@7.2.0': - resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/scope-manager@8.15.0': - resolution: {integrity: sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==} + '@typescript-eslint/scope-manager@8.17.0': + resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.2.0': - resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/type-utils@8.17.0': + resolution: {integrity: sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/types@7.13.0': - resolution: {integrity: sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==} + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@7.2.0': - resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@8.15.0': - resolution: {integrity: sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==} + '@typescript-eslint/types@8.17.0': + resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.13.0': - resolution: {integrity: sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==} + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -853,17 +865,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.2.0': - resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@8.15.0': - resolution: {integrity: sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==} + '@typescript-eslint/typescript-estree@8.17.0': + resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -871,33 +874,30 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.13.0': - resolution: {integrity: sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==} + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@7.2.0': - resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/utils@8.17.0': + resolution: {integrity: sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/visitor-keys@7.13.0': - resolution: {integrity: sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==} + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@7.2.0': - resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/visitor-keys@8.15.0': - resolution: {integrity: sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==} + '@typescript-eslint/visitor-keys@8.17.0': + resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vercel/ncc@0.38.3': resolution: {integrity: sha512-rnK6hJBS6mwc+Bkab+PGPs9OiS0i/3kdTO+CkI8V0/VrW3vmz7O2Pxjw/owOlmo6PKEIxRSeZKv/kuL9itnpYA==} hasBin: true @@ -1357,6 +1357,15 @@ packages: supports-color: optional: true + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} @@ -1414,10 +1423,6 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -1479,10 +1484,6 @@ packages: resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} engines: {node: '>=12'} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -1498,8 +1499,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-compat-utils@0.6.3: - resolution: {integrity: sha512-9IDdksh5pUYP2ZLi7mOdROxVjLY8gY2qKxprmrJ/5Dyqud7M/IFKxF3o0VLlRhITm1pK6Fk7NiBxE39M/VlUcw==} + eslint-compat-utils@0.6.4: + resolution: {integrity: sha512-/u+GQt8NMfXO8w17QendT4gvO5acfxQsAKirAt0LVxDnr2N8YLCVbregaNc/Yhp7NM128DwCaRvr8PLDfeNkQw==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' @@ -1527,14 +1528,8 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-eslint-comments@3.2.0: - resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} - engines: {node: '>=6.5.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-jsdoc@50.5.0: - resolution: {integrity: sha512-xTkshfZrUbiSHXBwZ/9d5ulZ2OcHXxSvm/NPo494H/hadLRJwOq5PMV0EUpMqsb9V+kQo+9BAgi6Z7aJtdBp2A==} + eslint-plugin-jsdoc@50.6.0: + resolution: {integrity: sha512-tCNp4fR79Le3dYTPB0dKEv7yFyvGkUCa+Z3yuTrrNGGOxBlXo9Pn0PEgroOZikUQOGjxoGMVKNjrOHcYEdfszg==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -1545,11 +1540,11 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-plugin-markdown@3.0.1: - resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-plugin-markdown@5.1.0: + resolution: {integrity: sha512-SJeyKko1K6GwI0AN6xeCDToXDkfKZfXcexA6B+O2Wr2btUS9GrC+YgwSyVli5DJnctUHjFXcQ2cqTaAmVoLi2A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: '>=8' eslint-plugin-n@17.14.0: resolution: {integrity: sha512-maxPLMEA0rPmRpoOlxEclKng4UpDe+N5BJS4t24I3UKnN109Qcivnfs37KMy84G0af3bxjog5lKctP5ObsvcTA==} @@ -1561,23 +1556,11 @@ packages: resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} engines: {node: '>=5.0.0'} - eslint-plugin-perfectionist@2.11.0: - resolution: {integrity: sha512-XrtBtiu5rbQv88gl+1e2RQud9te9luYNvKIgM9emttQ2zutHPzY/AQUucwxscDKV4qlTkvLTxjOFvxqeDpPorw==} + eslint-plugin-perfectionist@4.2.0: + resolution: {integrity: sha512-hEMFx5xfSc/0OLZXJhSaLUKkFxATuRf4yL2iVfxEcxkkb17DfoLZY9eH960dPSw5uB7o+4avqP3rtkNp1Vwo7w==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - astro-eslint-parser: ^1.0.2 eslint: '>=8.0.0' - svelte: '>=3.0.0' - svelte-eslint-parser: ^0.37.0 - vue-eslint-parser: '>=9.0.0' - peerDependenciesMeta: - astro-eslint-parser: - optional: true - svelte: - optional: true - svelte-eslint-parser: - optional: true - vue-eslint-parser: - optional: true eslint-plugin-regexp@2.7.0: resolution: {integrity: sha512-U8oZI77SBtH8U3ulZ05iu0qEzIizyEDXd+BWHvyVxTOjGwcDcvy/kEpgFG4DYca2ByRLiVPFZ2GeH7j1pdvZTA==} @@ -1585,12 +1568,12 @@ packages: peerDependencies: eslint: '>=8.44.0' - eslint-plugin-vitest@0.4.1: - resolution: {integrity: sha512-+PnZ2u/BS+f5FiuHXz4zKsHPcMKHie+K+1Uvu/x91ovkCMEOJqEI8E9Tw1Wzx2QRz4MHOBHYf1ypO8N1K0aNAA==} + eslint-plugin-vitest@0.5.4: + resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': '*' - eslint: '>=8.0.0' + eslint: ^8.57.0 || ^9.0.0 vitest: '*' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': @@ -1598,15 +1581,15 @@ packages: vitest: optional: true - eslint-plugin-yml@1.15.0: - resolution: {integrity: sha512-leC8APYVOsKyWUlvRwVhewytK5wS70BfMqIaUplFstRfzCoVp0YoEroV4cUEvQrBj93tQ3M9LcjO/ewr6D4kjA==} + eslint-plugin-yml@1.16.0: + resolution: {integrity: sha512-t4MNCetPjTn18/fUDlQ/wKkcYjnuLYKChBrZ0qUaNqRigVqChHWzTP8SrfFi5s4keX3vdlkWRSu8zHJMdKwxWQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.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.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} @@ -1616,14 +1599,18 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + eslint@9.16.0: + resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.6.1: @@ -1698,9 +1685,9 @@ packages: picomatch: optional: true - 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'} file-entry-cache@9.1.0: resolution: {integrity: sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==} @@ -1722,9 +1709,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'} flat-cache@5.0.0: resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} @@ -1826,12 +1813,12 @@ 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.12.0: - resolution: {integrity: sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==} + globals@15.13.0: + resolution: {integrity: sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==} engines: {node: '>=18'} globby@11.1.0: @@ -2049,10 +2036,6 @@ packages: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-path-inside@4.0.0: resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} engines: {node: '>=12'} @@ -2415,10 +2398,6 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -2449,12 +2428,13 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + natural-orderby@5.0.0: + resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} + engines: {node: '>=18'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -2589,8 +2569,8 @@ packages: parse-entities@2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - parse-imports@2.1.1: - resolution: {integrity: sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==} + parse-imports@2.2.1: + resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==} engines: {node: '>= 18'} parse-json@5.2.0: @@ -2832,11 +2812,6 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -2975,6 +2950,9 @@ packages: spdx-license-ids@3.0.18: resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -3083,9 +3061,6 @@ packages: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -3116,8 +3091,8 @@ packages: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -3141,10 +3116,6 @@ packages: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} 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.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -3168,6 +3139,16 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + typescript-eslint@8.17.0: + resolution: {integrity: sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} @@ -3764,19 +3745,37 @@ snapshots: '@esbuild/win32-x64@0.18.20': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': + '@eslint-community/eslint-plugin-eslint-comments@4.4.1(eslint@9.16.0(jiti@2.4.0))': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.16.0(jiti@2.4.0) + ignore: 5.3.2 + + '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(jiti@2.4.0))': dependencies: - eslint: 8.57.1 + eslint: 9.16.0(jiti@2.4.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.19.1': + dependencies: + '@eslint/object-schema': 2.1.5 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.9.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.7 - espree: 9.6.1 - globals: 13.24.0 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -3785,21 +3784,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} + '@eslint/js@9.16.0': {} + + '@eslint/object-schema@2.1.5': {} + + '@eslint/plugin-kit@0.2.4': + dependencies: + levn: 0.4.1 '@fastify/busboy@2.1.1': {} - '@humanwhocodes/config-array@0.13.0': + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} '@hutson/parse-repository-url@5.0.0': {} @@ -3987,9 +3993,9 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/mdast@3.0.13': + '@types/mdast@3.0.15': dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 '@types/minimist@1.2.5': {} @@ -4001,161 +4007,128 @@ snapshots: '@types/semver@7.5.8': {} - '@types/unist@2.0.8': {} + '@types/unist@2.0.11': {} - '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.15.0(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/utils': 7.2.0(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.7 - eslint: 8.57.1 + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.17.0 + eslint: 9.16.0(jiti@2.4.0) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) + ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3)': + '@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 8.15.0 - '@typescript-eslint/types': 8.15.0 - '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.15.0 - debug: 4.3.7 - eslint: 8.57.1 + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.17.0 + debug: 4.4.0 + eslint: 9.16.0(jiti@2.4.0) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.13.0': + '@typescript-eslint/scope-manager@7.18.0': dependencies: - '@typescript-eslint/types': 7.13.0 - '@typescript-eslint/visitor-keys': 7.13.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@7.2.0': + '@typescript-eslint/scope-manager@8.17.0': dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/visitor-keys': 8.17.0 - '@typescript-eslint/scope-manager@8.15.0': + '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.15.0 - '@typescript-eslint/visitor-keys': 8.15.0 - - '@typescript-eslint/type-utils@7.2.0(eslint@8.57.1)(typescript@5.6.3)': - dependencies: - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3) - '@typescript-eslint/utils': 7.2.0(eslint@8.57.1)(typescript@5.6.3) - debug: 4.3.7 - eslint: 8.57.1 - ts-api-utils: 1.3.0(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + debug: 4.4.0 + eslint: 9.16.0(jiti@2.4.0) + ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.13.0': {} + '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@7.2.0': {} + '@typescript-eslint/types@8.17.0': {} - '@typescript-eslint/types@8.15.0': {} - - '@typescript-eslint/typescript-estree@7.13.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 7.13.0 - '@typescript-eslint/visitor-keys': 7.13.0 - debug: 4.3.7 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) + ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.2.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.17.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.7 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.15.0(typescript@5.6.3)': - dependencies: - '@typescript-eslint/types': 8.15.0 - '@typescript-eslint/visitor-keys': 8.15.0 - debug: 4.3.7 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/visitor-keys': 8.17.0 + debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) + ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.13.0(eslint@8.57.1)(typescript@5.6.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 7.13.0 - '@typescript-eslint/types': 7.13.0 - '@typescript-eslint/typescript-estree': 7.13.0(typescript@5.6.3) - eslint: 8.57.1 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.2.0(eslint@8.57.1)(typescript@5.6.3)': + '@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3) - eslint: 8.57.1 - semver: 7.6.3 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) + optionalDependencies: + typescript: 5.6.3 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/visitor-keys@7.13.0': + '@typescript-eslint/visitor-keys@7.18.0': dependencies: - '@typescript-eslint/types': 7.13.0 + '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.2.0': + '@typescript-eslint/visitor-keys@8.17.0': dependencies: - '@typescript-eslint/types': 7.2.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@8.15.0': - dependencies: - '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/types': 8.17.0 eslint-visitor-keys: 4.2.0 - '@ungap/structured-clone@1.2.0': {} - '@vercel/ncc@0.38.3': {} '@vitest/coverage-v8@0.34.6(vitest@0.34.6)': @@ -4220,7 +4193,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -4680,6 +4653,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.0: + dependencies: + ms: 2.1.3 + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 @@ -4726,10 +4703,6 @@ snapshots: dependencies: path-type: 4.0.0 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dot-prop@5.3.0: dependencies: is-obj: 2.0.0 @@ -4800,8 +4773,6 @@ snapshots: escape-goat@4.0.0: {} - escape-string-regexp@1.0.5: {} - escape-string-regexp@4.0.0: {} escodegen@2.1.0: @@ -4812,68 +4783,62 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@8.57.1): + eslint-compat-utils@0.5.1(eslint@9.16.0(jiti@2.4.0)): dependencies: - eslint: 8.57.1 + eslint: 9.16.0(jiti@2.4.0) semver: 7.6.3 - eslint-compat-utils@0.6.3(eslint@8.57.1): + eslint-compat-utils@0.6.4(eslint@9.16.0(jiti@2.4.0)): dependencies: - eslint: 8.57.1 + eslint: 9.16.0(jiti@2.4.0) semver: 7.6.3 - eslint-json-compat-utils@0.2.1(eslint@8.57.1)(jsonc-eslint-parser@2.4.0): + eslint-json-compat-utils@0.2.1(eslint@9.16.0(jiti@2.4.0))(jsonc-eslint-parser@2.4.0): dependencies: - eslint: 8.57.1 + eslint: 9.16.0(jiti@2.4.0) esquery: 1.6.0 jsonc-eslint-parser: 2.4.0 - eslint-plugin-deprecation@3.0.0(eslint@8.57.1)(typescript@5.6.3): + eslint-plugin-deprecation@3.0.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3): dependencies: - '@typescript-eslint/utils': 7.13.0(eslint@8.57.1)(typescript@5.6.3) - eslint: 8.57.1 - ts-api-utils: 1.3.0(typescript@5.6.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) + ts-api-utils: 1.4.3(typescript@5.6.3) tslib: 2.8.1 typescript: 5.6.3 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@8.57.1): + eslint-plugin-es-x@7.8.0(eslint@9.16.0(jiti@2.4.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) '@eslint-community/regexpp': 4.12.1 - eslint: 8.57.1 - eslint-compat-utils: 0.5.1(eslint@8.57.1) + eslint: 9.16.0(jiti@2.4.0) + eslint-compat-utils: 0.5.1(eslint@9.16.0(jiti@2.4.0)) - eslint-plugin-eslint-comments@3.2.0(eslint@8.57.1): - dependencies: - escape-string-regexp: 1.0.5 - eslint: 8.57.1 - ignore: 5.3.2 - - eslint-plugin-jsdoc@50.5.0(eslint@8.57.1): + eslint-plugin-jsdoc@50.6.0(eslint@9.16.0(jiti@2.4.0)): dependencies: '@es-joy/jsdoccomment': 0.49.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.7 + debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint: 8.57.1 - espree: 10.1.0 + eslint: 9.16.0(jiti@2.4.0) + espree: 10.3.0 esquery: 1.6.0 - parse-imports: 2.1.1 + parse-imports: 2.2.1 semver: 7.6.3 spdx-expression-parse: 4.0.0 synckit: 0.9.2 transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.18.2(eslint@8.57.1): + eslint-plugin-jsonc@2.18.2(eslint@9.16.0(jiti@2.4.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - eslint: 8.57.1 - eslint-compat-utils: 0.6.3(eslint@8.57.1) - eslint-json-compat-utils: 0.2.1(eslint@8.57.1)(jsonc-eslint-parser@2.4.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) + eslint: 9.16.0(jiti@2.4.0) + eslint-compat-utils: 0.6.4(eslint@9.16.0(jiti@2.4.0)) + eslint-json-compat-utils: 0.2.1(eslint@9.16.0(jiti@2.4.0))(jsonc-eslint-parser@2.4.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 @@ -4882,71 +4847,70 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-markdown@3.0.1(eslint@8.57.1): + eslint-plugin-markdown@5.1.0(eslint@9.16.0(jiti@2.4.0)): dependencies: - eslint: 8.57.1 + eslint: 9.16.0(jiti@2.4.0) mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.14.0(eslint@8.57.1): + eslint-plugin-n@17.14.0(eslint@9.16.0(jiti@2.4.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) enhanced-resolve: 5.17.1 - eslint: 8.57.1 - eslint-plugin-es-x: 7.8.0(eslint@8.57.1) + eslint: 9.16.0(jiti@2.4.0) + eslint-plugin-es-x: 7.8.0(eslint@9.16.0(jiti@2.4.0)) get-tsconfig: 4.8.1 - globals: 15.12.0 + globals: 15.13.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.6.3 eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@2.11.0(eslint@8.57.1)(typescript@5.6.3): + eslint-plugin-perfectionist@4.2.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3): dependencies: - '@typescript-eslint/utils': 7.13.0(eslint@8.57.1)(typescript@5.6.3) - eslint: 8.57.1 - minimatch: 9.0.5 - natural-compare-lite: 1.4.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) + natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-regexp@2.7.0(eslint@8.57.1): + eslint-plugin-regexp@2.7.0(eslint@9.16.0(jiti@2.4.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) '@eslint-community/regexpp': 4.12.1 comment-parser: 1.4.1 - eslint: 8.57.1 + eslint: 9.16.0(jiti@2.4.0) jsdoc-type-pratt-parser: 4.1.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-vitest@0.4.1(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)(vitest@0.34.6): + eslint-plugin-vitest@0.5.4(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@0.34.6): dependencies: - '@typescript-eslint/utils': 7.13.0(eslint@8.57.1)(typescript@5.6.3) - eslint: 8.57.1 + '@typescript-eslint/utils': 7.18.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) vitest: 0.34.6 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-yml@1.15.0(eslint@8.57.1): + eslint-plugin-yml@1.16.0(eslint@9.16.0(jiti@2.4.0)): dependencies: - debug: 4.3.7 - eslint: 8.57.1 - eslint-compat-utils: 0.5.1(eslint@8.57.1) + debug: 4.4.0 + eslint: 9.16.0(jiti@2.4.0) + eslint-compat-utils: 0.6.4(eslint@9.16.0(jiti@2.4.0)) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - eslint-scope@7.2.2: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -4955,50 +4919,48 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@8.57.1: + eslint@9.16.0(jiti@2.4.0): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.9.1 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.16.0 + '@eslint/plugin-kit': 0.2.4 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7 - doctrine: 3.0.0 + debug: 4.4.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.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.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.2 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 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 + optionalDependencies: + jiti: 2.4.0 transitivePeerDependencies: - supports-color - espree@10.1.0: + espree@10.3.0: dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) @@ -5092,9 +5054,9 @@ snapshots: optionalDependencies: picomatch: 4.0.2 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 file-entry-cache@9.1.0: dependencies: @@ -5116,11 +5078,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.2 keyv: 4.5.4 - rimraf: 3.0.2 flat-cache@5.0.0: dependencies: @@ -5167,7 +5128,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.7 + debug: 4.4.0 fs-extra: 11.2.0 transitivePeerDependencies: - supports-color @@ -5231,11 +5192,9 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} - globals@15.12.0: {} + globals@15.13.0: {} globby@11.1.0: dependencies: @@ -5295,14 +5254,14 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -5424,8 +5383,6 @@ snapshots: is-obj@2.0.0: {} - is-path-inside@3.0.3: {} - is-path-inside@4.0.0: {} is-plain-obj@1.1.0: {} @@ -5727,7 +5684,7 @@ snapshots: mdast-util-from-markdown@0.8.5: dependencies: - '@types/mdast': 3.0.13 + '@types/mdast': 3.0.15 mdast-util-to-string: 2.0.0 micromark: 2.11.4 parse-entities: 2.0.0 @@ -5766,7 +5723,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.3.7 + debug: 4.4.0 parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -5798,10 +5755,6 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -5829,10 +5782,10 @@ snapshots: nanoid@3.3.6: {} - natural-compare-lite@1.4.0: {} - natural-compare@1.4.0: {} + natural-orderby@5.0.0: {} + neo-async@2.6.2: {} netmask@2.0.2: {} @@ -5989,7 +5942,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 - debug: 4.3.7 + debug: 4.4.0 get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 @@ -6029,7 +5982,7 @@ snapshots: is-decimal: 1.0.4 is-hexadecimal: 1.0.4 - parse-imports@2.1.1: + parse-imports@2.2.1: dependencies: es-module-lexer: 1.5.4 slashes: 3.0.12 @@ -6293,10 +6246,6 @@ snapshots: rfdc@1.4.1: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - rollup@3.29.4: optionalDependencies: fsevents: 2.3.3 @@ -6384,7 +6333,7 @@ snapshots: socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.7 + debug: 4.4.0 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -6426,10 +6375,12 @@ snapshots: spdx-expression-parse@4.0.0: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 spdx-license-ids@3.0.18: {} + spdx-license-ids@3.0.20: {} + split2@4.2.0: {} sprintf-js@1.0.3: {} @@ -6521,8 +6472,6 @@ snapshots: text-extensions@2.4.0: {} - text-table@0.2.0: {} - through@2.3.8: {} tinybench@2.5.1: {} @@ -6546,7 +6495,7 @@ snapshots: trim-newlines@3.0.1: {} - ts-api-utils@1.3.0(typescript@5.6.3): + ts-api-utils@1.4.3(typescript@5.6.3): dependencies: typescript: 5.6.3 @@ -6562,8 +6511,6 @@ snapshots: type-fest@0.18.1: {} - type-fest@0.20.2: {} - type-fest@0.21.3: {} type-fest@0.6.0: {} @@ -6576,6 +6523,17 @@ snapshots: typedarray@0.0.6: {} + typescript-eslint@8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + typescript@5.6.3: {} uc.micro@1.0.6: {} @@ -6597,7 +6555,7 @@ snapshots: unist-util-stringify-position@2.0.3: dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 universal-user-agent@6.0.1: {} From 7b73c2954e29c520f26983e2db4a51aed439ffd9 Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 8 Dec 2024 00:41:48 +0700 Subject: [PATCH 2/7] chore: rename .eslintrc to eslint.config.cjs --- .eslintrc.cjs => eslint.config.cjs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .eslintrc.cjs => eslint.config.cjs (100%) diff --git a/.eslintrc.cjs b/eslint.config.cjs similarity index 100% rename from .eslintrc.cjs rename to eslint.config.cjs From ad7223d550093aa4bdb2cb24eb13d84e49127747 Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 8 Dec 2024 00:50:30 +0700 Subject: [PATCH 3/7] feat: convert to flat config --- .eslintignore | 6 - README.md | 2 +- eslint.config.cjs | 286 +++++++++++++++++-------------- package.json | 6 +- pnpm-lock.yaml | 41 +++++ src/action/runReleaseItAction.ts | 2 +- src/index.test.ts | 4 +- src/index.ts | 4 +- src/steps/runReleaseIt.ts | 2 +- 9 files changed, 208 insertions(+), 145 deletions(-) delete mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 6706edc9..00000000 --- a/.eslintignore +++ /dev/null @@ -1,6 +0,0 @@ -!.* -coverage -dist -lib -node_modules -pnpm-lock.yaml diff --git a/README.md b/README.md index b1df09c3..67c21872 100644 --- a/README.md +++ b/README.md @@ -83,9 +83,9 @@ import { releaseItAction } from "release-it-action"; await releaseItAction({ branch: "main", + githubToken: process.env.GITHUB_TOKEN, gitUserEmail: "your@email.com", gitUserName: "YourUsername", - githubToken: process.env.GITHUB_TOKEN, npmToken: process.env.NPM_TOKEN, owner: "YourUsername", repo: "your-repository", diff --git a/eslint.config.cjs b/eslint.config.cjs index c749d8fb..a59f84e9 100644 --- a/eslint.config.cjs +++ b/eslint.config.cjs @@ -1,146 +1,170 @@ -/** @type {import("@types/eslint").Linter.Config} */ -module.exports = { - env: { - es2022: true, - node: true, +const { fixupPluginRules } = require("@eslint/compat"); +const eslint = require("@eslint/js"); +const stylisticTs = require("@stylistic/eslint-plugin-ts"); +const deprecationPlugin = require("eslint-plugin-deprecation"); +const jsdocPlugin = require("eslint-plugin-jsdoc"); +const jsoncPlugin = require("eslint-plugin-jsonc"); +const markdownPlugin = require("eslint-plugin-markdown"); +const nPlugin = require("eslint-plugin-n"); +const noOnlyTestsPlugin = require("eslint-plugin-no-only-tests"); +const perfectionistPlugin = require("eslint-plugin-perfectionist"); +const regexpPlugin = require("eslint-plugin-regexp"); +const vitestPlugin = require("eslint-plugin-vitest"); +const ymlPlugin = require("eslint-plugin-yml"); +const globals = require("globals"); +const tseslint = require("typescript-eslint"); + +module.exports = tseslint.config( + // Global ignores + { + ignores: [ + "!.*", + "coverage", + "dist", + "lib", + "node_modules", + "pnpm-lock.yaml", + ], }, - extends: [ - "eslint:recommended", - "plugin:eslint-comments/recommended", - "plugin:n/recommended", - "plugin:perfectionist/recommended-natural", - "plugin:regexp/recommended", - "plugin:vitest/recommended", - ], - overrides: [ - { - extends: ["plugin:markdown/recommended"], - files: ["**/*.md"], - processor: "markdown/markdown", - }, - { - extends: [ - "plugin:jsdoc/recommended-typescript-error", - "plugin:@typescript-eslint/strict", - "plugin:@typescript-eslint/stylistic", - ], - files: ["**/*.ts"], - parser: "@typescript-eslint/parser", - rules: { - // These off-by-default rules work well for this repo and we like them on. - "jsdoc/informative-docs": "error", - "logical-assignment-operators": [ - "error", - "always", - { enforceForIfStatements: true }, - ], - "operator-assignment": "error", - // These on-by-default rules don't work well for this repo and we like them off. - "jsdoc/require-jsdoc": "off", - "jsdoc/require-param": "off", - "jsdoc/require-property": "off", - "jsdoc/require-returns": "off", - "n/no-missing-import": "off", + eslint.configs.recommended, + nPlugin.configs["flat/recommended"], + perfectionistPlugin.configs["recommended-natural"], + regexpPlugin.configs["flat/recommended"], + vitestPlugin.configs.recommended, + markdownPlugin.configs.recommended, + + { + files: ["**/*.{js,cjs,mjs,ts,cts,mts}"], + languageOptions: { + globals: { + ...globals.es2022, + ...globals.node, }, + parser: tseslint.parser, }, - { - excludedFiles: ["**/*.md/*.ts"], - extends: [ - "plugin:@typescript-eslint/strict-type-checked", - "plugin:@typescript-eslint/stylistic-type-checked", + linterOptions: { + reportUnusedDisableDirectives: true, + }, + plugins: { + "@stylistic/ts": stylisticTs, + "@typescript-eslint": tseslint.plugin, + deprecation: fixupPluginRules(deprecationPlugin), + jsdoc: jsdocPlugin, + "no-only-tests": noOnlyTestsPlugin, + }, + rules: { + // These off/less-strict-by-default rules work well for this repo and we like them on. + "@typescript-eslint/no-unused-vars": ["error", { caughtErrors: "all" }], + "no-only-tests/no-only-tests": "error", + + // These on-by-default rules don't work well for this repo and we like them off. + "no-case-declarations": "off", + "no-constant-condition": "off", + "no-inner-declarations": "off", + "no-mixed-spaces-and-tabs": "off", + + // Stylistic concerns that don't interfere with Prettier + "@stylistic/ts/padding-line-between-statements": [ + "error", + { blankLine: "always", next: "*", prev: "block-like" }, ], - files: ["**/*.ts"], - parser: "@typescript-eslint/parser", + "perfectionist/sort-objects": [ + "error", + { + order: "asc", + partitionByComment: true, + type: "natural", + }, + ], + }, + }, + { + extends: [ + jsdocPlugin.configs["flat/recommended-typescript-error"], + tseslint.configs.strict, + tseslint.configs.stylistic, + ], + files: ["**/*.ts"], + rules: { + // These off-by-default rules work well for this repo and we like them on. + "jsdoc/informative-docs": "error", + "logical-assignment-operators": [ + "error", + "always", + { enforceForIfStatements: true }, + ], + "operator-assignment": "error", + + // These on-by-default rules don't work well for this repo and we like them off. + "jsdoc/require-jsdoc": "off", + "jsdoc/require-param": "off", + "jsdoc/require-property": "off", + "jsdoc/require-returns": "off", + "n/no-missing-import": "off", + }, + }, + { + extends: [ + tseslint.configs.strictTypeChecked, + tseslint.configs.stylisticTypeChecked, + ], + files: ["**/*.ts"], + ignores: ["**/*.md/*.ts"], + languageOptions: { parserOptions: { project: "./tsconfig.eslint.json", }, - rules: { - // These off-by-default rules work well for this repo and we like them on. - "deprecation/deprecation": "error", - }, }, - { - excludedFiles: ["package.json"], - extends: ["plugin:jsonc/recommended-with-json"], - files: ["*.json", "*.jsonc"], - parser: "jsonc-eslint-parser", - rules: { - "jsonc/sort-keys": "error", - }, + rules: { + // These off-by-default rules work well for this repo and we like them on. + "deprecation/deprecation": "error", }, - { - files: ["*.jsonc"], - rules: { - "jsonc/no-comments": "off", - }, + }, + { + extends: [jsoncPlugin.configs["flat/recommended-with-json"]], + files: ["*.json", "*.jsonc"], + ignores: ["package.json"], + rules: { + "jsonc/sort-keys": "error", }, - { - files: "**/*.test.ts", - rules: { - // These on-by-default rules aren't useful in test files. - "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/no-unsafe-call": "off", - }, + }, + { + files: ["*.jsonc"], + rules: { + "jsonc/no-comments": "off", }, - { - extends: ["plugin:yml/standard", "plugin:yml/prettier"], - files: ["**/*.{yml,yaml}"], - parser: "yaml-eslint-parser", - rules: { - "yml/file-extension": ["error", { extension: "yml" }], - "yml/sort-keys": [ - "error", - { - order: { type: "asc" }, - pathPattern: "^.*$", - }, - ], - "yml/sort-sequence-values": [ - "error", - { - order: { type: "asc" }, - pathPattern: "^.*$", - }, - ], - }, + }, + { + files: ["**/*.test.ts"], + rules: { + // These on-by-default rules aren't useful in test files. + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-call": "off", }, - ], - parser: "@typescript-eslint/parser", - plugins: [ - "@typescript-eslint", - "deprecation", - "jsdoc", - "no-only-tests", - "perfectionist", - "regexp", - "vitest", - ], - reportUnusedDisableDirectives: true, - root: true, - rules: { - // These off/less-strict-by-default rules work well for this repo and we like them on. - "@typescript-eslint/no-unused-vars": ["error", { caughtErrors: "all" }], - "no-only-tests/no-only-tests": "error", - - // These on-by-default rules don't work well for this repo and we like them off. - "no-case-declarations": "off", - "no-constant-condition": "off", - "no-inner-declarations": "off", - "no-mixed-spaces-and-tabs": "off", - - // Stylistic concerns that don't interfere with Prettier - "@typescript-eslint/padding-line-between-statements": [ - "error", - { blankLine: "always", next: "*", prev: "block-like" }, - ], - "perfectionist/sort-objects": [ - "error", - { - order: "asc", - "partition-by-comment": true, - type: "natural", - }, + }, + { + extends: [ + ymlPlugin.configs["flat/standard"], + ymlPlugin.configs["flat/prettier"], ], + files: ["**/*.{yml,yaml}"], + rules: { + "yml/file-extension": ["error", { extension: "yml" }], + "yml/sort-keys": [ + "error", + { + order: { type: "asc" }, + pathPattern: "^.*$", + }, + ], + "yml/sort-sequence-values": [ + "error", + { + order: { type: "asc" }, + pathPattern: "^.*$", + }, + ], + }, }, -}; +); diff --git a/package.json b/package.json index 5a14b424..99490b40 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "build": "tsc", "build:release": "ncc build src/action/index.ts -o dist", "format": "prettier \"**/*\" --ignore-unknown", - "lint": "eslint . .*js --max-warnings 0 --report-unused-disable-directives", + "lint": "eslint . --max-warnings 0", "lint:knip": "knip", "lint:md": "markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line", "lint:package-json": "npmPkgJsonLint ./package.json", @@ -45,8 +45,11 @@ }, "devDependencies": { "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", + "@eslint/compat": "^1.2.4", + "@eslint/js": "^9.16.0", "@octokit/types": "^13.0.0", "@release-it/conventional-changelog": "^9.0.0", + "@stylistic/eslint-plugin-ts": "^2.11.0", "@types/eslint": "^8.44.3", "@vercel/ncc": "^0.38.0", "@vitest/coverage-v8": "^0.34.6", @@ -63,6 +66,7 @@ "eslint-plugin-regexp": "^2.7.0", "eslint-plugin-vitest": "^0.5.4", "eslint-plugin-yml": "^1.16.0", + "globals": "^15.13.0", "husky": "^9.0.0", "knip": "^5.0.0", "lint-staged": "^15.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5744d2d..3b71de4c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,12 +24,21 @@ importers: '@eslint-community/eslint-plugin-eslint-comments': specifier: ^4.4.1 version: 4.4.1(eslint@9.16.0(jiti@2.4.0)) + '@eslint/compat': + specifier: ^1.2.4 + version: 1.2.4(eslint@9.16.0(jiti@2.4.0)) + '@eslint/js': + specifier: ^9.16.0 + version: 9.16.0 '@octokit/types': specifier: ^13.0.0 version: 13.6.1 '@release-it/conventional-changelog': specifier: ^9.0.0 version: 9.0.3(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)(release-it@17.10.0(typescript@5.6.3)) + '@stylistic/eslint-plugin-ts': + specifier: ^2.11.0 + version: 2.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) '@types/eslint': specifier: ^8.44.3 version: 8.56.12 @@ -78,6 +87,9 @@ importers: eslint-plugin-yml: specifier: ^1.16.0 version: 1.16.0(eslint@9.16.0(jiti@2.4.0)) + globals: + specifier: ^15.13.0 + version: 15.13.0 husky: specifier: ^9.0.0 version: 9.1.7 @@ -561,6 +573,15 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/compat@1.2.4': + resolution: {integrity: sha512-S8ZdQj/N69YAtuqFt7653jwcvuUj131+6qGLUyDqfDg1OIoBQ66OCuXC473YQfO2AaxITTutiRQiDwoo7ZLYyg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.10.0 + peerDependenciesMeta: + eslint: + optional: true + '@eslint/config-array@0.19.1': resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -770,6 +791,12 @@ packages: engines: {node: '>=8.10'} hasBin: true + '@stylistic/eslint-plugin-ts@2.11.0': + resolution: {integrity: sha512-ZBxnfSjzxUiwCibbVCeYCYwZw+P5xaQw+pNA8B8uR42fdMQIOhUstXjJuS2nTHoW5CF4+vGSxbL4gklI8WxhyA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -3758,6 +3785,10 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} + '@eslint/compat@1.2.4(eslint@9.16.0(jiti@2.4.0))': + optionalDependencies: + eslint: 9.16.0(jiti@2.4.0) + '@eslint/config-array@0.19.1': dependencies: '@eslint/object-schema': 2.1.5 @@ -3974,6 +4005,16 @@ snapshots: ignore: 5.3.2 p-map: 4.0.0 + '@stylistic/eslint-plugin-ts@2.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': + dependencies: + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + transitivePeerDependencies: + - supports-color + - typescript + '@tootallnate/quickjs-emscripten@0.23.0': {} '@types/chai-subset@1.3.3': diff --git a/src/action/runReleaseItAction.ts b/src/action/runReleaseItAction.ts index 45c34fb0..602b1c12 100644 --- a/src/action/runReleaseItAction.ts +++ b/src/action/runReleaseItAction.ts @@ -9,11 +9,11 @@ export async function runReleaseItAction(context: typeof github.context) { await releaseItAction({ branch: core.getInput("branch") || "main", + githubToken: getTokenInput("github-token", "GITHUB_TOKEN"), gitUserEmail: core.getInput("git-user-email") || `${gitUserName}@users.noreply.github.com`, gitUserName, - githubToken: getTokenInput("github-token", "GITHUB_TOKEN"), npmToken: getTokenInput("npm-token", "NPM_TOKEN"), owner: context.repo.owner, repo: context.repo.repo, diff --git a/src/index.test.ts b/src/index.test.ts index b12589c2..96eabbf1 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from "vitest"; -import { ReleaseItActionOptions, releaseItAction } from "./index.js"; +import { releaseItAction, ReleaseItActionOptions } from "./index.js"; const mock$$ = vi.fn(); @@ -58,9 +58,9 @@ vi.mock("./tryCatchInfoAction.js", () => ({ const mockOptions = { branch: "mock-branch", + githubToken: "mock-githubToken", gitUserEmail: "mock-gitUserEmail", gitUserName: "mock-gitUserName", - githubToken: "mock-githubToken", npmToken: "mock-npmToken", owner: "mock-owner", repo: "mock-repo", diff --git a/src/index.ts b/src/index.ts index 32f9058a..78f5ef03 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,9 +10,9 @@ import { tryCatchInfoAction } from "./tryCatchInfoAction.js"; export interface ReleaseItActionOptions { branch: string; + githubToken: string; gitUserEmail: string; gitUserName: string; - githubToken: string; npmToken: string; owner: string; repo: string; @@ -21,9 +21,9 @@ export interface ReleaseItActionOptions { export async function releaseItAction({ branch, + githubToken, gitUserEmail, gitUserName, - githubToken, npmToken, owner, repo, diff --git a/src/steps/runReleaseIt.ts b/src/steps/runReleaseIt.ts index 47c90061..848c82da 100644 --- a/src/steps/runReleaseIt.ts +++ b/src/steps/runReleaseIt.ts @@ -8,7 +8,7 @@ export async function runReleaseIt() { try { const { exitCode, stderr } = await $$`npx release-it --verbose`; if (exitCode || stderr) { - throw new Error(stderr || `Exit code ${exitCode}.`); + throw new Error(stderr || `Exit code ${exitCode.toString()}.`); } } catch (error) { core.error(`Error running release-it: ${error as string}`); From 051f79843a321c7566e42a060172c00d493962c6 Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 8 Dec 2024 01:11:36 +0700 Subject: [PATCH 4/7] feat: remove eslint-plugin-deprecation, follow pattern eslint from create-typescript-app --- eslint.config.cjs | 54 +++++++++++++++++++---------------------------- package.json | 2 -- pnpm-lock.yaml | 35 ------------------------------ 3 files changed, 22 insertions(+), 69 deletions(-) diff --git a/eslint.config.cjs b/eslint.config.cjs index a59f84e9..c5198da1 100644 --- a/eslint.config.cjs +++ b/eslint.config.cjs @@ -1,16 +1,15 @@ -const { fixupPluginRules } = require("@eslint/compat"); +const comments = require("@eslint-community/eslint-plugin-eslint-comments/configs"); const eslint = require("@eslint/js"); const stylisticTs = require("@stylistic/eslint-plugin-ts"); -const deprecationPlugin = require("eslint-plugin-deprecation"); -const jsdocPlugin = require("eslint-plugin-jsdoc"); -const jsoncPlugin = require("eslint-plugin-jsonc"); -const markdownPlugin = require("eslint-plugin-markdown"); -const nPlugin = require("eslint-plugin-n"); -const noOnlyTestsPlugin = require("eslint-plugin-no-only-tests"); -const perfectionistPlugin = require("eslint-plugin-perfectionist"); -const regexpPlugin = require("eslint-plugin-regexp"); -const vitestPlugin = require("eslint-plugin-vitest"); -const ymlPlugin = require("eslint-plugin-yml"); +const jsdoc = require("eslint-plugin-jsdoc"); +const jsonc = require("eslint-plugin-jsonc"); +const markdown = require("eslint-plugin-markdown"); +const n = require("eslint-plugin-n"); +const noOnlyTests = require("eslint-plugin-no-only-tests"); +const perfectionist = require("eslint-plugin-perfectionist"); +const regexp = require("eslint-plugin-regexp"); +const vitest = require("eslint-plugin-vitest"); +const yml = require("eslint-plugin-yml"); const globals = require("globals"); const tseslint = require("typescript-eslint"); @@ -26,13 +25,15 @@ module.exports = tseslint.config( "pnpm-lock.yaml", ], }, + { linterOptions: { reportUnusedDisableDirectives: "error" } }, eslint.configs.recommended, - nPlugin.configs["flat/recommended"], - perfectionistPlugin.configs["recommended-natural"], - regexpPlugin.configs["flat/recommended"], - vitestPlugin.configs.recommended, - markdownPlugin.configs.recommended, + comments.recommended, + n.configs["flat/recommended"], + perfectionist.configs["recommended-natural"], + regexp.configs["flat/recommended"], + vitest.configs.recommended, + markdown.configs.recommended, { files: ["**/*.{js,cjs,mjs,ts,cts,mts}"], @@ -43,15 +44,11 @@ module.exports = tseslint.config( }, parser: tseslint.parser, }, - linterOptions: { - reportUnusedDisableDirectives: true, - }, plugins: { "@stylistic/ts": stylisticTs, "@typescript-eslint": tseslint.plugin, - deprecation: fixupPluginRules(deprecationPlugin), - jsdoc: jsdocPlugin, - "no-only-tests": noOnlyTestsPlugin, + jsdoc: jsdoc, + "no-only-tests": noOnlyTests, }, rules: { // These off/less-strict-by-default rules work well for this repo and we like them on. @@ -81,7 +78,7 @@ module.exports = tseslint.config( }, { extends: [ - jsdocPlugin.configs["flat/recommended-typescript-error"], + jsdoc.configs["flat/recommended-typescript-error"], tseslint.configs.strict, tseslint.configs.stylistic, ], @@ -116,13 +113,9 @@ module.exports = tseslint.config( project: "./tsconfig.eslint.json", }, }, - rules: { - // These off-by-default rules work well for this repo and we like them on. - "deprecation/deprecation": "error", - }, }, { - extends: [jsoncPlugin.configs["flat/recommended-with-json"]], + extends: [jsonc.configs["flat/recommended-with-json"]], files: ["*.json", "*.jsonc"], ignores: ["package.json"], rules: { @@ -144,10 +137,7 @@ module.exports = tseslint.config( }, }, { - extends: [ - ymlPlugin.configs["flat/standard"], - ymlPlugin.configs["flat/prettier"], - ], + extends: [yml.configs["flat/standard"], yml.configs["flat/prettier"]], files: ["**/*.{yml,yaml}"], rules: { "yml/file-extension": ["error", { extension: "yml" }], diff --git a/package.json b/package.json index 99490b40..20023907 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,6 @@ }, "devDependencies": { "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", - "@eslint/compat": "^1.2.4", "@eslint/js": "^9.16.0", "@octokit/types": "^13.0.0", "@release-it/conventional-changelog": "^9.0.0", @@ -56,7 +55,6 @@ "console-fail-test": "^0.5.0", "cspell": "^8.0.0", "eslint": "^9.16.0", - "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-jsdoc": "^50.6.0", "eslint-plugin-jsonc": "^2.18.2", "eslint-plugin-markdown": "^5.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b71de4c..bc31c53d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,9 +24,6 @@ importers: '@eslint-community/eslint-plugin-eslint-comments': specifier: ^4.4.1 version: 4.4.1(eslint@9.16.0(jiti@2.4.0)) - '@eslint/compat': - specifier: ^1.2.4 - version: 1.2.4(eslint@9.16.0(jiti@2.4.0)) '@eslint/js': specifier: ^9.16.0 version: 9.16.0 @@ -57,9 +54,6 @@ importers: eslint: specifier: ^9.16.0 version: 9.16.0(jiti@2.4.0) - eslint-plugin-deprecation: - specifier: ^3.0.0 - version: 3.0.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) eslint-plugin-jsdoc: specifier: ^50.6.0 version: 50.6.0(eslint@9.16.0(jiti@2.4.0)) @@ -573,15 +567,6 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/compat@1.2.4': - resolution: {integrity: sha512-S8ZdQj/N69YAtuqFt7653jwcvuUj131+6qGLUyDqfDg1OIoBQ66OCuXC473YQfO2AaxITTutiRQiDwoo7ZLYyg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^9.10.0 - peerDependenciesMeta: - eslint: - optional: true - '@eslint/config-array@0.19.1': resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1543,12 +1528,6 @@ packages: '@eslint/json': optional: true - eslint-plugin-deprecation@3.0.0: - resolution: {integrity: sha512-JuVLdNg/uf0Adjg2tpTyYoYaMbwQNn/c78P1HcccokvhtRphgnRjZDKmhlxbxYptppex03zO76f97DD/yQHv7A==} - peerDependencies: - eslint: ^8.0.0 - typescript: ^4.2.4 || ^5.0.0 - eslint-plugin-es-x@7.8.0: resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3785,10 +3764,6 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.2.4(eslint@9.16.0(jiti@2.4.0))': - optionalDependencies: - eslint: 9.16.0(jiti@2.4.0) - '@eslint/config-array@0.19.1': dependencies: '@eslint/object-schema': 2.1.5 @@ -4840,16 +4815,6 @@ snapshots: esquery: 1.6.0 jsonc-eslint-parser: 2.4.0 - eslint-plugin-deprecation@3.0.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3): - dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) - eslint: 9.16.0(jiti@2.4.0) - ts-api-utils: 1.4.3(typescript@5.6.3) - tslib: 2.8.1 - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.16.0(jiti@2.4.0)): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) From ca3f720f5e250f11cfb239aa2f3ebcac78747c0a Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 8 Dec 2024 08:26:03 +0700 Subject: [PATCH 5/7] chore: run pnpm dudupe and remove redundant package --- package.json | 1 - pnpm-lock.yaml | 32 ++++++++------------------------ 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 20023907..7e83787e 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,6 @@ "@octokit/types": "^13.0.0", "@release-it/conventional-changelog": "^9.0.0", "@stylistic/eslint-plugin-ts": "^2.11.0", - "@types/eslint": "^8.44.3", "@vercel/ncc": "^0.38.0", "@vitest/coverage-v8": "^0.34.6", "console-fail-test": "^0.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc31c53d..5beb6f90 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,9 +36,6 @@ importers: '@stylistic/eslint-plugin-ts': specifier: ^2.11.0 version: 2.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) - '@types/eslint': - specifier: ^8.44.3 - version: 8.56.12 '@vercel/ncc': specifier: ^0.38.0 version: 0.38.3 @@ -791,9 +788,6 @@ packages: '@types/chai@4.3.6': resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==} - '@types/eslint@8.56.12': - resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} - '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -2953,9 +2947,6 @@ packages: spdx-expression-parse@4.0.0: resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} - spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} - spdx-license-ids@3.0.20: resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} @@ -3458,7 +3449,7 @@ snapshots: '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 - debug: 4.3.7 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -3998,11 +3989,6 @@ snapshots: '@types/chai@4.3.6': {} - '@types/eslint@8.56.12': - dependencies: - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - '@types/estree@1.0.6': {} '@types/istanbul-lib-coverage@2.0.4': {} @@ -5439,7 +5425,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.7 + debug: 4.4.0 istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -5830,7 +5816,7 @@ snapshots: ajv-errors: 1.0.1(ajv@6.12.6) chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.6.3) - debug: 4.3.7 + debug: 4.4.0 globby: 11.1.0 ignore: 5.3.2 is-plain-obj: 3.0.0 @@ -6100,7 +6086,7 @@ snapshots: proxy-agent@6.4.0: dependencies: agent-base: 7.1.1 - debug: 4.3.7 + debug: 4.4.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 lru-cache: 7.18.3 @@ -6369,22 +6355,20 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 spdx-expression-parse@4.0.0: dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.20 - spdx-license-ids@3.0.18: {} - spdx-license-ids@3.0.20: {} split2@4.2.0: {} @@ -6604,7 +6588,7 @@ snapshots: vite-node@0.34.6(@types/node@22.9.1): dependencies: cac: 6.7.14 - debug: 4.3.7 + debug: 4.4.0 mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.1.1 @@ -6642,7 +6626,7 @@ snapshots: acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.10 - debug: 4.3.7 + debug: 4.4.0 local-pkg: 0.4.3 magic-string: 0.30.4 pathe: 1.1.1 From 53901b6ee577991e3c5e35d8993cd5fd57b2e6f5 Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 8 Dec 2024 08:28:24 +0700 Subject: [PATCH 6/7] feat: migrate commonjs to esm, add tseslint to cpell --- cspell.json | 3 ++- eslint.config.cjs => eslint.config.js | 30 +++++++++++++-------------- 2 files changed, 17 insertions(+), 16 deletions(-) rename eslint.config.cjs => eslint.config.js (81%) diff --git a/cspell.json b/cspell.json index 2296ebeb..7ad435e4 100644 --- a/cspell.json +++ b/cspell.json @@ -20,6 +20,7 @@ "npmjs", "npmpackagejsonlintrc", "outro", - "packagejson" + "packagejson", + "tseslint" ] } diff --git a/eslint.config.cjs b/eslint.config.js similarity index 81% rename from eslint.config.cjs rename to eslint.config.js index c5198da1..358da101 100644 --- a/eslint.config.cjs +++ b/eslint.config.js @@ -1,19 +1,19 @@ -const comments = require("@eslint-community/eslint-plugin-eslint-comments/configs"); -const eslint = require("@eslint/js"); -const stylisticTs = require("@stylistic/eslint-plugin-ts"); -const jsdoc = require("eslint-plugin-jsdoc"); -const jsonc = require("eslint-plugin-jsonc"); -const markdown = require("eslint-plugin-markdown"); -const n = require("eslint-plugin-n"); -const noOnlyTests = require("eslint-plugin-no-only-tests"); -const perfectionist = require("eslint-plugin-perfectionist"); -const regexp = require("eslint-plugin-regexp"); -const vitest = require("eslint-plugin-vitest"); -const yml = require("eslint-plugin-yml"); -const globals = require("globals"); -const tseslint = require("typescript-eslint"); +import comments from "@eslint-community/eslint-plugin-eslint-comments/configs"; +import eslint from "@eslint/js"; +import stylisticTs from "@stylistic/eslint-plugin-ts"; +import jsdoc from "eslint-plugin-jsdoc"; +import jsonc from "eslint-plugin-jsonc"; +import markdown from "eslint-plugin-markdown"; +import n from "eslint-plugin-n"; +import noOnlyTests from "eslint-plugin-no-only-tests"; +import perfectionist from "eslint-plugin-perfectionist"; +import regexp from "eslint-plugin-regexp"; +import vitest from "eslint-plugin-vitest"; +import yml from "eslint-plugin-yml"; +import globals from "globals"; +import tseslint from "typescript-eslint"; -module.exports = tseslint.config( +export default tseslint.config( // Global ignores { ignores: [ From e6087817443eb21feb267ec0f8919d8e594782b5 Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 8 Dec 2024 16:30:57 +0700 Subject: [PATCH 7/7] feat: follow eslint.config.js of create-typescript-app --- eslint.config.js | 134 +++--------- package.json | 9 +- pnpm-lock.yaml | 302 +++++++++++++++----------- src/steps/deleteProtections.test.ts | 4 +- src/steps/fetchProtections.test.ts | 4 +- src/steps/recreateProtections.test.ts | 6 +- tsconfig.eslint.json | 1 - 7 files changed, 217 insertions(+), 243 deletions(-) delete mode 100644 tsconfig.eslint.json diff --git a/eslint.config.js b/eslint.config.js index 358da101..0c5f4c36 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,159 +1,97 @@ import comments from "@eslint-community/eslint-plugin-eslint-comments/configs"; import eslint from "@eslint/js"; -import stylisticTs from "@stylistic/eslint-plugin-ts"; +import vitest from "@vitest/eslint-plugin"; import jsdoc from "eslint-plugin-jsdoc"; import jsonc from "eslint-plugin-jsonc"; import markdown from "eslint-plugin-markdown"; import n from "eslint-plugin-n"; -import noOnlyTests from "eslint-plugin-no-only-tests"; +import packageJson from "eslint-plugin-package-json/configs/recommended"; import perfectionist from "eslint-plugin-perfectionist"; -import regexp from "eslint-plugin-regexp"; -import vitest from "eslint-plugin-vitest"; +import * as regexp from "eslint-plugin-regexp"; import yml from "eslint-plugin-yml"; -import globals from "globals"; import tseslint from "typescript-eslint"; export default tseslint.config( - // Global ignores { ignores: [ - "!.*", + "**/*.snap", "coverage", - "dist", "lib", "node_modules", "pnpm-lock.yaml", + "!.*", + "dist", ], }, { linterOptions: { reportUnusedDisableDirectives: "error" } }, - eslint.configs.recommended, comments.recommended, + jsdoc.configs["flat/contents-typescript-error"], + jsdoc.configs["flat/logical-typescript-error"], + jsdoc.configs["flat/stylistic-typescript-error"], + jsonc.configs["flat/recommended-with-json"], + markdown.configs.recommended, n.configs["flat/recommended"], + packageJson, perfectionist.configs["recommended-natural"], regexp.configs["flat/recommended"], - vitest.configs.recommended, - markdown.configs.recommended, - { - files: ["**/*.{js,cjs,mjs,ts,cts,mts}"], + extends: [ + tseslint.configs.strictTypeChecked, + tseslint.configs.stylisticTypeChecked, + ], + files: ["**/*.js", "**/*.ts"], languageOptions: { - globals: { - ...globals.es2022, - ...globals.node, + parserOptions: { + projectService: { allowDefaultProject: ["*.config.*s"] }, + tsconfigRootDir: import.meta.dirname, }, - parser: tseslint.parser, - }, - plugins: { - "@stylistic/ts": stylisticTs, - "@typescript-eslint": tseslint.plugin, - jsdoc: jsdoc, - "no-only-tests": noOnlyTests, }, rules: { - // These off/less-strict-by-default rules work well for this repo and we like them on. - "@typescript-eslint/no-unused-vars": ["error", { caughtErrors: "all" }], - "no-only-tests/no-only-tests": "error", - - // These on-by-default rules don't work well for this repo and we like them off. - "no-case-declarations": "off", - "no-constant-condition": "off", - "no-inner-declarations": "off", - "no-mixed-spaces-and-tabs": "off", - // Stylistic concerns that don't interfere with Prettier - "@stylistic/ts/padding-line-between-statements": [ + "logical-assignment-operators": [ "error", - { blankLine: "always", next: "*", prev: "block-like" }, + "always", + { enforceForIfStatements: true }, ], - "perfectionist/sort-objects": [ + "n/no-missing-import": [ "error", { - order: "asc", - partitionByComment: true, - type: "natural", + ignoreTypeImport: true, }, ], - }, - }, - { - extends: [ - jsdoc.configs["flat/recommended-typescript-error"], - tseslint.configs.strict, - tseslint.configs.stylistic, - ], - files: ["**/*.ts"], - rules: { - // These off-by-default rules work well for this repo and we like them on. - "jsdoc/informative-docs": "error", - "logical-assignment-operators": [ - "error", - "always", - { enforceForIfStatements: true }, - ], + "no-useless-rename": "error", + "object-shorthand": "error", "operator-assignment": "error", - - // These on-by-default rules don't work well for this repo and we like them off. - "jsdoc/require-jsdoc": "off", - "jsdoc/require-param": "off", - "jsdoc/require-property": "off", - "jsdoc/require-returns": "off", - "n/no-missing-import": "off", - }, - }, - { - extends: [ - tseslint.configs.strictTypeChecked, - tseslint.configs.stylisticTypeChecked, - ], - files: ["**/*.ts"], - ignores: ["**/*.md/*.ts"], - languageOptions: { - parserOptions: { - project: "./tsconfig.eslint.json", - }, - }, - }, - { - extends: [jsonc.configs["flat/recommended-with-json"]], - files: ["*.json", "*.jsonc"], - ignores: ["package.json"], - rules: { - "jsonc/sort-keys": "error", }, + settings: { perfectionist: { partitionByComment: true, type: "natural" } }, }, { - files: ["*.jsonc"], + extends: [tseslint.configs.disableTypeChecked], + files: ["**/*.md/*.ts"], rules: { - "jsonc/no-comments": "off", + "n/no-missing-import": ["error", { allowModules: ["release-it-action"] }], }, }, { - files: ["**/*.test.ts"], + extends: [vitest.configs.recommended], + files: ["**/*.test.*"], rules: { - // These on-by-default rules aren't useful in test files. "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/no-unsafe-call": "off", }, }, { - extends: [yml.configs["flat/standard"], yml.configs["flat/prettier"]], + extends: [yml.configs["flat/recommended"], yml.configs["flat/prettier"]], files: ["**/*.{yml,yaml}"], rules: { "yml/file-extension": ["error", { extension: "yml" }], "yml/sort-keys": [ "error", - { - order: { type: "asc" }, - pathPattern: "^.*$", - }, + { order: { type: "asc" }, pathPattern: "^.*$" }, ], "yml/sort-sequence-values": [ "error", - { - order: { type: "asc" }, - pathPattern: "^.*$", - }, + { order: { type: "asc" }, pathPattern: "^.*$" }, ], }, }, diff --git a/package.json b/package.json index 7e83787e..b0a087f0 100644 --- a/package.json +++ b/package.json @@ -46,11 +46,12 @@ "devDependencies": { "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@eslint/js": "^9.16.0", - "@octokit/types": "^13.0.0", + "@octokit/types": "^13.6.2", "@release-it/conventional-changelog": "^9.0.0", - "@stylistic/eslint-plugin-ts": "^2.11.0", + "@types/eslint-plugin-markdown": "^2.0.2", "@vercel/ncc": "^0.38.0", "@vitest/coverage-v8": "^0.34.6", + "@vitest/eslint-plugin": "^1.1.14", "console-fail-test": "^0.5.0", "cspell": "^8.0.0", "eslint": "^9.16.0", @@ -58,12 +59,10 @@ "eslint-plugin-jsonc": "^2.18.2", "eslint-plugin-markdown": "^5.1.0", "eslint-plugin-n": "^17.14.0", - "eslint-plugin-no-only-tests": "^3.3.0", + "eslint-plugin-package-json": "^0.18.0", "eslint-plugin-perfectionist": "^4.2.0", "eslint-plugin-regexp": "^2.7.0", - "eslint-plugin-vitest": "^0.5.4", "eslint-plugin-yml": "^1.16.0", - "globals": "^15.13.0", "husky": "^9.0.0", "knip": "^5.0.0", "lint-staged": "^15.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5beb6f90..91323d2e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,20 +28,23 @@ importers: specifier: ^9.16.0 version: 9.16.0 '@octokit/types': - specifier: ^13.0.0 - version: 13.6.1 + specifier: ^13.6.2 + version: 13.6.2 '@release-it/conventional-changelog': specifier: ^9.0.0 version: 9.0.3(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)(release-it@17.10.0(typescript@5.6.3)) - '@stylistic/eslint-plugin-ts': - specifier: ^2.11.0 - version: 2.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + '@types/eslint-plugin-markdown': + specifier: ^2.0.2 + version: 2.0.2 '@vercel/ncc': specifier: ^0.38.0 version: 0.38.3 '@vitest/coverage-v8': specifier: ^0.34.6 version: 0.34.6(vitest@0.34.6) + '@vitest/eslint-plugin': + specifier: ^1.1.14 + version: 1.1.14(@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@0.34.6) console-fail-test: specifier: ^0.5.0 version: 0.5.0 @@ -63,24 +66,18 @@ importers: eslint-plugin-n: specifier: ^17.14.0 version: 17.14.0(eslint@9.16.0(jiti@2.4.0)) - eslint-plugin-no-only-tests: - specifier: ^3.3.0 - version: 3.3.0 + eslint-plugin-package-json: + specifier: ^0.18.0 + version: 0.18.0(eslint@9.16.0(jiti@2.4.0))(jsonc-eslint-parser@2.4.0) eslint-plugin-perfectionist: specifier: ^4.2.0 version: 4.2.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) eslint-plugin-regexp: specifier: ^2.7.0 version: 2.7.0(eslint@9.16.0(jiti@2.4.0)) - eslint-plugin-vitest: - specifier: ^0.5.4 - version: 0.5.4(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@0.34.6) eslint-plugin-yml: specifier: ^1.16.0 version: 1.16.0(eslint@9.16.0(jiti@2.4.0)) - globals: - specifier: ^15.13.0 - version: 15.13.0 husky: specifier: ^9.0.0 version: 9.1.7 @@ -147,6 +144,9 @@ packages: '@actions/io@1.1.3': resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} + '@altano/repository-tools@0.1.1': + resolution: {integrity: sha512-5vbUs2A98CC3g1AlOBdkBE0BMukkLjLIsMHAtuxg6Pt9dQXxYWdLKOf66v6c/vIqtNcgTMv0oGtddLdMuH9X6w==} + '@ampproject/remapping@2.2.1': resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -732,8 +732,8 @@ packages: '@octokit/types@12.6.0': resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} - '@octokit/types@13.6.1': - resolution: {integrity: sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==} + '@octokit/types@13.6.2': + resolution: {integrity: sha512-WpbZfZUcZU77DrSW4wbsSgTPfKcp286q3ItaIgvSbBpZJlu6mnYXAkjZz6LVZPXkEvLIM8McanyZejKTYUHipA==} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -773,12 +773,6 @@ packages: engines: {node: '>=8.10'} hasBin: true - '@stylistic/eslint-plugin-ts@2.11.0': - resolution: {integrity: sha512-ZBxnfSjzxUiwCibbVCeYCYwZw+P5xaQw+pNA8B8uR42fdMQIOhUstXjJuS2nTHoW5CF4+vGSxbL4gklI8WxhyA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -788,6 +782,12 @@ packages: '@types/chai@4.3.6': resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==} + '@types/eslint-plugin-markdown@2.0.2': + resolution: {integrity: sha512-ImmEw5xBVb9vCaFfQ+5kUcVatUO4XPpTvryAmhpKzalUKhDb3EZmeuHvIUO6E1/WDOTw+/b9qlWsZhxULhZdfQ==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -836,10 +836,6 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.17.0': resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -854,23 +850,10 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.17.0': resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@8.17.0': resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -880,12 +863,6 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - '@typescript-eslint/utils@8.17.0': resolution: {integrity: sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -896,10 +873,6 @@ packages: typescript: optional: true - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.17.0': resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -913,6 +886,19 @@ packages: peerDependencies: vitest: '>=0.32.0 <1' + '@vitest/eslint-plugin@1.1.14': + resolution: {integrity: sha512-ej0cT5rUt7uvwxuu7Qxkm7fI+eaOq8vD34qGpuRoXCdvOybOlE5GDqtgvVCYbxLANkcRJfm5VDU1TnJmQRHi9g==} + peerDependencies: + '@typescript-eslint/utils': '>= 8.0' + eslint: '>= 8.57.0' + typescript: '>= 5.0.0' + vitest: '*' + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true + '@vitest/expect@0.34.6': resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} @@ -1160,6 +1146,10 @@ packages: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -1413,10 +1403,18 @@ packages: deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + detect-indent@7.0.1: resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} engines: {node: '>=12.20'} + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + detect-newline@4.0.1: resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1486,6 +1484,10 @@ packages: engines: {node: '>=12'} hasBin: true + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-goat@4.0.0: resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} engines: {node: '>=12'} @@ -1552,9 +1554,12 @@ packages: peerDependencies: eslint: '>=8.23.0' - eslint-plugin-no-only-tests@3.3.0: - resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} - engines: {node: '>=5.0.0'} + eslint-plugin-package-json@0.18.0: + resolution: {integrity: sha512-ZyDaHm3c+vDMNoOVyO+KcJxlBnNNFeRML8Ui/WATrQ+F/dyAIR6aIyu50691gll3dCBT26llL2DXMre30x23ug==} + engines: {node: '>=18'} + peerDependencies: + eslint: '>=8.0.0' + jsonc-eslint-parser: ^2.0.0 eslint-plugin-perfectionist@4.2.0: resolution: {integrity: sha512-hEMFx5xfSc/0OLZXJhSaLUKkFxATuRf4yL2iVfxEcxkkb17DfoLZY9eH960dPSw5uB7o+4avqP3rtkNp1Vwo7w==} @@ -1568,19 +1573,6 @@ packages: peerDependencies: eslint: '>=8.44.0' - eslint-plugin-vitest@0.5.4: - resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==} - engines: {node: ^18.0.0 || >= 20.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': '*' - eslint: ^8.57.0 || ^9.0.0 - vitest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - vitest: - optional: true - eslint-plugin-yml@1.16.0: resolution: {integrity: sha512-t4MNCetPjTn18/fUDlQ/wKkcYjnuLYKChBrZ0qUaNqRigVqChHWzTP8SrfFi5s4keX3vdlkWRSu8zHJMdKwxWQ==} engines: {node: ^14.17.0 || >=16.0.0} @@ -1743,6 +1735,10 @@ packages: resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} engines: {node: '>=18'} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.3.0: resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} engines: {node: '>=18'} @@ -2554,6 +2550,10 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-json-validator@0.7.0: + resolution: {integrity: sha512-ufEJ03cPLVxZCHuypSJjmUC2t0xDy0Eru4AfPFe2MfPw14BqedavayQqd49H2/VCrcWONmXsJ47Tp7kzaElX2w==} + engines: {node: '>=18'} + package-json@10.0.1: resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} engines: {node: '>=18'} @@ -2778,6 +2778,10 @@ packages: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -2927,6 +2931,10 @@ packages: resolution: {integrity: sha512-pBs3n/wcsbnMSiO5EYV4AVnZVtyQslfZ/0v6VbrRRVApqyNf0Uqo4MOXJsBmIplGY1hYZ4bq5qjO9xTgY+K8xw==} hasBin: true + sort-package-json@2.12.0: + resolution: {integrity: sha512-/HrPQAeeLaa+vbAH/znjuhwUluuiM/zL5XX9kop8UpDgjtyWKt43hGDk2vd/TBdDpzIyzIHVUgmYofzYrAQjew==} + hasBin: true + source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -3211,6 +3219,10 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + validate-npm-package-name@6.0.0: + resolution: {integrity: sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==} + engines: {node: ^18.17.0 || >=20.5.0} + vite-node@0.34.6: resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} engines: {node: '>=v14.18.0'} @@ -3338,6 +3350,10 @@ packages: resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} engines: {node: '>=12'} + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -3363,6 +3379,10 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -3409,6 +3429,8 @@ snapshots: '@actions/io@1.1.3': {} + '@altano/repository-tools@0.1.1': {} + '@ampproject/remapping@2.2.1': dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -3862,19 +3884,19 @@ snapshots: '@octokit/graphql': 7.1.0 '@octokit/request': 8.4.0 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.6.1 + '@octokit/types': 13.6.2 before-after-hook: 2.2.3 universal-user-agent: 6.0.1 '@octokit/endpoint@9.0.5': dependencies: - '@octokit/types': 13.6.1 + '@octokit/types': 13.6.2 universal-user-agent: 6.0.1 '@octokit/graphql@7.1.0': dependencies: '@octokit/request': 8.4.0 - '@octokit/types': 13.6.1 + '@octokit/types': 13.6.2 universal-user-agent: 6.0.1 '@octokit/openapi-types@20.0.0': {} @@ -3884,7 +3906,7 @@ snapshots: '@octokit/plugin-paginate-rest@11.3.1(@octokit/core@5.2.0)': dependencies: '@octokit/core': 5.2.0 - '@octokit/types': 13.6.1 + '@octokit/types': 13.6.2 '@octokit/plugin-paginate-rest@9.2.1(@octokit/core@5.2.0)': dependencies: @@ -3903,11 +3925,11 @@ snapshots: '@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@5.2.0)': dependencies: '@octokit/core': 5.2.0 - '@octokit/types': 13.6.1 + '@octokit/types': 13.6.2 '@octokit/request-error@5.1.0': dependencies: - '@octokit/types': 13.6.1 + '@octokit/types': 13.6.2 deprecation: 2.3.1 once: 1.4.0 @@ -3915,7 +3937,7 @@ snapshots: dependencies: '@octokit/endpoint': 9.0.5 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.6.1 + '@octokit/types': 13.6.2 universal-user-agent: 6.0.1 '@octokit/rest@20.1.1': @@ -3929,7 +3951,7 @@ snapshots: dependencies: '@octokit/openapi-types': 20.0.0 - '@octokit/types@13.6.1': + '@octokit/types@13.6.2': dependencies: '@octokit/openapi-types': 22.2.0 @@ -3971,16 +3993,6 @@ snapshots: ignore: 5.3.2 p-map: 4.0.0 - '@stylistic/eslint-plugin-ts@2.11.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': - dependencies: - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) - eslint: 9.16.0(jiti@2.4.0) - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - transitivePeerDependencies: - - supports-color - - typescript - '@tootallnate/quickjs-emscripten@0.23.0': {} '@types/chai-subset@1.3.3': @@ -3989,6 +4001,16 @@ snapshots: '@types/chai@4.3.6': {} + '@types/eslint-plugin-markdown@2.0.2': + dependencies: + '@types/eslint': 9.6.1 + '@types/unist': 2.0.11 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + '@types/estree@1.0.6': {} '@types/istanbul-lib-coverage@2.0.4': {} @@ -4042,11 +4064,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.17.0': dependencies: '@typescript-eslint/types': 8.17.0 @@ -4064,25 +4081,8 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.17.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.3)': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.17.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.17.0 @@ -4098,17 +4098,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) - eslint: 9.16.0(jiti@2.4.0) - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) @@ -4121,11 +4110,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.17.0': dependencies: '@typescript-eslint/types': 8.17.0 @@ -4150,6 +4134,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitest/eslint-plugin@1.1.14(@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3))(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@0.34.6)': + dependencies: + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) + eslint: 9.16.0(jiti@2.4.0) + optionalDependencies: + typescript: 5.6.3 + vitest: 0.34.6 + '@vitest/expect@0.34.6': dependencies: '@vitest/spy': 0.34.6 @@ -4394,6 +4386,12 @@ snapshots: cli-width@4.1.0: {} + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + clone@1.0.4: {} color-convert@2.0.1: @@ -4695,8 +4693,12 @@ snapshots: deprecation@2.3.1: {} + detect-indent@6.1.0: {} + detect-indent@7.0.1: {} + detect-newline@3.1.0: {} + detect-newline@4.0.1: {} diff-sequences@29.6.3: {} @@ -4773,6 +4775,8 @@ snapshots: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + escalade@3.2.0: {} + escape-goat@4.0.0: {} escape-string-regexp@4.0.0: {} @@ -4858,7 +4862,18 @@ snapshots: minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-no-only-tests@3.3.0: {} + eslint-plugin-package-json@0.18.0(eslint@9.16.0(jiti@2.4.0))(jsonc-eslint-parser@2.4.0): + dependencies: + '@altano/repository-tools': 0.1.1 + detect-indent: 6.1.0 + detect-newline: 3.1.0 + eslint: 9.16.0(jiti@2.4.0) + jsonc-eslint-parser: 2.4.0 + package-json-validator: 0.7.0 + semver: 7.6.3 + sort-object-keys: 1.1.3 + sort-package-json: 2.12.0 + validate-npm-package-name: 6.0.0 eslint-plugin-perfectionist@4.2.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3): dependencies: @@ -4881,16 +4896,6 @@ snapshots: regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-vitest@0.5.4(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3)(vitest@0.34.6): - dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.16.0(jiti@2.4.0))(typescript@5.6.3) - eslint: 9.16.0(jiti@2.4.0) - optionalDependencies: - vitest: 0.34.6 - transitivePeerDependencies: - - supports-color - - typescript - eslint-plugin-yml@1.16.0(eslint@9.16.0(jiti@2.4.0)): dependencies: debug: 4.4.0 @@ -5102,6 +5107,8 @@ snapshots: gensequence@7.0.0: {} + get-caller-file@2.0.5: {} + get-east-asian-width@1.3.0: {} get-func-name@2.0.2: {} @@ -5950,6 +5957,10 @@ snapshots: package-json-from-dist@1.0.1: {} + package-json-validator@0.7.0: + dependencies: + yargs: 17.7.2 + package-json@10.0.1: dependencies: ky: 1.7.2 @@ -6210,6 +6221,8 @@ snapshots: repeat-string@1.6.1: {} + require-directory@2.1.1: {} + resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -6348,6 +6361,17 @@ snapshots: sort-object-keys: 1.1.3 tinyglobby: 0.2.10 + sort-package-json@2.12.0: + dependencies: + detect-indent: 7.0.1 + detect-newline: 4.0.1 + get-stdin: 9.0.0 + git-hooks-list: 3.1.0 + is-plain-obj: 4.1.0 + semver: 7.6.3 + sort-object-keys: 1.1.3 + tinyglobby: 0.2.10 + source-map-js@1.0.2: {} source-map@0.6.1: {} @@ -6585,6 +6609,8 @@ snapshots: validate-npm-package-name@5.0.1: {} + validate-npm-package-name@6.0.0: {} + vite-node@0.34.6(@types/node@22.9.1): dependencies: cac: 6.7.14 @@ -6708,6 +6734,8 @@ snapshots: xdg-basedir@5.1.0: {} + y18n@5.0.8: {} + yallist@4.0.0: {} yaml-eslint-parser@1.2.3: @@ -6724,6 +6752,16 @@ snapshots: yargs-parser@21.1.1: {} + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yocto-queue@0.1.0: {} yocto-queue@1.0.0: {} diff --git a/src/steps/deleteProtections.test.ts b/src/steps/deleteProtections.test.ts index 274de1a9..f220e846 100644 --- a/src/steps/deleteProtections.test.ts +++ b/src/steps/deleteProtections.test.ts @@ -28,7 +28,7 @@ describe("deleteProtections", () => { branch: "", existingProtections: {}, octokit: mockOctokit, - requestData: requestData, + requestData, }); expect(mockInfo).not.toHaveBeenCalled(); @@ -51,7 +51,7 @@ describe("deleteProtections", () => { branch: "", existingProtections: undefined, octokit: mockOctokit, - requestData: requestData, + requestData, }); expect(mockInfo.mock.calls).toMatchInlineSnapshot(` diff --git a/src/steps/fetchProtections.test.ts b/src/steps/fetchProtections.test.ts index badbe252..a197b3b2 100644 --- a/src/steps/fetchProtections.test.ts +++ b/src/steps/fetchProtections.test.ts @@ -20,7 +20,7 @@ describe("fetchProtections", () => { const actual = await fetchProtections({ branch: "", octokit: mockOctokit, - requestData: requestData, + requestData, skipBranchProtections: false, }); @@ -31,7 +31,7 @@ describe("fetchProtections", () => { const actual = await fetchProtections({ branch: "", octokit: mockOctokit, - requestData: requestData, + requestData, skipBranchProtections: true, }); diff --git a/src/steps/recreateProtections.test.ts b/src/steps/recreateProtections.test.ts index 030e07a4..a3382e9f 100644 --- a/src/steps/recreateProtections.test.ts +++ b/src/steps/recreateProtections.test.ts @@ -20,7 +20,7 @@ const mockOctokit = { request: mockRequest } as unknown as Octokit; describe("recreateProtections", () => { it("does not recreate protections when existingProtections is undefined", async () => { await recreateProtections({ - commonRequestData: commonRequestData, + commonRequestData, existingProtections: undefined, octokit: mockOctokit, }); @@ -30,7 +30,7 @@ describe("recreateProtections", () => { it("recreates protections when existingProtections is a minimal set of protections", async () => { await recreateProtections({ - commonRequestData: commonRequestData, + commonRequestData, existingProtections: {}, octokit: mockOctokit, }); @@ -63,7 +63,7 @@ describe("recreateProtections", () => { it("recreates protections when existingProtections is a full set of protections", async () => { await recreateProtections({ - commonRequestData: commonRequestData, + commonRequestData, existingProtections: { allow_deletions: { enabled: true }, allow_force_pushes: { enabled: true }, diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json deleted file mode 100644 index 3e219c8f..00000000 --- a/tsconfig.eslint.json +++ /dev/null @@ -1 +0,0 @@ -{ "extends": "./tsconfig.json", "include": ["."] }