From 57de77dbdf0bebfe587321847a14e779b006f5c1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 23:39:37 +0000 Subject: [PATCH 1/3] chore(deps): update all dependencies --- package.json | 18 +- yarn.lock | 497 +++++++++++++++++++++++++-------------------------- 2 files changed, 255 insertions(+), 260 deletions(-) diff --git a/package.json b/package.json index 49efed71..40542084 100644 --- a/package.json +++ b/package.json @@ -44,11 +44,11 @@ "@testing-library/cypress": "10.0.2", "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.5.0", - "@testing-library/react": "15.0.7", + "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", "@types/lodash.isequal": "4", - "@typescript-eslint/eslint-plugin": "7.18.0", - "@typescript-eslint/parser": "7.18.0", + "@typescript-eslint/eslint-plugin": "8.4.0", + "@typescript-eslint/parser": "8.4.0", "babel-jest": "29.7.0", "babel-loader": "9.1.3", "babel-plugin-module-resolver": "5.0.2", @@ -57,7 +57,7 @@ "css-loader": "7.1.2", "cypress": "13.14.1", "deepmerge": "4.3.1", - "eslint": "8.57.0", + "eslint": "9.9.1", "eslint-config-prettier": "9.1.0", "eslint-config-react-app": "7.0.1", "eslint-plugin-cypress": "3.5.0", @@ -71,14 +71,14 @@ "eslint-plugin-testing-library": "6.3.0", "formik": "2.4.6", "jest": "29.7.0", - "npm-package-json-lint": "7.1.0", + "npm-package-json-lint": "8.0.0", "prettier": "3.3.3", "react": "18.3.1", "react-docgen-typescript-loader": "3.7.2", "react-dom": "18.3.1", "sass": "1.77.8", - "sass-loader": "14.2.1", - "semantic-release": "23.1.1", + "sass-loader": "16.0.1", + "semantic-release": "24.1.0", "storybook": "8.2.9", "style-loader": "4.0.0", "stylelint": "16.9.0", @@ -90,7 +90,7 @@ "tsc-alias": "1.8.10", "typescript": "5.5.4", "vanilla-framework": "4.15.0", - "wait-on": "7.2.0", + "wait-on": "8.0.0", "webpack": "5.94.0" }, "dependencies": { @@ -110,7 +110,7 @@ "@types/react": "18.3.5", "@types/react-dom": "18.3.0", "postcss": "^8.3.11", - "jackspeak": "2.3.6" + "jackspeak": "4.0.1" }, "peerDependencies": { "@types/react": "^18.0.0", diff --git a/yarn.lock b/yarn.lock index f0e8cafa..df72d13f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2450,30 +2450,49 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.4.0": version "4.10.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== +"@eslint-community/regexpp@^4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== + +"@eslint/config-array@^0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.18.0.tgz#37d8fe656e0d5e3dbaea7758ea56540867fd074d" + integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== + dependencies: + "@eslint/object-schema" "^2.1.4" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/eslintrc@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" + integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" + espree "^10.0.1" + globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.57.0": - version "8.57.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" - integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== +"@eslint/js@9.9.1": + version "9.9.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.9.1.tgz#4a97e85e982099d6c7ee8410aacb55adaa576f06" + integrity sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ== + +"@eslint/object-schema@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" + integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" @@ -2487,24 +2506,15 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@humanwhocodes/config-array@^0.11.14": - version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== - dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" - "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@humanwhocodes/retry@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570" + integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -3351,14 +3361,15 @@ fs-extra "^11.0.0" lodash "^4.17.4" -"@semantic-release/commit-analyzer@^12.0.0": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-12.0.0.tgz#7219b05ab79a4303c99fc9cd0413d68881599270" - integrity sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ== +"@semantic-release/commit-analyzer@^13.0.0-beta.1": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-13.0.0.tgz#98e28e2b2cb3d8e3a19effb82d5f493a0147e7a2" + integrity sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q== dependencies: - conventional-changelog-angular "^7.0.0" - conventional-commits-filter "^4.0.0" - conventional-commits-parser "^5.0.0" + conventional-changelog-angular "^8.0.0" + conventional-changelog-writer "^8.0.0" + conventional-commits-filter "^5.0.0" + conventional-commits-parser "^6.0.0" debug "^4.0.0" import-from-esm "^1.0.3" lodash-es "^4.17.21" @@ -3429,21 +3440,21 @@ semver "^7.1.2" tempy "^3.0.0" -"@semantic-release/release-notes-generator@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-13.0.0.tgz#9fb312c234742e2716c09d669d5d786a4daad465" - integrity sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A== +"@semantic-release/release-notes-generator@^14.0.0-beta.1": + version "14.0.1" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz#0c091af7857a4dfbfc464b8256a289676f7eddd3" + integrity sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA== dependencies: - conventional-changelog-angular "^7.0.0" - conventional-changelog-writer "^7.0.0" - conventional-commits-filter "^4.0.0" - conventional-commits-parser "^5.0.0" + conventional-changelog-angular "^8.0.0" + conventional-changelog-writer "^8.0.0" + conventional-commits-filter "^5.0.0" + conventional-commits-parser "^6.0.0" debug "^4.0.0" get-stream "^7.0.0" import-from-esm "^1.0.3" into-stream "^7.0.0" lodash-es "^4.17.21" - read-pkg-up "^11.0.0" + read-package-up "^11.0.0" "@sideway/address@^4.1.5": version "4.1.5" @@ -3935,7 +3946,7 @@ "@babel/runtime" "^7.14.6" "@testing-library/dom" "^10.1.0" -"@testing-library/dom@10.1.0", "@testing-library/dom@^10.0.0": +"@testing-library/dom@10.1.0": version "10.1.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-10.1.0.tgz#2d073e49771ad614da999ca48f199919e5176fb6" integrity sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA== @@ -3990,14 +4001,12 @@ lodash "^4.17.21" redent "^3.0.0" -"@testing-library/react@15.0.7": - version "15.0.7" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-15.0.7.tgz#ff733ce0893c875cb5a47672e8e772897128f4ae" - integrity sha512-cg0RvEdD1TIhhkm1IeYMQxrzy0MtUNfa3minv4MjbgcYzJAZ7yD0i0lwoPOTPr+INtiXFezt2o8xMSnyHhEn2Q== +"@testing-library/react@16.0.1": + version "16.0.1" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-16.0.1.tgz#29c0ee878d672703f5e7579f239005e4e0faa875" + integrity sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg== dependencies: "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^10.0.0" - "@types/react-dom" "^18.0.0" "@testing-library/user-event@14.5.2": version "14.5.2" @@ -4299,7 +4308,7 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-dom@18.3.0", "@types/react-dom@^18.0.0": +"@types/react-dom@18.3.0": version "18.3.0" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== @@ -4326,7 +4335,7 @@ resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.6.tgz#e6e60dad29c2c8c206c026e6dd8d6d1bdda850b8" integrity sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ== -"@types/semver@^7.3.12", "@types/semver@^7.3.4": +"@types/semver@^7.3.12", "@types/semver@^7.3.4", "@types/semver@^7.5.5": version "7.5.8" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== @@ -4397,16 +4406,16 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" - integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== +"@typescript-eslint/eslint-plugin@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.4.0.tgz#188c65610ef875a086404b5bfe105df936b035da" + integrity sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/type-utils" "7.18.0" - "@typescript-eslint/utils" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/scope-manager" "8.4.0" + "@typescript-eslint/type-utils" "8.4.0" + "@typescript-eslint/utils" "8.4.0" + "@typescript-eslint/visitor-keys" "8.4.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" @@ -4435,15 +4444,15 @@ dependencies: "@typescript-eslint/utils" "5.62.0" -"@typescript-eslint/parser@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" - integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== +"@typescript-eslint/parser@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.4.0.tgz#36b7cd7643a1c190d49dc0278192b2450f615a6f" + integrity sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA== dependencies: - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/scope-manager" "8.4.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/typescript-estree" "8.4.0" + "@typescript-eslint/visitor-keys" "8.4.0" debug "^4.3.4" "@typescript-eslint/parser@^5.5.0": @@ -4464,13 +4473,13 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" - integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== +"@typescript-eslint/scope-manager@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.4.0.tgz#8a13d3c0044513d7960348db6f4789d2a06fa4b4" + integrity sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A== dependencies: - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/visitor-keys" "8.4.0" "@typescript-eslint/type-utils@5.62.0": version "5.62.0" @@ -4482,13 +4491,13 @@ debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/type-utils@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" - integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== +"@typescript-eslint/type-utils@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.4.0.tgz#4a91b5789f41946adb56d73e2fb4639fdcf37af7" + integrity sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A== dependencies: - "@typescript-eslint/typescript-estree" "7.18.0" - "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/typescript-estree" "8.4.0" + "@typescript-eslint/utils" "8.4.0" debug "^4.3.4" ts-api-utils "^1.3.0" @@ -4497,10 +4506,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" - integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== +"@typescript-eslint/types@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.4.0.tgz#b44d6a90a317a6d97a3e5fabda5196089eec6171" + integrity sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -4515,15 +4524,15 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" - integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== +"@typescript-eslint/typescript-estree@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.4.0.tgz#00ed79ae049e124db37315cde1531a900a048482" + integrity sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A== dependencies: - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/visitor-keys" "7.18.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/visitor-keys" "8.4.0" debug "^4.3.4" - globby "^11.1.0" + fast-glob "^3.3.2" is-glob "^4.0.3" minimatch "^9.0.4" semver "^7.6.0" @@ -4543,15 +4552,15 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/utils@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" - integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== +"@typescript-eslint/utils@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.4.0.tgz#35c552a404858c853a1f62ba6df2214f1988afc3" + integrity sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "7.18.0" - "@typescript-eslint/types" "7.18.0" - "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/scope-manager" "8.4.0" + "@typescript-eslint/types" "8.4.0" + "@typescript-eslint/typescript-estree" "8.4.0" "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" @@ -4561,15 +4570,15 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" - integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== +"@typescript-eslint/visitor-keys@8.4.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.4.0.tgz#1e8a8b8fd3647db1e42361fdd8de3e1679dec9d2" + integrity sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A== dependencies: - "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/types" "8.4.0" eslint-visitor-keys "^3.4.3" -"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.2.0": +"@ungap/structured-clone@^1.0.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== @@ -4759,14 +4768,6 @@ "@types/emscripten" "^1.39.6" tslib "^1.13.0" -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - abab@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" @@ -4823,11 +4824,16 @@ acorn@^7.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.1.0, acorn@^8.11.3, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: +acorn@^8.1.0, acorn@^8.11.3, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2: version "8.11.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8.12.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -5261,7 +5267,7 @@ axe-core@^4.9.1: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== -axios@^1.6.1: +axios@^1.7.4: version "1.7.7" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== @@ -6118,39 +6124,35 @@ content-type@~1.0.4, content-type@~1.0.5: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -conventional-changelog-angular@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" - integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== +conventional-changelog-angular@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz#5701386850f0e0c2e630b43ee7821d322d87e7a6" + integrity sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA== dependencies: compare-func "^2.0.0" -conventional-changelog-writer@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz#e64ef74fa8e773cab4124af217f3f02b29eb0a9c" - integrity sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA== +conventional-changelog-writer@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz#81522ed40400a4ca8ab78a42794aae9667c745ae" + integrity sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA== dependencies: - conventional-commits-filter "^4.0.0" + "@types/semver" "^7.5.5" + conventional-commits-filter "^5.0.0" handlebars "^4.7.7" - json-stringify-safe "^5.0.1" - meow "^12.0.1" + meow "^13.0.0" semver "^7.5.2" - split2 "^4.0.0" - -conventional-commits-filter@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz#845d713e48dc7d1520b84ec182e2773c10c7bf7f" - integrity sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A== -conventional-commits-parser@^5.0.0: +conventional-commits-filter@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#57f3594b81ad54d40c1b4280f04554df28627d9a" - integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz#72811f95d379e79d2d39d5c0c53c9351ef284e86" + integrity sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q== + +conventional-commits-parser@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz#74e3be5344d8cd99f7c3353da2efa1d1dd618061" + integrity sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA== dependencies: - JSONStream "^1.3.5" - is-text-path "^2.0.0" - meow "^12.0.1" - split2 "^4.0.0" + meow "^13.0.0" convert-hrtime@^5.0.0: version "5.0.0" @@ -6207,7 +6209,7 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.0.0, cosmiconfig@^8.2.0: +cosmiconfig@^8.0.0, cosmiconfig@^8.3.6: version "8.3.6" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -7474,10 +7476,10 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.2.tgz#5cbb33d4384c9136083a71190d548158fe128f94" + integrity sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -7487,46 +7489,47 @@ eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@8.57.0: - version "8.57.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== +eslint-visitor-keys@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" + integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== + +eslint@9.9.1: + version "9.9.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.9.1.tgz#147ac9305d56696fb84cf5bdecafd6517ddc77ec" + integrity sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" + "@eslint-community/regexpp" "^4.11.0" + "@eslint/config-array" "^0.18.0" + "@eslint/eslintrc" "^3.1.0" + "@eslint/js" "9.9.1" "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" + eslint-scope "^8.0.2" + eslint-visitor-keys "^4.0.0" + espree "^10.1.0" + esquery "^1.5.0" esutils "^2.0.2" 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.19.0" - graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" 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" @@ -7546,24 +7549,24 @@ esniff@^2.0.1: event-emitter "^0.3.5" type "^2.7.2" -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== +espree@^10.0.1, espree@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.1.0.tgz#8788dae611574c0f070691f522e4116c5a11fc56" + integrity sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA== dependencies: - acorn "^8.9.0" + acorn "^8.12.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^4.0.0" esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== +esquery@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== dependencies: estraverse "^5.1.0" @@ -7870,12 +7873,12 @@ figures@^6.0.0, figures@^6.1.0: dependencies: is-unicode-supported "^2.0.0" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.0.4" + flat-cache "^4.0.0" file-entry-cache@^9.0.0: version "9.1.0" @@ -8005,6 +8008,14 @@ flat-cache@^3.0.4: keyv "^4.5.3" rimraf "^3.0.2" +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + flat-cache@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-5.0.0.tgz#26c4da7b0f288b408bb2b506b2cb66c240ddf062" @@ -8412,13 +8423,18 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0, globals@^13.20.0: +globals@^13.20.0: version "13.24.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== + globalthis@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" @@ -9198,13 +9214,6 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-text-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" - integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== - dependencies: - text-extensions "^2.0.0" - is-typed-array@^1.1.13, is-typed-array@^1.1.3: version "1.1.13" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" @@ -9352,10 +9361,10 @@ iterator.prototype@^1.1.2: reflect.getprototypeof "^1.0.4" set-function-name "^2.0.1" -jackspeak@2.3.6, jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@4.0.1, jackspeak@^2.3.5: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.0.1.tgz#9fca4ce961af6083e259c376e9e3541431f5287b" + integrity sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: @@ -9757,10 +9766,10 @@ jest@29.7.0: import-local "^3.0.2" jest-cli "^29.7.0" -joi@^17.11.0: - version "17.12.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.2.tgz#283a664dabb80c7e52943c557aab82faea09f521" - integrity sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw== +joi@^17.13.3: + version "17.13.3" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" + integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== dependencies: "@hapi/hoek" "^9.3.0" "@hapi/topo" "^5.1.0" @@ -9911,7 +9920,7 @@ json-stringify-nice@^1.1.4: resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== @@ -9928,10 +9937,10 @@ json5@^2.2.2, json5@^2.2.3: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonc-parser@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" - integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== +jsonc-parser@^3.2.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" + integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== jsonfile@^6.0.1: version "6.1.0" @@ -9942,7 +9951,7 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonparse@^1.2.0, jsonparse@^1.3.1: +jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== @@ -10494,12 +10503,7 @@ memoizerific@^1.11.3: dependencies: map-or-similar "^1.5.0" -meow@^12.0.1: - version "12.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" - integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== - -meow@^13.2.0: +meow@^13.0.0, meow@^13.2.0: version "13.2.0" resolved "https://registry.yarnpkg.com/meow/-/meow-13.2.0.tgz#6b7d63f913f984063b3cc261b6e8800c4cd3474f" integrity sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== @@ -10587,7 +10591,7 @@ min-indent@^1.0.0, min-indent@^1.0.1: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -10929,28 +10933,28 @@ npm-package-arg@^11.0.0, npm-package-arg@^11.0.1: semver "^7.3.5" validate-npm-package-name "^5.0.0" -npm-package-json-lint@7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/npm-package-json-lint/-/npm-package-json-lint-7.1.0.tgz#cd9fea33f6f0fc445c6fe9695fa461bd32f86591" - integrity sha512-ypcMpag32TCP89zzLSS+7vjeR2QY613WzmO2upcJgKNWlcswDz8cdb80urbBNHkhSPI40ex3nsKrRDH/WhMYOg== +npm-package-json-lint@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/npm-package-json-lint/-/npm-package-json-lint-8.0.0.tgz#db24aee394130b4d55ec5fb73662db62f1497b07" + integrity sha512-44xqAKoV0nXnBYYLGUhMItGZb5tW3cLoW3UZxcsaCOX/YAkECrzOQA5F48oAA51vVE5CqAnsJB2CFvtolzMA3Q== dependencies: ajv "^6.12.6" ajv-errors "^1.0.1" chalk "^4.1.2" - cosmiconfig "^8.2.0" + cosmiconfig "^8.3.6" debug "^4.3.4" globby "^11.1.0" - ignore "^5.2.4" + ignore "^5.3.1" is-plain-obj "^3.0.0" - jsonc-parser "^3.2.0" + jsonc-parser "^3.2.1" log-symbols "^4.1.0" meow "^9.0.0" plur "^4.0.0" - semver "^7.5.4" + semver "^7.6.2" slash "^3.0.0" strip-json-comments "^3.1.1" - type-fest "^4.3.3" - validate-npm-package-name "^5.0.0" + type-fest "^4.20.0" + validate-npm-package-name "^5.0.1" npm-packlist@^8.0.0: version "8.0.2" @@ -12195,15 +12199,6 @@ read-package-up@^11.0.0: read-pkg "^9.0.0" type-fest "^4.6.0" -read-pkg-up@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-11.0.0.tgz#8916ffc6af2a7538b43bcc2c6445d4450ffe5a74" - integrity sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q== - dependencies: - find-up-simple "^1.0.0" - read-pkg "^9.0.0" - type-fest "^4.6.0" - read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -12565,10 +12560,10 @@ safe-regex-test@^1.0.3: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-loader@14.2.1: - version "14.2.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-14.2.1.tgz#db9ad96b56dc1c1ea546101e76375d5b008fec70" - integrity sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ== +sass-loader@16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-16.0.1.tgz#57049c1787076e923b21a1dccc612546ecaf4295" + integrity sha512-xACl1ToTsKnL9Ce5yYpRxrLj9QUDCnwZNhzpC7tKiFyA8zXsd3Ap+HGVnbCgkdQcm43E+i6oKAWBsvGA6ZoiMw== dependencies: neo-async "^2.6.2" @@ -12614,16 +12609,16 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -semantic-release@23.1.1: - version "23.1.1" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-23.1.1.tgz#5c1a058748f4001f1c730716134a70b9e8e5b311" - integrity sha512-qqJDBhbtHsjUEMsojWKGuL5lQFCJuPtiXKEIlFKyTzDDGTAE/oyvznaP8GeOr5PvcqBJ6LQz4JCENWPLeehSpA== +semantic-release@24.1.0: + version "24.1.0" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-24.1.0.tgz#da799e6def44a0c3708fa1cfc2685d20e29b0f83" + integrity sha512-FwaE2hKDHQn9G6GA7xmqsc9WnsjaFD/ppLM5PUg56Do9oKSCf+vH6cPeb3hEBV/m06n8Sh9vbVqPjHu/1onzQw== dependencies: - "@semantic-release/commit-analyzer" "^12.0.0" + "@semantic-release/commit-analyzer" "^13.0.0-beta.1" "@semantic-release/error" "^4.0.0" "@semantic-release/github" "^10.0.0" "@semantic-release/npm" "^12.0.0" - "@semantic-release/release-notes-generator" "^13.0.0" + "@semantic-release/release-notes-generator" "^14.0.0-beta.1" aggregate-error "^5.0.0" cosmiconfig "^9.0.0" debug "^4.0.0" @@ -12678,7 +12673,7 @@ semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semve dependencies: lru-cache "^6.0.0" -semver@^7.6.3: +semver@^7.6.2, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -12955,11 +12950,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c" integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== -split2@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - split2@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/split2/-/split2-1.0.0.tgz#52e2e221d88c75f9a73f90556e263ff96772b314" @@ -13539,11 +13529,6 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -text-extensions@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" - integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== - text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -13576,7 +13561,7 @@ through2@~2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -"through@>=2.2.7 <3", through@^2.3.8: +through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -13823,7 +13808,12 @@ type-fest@^3.0.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== -type-fest@^4.3.3, type-fest@^4.6.0, type-fest@^4.7.1: +type-fest@^4.20.0: + version "4.26.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.26.0.tgz#703f263af10c093cd6277d079e26b9e17d517c4b" + integrity sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw== + +type-fest@^4.6.0, type-fest@^4.7.1: version "4.12.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.12.0.tgz#00ae70d02161b81ecd095158143c4bb8c879760d" integrity sha512-5Y2/pp2wtJk8o08G0CMkuFPCO354FGwk/vbidxrdhRGZfd0tFnb4Qb8anp9XxXriwBgVPjdWbKpGl4J9lJY2jQ== @@ -14151,6 +14141,11 @@ validate-npm-package-name@^5.0.0: dependencies: builtins "^5.0.0" +validate-npm-package-name@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8" + integrity sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ== + vanilla-framework@4.15.0: version "4.15.0" resolved "https://registry.yarnpkg.com/vanilla-framework/-/vanilla-framework-4.15.0.tgz#09102aa40a9b5c4f51fee75af5c5390b0cc91a40" @@ -14177,13 +14172,13 @@ w3c-xmlserializer@^4.0.0: dependencies: xml-name-validator "^4.0.0" -wait-on@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-7.2.0.tgz#d76b20ed3fc1e2bebc051fae5c1ff93be7892928" - integrity sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ== +wait-on@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-8.0.0.tgz#82e3f334db01cf37beef0d11639d66333b027f03" + integrity sha512-fNE5SXinLr2Bt7cJvjvLg2PcXfqznlqRvtE3f8AqYdRZ9BhE+XpsCp1mwQbRoO7s1q7uhAuCw0Ro3mG/KdZjEw== dependencies: - axios "^1.6.1" - joi "^17.11.0" + axios "^1.7.4" + joi "^17.13.3" lodash "^4.17.21" minimist "^1.2.8" rxjs "^7.8.1" From 8f21d7383769aec76b8318a3cb2f14f001d19029 Mon Sep 17 00:00:00 2001 From: Huw Wilkins Date: Wed, 4 Sep 2024 14:08:43 +1000 Subject: [PATCH 2/3] refactor: run eslint config migration and fix issues --- .eslintrc.js | 79 -- eslint.config.mjs | 134 ++ package.json | 18 +- .../AccordionSection.test.tsx | 1 - .../ActionButton/ActionButton.test.tsx | 4 - src/components/Card/Card.test.tsx | 1 - .../CheckableInput/CheckableInput.test.tsx | 3 - .../CodeSnippet/CodeSnippet.test.tsx | 15 +- .../ConfirmationModal/ConfirmationModal.tsx | 4 +- .../ContextualMenu/ContextualMenu.test.tsx | 6 - .../ContextualMenuDropdown.test.tsx | 2 +- src/components/Field/Field.test.tsx | 8 +- src/components/Icon/Icon.test.tsx | 4 - src/components/Input/Input.test.tsx | 33 +- src/components/List/List.test.tsx | 6 +- .../MainTable/MainTable.stories.tsx | 2 +- src/components/MainTable/MainTable.test.tsx | 2 - src/components/MainTable/MainTable.tsx | 2 +- src/components/ModularTable/ModularTable.tsx | 9 +- .../FadeInDown/FadeInDown.test.tsx | 1 - src/components/Navigation/Navigation.test.tsx | 11 +- .../NavigationLink/NavigationLink.tsx | 2 +- .../NotificationProvider.tsx | 1 + src/components/Pagination/Pagination.test.tsx | 1 - .../PaginationButton.test.tsx | 1 - .../FilterPanelSection.test.tsx | 7 - .../SearchAndFilter/SearchAndFilter.test.tsx | 16 - src/components/SearchBox/SearchBox.test.tsx | 1 - .../SideNavigation/SideNavigation.test.tsx | 8 +- .../SideNavigationItem.stories.tsx | 4 +- .../SideNavigationLink/SideNavigationLink.tsx | 2 +- src/components/Spinner/Spinner.test.tsx | 14 +- src/components/Strip/Strip.test.tsx | 3 - src/components/TableCell/TableCell.test.tsx | 11 +- .../TablePagination/TablePagination.test.tsx | 1 - .../TablePaginationControls.test.tsx | 1 - src/components/Textarea/Textarea.test.tsx | 1 - yarn.lock | 1095 ++--------------- 38 files changed, 303 insertions(+), 1211 deletions(-) delete mode 100644 .eslintrc.js create mode 100644 eslint.config.mjs diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 96f813f7..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,79 +0,0 @@ -module.exports = { - parser: "@babel/eslint-parser", - plugins: ["prettier", "cypress", "testing-library"], - extends: [ - "react-app", // Use the recommended rules from CRA. - "plugin:cypress/recommended", - "plugin:prettier/recommended", // Ensure this is last in the list. - ], - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 2018, - sourceType: "module", - }, - rules: { - "react/forbid-component-props": [ - "error", - { - forbid: [ - { - propName: "data-test", - message: "Use `data-testid` instead of `data-test` attribute", - }, - ], - }, - ], - "react/forbid-dom-props": [ - "error", - { - forbid: [ - { - propName: "data-test", - message: "Use `data-testid` instead of `data-test` attribute", - }, - ], - }, - ], - }, - settings: { - react: { - version: "detect", - }, - }, - overrides: [ - { - files: ["**/*.ts?(x)"], - parser: "@typescript-eslint/parser", - extends: [ - "react-app", // Uses the recommended rules from CRA. - "plugin:prettier/recommended", // Ensure this is last in the list. - ], - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 2018, - sourceType: "module", - }, - rules: { - "prettier/prettier": "error", - }, - settings: { - react: { - version: "detect", - }, - }, - }, - { - files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"], - extends: ["plugin:testing-library/react"], - rules: { - "testing-library/no-node-access": "warn", - "testing-library/no-container": "warn", - "testing-library/no-render-in-lifecycle": "warn", - }, - }, - ], -}; diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..9f68a24d --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,134 @@ +import { fixupConfigRules, fixupPluginRules } from "@eslint/compat"; +import prettier from "eslint-plugin-prettier"; +import cypress from "eslint-plugin-cypress"; +import testingLibrary from "eslint-plugin-testing-library"; +import babelParser from "@babel/eslint-parser"; +import path from "node:path"; +import tseslint from "typescript-eslint"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; +import react from "eslint-plugin-react"; +import hooksPlugin from "eslint-plugin-react-hooks"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +export default [ + ...fixupConfigRules( + compat.extends("plugin:cypress/recommended", "plugin:prettier/recommended"), + ), + ...tseslint.configs.recommended, + react.configs.flat.recommended, + { + plugins: { + "react-hooks": fixupPluginRules(hooksPlugin), + }, + rules: hooksPlugin.configs.recommended.rules, + }, + { + plugins: { + prettier: fixupPluginRules(prettier), + cypress: fixupPluginRules(cypress), + "@typescript-eslint": tseslint.plugin, + }, + languageOptions: { + parser: babelParser, + ecmaVersion: 2018, + sourceType: "module", + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + settings: { + react: { + version: "detect", + }, + }, + rules: { + "react/forbid-component-props": [ + "error", + { + forbid: [ + { + propName: "data-test", + message: "Use `data-testid` instead of `data-test` attribute", + }, + ], + }, + ], + "react/forbid-dom-props": [ + "error", + { + forbid: [ + { + propName: "data-test", + message: "Use `data-testid` instead of `data-test` attribute", + }, + ], + }, + ], + "react/display-name": "off", + "react/prop-types": "off", + "react/no-unescaped-entities": "off", + "@typescript-eslint/no-empty-object-type": "off", + "@typescript-eslint/no-unused-expressions": "off", + "@typescript-eslint/no-unused-vars": [ + "error", + { + argsIgnorePattern: "^_", + destructuredArrayIgnorePattern: "^_", + varsIgnorePattern: "^_", + }, + ], + }, + }, + ...fixupConfigRules(compat.extends("plugin:prettier/recommended")).map( + (config) => ({ + ...config, + files: ["**/*.ts?(x)"], + }), + ), + { + files: ["**/*.ts?(x)"], + languageOptions: { + parser: tseslint.parser, + ecmaVersion: 2018, + sourceType: "module", + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + settings: { + react: { + version: "detect", + }, + }, + rules: { + "prettier/prettier": "error", + }, + }, + { + plugins: { + "testing-library": fixupPluginRules({ + rules: testingLibrary.rules, + }), + }, + files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"], + rules: { + ...testingLibrary.configs["flat/react"].rules, + "testing-library/no-node-access": "off", + "testing-library/no-container": "off", + "testing-library/no-render-in-lifecycle": "off", + }, + }, +]; diff --git a/package.json b/package.json index 40542084..9497d0af 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,12 @@ "devDependencies": { "@babel/cli": "7.25.6", "@babel/eslint-parser": "7.25.1", + "@babel/plugin-proposal-class-properties": "7.18.6", + "@babel/preset-react": "7.24.7", "@babel/preset-typescript": "7.24.7", + "@eslint/compat": "1.1.1", + "@eslint/eslintrc": "3.1.0", + "@eslint/js": "9.9.1", "@percy/cli": "1.29.3", "@percy/storybook": "6.0.2", "@semantic-release/changelog": "6.0.3", @@ -47,8 +52,6 @@ "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", "@types/lodash.isequal": "4", - "@typescript-eslint/eslint-plugin": "8.4.0", - "@typescript-eslint/parser": "8.4.0", "babel-jest": "29.7.0", "babel-loader": "9.1.3", "babel-plugin-module-resolver": "5.0.2", @@ -59,13 +62,12 @@ "deepmerge": "4.3.1", "eslint": "9.9.1", "eslint-config-prettier": "9.1.0", - "eslint-config-react-app": "7.0.1", "eslint-plugin-cypress": "3.5.0", "eslint-plugin-flowtype": "8.0.3", "eslint-plugin-import": "2.29.1", "eslint-plugin-jsx-a11y": "6.9.0", "eslint-plugin-prettier": "5.2.1", - "eslint-plugin-react": "7.35.1", + "eslint-plugin-react": "7.35.2", "eslint-plugin-react-hooks": "4.6.2", "eslint-plugin-storybook": "0.8.0", "eslint-plugin-testing-library": "6.3.0", @@ -80,6 +82,7 @@ "sass-loader": "16.0.1", "semantic-release": "24.1.0", "storybook": "8.2.9", + "strip-ansi": "7.1.0", "style-loader": "4.0.0", "stylelint": "16.9.0", "stylelint-config-prettier": "9.0.5", @@ -89,6 +92,7 @@ "ts-jest": "29.2.5", "tsc-alias": "1.8.10", "typescript": "5.5.4", + "typescript-eslint": "8.4.0", "vanilla-framework": "4.15.0", "wait-on": "8.0.0", "webpack": "5.94.0" @@ -110,7 +114,8 @@ "@types/react": "18.3.5", "@types/react-dom": "18.3.0", "postcss": "^8.3.11", - "jackspeak": "4.0.1" + "jackspeak": "2.3.6", + "strip-ansi": "6.0.1" }, "peerDependencies": { "@types/react": "^18.0.0", @@ -145,9 +150,6 @@ "semantic-release": "semantic-release", "semantic-release-dry-run": "semantic-release --dry-run --no-ci" }, - "eslintConfig": { - "extends": "react-app" - }, "browserslist": { "production": [ ">0.2%", diff --git a/src/components/Accordion/AccordionSection/AccordionSection.test.tsx b/src/components/Accordion/AccordionSection/AccordionSection.test.tsx index 55e089da..2c3da2cb 100644 --- a/src/components/Accordion/AccordionSection/AccordionSection.test.tsx +++ b/src/components/Accordion/AccordionSection/AccordionSection.test.tsx @@ -29,7 +29,6 @@ describe("AccordionSection ", () => { />, ); // Query for the specific element as defined in the titleElement prop. - // eslint-disable-next-line testing-library/no-node-access const title = screen.getByRole("heading"); expect(title.tagName).toBe("H4"); expect(title).not.toHaveAttribute("aria-level"); diff --git a/src/components/ActionButton/ActionButton.test.tsx b/src/components/ActionButton/ActionButton.test.tsx index 4a47724f..506df6e4 100644 --- a/src/components/ActionButton/ActionButton.test.tsx +++ b/src/components/ActionButton/ActionButton.test.tsx @@ -31,7 +31,6 @@ describe("ActionButton", () => { expect(screen.getByLabelText(Label.WAITING)).toBeInTheDocument(); const icon = ".p-icon--spinner"; // Check for the visual element. - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(icon)).toBeInTheDocument(); // Move on to the success state. rerender(Click me); @@ -39,7 +38,6 @@ describe("ActionButton", () => { jest.advanceTimersByTime(LOADER_MIN_DURATION); }); expect(screen.queryByLabelText(Label.WAITING)).not.toBeInTheDocument(); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(icon)).not.toBeInTheDocument(); }); @@ -54,13 +52,11 @@ describe("ActionButton", () => { expect(screen.getByLabelText(Label.SUCCESS)).toBeInTheDocument(); const icon = ".p-icon--success"; // Check for the visual element. - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(icon)).toBeInTheDocument(); act(() => { jest.advanceTimersByTime(SUCCESS_DURATION + 1); }); expect(screen.queryByLabelText(Label.SUCCESS)).not.toBeInTheDocument(); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(icon)).not.toBeInTheDocument(); }); }); diff --git a/src/components/Card/Card.test.tsx b/src/components/Card/Card.test.tsx index bfd503ca..6f36ed6f 100644 --- a/src/components/Card/Card.test.tsx +++ b/src/components/Card/Card.test.tsx @@ -19,7 +19,6 @@ describe("Card ", () => { it("can display a header", () => { render(); // Find the visible image in the DOM. - // eslint-disable-next-line testing-library/no-node-access const image = document.querySelector(".p-card__thumbnail"); expect(image).toBeInTheDocument(); expect(image).toHaveAttribute("src", "test.png"); diff --git a/src/components/CheckboxInput/CheckableInput/CheckableInput.test.tsx b/src/components/CheckboxInput/CheckableInput/CheckableInput.test.tsx index 8ac0c488..ce3d35c1 100644 --- a/src/components/CheckboxInput/CheckableInput/CheckableInput.test.tsx +++ b/src/components/CheckboxInput/CheckableInput/CheckableInput.test.tsx @@ -30,7 +30,6 @@ describe("CheckableInput ", () => { required >, ); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector("label")).toHaveClass("is-required"); }); @@ -42,7 +41,6 @@ describe("CheckableInput ", () => { inline >, ); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector("label")).toHaveClass("p-radio--inline"); }); @@ -65,7 +63,6 @@ describe("CheckableInput ", () => { labelClassName="label-class-name" />, ); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector("label")).toHaveClass("label-class-name"); }); }); diff --git a/src/components/CodeSnippet/CodeSnippet.test.tsx b/src/components/CodeSnippet/CodeSnippet.test.tsx index 4c7d3bdb..f4c16607 100644 --- a/src/components/CodeSnippet/CodeSnippet.test.tsx +++ b/src/components/CodeSnippet/CodeSnippet.test.tsx @@ -46,7 +46,6 @@ describe("CodeSnippet ", () => { />, ); expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".p-code-snippet__block--numbered"), ).toBeInTheDocument(); expect(screen.getByText("Test line 1;")).toBeInTheDocument(); @@ -57,7 +56,7 @@ describe("CodeSnippet ", () => { it("renders line numbers when an array is passed in", () => { const multilineCode = [ "Test line 1;", - Test line 2;, + Test line 2;, "Test line 3;", ]; @@ -72,13 +71,9 @@ describe("CodeSnippet ", () => { />, ); expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".p-code-snippet__block--numbered"), ).toBeInTheDocument(); - expect( - // eslint-disable-next-line testing-library/no-node-access - document.querySelectorAll(".p-code-snippet__line"), - ).toHaveLength(3); + expect(document.querySelectorAll(".p-code-snippet__line")).toHaveLength(3); expect(screen.getByText("Test line 1;")).toBeInTheDocument(); expect(screen.getByText("Test line 2;")).toBeInTheDocument(); expect(screen.getByText("Test line 3;")).toBeInTheDocument(); @@ -113,7 +108,6 @@ describe("CodeSnippet ", () => { />, ); expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".p-code-snippet__block--icon"), ).toBeInTheDocument(); }); @@ -130,7 +124,6 @@ describe("CodeSnippet ", () => { />, ); expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".p-code-snippet__block--icon.is-windows-prompt"), ).toBeInTheDocument(); }); @@ -142,14 +135,12 @@ describe("CodeSnippet ", () => { />, ); expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".p-code-snippet__block--icon.is-url"), ).toBeInTheDocument(); }); it("renders code block with line wrapping", () => { render(); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(".is-wrapped")).toBeInTheDocument(); }); @@ -196,9 +187,7 @@ describe("CodeSnippet ", () => { ]} />, ); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(".test")).toBeInTheDocument(); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(".is-bordered")).toBeInTheDocument(); }); diff --git a/src/components/ConfirmationModal/ConfirmationModal.tsx b/src/components/ConfirmationModal/ConfirmationModal.tsx index f0b36a73..5f629b87 100644 --- a/src/components/ConfirmationModal/ConfirmationModal.tsx +++ b/src/components/ConfirmationModal/ConfirmationModal.tsx @@ -68,7 +68,9 @@ export const ConfirmationModal = ({ ...props }: Props): ReactElement => { const handleClick = - (action: A | null | undefined) => + ( // eslint-disable-line @typescript-eslint/no-unsafe-function-type + action: A | null | undefined, + ) => (event: MouseEvent) => { if (!props.shouldPropagateClickEvent) { event.stopPropagation(); diff --git a/src/components/ContextualMenu/ContextualMenu.test.tsx b/src/components/ContextualMenu/ContextualMenu.test.tsx index 272a3c6e..5c2f991b 100644 --- a/src/components/ContextualMenu/ContextualMenu.test.tsx +++ b/src/components/ContextualMenu/ContextualMenu.test.tsx @@ -49,7 +49,6 @@ describe("ContextualMenu ", () => { it("can have a toggle button with just an icon", () => { render(); expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector( ".p-contextual-menu__toggle .p-contextual-menu__indicator", ), @@ -63,7 +62,6 @@ describe("ContextualMenu ", () => { , ); expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector( ".p-contextual-menu__toggle .p-contextual-menu__indicator", ), @@ -100,7 +98,6 @@ describe("ContextualMenu ", () => { render(); expect(screen.getByRole("button", { name: "Toggle" })).toBeInTheDocument(); expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".p-contextual-menu__indicator"), ).not.toBeInTheDocument(); }); @@ -145,7 +142,6 @@ describe("ContextualMenu ", () => { it("can display links in groups", () => { render(); - // eslint-disable-next-line testing-library/no-node-access const group = document.querySelector( ".p-contextual-menu__group", ) as HTMLElement; @@ -162,7 +158,6 @@ describe("ContextualMenu ", () => { visible />, ); - // eslint-disable-next-line testing-library/no-node-access const group = document.querySelector( ".p-contextual-menu__group", ) as HTMLElement; @@ -184,7 +179,6 @@ describe("ContextualMenu ", () => { ); expect(screen.getByTestId("content")).toBeInTheDocument(); expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".p-contextual-menu__link"), ).not.toBeInTheDocument(); }); diff --git a/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.test.tsx b/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.test.tsx index d34e0412..22d1568e 100644 --- a/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.test.tsx +++ b/src/components/ContextualMenu/ContextualMenuDropdown/ContextualMenuDropdown.test.tsx @@ -201,7 +201,7 @@ describe("ContextualMenuDropdown ", () => { // get the dropdown menu dom element and set its height // NOTE: we can only do this after the component has been rendered at least once - let dropdownNode = document.querySelector( + const dropdownNode = document.querySelector( ".p-contextual-menu__dropdown", ) as HTMLElement; diff --git a/src/components/Field/Field.test.tsx b/src/components/Field/Field.test.tsx index 825fb05e..b1f7edcc 100644 --- a/src/components/Field/Field.test.tsx +++ b/src/components/Field/Field.test.tsx @@ -139,7 +139,6 @@ describe("Field ", () => { expect(field.childNodes[0]).toHaveClass("label-node"); // The label should not be inside the control. expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".p-form__control .p-form__label"), ).not.toBeInTheDocument(); }); @@ -151,7 +150,6 @@ describe("Field ", () => { expect(field.childNodes[0]).not.toHaveClass("label-node"); // The label should be inside the control. expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".p-form__control .p-form__label"), ).toBeInTheDocument(); }); @@ -174,13 +172,9 @@ describe("Field ", () => { it("can be stacked", () => { render(); // The Label should be inside a col-4. - expect( - // eslint-disable-next-line testing-library/no-node-access - document.querySelector(".col-4 .p-form__label"), - ).toBeInTheDocument(); + expect(document.querySelector(".col-4 .p-form__label")).toBeInTheDocument(); // The control should be inside a col-8. expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".col-8 .p-form__control"), ).toBeInTheDocument(); expect(screen.getByTestId("field")).toHaveClass("row"); diff --git a/src/components/Icon/Icon.test.tsx b/src/components/Icon/Icon.test.tsx index af0e0911..972ffe9d 100644 --- a/src/components/Icon/Icon.test.tsx +++ b/src/components/Icon/Icon.test.tsx @@ -6,26 +6,22 @@ import Icon, { ICONS } from "./Icon"; describe("Icon", () => { it("renders", () => { const { container } = render(); - // eslint-disable-next-line testing-library/no-node-access expect(container.firstChild).toMatchSnapshot(); }); it("sets correct class name based on given name", () => { const { container } = render(); - // eslint-disable-next-line testing-library/no-node-access expect(container.firstChild).toHaveClass("p-icon--test"); }); it("can be given a custom class name", () => { const { container } = render(); - // eslint-disable-next-line testing-library/no-node-access expect(container.firstChild).toHaveClass("custom-class p-icon--test"); }); it("can be given standard HTML props", () => { const style = { width: "200px" }; const { container } = render(); - // eslint-disable-next-line testing-library/no-node-access expect(container.firstChild).toHaveAttribute("style", "width: 200px;"); }); }); diff --git a/src/components/Input/Input.test.tsx b/src/components/Input/Input.test.tsx index a2131bfa..84acf72a 100644 --- a/src/components/Input/Input.test.tsx +++ b/src/components/Input/Input.test.tsx @@ -18,29 +18,17 @@ describe("Input", () => { it("moves the label for radio buttons", () => { render(); - expect( - // eslint-disable-next-line testing-library/no-node-access - document.querySelector(".p-radio__label"), - ).toBeInTheDocument(); + expect(document.querySelector(".p-radio__label")).toBeInTheDocument(); expect(screen.getByRole("radio")).toHaveAccessibleName("text label"); - expect( - // eslint-disable-next-line testing-library/no-node-access - document.querySelector(".p-form__label"), - ).not.toBeInTheDocument(); + expect(document.querySelector(".p-form__label")).not.toBeInTheDocument(); }); it("moves the label for checkboxes", () => { render(); expect(screen.getByRole("checkbox")).toHaveAccessibleName("text label"); - expect( - // eslint-disable-next-line testing-library/no-node-access - document.querySelector(".p-checkbox__label"), - ).toBeInTheDocument(); - expect( - // eslint-disable-next-line testing-library/no-node-access - document.querySelector(".p-form__label"), - ).not.toBeInTheDocument(); + expect(document.querySelector(".p-checkbox__label")).toBeInTheDocument(); + expect(document.querySelector(".p-form__label")).not.toBeInTheDocument(); }); it("can take focus on first render", () => { @@ -82,18 +70,14 @@ describe("Input", () => { it("can set a label class name for a radiobutton", () => { render(); - expect( - // eslint-disable-next-line testing-library/no-node-access - document.querySelector(".p-radio"), - ).toHaveClass("label-class-name"); + expect(document.querySelector(".p-radio")).toHaveClass("label-class-name"); }); it("can set a label class name for a checkbox", () => { render(); - expect( - // eslint-disable-next-line testing-library/no-node-access - document.querySelector(".p-checkbox"), - ).toHaveClass("label-class-name"); + expect(document.querySelector(".p-checkbox")).toHaveClass( + "label-class-name", + ); }); it("renders", () => { @@ -147,7 +131,6 @@ describe("Input", () => { "p-form-validation__input", "extra-class", ); - // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access expect(container.querySelector(".p-form-help-text")).toHaveClass( "additional-help-text-class", ); diff --git a/src/components/List/List.test.tsx b/src/components/List/List.test.tsx index 4b3de2e4..417ef703 100644 --- a/src/components/List/List.test.tsx +++ b/src/components/List/List.test.tsx @@ -17,7 +17,11 @@ describe("List ", () => { }); it("can define items as JSX", () => { - render(test, items]} />); + render( + test, items]} + />, + ); expect( within(screen.getAllByRole("listitem")[0]).getByRole("button"), ).toBeInTheDocument(); diff --git a/src/components/MainTable/MainTable.stories.tsx b/src/components/MainTable/MainTable.stories.tsx index 6e91e1a6..8e89c5a7 100644 --- a/src/components/MainTable/MainTable.stories.tsx +++ b/src/components/MainTable/MainTable.stories.tsx @@ -226,7 +226,7 @@ export const Sortable: Story = { export const Expanding: Story = { render: () => { // eslint-disable-next-line react-hooks/rules-of-hooks - let [expandedRow, setExpandedRow] = useState(1); + const [expandedRow, setExpandedRow] = useState(1); return ( { render(); expect(screen.getByRole("grid")).toHaveClass("p-table--expanding"); // Need to query the DOM as this cell is not exposed by default. - // eslint-disable-next-line testing-library/no-node-access const heads = document.querySelectorAll("th"); // There should be an additional hidden table header to account for the // expanding cell expect(heads.length).toEqual(headers.length + 1); expect(heads[heads.length - 1]).toHaveAttribute("aria-hidden", "true"); - // eslint-disable-next-line testing-library/no-node-access const columns = document.querySelectorAll("tr:last-child td"); // There should be an additional table cell for the expanding content. expect(columns.length).toEqual(rows[rows.length - 1].columns.length + 1); diff --git a/src/components/MainTable/MainTable.tsx b/src/components/MainTable/MainTable.tsx index 88934c6c..f566f03b 100644 --- a/src/components/MainTable/MainTable.tsx +++ b/src/components/MainTable/MainTable.tsx @@ -205,7 +205,7 @@ const generateRows = ({ Pick) => rows.map( ( - { columns, expanded, expandedContent, key, sortData, ...rowProps }, + { columns, expanded, expandedContent, key, sortData: _, ...rowProps }, index, ) => { const cellItems = columns?.map(({ content, ...cellProps }, index) => { diff --git a/src/components/ModularTable/ModularTable.tsx b/src/components/ModularTable/ModularTable.tsx index 7c70a2a1..5be04a1e 100644 --- a/src/components/ModularTable/ModularTable.tsx +++ b/src/components/ModularTable/ModularTable.tsx @@ -41,7 +41,7 @@ export type Props> = PropsWithSpread< /** * Optional argument to make the tables be sortable and use the `useSortBy` plugin. */ - sortable?: Boolean; + sortable?: boolean; /** * This function is used to resolve any props needed for a particular column's header cell. */ @@ -246,10 +246,11 @@ function ModularTable>({ return ( - {headerGroups.map((headerGroup) => ( - - {headerGroup.headers.map((column) => ( + {headerGroups.map((headerGroup, i) => ( + + {headerGroup.headers.map((column, j) => ( { , ); - // eslint-disable-next-line testing-library/no-node-access const element = screen.getByText("Content").parentElement; expect(element).toHaveAttribute("aria-hidden", "false"); expect(element).toHaveClass("fade-in--down test-class"); diff --git a/src/components/Navigation/Navigation.test.tsx b/src/components/Navigation/Navigation.test.tsx index ec7de53a..ff3f66d6 100644 --- a/src/components/Navigation/Navigation.test.tsx +++ b/src/components/Navigation/Navigation.test.tsx @@ -14,7 +14,6 @@ const items = [ }, ]; -/* eslint-disable testing-library/no-node-access */ it("displays light theme", () => { render(} theme={Theme.LIGHT} />); expect(screen.getByRole("banner").className.includes("is-light")).toBe(true); @@ -85,7 +84,7 @@ it("can display a standard logo with a generated link", () => { { if (isNavigationAnchor(link)) { - const { url, label, isSelected, ...props } = link; + const { url, label, isSelected: _, ...props } = link; return ( {label} @@ -305,9 +304,11 @@ it("closes the search form when clicking on the overlay", async () => { await userEvent.click(screen.getAllByRole("button", { name: "Search" })[0]); expect(banner.className.includes("has-search-open")).toBe(true); expect(screen.getByRole("searchbox")).toBeInTheDocument(); - await userEvent.click( - document.querySelector(".p-navigation__search-overlay"), - ); + const overlay = document.querySelector(".p-navigation__search-overlay"); + expect(overlay).toBeInTheDocument(); + if (overlay) { + await userEvent.click(overlay); + } expect(banner.className.includes("has-search-open")).toBe(false); expect(screen.queryByRole("searchbox")).not.toBeInTheDocument(); }); diff --git a/src/components/Navigation/NavigationLink/NavigationLink.tsx b/src/components/Navigation/NavigationLink/NavigationLink.tsx index 220a1053..34f61f9a 100644 --- a/src/components/Navigation/NavigationLink/NavigationLink.tsx +++ b/src/components/Navigation/NavigationLink/NavigationLink.tsx @@ -37,7 +37,7 @@ const NavigationLink = ({ generateLink, link }: Props): JSX.Element | null => { ); } else if (isNavigationButton(link)) { - const { isSelected, label, url, ...linkProps } = link; + const { isSelected, label, url: _url, ...linkProps } = link; return ( , + , ], }, ]} @@ -115,7 +117,7 @@ it("displays links using a custom component", () => { { label: "Link one", }, - Link two, + Link two, ], }, ]} @@ -136,7 +138,7 @@ it("displays a mix of links and custom components", () => { label: "Link one", href: "#", }, - Link two, + Link two, ], }, ]} diff --git a/src/components/SideNavigation/SideNavigationItem/SideNavigationItem.stories.tsx b/src/components/SideNavigation/SideNavigationItem/SideNavigationItem.stories.tsx index 23d09020..c42b62c9 100644 --- a/src/components/SideNavigation/SideNavigationItem/SideNavigationItem.stories.tsx +++ b/src/components/SideNavigation/SideNavigationItem/SideNavigationItem.stories.tsx @@ -11,7 +11,9 @@ const meta: Meta = { render: (args) => ( ] }]} + items={[ + { items: [] }, + ]} /> ), tags: ["autodocs"], diff --git a/src/components/SideNavigation/SideNavigationLink/SideNavigationLink.tsx b/src/components/SideNavigation/SideNavigationLink/SideNavigationLink.tsx index 29179057..15493174 100644 --- a/src/components/SideNavigation/SideNavigationLink/SideNavigationLink.tsx +++ b/src/components/SideNavigation/SideNavigationLink/SideNavigationLink.tsx @@ -18,7 +18,7 @@ export type Props = Omit< component?: SideNavigationBaseProps["component"]; }; const SideNavigationLink = forwardRef( - ({ component, ref, ...props }: Props) => { + ({ component, ...props }: Props) => { let className: string | null = null; if ("className" in props && typeof props.className === "string") { className = props.className; diff --git a/src/components/Spinner/Spinner.test.tsx b/src/components/Spinner/Spinner.test.tsx index 7313d202..683beee1 100644 --- a/src/components/Spinner/Spinner.test.tsx +++ b/src/components/Spinner/Spinner.test.tsx @@ -20,7 +20,6 @@ describe("", () => { // unit tests it("renders a spinner icon", () => { render(); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(".p-icon--spinner")).toBeInTheDocument(); expect(screen.getByText("Loading")).toBeInTheDocument(); }); @@ -31,17 +30,15 @@ describe("", () => { expect(screen.getByText(text)).toBeInTheDocument(); expect( - // eslint-disable-next-line testing-library/no-node-access document.querySelector(".p-icon--spinner")?.textContent, ).not.toContain(text); }); it("renders Loading... for icon text if no text prop is provided", () => { render(); - expect( - // eslint-disable-next-line testing-library/no-node-access - document.querySelector(".p-icon--spinner")?.textContent, - ).toBe("Loading"); + expect(document.querySelector(".p-icon--spinner")?.textContent).toBe( + "Loading", + ); }); it("renders an assertive spinner", () => { @@ -53,10 +50,7 @@ describe("", () => { it("renders a light spinner if given isLight prop", () => { render(); - expect( - // eslint-disable-next-line testing-library/no-node-access - document.querySelector(".p-icon--spinner"), - ).toHaveClass("is-light"); + expect(document.querySelector(".p-icon--spinner")).toHaveClass("is-light"); }); it("renders a custom aria-label", () => { diff --git a/src/components/Strip/Strip.test.tsx b/src/components/Strip/Strip.test.tsx index 7fb3ad35..da387cd6 100644 --- a/src/components/Strip/Strip.test.tsx +++ b/src/components/Strip/Strip.test.tsx @@ -89,7 +89,6 @@ describe("Strip ", () => { Test content , ); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(".row .col-4")).toBeInTheDocument(); }); @@ -99,7 +98,6 @@ describe("Strip ", () => { Test content , ); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(".row .col-12")).not.toBeInTheDocument(); }); @@ -109,7 +107,6 @@ describe("Strip ", () => { Test content , ); - // eslint-disable-next-line testing-library/no-node-access expect(document.querySelector(".row")).toHaveClass("row--extra"); }); diff --git a/src/components/TableCell/TableCell.test.tsx b/src/components/TableCell/TableCell.test.tsx index 45a5d8e8..b505bc82 100644 --- a/src/components/TableCell/TableCell.test.tsx +++ b/src/components/TableCell/TableCell.test.tsx @@ -1,4 +1,3 @@ -/* eslint-disable testing-library/no-node-access */ import { render, isInaccessible } from "@testing-library/react"; import React from "react"; @@ -17,9 +16,15 @@ describe("TableCell", () => { it("can be hidden", () => { const { container, rerender } = render(