From f067db1b55b4ca148c737c8f693c15b020d24e78 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 27 Dec 2024 19:46:40 +0100 Subject: [PATCH 01/30] Bump stylelint-prettier to 3.0.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e5194cb77..1367fe6b0 100644 --- a/package.json +++ b/package.json @@ -129,7 +129,7 @@ "stylelint": "^15.11.0", "stylelint-config-prettier": "^9.0.5", "stylelint-config-recommended-scss": "^6.0.0", - "stylelint-prettier": "^2.0.0", + "stylelint-prettier": "3.0.0", "stylelint-scss": "^6.10.0", "stylelint-webpack-plugin": "^5.0.1", "svg-url-loader": "^8.0.0", diff --git a/yarn.lock b/yarn.lock index 72b90d683..6a8a02062 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12502,10 +12502,10 @@ stylelint-config-recommended@^7.0.0: resolved "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz" integrity sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q== -stylelint-prettier@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/stylelint-prettier/-/stylelint-prettier-2.0.0.tgz" - integrity sha512-jvT3G+9lopkeB0ARmDPszyfaOnvnIF+30QCjZxyt7E6fynI1T9mOKgYDNb9bXX17M7PXMZaX3j/26wqakjp1tw== +stylelint-prettier@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stylelint-prettier/-/stylelint-prettier-3.0.0.tgz#57028b99866ed4c3ae045ddd891bf9a77d274726" + integrity sha512-kIks1xw6np0zElokMT2kP6ar3S4MBoj6vUtPJuND1pFELMpZxVS/0uHPR4HDAVn0WAD3I5oF0IA3qBFxBpMkLg== dependencies: prettier-linter-helpers "^1.0.0" From dd87d7d4a1945d563accf281306b0704c7098c14 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 27 Dec 2024 19:55:22 +0100 Subject: [PATCH 02/30] Update Prettier to 3.0.0 and stylelint-prettier to 4.0.0 Both packages, cuz one is dependent on the other --- package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 1367fe6b0..888505fdc 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "postcss-cli": "^11.0.0", "postcss-loader": "^8.1.1", "postcss-scss": "^4.0.9", - "prettier": "^2.6.2", + "prettier": "3.0.0", "replace-in-file": "^6.3.2", "sass": "^1.83.0", "source-map-support": "^0.5.21", @@ -129,7 +129,7 @@ "stylelint": "^15.11.0", "stylelint-config-prettier": "^9.0.5", "stylelint-config-recommended-scss": "^6.0.0", - "stylelint-prettier": "3.0.0", + "stylelint-prettier": "4.0.0", "stylelint-scss": "^6.10.0", "stylelint-webpack-plugin": "^5.0.1", "svg-url-loader": "^8.0.0", diff --git a/yarn.lock b/yarn.lock index 6a8a02062..f0a428498 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10865,10 +10865,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== +prettier@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" + integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== pretty-bytes@^5.6.0: version "5.6.0" @@ -12502,10 +12502,10 @@ stylelint-config-recommended@^7.0.0: resolved "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz" integrity sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q== -stylelint-prettier@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stylelint-prettier/-/stylelint-prettier-3.0.0.tgz#57028b99866ed4c3ae045ddd891bf9a77d274726" - integrity sha512-kIks1xw6np0zElokMT2kP6ar3S4MBoj6vUtPJuND1pFELMpZxVS/0uHPR4HDAVn0WAD3I5oF0IA3qBFxBpMkLg== +stylelint-prettier@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/stylelint-prettier/-/stylelint-prettier-4.0.0.tgz#e04f33bf9968a5d5478d2d11b20bdc5a7de2dc35" + integrity sha512-hYlObunQiSzc5XRttNiDyaY1W7ytW/AJtEbaDxy0rr4ioQvko+cjAgSGrRbz0iRB+yc6jiMrUmHcGkvFb+zDqw== dependencies: prettier-linter-helpers "^1.0.0" From 85c8cf277c3df12834ddbbc206dd280fb574f678 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 27 Dec 2024 20:10:49 +0100 Subject: [PATCH 03/30] Bump eslint-plugin-prettier to version 5.2.1 --- package.json | 2 +- yarn.lock | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 888505fdc..eb17253dc 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-no-only-tests": "^3.3.0", - "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.1.0", "eslint-webpack-plugin": "^4.2.0", diff --git a/yarn.lock b/yarn.lock index f0a428498..4847182bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2517,6 +2517,11 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + "@reach/alert@^0.18.0": version "0.18.0" resolved "https://registry.yarnpkg.com/@reach/alert/-/alert-0.18.0.tgz#e286d396ebb48eeabd56c4e66a3493361f576daf" @@ -6732,12 +6737,13 @@ eslint-plugin-no-only-tests@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.3.0.tgz#d9d42ccd4b5d099b4872fb5046cf95441188cfb5" integrity sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q== -eslint-plugin-prettier@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz" - integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== +eslint-plugin-prettier@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#d1c8f972d8f60e414c25465c163d16f209411f95" + integrity sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw== dependencies: prettier-linter-helpers "^1.0.0" + synckit "^0.9.1" eslint-plugin-react-hooks@^5.1.0: version "5.1.0" @@ -12684,6 +12690,14 @@ swap-case@^3.0.2: resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-3.0.3.tgz#363883b0e8a2837c24d2e0eccb6bdff92e32d711" integrity sha512-6p4op8wE9CQv7uDFzulI6YXUw4lD9n4oQierdbFThEKVWVQcbQcUjdP27W8XE7V4QnWmnq9jueSHceyyQnqQVA== +synckit@^0.9.1: + version "0.9.2" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.2.tgz#a3a935eca7922d48b9e7d6c61822ee6c3ae4ec62" + integrity sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + syntax-error@^1.1.1: version "1.4.0" resolved "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz" From b7a7d6de5c4feeb91a77db6704e33e6aac8a6654 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Sat, 28 Dec 2024 12:08:27 +0100 Subject: [PATCH 04/30] Refactor ESLint configuration to switch the order of Prettier and Cypress plugins so the ones we use for linting are last (prettier adjecent) --- .eslintrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.eslintrc b/.eslintrc index c9a67b1ab..25dbdc8e3 100644 --- a/.eslintrc +++ b/.eslintrc @@ -5,9 +5,9 @@ "airbnb-typescript", "airbnb/hooks", "plugin:@typescript-eslint/recommended", - "prettier", + "plugin:cypress/recommended", "plugin:prettier/recommended", - "plugin:cypress/recommended" + "prettier" ], "plugins": [ "no-only-tests" From 1a40807c16b8ced1a8f1c40d8f578751baf7ccf2 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Sat, 28 Dec 2024 12:08:53 +0100 Subject: [PATCH 05/30] Lint + fix the application --- src/apps/advanced-search/types.ts | 2 +- src/components/material/MaterialHeader.tsx | 4 ++-- src/core/dbc-gateway/helper.ts | 2 +- ...authenticatedPatronV6AuthenticateStatus.ts | 2 +- src/core/publizon/model/apiResponseCode.ts | 2 +- src/core/publizon/model/bookTypes.ts | 2 +- .../publizon/model/contentLoanStatusEnum.ts | 2 +- src/core/publizon/model/fileExtensionType.ts | 2 +- src/core/publizon/model/identifierTypeEnum.ts | 2 +- .../utils/useReservableFromAnotherLibrary.tsx | 5 +++-- src/core/utils/withFocusTrap.tsx | 19 +++++++++---------- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/apps/advanced-search/types.ts b/src/apps/advanced-search/types.ts index 0ac4bb359..697b1ded8 100644 --- a/src/apps/advanced-search/types.ts +++ b/src/apps/advanced-search/types.ts @@ -34,7 +34,7 @@ export const advancedSearchIndexTranslations = { "term.isbn": "advancedSearchIdentifierText" } as const; -export type AdvancedSearchIndex = typeof advancedSearchIndexes[number]; +export type AdvancedSearchIndex = (typeof advancedSearchIndexes)[number]; export type AdvancedSearchClause = { value: "AND" | "OR" | "NOT"; diff --git a/src/components/material/MaterialHeader.tsx b/src/components/material/MaterialHeader.tsx index 2ba7af1f0..ad8d8c556 100644 --- a/src/components/material/MaterialHeader.tsx +++ b/src/components/material/MaterialHeader.tsx @@ -74,8 +74,8 @@ const MaterialHeader: React.FC = ({ ); }; const author = creatorsToString(flattenCreators(creators), t); - const containsDanish = mainLanguages.some((language) => - language?.isoCode.toLowerCase().includes("dan") + const containsDanish = mainLanguages.some( + (language) => language?.isoCode.toLowerCase().includes("dan") ); const allLanguages = mainLanguages .map((language) => language.display) diff --git a/src/core/dbc-gateway/helper.ts b/src/core/dbc-gateway/helper.ts index 9f2933a26..62dc67a99 100644 --- a/src/core/dbc-gateway/helper.ts +++ b/src/core/dbc-gateway/helper.ts @@ -3,7 +3,7 @@ import { beforeAll, vi } from "vitest"; import { getServiceBaseUrl } from "../utils/reduxMiddleware/extractServiceBaseUrls"; import queryMap from "./queryMap"; -type Baseurl = typeof queryMap[keyof typeof queryMap]; +type Baseurl = (typeof queryMap)[keyof typeof queryMap]; export const resolveBaseUrl = (query?: string) => { if (!query) { diff --git a/src/core/fbs/model/authenticatedPatronV6AuthenticateStatus.ts b/src/core/fbs/model/authenticatedPatronV6AuthenticateStatus.ts index 66d222ac7..acc3282dd 100644 --- a/src/core/fbs/model/authenticatedPatronV6AuthenticateStatus.ts +++ b/src/core/fbs/model/authenticatedPatronV6AuthenticateStatus.ts @@ -14,7 +14,7 @@ */ export type AuthenticatedPatronV6AuthenticateStatus = - typeof AuthenticatedPatronV6AuthenticateStatus[keyof typeof AuthenticatedPatronV6AuthenticateStatus]; + (typeof AuthenticatedPatronV6AuthenticateStatus)[keyof typeof AuthenticatedPatronV6AuthenticateStatus]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const AuthenticatedPatronV6AuthenticateStatus = { diff --git a/src/core/publizon/model/apiResponseCode.ts b/src/core/publizon/model/apiResponseCode.ts index 9a61b8bf3..0a5be7d7e 100644 --- a/src/core/publizon/model/apiResponseCode.ts +++ b/src/core/publizon/model/apiResponseCode.ts @@ -11,7 +11,7 @@ Orders/loans created in test environment will not be invoiced. Please request a * 101 = Success, 105 = InvalidContentIdentifier, 118 = InvalidRequestIdentity, 120 = MaxConcurrentLoansPerBorrowerExceeded, 125 = MaxAmountPerMonthExceeded, 128 = ContentNotFound, 131 = NotLoanable, 134 = CardTemporarilyBlocked, 135 = MaxLoansOnTitleReached, 136 = InsufficientCopiesException, 137 = ReservationLimitReached, 138 = GenericFault, 139 = InvalidAgreement, 140 = AlreadyReserved, 141 = InvalidEmail, 142 = InvalidPhone, 143 = CostFreeLimitReached, 147 = CountryNotFound, 148 = InvalidInstitutionId, 149 = InvalidCardFormat, 150 = InvalidCardByCulr, 151 = CardNotFound, 152 = InvalidClientId, 153 = LoanNotFound */ export type ApiResponseCode = - typeof ApiResponseCode[keyof typeof ApiResponseCode]; + (typeof ApiResponseCode)[keyof typeof ApiResponseCode]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const ApiResponseCode = { diff --git a/src/core/publizon/model/bookTypes.ts b/src/core/publizon/model/bookTypes.ts index 7ed090374..f619339bb 100644 --- a/src/core/publizon/model/bookTypes.ts +++ b/src/core/publizon/model/bookTypes.ts @@ -10,7 +10,7 @@ Orders/loans created in test environment will not be invoiced. Please request a /** * 0 = Ebook, 1 = Audio */ -export type BookTypes = typeof BookTypes[keyof typeof BookTypes]; +export type BookTypes = (typeof BookTypes)[keyof typeof BookTypes]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const BookTypes = { diff --git a/src/core/publizon/model/contentLoanStatusEnum.ts b/src/core/publizon/model/contentLoanStatusEnum.ts index 5609eb726..192ea6821 100644 --- a/src/core/publizon/model/contentLoanStatusEnum.ts +++ b/src/core/publizon/model/contentLoanStatusEnum.ts @@ -8,7 +8,7 @@ Orders/loans created in test environment will not be invoiced. Please request a */ export type ContentLoanStatusEnum = - typeof ContentLoanStatusEnum[keyof typeof ContentLoanStatusEnum]; + (typeof ContentLoanStatusEnum)[keyof typeof ContentLoanStatusEnum]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const ContentLoanStatusEnum = { diff --git a/src/core/publizon/model/fileExtensionType.ts b/src/core/publizon/model/fileExtensionType.ts index 1fe29fc2e..d7069e5d6 100644 --- a/src/core/publizon/model/fileExtensionType.ts +++ b/src/core/publizon/model/fileExtensionType.ts @@ -8,7 +8,7 @@ Orders/loans created in test environment will not be invoiced. Please request a */ export type FileExtensionType = - typeof FileExtensionType[keyof typeof FileExtensionType]; + (typeof FileExtensionType)[keyof typeof FileExtensionType]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const FileExtensionType = { diff --git a/src/core/publizon/model/identifierTypeEnum.ts b/src/core/publizon/model/identifierTypeEnum.ts index 1e80318bb..21296c0c2 100644 --- a/src/core/publizon/model/identifierTypeEnum.ts +++ b/src/core/publizon/model/identifierTypeEnum.ts @@ -8,7 +8,7 @@ Orders/loans created in test environment will not be invoiced. Please request a */ export type IdentifierTypeEnum = - typeof IdentifierTypeEnum[keyof typeof IdentifierTypeEnum]; + (typeof IdentifierTypeEnum)[keyof typeof IdentifierTypeEnum]; // eslint-disable-next-line @typescript-eslint/no-redeclare export const IdentifierTypeEnum = { diff --git a/src/core/utils/useReservableFromAnotherLibrary.tsx b/src/core/utils/useReservableFromAnotherLibrary.tsx index 9f40c4182..fc9d19004 100644 --- a/src/core/utils/useReservableFromAnotherLibrary.tsx +++ b/src/core/utils/useReservableFromAnotherLibrary.tsx @@ -27,8 +27,9 @@ const useReservableFromAnotherLibrary = ( } const reservablePidsFromAnotherLibrary = manifestations - .filter(({ catalogueCodes }) => - catalogueCodes?.otherCatalogues.some((code) => code.startsWith("OVE")) + .filter( + ({ catalogueCodes }) => + catalogueCodes?.otherCatalogues.some((code) => code.startsWith("OVE")) ) .map(({ pid }) => pid); diff --git a/src/core/utils/withFocusTrap.tsx b/src/core/utils/withFocusTrap.tsx index 071b9b0f1..c408a6cb2 100644 --- a/src/core/utils/withFocusTrap.tsx +++ b/src/core/utils/withFocusTrap.tsx @@ -5,13 +5,12 @@ import React, { FC } from "react"; export default

( Component: React.ComponentType

): FC

=> - ({ withFocusTrap, ...props }) => - ( - - - - ); + ({ withFocusTrap, ...props }) => ( + + + + ); From 250679a71e1f30b73aae90539bcc51e489210d9b Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 13:42:14 +0100 Subject: [PATCH 06/30] Update Prettier to latest v 3.4.2 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index eb17253dc..597cf2558 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "postcss-cli": "^11.0.0", "postcss-loader": "^8.1.1", "postcss-scss": "^4.0.9", - "prettier": "3.0.0", + "prettier": "^3.4.2", "replace-in-file": "^6.3.2", "sass": "^1.83.0", "source-map-support": "^0.5.21", diff --git a/yarn.lock b/yarn.lock index 4847182bd..95c0df1c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10871,10 +10871,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" - integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== +prettier@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f" + integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ== pretty-bytes@^5.6.0: version "5.6.0" From 2160b3662b5aa8d2db8c68e1143e98c27fb037c9 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 16:30:20 +0100 Subject: [PATCH 07/30] Refactor ESLint configuration for improved readability and consistency --- .eslintrc | 43 ++++++++++++------------------------------- 1 file changed, 12 insertions(+), 31 deletions(-) diff --git a/.eslintrc b/.eslintrc index 25dbdc8e3..7f968e51b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -6,21 +6,17 @@ "airbnb/hooks", "plugin:@typescript-eslint/recommended", "plugin:cypress/recommended", - "plugin:prettier/recommended", - "prettier" - ], - "plugins": [ - "no-only-tests" + "prettier", + "plugin:prettier/recommended" ], + "plugins": ["no-only-tests"], "settings": { "react": { "version": "16.11.0" }, // Since we use vitest alongside our production code we have to instruct eslint // not to throw the import/no-extraneous-dependencies error when doing so. - "import/core-modules": [ - "vitest" - ] + "import/core-modules": ["vitest"] }, "env": { "browser": true, @@ -31,7 +27,7 @@ "allowImportExportEverywhere": false, "ecmaFeatures": { "jsx": true, - "globalReturn": false, + "globalReturn": false }, "project": "./tsconfig.json" }, @@ -47,9 +43,7 @@ "error", { "props": true, - "ignorePropertyModificationsFor": [ - "state" - ] + "ignorePropertyModificationsFor": ["state"] } ], "import/no-extraneous-dependencies": [ @@ -89,10 +83,7 @@ }, "overrides": [ { - "files": [ - "*.js", - "*.jsx" - ], + "files": ["*.js", "*.jsx"], "rules": { // These rules were triggered on the former non-typescript codebase. // We are planning to use only ts/tsx in the future @@ -109,10 +100,7 @@ } }, { - "files": [ - "*.tsx", - "*.ts" - ], + "files": ["*.tsx", "*.ts"], "rules": { // We do not use prop-types in ts. "react/prop-types": "off", @@ -121,9 +109,7 @@ "no-underscore-dangle": [ "error", { - "allow": [ - "__typename" - ] + "allow": ["__typename"] } ], "react/forbid-elements": [ @@ -140,19 +126,14 @@ } }, { - "files": [ - "*.dev.jsx", - "*.dev.tsx" - ], + "files": ["*.dev.jsx", "*.dev.tsx"], "rules": { // We need a simple way of passing args in stories via object spreading. - "react/jsx-props-no-spreading": "off", + "react/jsx-props-no-spreading": "off" } }, { - "files": [ - "*.entry.tsx" - ], + "files": ["*.entry.tsx"], "rules": { // Since we use High Order Functional Component in entries for text props // and want to show the props being used we disable this rule. From 302214ecb53cbad9489fc2000fd8c5f74b93d380 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 16:31:02 +0100 Subject: [PATCH 08/30] Run prettier in src/apps & src/components --- src/apps/loan-list/materials/manifestation.graphql | 1 - src/apps/material/material.graphql | 5 ++--- src/apps/recommender/recommender.graphql | 4 ++-- .../modal/reservation-details/helper.ts | 2 +- src/apps/search-result/search.graphql | 12 ++++++------ .../facet-line/intelligent-facets-search.graphql | 7 ++++++- src/components/material/MaterialHeader.tsx | 4 ++-- .../material/digital-modal/place-copy.graphql | 3 +-- src/components/material/reserve-button.md | 1 + 9 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/apps/loan-list/materials/manifestation.graphql b/src/apps/loan-list/materials/manifestation.graphql index 08ecaaa99..729c7d050 100644 --- a/src/apps/loan-list/materials/manifestation.graphql +++ b/src/apps/loan-list/materials/manifestation.graphql @@ -26,7 +26,6 @@ fragment ManifestationBasicDetails on Manifestation { } } - query getManifestationViaMaterialByFaust($faust: String!) { manifestation(faust: $faust) { ...ManifestationBasicDetails diff --git a/src/apps/material/material.graphql b/src/apps/material/material.graphql index 63a1e41d1..d198dc53f 100644 --- a/src/apps/material/material.graphql +++ b/src/apps/material/material.graphql @@ -10,8 +10,7 @@ query getMaterialGlobally($wid: String!) { } } - -query getInfomedia ($id: String!) { +query getInfomedia($id: String!) { infomedia(id: $id) { error article { @@ -21,7 +20,7 @@ query getInfomedia ($id: String!) { } } -query getReviewManifestations ($pid: [String!]!) { +query getReviewManifestations($pid: [String!]!) { manifestations(pid: $pid) { ...ManifestationReviewFields } diff --git a/src/apps/recommender/recommender.graphql b/src/apps/recommender/recommender.graphql index b224b5015..80fcd2cdd 100644 --- a/src/apps/recommender/recommender.graphql +++ b/src/apps/recommender/recommender.graphql @@ -2,8 +2,8 @@ query recommendFromFaust($faust: String!, $limit: Int!) { recommend(faust: $faust, limit: $limit) { result { work { - ...WorkSmall + ...WorkSmall } } } -} \ No newline at end of file +} diff --git a/src/apps/reservation-list/modal/reservation-details/helper.ts b/src/apps/reservation-list/modal/reservation-details/helper.ts index 6f8a52f17..93d95f1bb 100644 --- a/src/apps/reservation-list/modal/reservation-details/helper.ts +++ b/src/apps/reservation-list/modal/reservation-details/helper.ts @@ -46,7 +46,7 @@ export const getReservationsForSaving = ({ selectedBranch: string; }) => { const getSelectedExpiryDate = (value: FormSelectValue) => - typeof value === "number" ? getFutureDateString(value) : expiryDate ?? ""; + typeof value === "number" ? getFutureDateString(value) : (expiryDate ?? ""); const getSelectedPickupBranch = (value: FormSelectValue) => typeof value === "string" ? value : selectedBranch; diff --git a/src/apps/search-result/search.graphql b/src/apps/search-result/search.graphql index 73c820e97..4fa07e324 100644 --- a/src/apps/search-result/search.graphql +++ b/src/apps/search-result/search.graphql @@ -13,9 +13,9 @@ query searchWithPagination( } query complexSearchWithPaginationWorkAccess( - $cql: String!, - $offset: Int!, - $limit: PaginationLimitScalar!, + $cql: String! + $offset: Int! + $limit: PaginationLimitScalar! $filters: ComplexSearchFiltersInput! ) { complexSearch(cql: $cql, filters: $filters) { @@ -27,9 +27,9 @@ query complexSearchWithPaginationWorkAccess( } query complexSearchWithPagination( - $cql: String!, - $offset: Int!, - $limit: PaginationLimitScalar!, + $cql: String! + $offset: Int! + $limit: PaginationLimitScalar! $filters: ComplexSearchFiltersInput! ) { complexSearch(cql: $cql, filters: $filters) { diff --git a/src/components/facet-line/intelligent-facets-search.graphql b/src/components/facet-line/intelligent-facets-search.graphql index b132226ae..a026ede8b 100644 --- a/src/components/facet-line/intelligent-facets-search.graphql +++ b/src/components/facet-line/intelligent-facets-search.graphql @@ -1,4 +1,9 @@ -query intelligentFacets ($q: SearchQueryInput!, $facetsLimit: Int!, $valuesLimit: Int!, $filters: SearchFiltersInput!) { +query intelligentFacets( + $q: SearchQueryInput! + $facetsLimit: Int! + $valuesLimit: Int! + $filters: SearchFiltersInput! +) { search(q: $q, filters: $filters) { intelligentFacets(limit: $facetsLimit) { name diff --git a/src/components/material/MaterialHeader.tsx b/src/components/material/MaterialHeader.tsx index ad8d8c556..2ba7af1f0 100644 --- a/src/components/material/MaterialHeader.tsx +++ b/src/components/material/MaterialHeader.tsx @@ -74,8 +74,8 @@ const MaterialHeader: React.FC = ({ ); }; const author = creatorsToString(flattenCreators(creators), t); - const containsDanish = mainLanguages.some( - (language) => language?.isoCode.toLowerCase().includes("dan") + const containsDanish = mainLanguages.some((language) => + language?.isoCode.toLowerCase().includes("dan") ); const allLanguages = mainLanguages .map((language) => language.display) diff --git a/src/components/material/digital-modal/place-copy.graphql b/src/components/material/digital-modal/place-copy.graphql index c7ad348bd..1f40b4362 100644 --- a/src/components/material/digital-modal/place-copy.graphql +++ b/src/components/material/digital-modal/place-copy.graphql @@ -1,8 +1,7 @@ -mutation placeCopy ($input: CopyRequestInput!) { +mutation placeCopy($input: CopyRequestInput!) { elba { placeCopyRequest(input: $input) { status } } } - diff --git a/src/components/material/reserve-button.md b/src/components/material/reserve-button.md index bdeae1ced..c6ab54f1e 100644 --- a/src/components/material/reserve-button.md +++ b/src/components/material/reserve-button.md @@ -35,3 +35,4 @@ CannotbeReserved[The button says 'Cannot be reserved' + Is disabled] --yes--> DigitalArticle[The button says: 'Order digital copy'] 6{Does the manifestation have an issn digital article id?} --No--> InfomediaArticle[The button says 'See online'] +``` From e6a641f881ab7b75a1045d34d6cc6dc21a9cb3cd Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 16:36:28 +0100 Subject: [PATCH 09/30] Bump stylelint-prettier to latest v 5.0.2 and prettify src/core/utils --- package.json | 2 +- .../utils/useReservableFromAnotherLibrary.tsx | 5 +-- yarn.lock | 39 ++++--------------- 3 files changed, 10 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 0b4c5f4a9..3d9dcabea 100644 --- a/package.json +++ b/package.json @@ -128,8 +128,8 @@ "style-loader": "^4.0.0", "stylelint": "^15.11.0", "stylelint-config-prettier": "^9.0.5", - "stylelint-prettier": "4.0.0", "stylelint-config-recommended-scss": "^14.1.0", + "stylelint-prettier": "^5.0.2", "stylelint-scss": "^6.10.0", "stylelint-webpack-plugin": "^5.0.1", "svg-url-loader": "^8.0.0", diff --git a/src/core/utils/useReservableFromAnotherLibrary.tsx b/src/core/utils/useReservableFromAnotherLibrary.tsx index fc9d19004..9f40c4182 100644 --- a/src/core/utils/useReservableFromAnotherLibrary.tsx +++ b/src/core/utils/useReservableFromAnotherLibrary.tsx @@ -27,9 +27,8 @@ const useReservableFromAnotherLibrary = ( } const reservablePidsFromAnotherLibrary = manifestations - .filter( - ({ catalogueCodes }) => - catalogueCodes?.otherCatalogues.some((code) => code.startsWith("OVE")) + .filter(({ catalogueCodes }) => + catalogueCodes?.otherCatalogues.some((code) => code.startsWith("OVE")) ) .map(({ pid }) => pid); diff --git a/yarn.lock b/yarn.lock index 0a14c152e..76360bfa5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12252,7 +12252,7 @@ string-env-interpolation@^1.0.1: resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== -"string-width-cjs@npm:string-width@^4.2.0": +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -12270,15 +12270,6 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -12373,7 +12364,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -12387,13 +12378,6 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -12470,10 +12454,10 @@ stylelint-config-recommended@^14.0.1: resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz#d25e86409aaf79ee6c6085c2c14b33c7e23c90c6" integrity sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg== -stylelint-prettier@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/stylelint-prettier/-/stylelint-prettier-4.0.0.tgz#e04f33bf9968a5d5478d2d11b20bdc5a7de2dc35" - integrity sha512-hYlObunQiSzc5XRttNiDyaY1W7ytW/AJtEbaDxy0rr4ioQvko+cjAgSGrRbz0iRB+yc6jiMrUmHcGkvFb+zDqw== +stylelint-prettier@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/stylelint-prettier/-/stylelint-prettier-5.0.2.tgz#82c0a813d8981fe094fca28126fc88cee22fa789" + integrity sha512-qJ+BN+1T2ZcKz9WIrv0x+eFGHzSUnXfXd5gL///T6XoJvr3D8/ztzz2fhtmXef7Vb8P33zBXmLTTveByr0nwBw== dependencies: prettier-linter-helpers "^1.0.0" @@ -13716,7 +13700,7 @@ wildcard@^2.0.0: resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -13743,15 +13727,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 4d3ff73f33efe0a1a03feb3674b17d31ce6972e7 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 16:42:15 +0100 Subject: [PATCH 10/30] Update stylelint to version 16.12.0 --- package.json | 2 +- yarn.lock | 414 ++++++++++++--------------------------------------- 2 files changed, 96 insertions(+), 320 deletions(-) diff --git a/package.json b/package.json index 3d9dcabea..b0cbb111d 100644 --- a/package.json +++ b/package.json @@ -126,7 +126,7 @@ "source-map-support": "^0.5.21", "storybook": "^8.4.7", "style-loader": "^4.0.0", - "stylelint": "^15.11.0", + "stylelint": "^16.12.0", "stylelint-config-prettier": "^9.0.5", "stylelint-config-recommended-scss": "^14.1.0", "stylelint-prettier": "^5.0.2", diff --git a/yarn.lock b/yarn.lock index 76360bfa5..acda8930d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1161,20 +1161,20 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@csstools/css-parser-algorithms@^2.3.1": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz#1e0d581dbf4518cb3e939c3b863cb7180c8cedad" - integrity sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA== +"@csstools/css-parser-algorithms@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz#74426e93bd1c4dcab3e441f5cc7ba4fb35d94356" + integrity sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A== -"@csstools/css-tokenizer@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz#9dc431c9a5f61087af626e41ac2a79cce7bb253d" - integrity sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg== +"@csstools/css-tokenizer@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz#a5502c8539265fecbd873c1e395a890339f119c2" + integrity sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw== -"@csstools/media-query-list-parser@^2.1.4": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz#94bc8b3c3fd7112a40b7bf0b483e91eba0654a0f" - integrity sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ== +"@csstools/media-query-list-parser@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz#e80e17eba1693fceafb8d6f2cfc68c0e7a9ab78a" + integrity sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A== "@csstools/postcss-sass@^5.1.1": version "5.1.1" @@ -1190,10 +1190,10 @@ resolved "https://registry.yarnpkg.com/@csstools/sass-import-resolve/-/sass-import-resolve-1.0.0.tgz#32c3cdb2f7af3cd8f0dca357b592e7271f3831b5" integrity sha512-pH4KCsbtBLLe7eqUrw8brcuFO8IZlN36JjdKlOublibVdAIPHCzEnpBWOVUXK5sCf+DpBi8ZtuWtjF0srybdeA== -"@csstools/selector-specificity@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz#798622546b63847e82389e473fd67f2707d82247" - integrity sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g== +"@csstools/selector-specificity@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz#037817b574262134cabd68fc4ec1a454f168407b" + integrity sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw== "@cypress/browserify-preprocessor@^3.0.2": version "3.0.2" @@ -1285,6 +1285,11 @@ resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== +"@dual-bundle/import-meta-resolve@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#519c1549b0e147759e7825701ecffd25e5819f7b" + integrity sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg== + "@esbuild/aix-ppc64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" @@ -3431,11 +3436,6 @@ resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.13.tgz#68f6877043d377092890ff5b298152b0a21671bd" integrity sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw== -"@types/minimist@^1.2.2": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.3.tgz#dd249cef80c6fff2ba6a0d4e5beca913e04e25f8" - integrity sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A== - "@types/node@*", "@types/node@^22.0.0": version "22.9.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-22.9.0.tgz#b7f16e5c3384788542c72dc3d561a7ceae2c0365" @@ -3450,11 +3450,6 @@ dependencies: undici-types "~6.19.2" -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" @@ -4277,11 +4272,6 @@ arraybuffer.prototype.slice@^1.0.3: is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -4987,26 +4977,11 @@ camel-case@^4.1.2: pascal-case "^3.1.2" tslib "^2.0.3" -camelcase-keys@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" - integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== - dependencies: - camelcase "^6.3.0" - map-obj "^4.1.0" - quick-lru "^5.1.1" - type-fest "^1.2.1" - camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" @@ -5517,7 +5492,7 @@ cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.1.0, cosmiconfig@^8.1.3, cosmiconfig@^8.2.0: +cosmiconfig@^8.1.0, cosmiconfig@^8.1.3: version "8.3.6" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -5618,10 +5593,10 @@ css-declaration-sorter@^7.2.0: resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== -css-functions-list@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.1.tgz#2eb205d8ce9f9ce74c5c1d7490b66b77c45ce3ea" - integrity sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ== +css-functions-list@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.3.tgz#95652b0c24f0f59b291a9fc386041a19d4f40dbe" + integrity sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA== css-in-js-utils@^3.1.0: version "3.1.0" @@ -5914,24 +5889,11 @@ debug@^3.1.0, debug@^3.2.7: dependencies: ms "^2.1.1" -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: +decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decamelize@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" - integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== - dedent@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" @@ -7057,17 +7019,6 @@ fast-glob@^3.2.9, fast-glob@^3.3.2: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-parse@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz" @@ -7168,12 +7119,12 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-entry-cache@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-7.0.1.tgz#c71b3509badb040f362255a53e21f15a4e74fc0f" - integrity sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ== +file-entry-cache@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-9.1.0.tgz#2e66ad98ce93f49aed1b178c57b0b5741591e075" + integrity sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg== dependencies: - flat-cache "^3.1.1" + flat-cache "^5.0.0" file-loader@~6.2.0: version "6.2.0" @@ -7251,14 +7202,13 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flat-cache@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" - integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== +flat-cache@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-5.0.0.tgz#26c4da7b0f288b408bb2b506b2cb66c240ddf062" + integrity sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ== dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" + flatted "^3.3.1" + keyv "^4.5.4" flatpickr@^4.0.6, flatpickr@^4.6.2: version "4.6.13" @@ -7270,10 +7220,10 @@ flatted@^3.1.0: resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== -flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== +flatted@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27" + integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== focus-lock@^0.9.1: version "0.9.2" @@ -7779,11 +7729,6 @@ happy-dom@^14.12.3: webidl-conversions "^7.0.0" whatwg-mimetype "^3.0.0" -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -7911,13 +7856,6 @@ hoist-non-react-statics@^3.3.0: dependencies: react-is "^16.7.0" -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - html-entities@^2.1.0: version "2.3.2" resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz" @@ -8054,6 +7992,11 @@ ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== +ignore@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-6.0.2.tgz#77cccb72a55796af1b6d2f9eb14fa326d24f4283" + integrity sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A== + immer@^10.0.3: version "10.1.1" resolved "https://registry.yarnpkg.com/immer/-/immer-10.1.1.tgz#206f344ea372d8ea176891545ee53ccc062db7bc" @@ -8087,11 +8030,6 @@ import-from@4.0.0: resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== -import-lazy@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - import-local@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" @@ -8110,11 +8048,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indent-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" - integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -8339,7 +8272,7 @@ is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.5.0: +is-core-module@^2.13.0, is-core-module@^2.15.1: version "2.15.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== @@ -8458,11 +8391,6 @@ is-path-inside@^3.0.2, is-path-inside@^3.0.3: resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" @@ -8983,7 +8911,7 @@ jsx-ast-utils@^3.3.5: object.assign "^4.1.4" object.values "^1.1.6" -keyv@^4.5.3: +keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -8995,16 +8923,6 @@ kind-of@^6.0.2: resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== -kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -known-css-properties@^0.29.0: - version "0.29.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.29.0.tgz#e8ba024fb03886f23cb882e806929f32d814158f" - integrity sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ== - known-css-properties@^0.35.0: version "0.35.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.35.0.tgz#f6f8e40ab4e5700fa32f5b2ef5218a56bc853bd6" @@ -9297,13 +9215,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - lz-string@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" @@ -9356,16 +9267,6 @@ map-cache@^0.2.0: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - map-or-similar@^1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz" @@ -9484,23 +9385,10 @@ memoizerific@^1.11.3: dependencies: map-or-similar "^1.5.0" -meow@^10.1.5: - version "10.1.5" - resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f" - integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw== - dependencies: - "@types/minimist" "^1.2.2" - camelcase-keys "^7.0.0" - decamelize "^5.0.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.2" - read-pkg-up "^8.0.0" - redent "^4.0.0" - trim-newlines "^4.0.2" - type-fest "^1.2.2" - yargs-parser "^20.2.9" +meow@^13.2.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-13.2.0.tgz#6b7d63f913f984063b3cc261b6e8800c4cd3474f" + integrity sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== merge-stream@^2.0.0: version "2.0.0" @@ -9613,15 +9501,6 @@ minimatch@^9.0.5: dependencies: brace-expansion "^2.0.1" -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -9778,16 +9657,6 @@ node-releases@^2.0.18: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== -normalize-package-data@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -10759,22 +10628,22 @@ postcss-reporter@^7.0.0: picocolors "^1.0.0" thenby "^1.3.4" -postcss-resolve-nested-selector@0.1.6, postcss-resolve-nested-selector@^0.1.1, postcss-resolve-nested-selector@^0.1.6: +postcss-resolve-nested-selector@0.1.6, postcss-resolve-nested-selector@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz#3d84dec809f34de020372c41b039956966896686" integrity sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw== -postcss-safe-parser@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz" - integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ== +postcss-safe-parser@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz#36e4f7e608111a0ca940fd9712ce034718c40ec0" + integrity sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A== postcss-scss@^4.0.9: version "4.0.9" resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.9.tgz#a03c773cd4c9623cb04ce142a52afcec74806685" integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== -postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.1.2: +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.1.2: version "6.1.2" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== @@ -10810,7 +10679,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.28, postcss@^8.4.33, postcss@^8.4.43, postcss@^8.4.49: +postcss@^8.4.33, postcss@^8.4.43, postcss@^8.4.49: version "8.4.49" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19" integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== @@ -10983,11 +10852,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" @@ -11203,25 +11067,6 @@ read-only-stream@^2.0.0: dependencies: readable-stream "^2.0.2" -read-pkg-up@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" - integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== - dependencies: - find-up "^5.0.0" - read-pkg "^6.0.0" - type-fest "^1.0.1" - -read-pkg@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" - integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^3.0.2" - parse-json "^5.2.0" - type-fest "^1.0.1" - readable-stream@3, readable-stream@^3.5.0: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" @@ -11305,14 +11150,6 @@ rechoir@^0.8.0: dependencies: resolve "^1.20.0" -redent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" - integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== - dependencies: - indent-string "^5.0.0" - strip-indent "^4.0.0" - redux-persist@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/redux-persist/-/redux-persist-6.0.0.tgz" @@ -11795,7 +11632,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2: +semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -12079,32 +11916,6 @@ spawn-wrap@^2.0.0: signal-exit "^3.0.2" which "^2.0.1" -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - sponge-case@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c" @@ -12422,11 +12233,6 @@ style-loader@^4.0.0: resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-4.0.0.tgz#0ea96e468f43c69600011e0589cb05c44f3b17a5" integrity sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA== -style-search@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz" - integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= - stylehacks@^7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-7.0.4.tgz#9c21f7374f4bccc0082412b859b3c89d77d3277c" @@ -12486,50 +12292,48 @@ stylelint-webpack-plugin@^5.0.1: normalize-path "^3.0.0" schema-utils "^4.2.0" -stylelint@^15.11.0: - version "15.11.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.11.0.tgz#3ff8466f5f5c47362bc7c8c9d382741c58bc3292" - integrity sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw== +stylelint@^16.12.0: + version "16.12.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-16.12.0.tgz#13532dcbaed21348da0e9e0fb9a4e1e7f6dab2b8" + integrity sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg== dependencies: - "@csstools/css-parser-algorithms" "^2.3.1" - "@csstools/css-tokenizer" "^2.2.0" - "@csstools/media-query-list-parser" "^2.1.4" - "@csstools/selector-specificity" "^3.0.0" + "@csstools/css-parser-algorithms" "^3.0.4" + "@csstools/css-tokenizer" "^3.0.3" + "@csstools/media-query-list-parser" "^4.0.2" + "@csstools/selector-specificity" "^5.0.0" + "@dual-bundle/import-meta-resolve" "^4.1.0" balanced-match "^2.0.0" colord "^2.9.3" - cosmiconfig "^8.2.0" - css-functions-list "^3.2.1" - css-tree "^2.3.1" - debug "^4.3.4" - fast-glob "^3.3.1" + cosmiconfig "^9.0.0" + css-functions-list "^3.2.3" + css-tree "^3.0.1" + debug "^4.3.7" + fast-glob "^3.3.2" fastest-levenshtein "^1.0.16" - file-entry-cache "^7.0.0" + file-entry-cache "^9.1.0" global-modules "^2.0.0" globby "^11.1.0" globjoin "^0.1.4" html-tags "^3.3.1" - ignore "^5.2.4" - import-lazy "^4.0.0" + ignore "^6.0.2" imurmurhash "^0.1.4" is-plain-object "^5.0.0" - known-css-properties "^0.29.0" + known-css-properties "^0.35.0" mathml-tag-names "^2.1.3" - meow "^10.1.5" - micromatch "^4.0.5" + meow "^13.2.0" + micromatch "^4.0.8" normalize-path "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.28" - postcss-resolve-nested-selector "^0.1.1" - postcss-safe-parser "^6.0.0" - postcss-selector-parser "^6.0.13" + picocolors "^1.1.1" + postcss "^8.4.49" + postcss-resolve-nested-selector "^0.1.6" + postcss-safe-parser "^7.0.1" + postcss-selector-parser "^7.0.0" postcss-value-parser "^4.2.0" resolve-from "^5.0.0" string-width "^4.2.3" - strip-ansi "^6.0.1" - style-search "^0.1.0" - supports-hyperlinks "^3.0.0" + supports-hyperlinks "^3.1.0" svg-tags "^1.0.0" - table "^6.8.1" + table "^6.9.0" write-file-atomic "^5.0.1" stylis@^4.3.0: @@ -12558,10 +12362,10 @@ supports-color@^8.0.0, supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz#c711352a5c89070779b4dad54c05a2f14b15c94b" - integrity sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA== +supports-hyperlinks@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz#b56150ff0173baacc15f21956450b61f2b18d3ac" + integrity sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -12645,10 +12449,10 @@ tabbable@^6.2.0: resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== -table@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== +table@^6.9.0: + version "6.9.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.9.0.tgz#50040afa6264141c7566b3b81d4d82c47a8668f5" + integrity sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -12852,11 +12656,6 @@ tree-kill@^1.2.2: resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== -trim-newlines@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" - integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== - ts-api-utils@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" @@ -12991,11 +12790,6 @@ type-fest@^0.8.0: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - type-fest@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" @@ -13365,14 +13159,6 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - validator@^13.11.0: version "13.11.0" resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" @@ -13789,11 +13575,6 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yaml-ast-parser@^0.0.43: version "0.0.43" resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" @@ -13830,11 +13611,6 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.9: - version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" From 11a3718c7b33109f0ed2e81535379656a24a536d Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 16:50:32 +0100 Subject: [PATCH 11/30] Update eslint to version 9.17.0 --- package.json | 2 +- yarn.lock | 234 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 137 insertions(+), 99 deletions(-) diff --git a/package.json b/package.json index b0cbb111d..6e2185456 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "cssnano": "^7.0.6", "cypress": "^13.0.0", "dotenv": "^16.4.7", - "eslint": "^8.57.0", + "eslint": "^9.17.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^18.0.0", "eslint-config-prettier": "^9.1.0", diff --git a/yarn.lock b/yarn.lock index acda8930d..7b7649873 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1532,30 +1532,58 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.6.1": - 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-community/regexpp@^4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@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/config-array@^0.19.0": + version "0.19.1" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.1.tgz#734aaea2c40be22bbb1f2a9dac687c57a6a4c984" + integrity sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA== + dependencies: + "@eslint/object-schema" "^2.1.5" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/core@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.9.1.tgz#31763847308ef6b7084a4505573ac9402c51f9d1" + integrity sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q== + dependencies: + "@types/json-schema" "^7.0.15" + +"@eslint/eslintrc@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c" + integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w== 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.17.0": + version "9.17.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.17.0.tgz#1523e586791f80376a6f8398a3964455ecc651ec" + integrity sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w== + +"@eslint/object-schema@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.5.tgz#8670a8f6258a2be5b2c620ff314a1d984c23eb2e" + integrity sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ== + +"@eslint/plugin-kit@^0.2.3": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz#2b78e7bb3755784bb13faa8932a1d994d6537792" + integrity sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg== + dependencies: + levn "^0.4.1" "@exodus/schemasafe@^1.0.0-rc.2": version "1.3.0" @@ -2127,24 +2155,33 @@ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== -"@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== +"@humanfs/core@^0.19.1": + version "0.19.1" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" + integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== + +"@humanfs/node@^0.16.6": + version "0.16.6" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" + integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" + "@humanfs/core" "^0.19.1" + "@humanwhocodes/retry" "^0.3.0" "@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.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== +"@humanwhocodes/retry@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" + integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== + +"@humanwhocodes/retry@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b" + integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== "@ibm-cloud/openapi-ruleset-utilities@1.3.2": version "1.3.2" @@ -2335,7 +2372,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -3406,7 +3443,7 @@ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== -"@types/json-schema@^7.0.11", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.7": +"@types/json-schema@^7.0.11", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.7": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -3680,7 +3717,7 @@ "@typescript-eslint/types" "7.16.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== @@ -3991,7 +4028,7 @@ acorn@^7.0.0: resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.11.2, acorn@^8.12.1, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.8.2, acorn@^8.9.0: +acorn@^8.11.2, acorn@^8.12.1, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.8.2: version "8.14.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== @@ -5562,7 +5599,7 @@ cross-inspect@1.0.1: dependencies: tslib "^2.4.0" -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.3: version "7.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82" integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug== @@ -5571,6 +5608,15 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@^3.0.0: version "3.12.0" resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" @@ -6753,10 +6799,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.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" + integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -6773,11 +6819,16 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.0.0, 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-visitor-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" + integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== + eslint-webpack-plugin@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-4.2.0.tgz#41f54b25379908eb9eca8645bc997c90cfdbd34e" @@ -6789,68 +6840,64 @@ eslint-webpack-plugin@^4.2.0: normalize-path "^3.0.0" schema-utils "^4.2.0" -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@^9.17.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.17.0.tgz#faa1facb5dd042172fdc520106984b5c2421bb0c" + integrity sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA== 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.12.1" + "@eslint/config-array" "^0.19.0" + "@eslint/core" "^0.9.0" + "@eslint/eslintrc" "^3.2.0" + "@eslint/js" "9.17.0" + "@eslint/plugin-kit" "^0.2.3" + "@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.4" chalk "^4.0.0" - cross-spawn "^7.0.2" + cross-spawn "^7.0.6" 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.2.0" + eslint-visitor-keys "^4.2.0" + espree "^10.3.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" minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" -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.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" + integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== dependencies: - acorn "^8.9.0" + acorn "^8.14.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^4.2.0" esprima@^4.0.0, 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" @@ -7112,12 +7159,12 @@ figures@^3.0.0, figures@^3.2.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - 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.1.0: version "9.1.0" @@ -7202,6 +7249,14 @@ flat-cache@^3.0.4: flatted "^3.1.0" 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" @@ -7220,7 +7275,7 @@ flatted@^3.1.0: resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== -flatted@^3.3.1: +flatted@^3.2.9, flatted@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27" integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== @@ -7600,12 +7655,10 @@ 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: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== - 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== globals@^15.11.0: version "15.14.0" @@ -7673,11 +7726,6 @@ graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - graphql-config@^5.1.1: version "5.1.3" resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-5.1.3.tgz#343e2867dafd5b009cd97fe6b29a5e9604001819" @@ -8386,7 +8434,7 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.2, is-path-inside@^3.0.3: +is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -9466,7 +9514,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@3.1.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== @@ -12521,11 +12569,6 @@ test-exclude@^7.0.1: glob "^10.4.1" minimatch "^9.0.4" -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - thenby@^1.3.4: version "1.3.4" resolved "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz" @@ -12775,11 +12818,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" From 78f5ad5bb3e4fb98b7cd07b878775caad79a603d Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 17:16:33 +0100 Subject: [PATCH 12/30] Rename ESLint configuration file to eslint.config.js and update scripts These are fixes to some of the latest breaking changes in the package. --- .eslintignore | 6 --- .eslintrc => eslint.config.js | 94 +++++++++++++++++++++-------------- package.json | 10 ++-- 3 files changed, 61 insertions(+), 49 deletions(-) delete mode 100644 .eslintignore rename .eslintrc => eslint.config.js (66%) diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 565f2e0cf..000000000 --- a/.eslintignore +++ /dev/null @@ -1,6 +0,0 @@ -src/core/cover-service-api/model/ -src/core/cover-service-api/cover-service.ts -src/core/dpl-cms/model -src/core/dpl-cms/dpl-cms.ts -src/core/fbs/fbs.ts -src/core/publizon/publizon.ts diff --git a/.eslintrc b/eslint.config.js similarity index 66% rename from .eslintrc rename to eslint.config.js index 7f968e51b..8af95850a 100644 --- a/.eslintrc +++ b/eslint.config.js @@ -1,6 +1,13 @@ -{ - "parser": "@typescript-eslint/parser", - "extends": [ +module.exports = { + parser: "@typescript-eslint/parser", + parserOptions: { + project: "./tsconfig.json", + sourceType: "module", + ecmaFeatures: { + jsx: true + } + }, + extends: [ "airbnb", "airbnb-typescript", "airbnb/hooks", @@ -9,47 +16,47 @@ "prettier", "plugin:prettier/recommended" ], - "plugins": ["no-only-tests"], - "settings": { - "react": { - "version": "16.11.0" + plugins: ["no-only-tests"], + settings: { + react: { + version: "16.11.0" }, // Since we use vitest alongside our production code we have to instruct eslint // not to throw the import/no-extraneous-dependencies error when doing so. "import/core-modules": ["vitest"] }, - "env": { - "browser": true, - "es6": true + env: { + browser: true, + es6: true }, - "parserOptions": { - "sourceType": "module", - "allowImportExportEverywhere": false, - "ecmaFeatures": { - "jsx": true, - "globalReturn": false + parserOptions: { + sourceType: "module", + allowImportExportEverywhere: false, + ecmaFeatures: { + jsx: true, + globalReturn: false }, - "project": "./tsconfig.json" + project: "./tsconfig.json" }, - "rules": { + rules: { "prefer-arrow-callback": [ "error", { - "allowNamedFunctions": false, - "allowUnboundThis": true + allowNamedFunctions: false, + allowUnboundThis: true } ], "no-param-reassign": [ "error", { - "props": true, - "ignorePropertyModificationsFor": ["state"] + props: true, + ignorePropertyModificationsFor: ["state"] } ], "import/no-extraneous-dependencies": [ "error", { - "devDependencies": [ + devDependencies: [ "/**/*.dev.jsx", "/**/*.dev.tsx", "/**/*.test.js", @@ -76,15 +83,15 @@ "react-hooks/exhaustive-deps": [ "warn", { - "additionalHooks": "useDeepCompareEffect" + additionalHooks: "useDeepCompareEffect" } ], "no-only-tests/no-only-tests": "warn" }, - "overrides": [ + overrides: [ { - "files": ["*.js", "*.jsx"], - "rules": { + files: ["*.js", "*.jsx"], + rules: { // These rules were triggered on the former non-typescript codebase. // We are planning to use only ts/tsx in the future // Therefor we can seperate them by only being ignored on js/jsx files. @@ -100,8 +107,8 @@ } }, { - "files": ["*.tsx", "*.ts"], - "rules": { + files: ["*.tsx", "*.ts"], + rules: { // We do not use prop-types in ts. "react/prop-types": "off", "react/require-default-props": "off", @@ -109,16 +116,17 @@ "no-underscore-dangle": [ "error", { - "allow": ["__typename"] + allow: ["__typename"] } ], "react/forbid-elements": [ 1, { - "forbid": [ + forbid: [ { - "element": "main", - "message": "dpl-cms provide a

to render react in, therefore you must use
to avoid duplicate main" + element: "main", + message: + "dpl-cms provide a
to render react in, therefore you must use
to avoid duplicate main" } ] } @@ -126,19 +134,29 @@ } }, { - "files": ["*.dev.jsx", "*.dev.tsx"], - "rules": { + files: ["*.dev.jsx", "*.dev.tsx"], + rules: { // We need a simple way of passing args in stories via object spreading. "react/jsx-props-no-spreading": "off" } }, { - "files": ["*.entry.tsx"], - "rules": { + files: ["*.entry.tsx"], + rules: { // Since we use High Order Functional Component in entries for text props // and want to show the props being used we disable this rule. "@typescript-eslint/no-unused-vars": "off" } + }, + { + ignores: [ + "src/core/cover-service-api/model/*", + "src/core/cover-service-api/cover-service.ts", + "src/core/dpl-cms/model/*", + "src/core/dpl-cms/dpl-cms.ts", + "src/core/fbs/fbs.ts", + "src/core/publizon/publizon.ts" + ] } ] -} +}; diff --git a/package.json b/package.json index 6e2185456..d67e4a316 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ }, "scripts": { "fmt": "prettier --config ./.prettierrc --write \"src/**/*.{js,jsx,ts,tsx}\"", - "lint:js": "eslint --ext .js --ext .jsx --ext .ts --ext .tsx --max-warnings 0 --cache --cache-location \".cache/eslint/\" ./src", - "lint:js:fix": "eslint --ext .js --ext .jsx --ext .ts --ext .tsx --fix ./src", + "lint:js": "eslint --max-warnings 0 --cache --cache-location \".cache/eslint/\" ./src", + "lint:js:fix": "eslint --fix ./src", "lint:markdown": "markdownlint-cli2", "lint:markdown:fix": "markdownlint-cli2-fix", "lint:scss": "stylelint \"./src/**/*.scss\"", @@ -23,10 +23,10 @@ "build": "npx concurrently --raw \"yarn clean\" \"yarn lint:scss:fix\" \"yarn build:js:prod\" \"yarn build:css:prod\"", "build:js:dev": "webpack --mode=development --config webpack.config.js", "build:js:prod": "NODE_ENV=production webpack --mode=production --config webpack.config.js", - "build:css:dev": "postcss ./src/apps/**/*.scss ./src/components/components.scss --ext css --dir ./dist", - "build:css:prod": "postcss ./src/apps/**/*.scss ./src/components/components.scss --no-map --ext css --dir ./dist --env production", + "build:css:dev": "postcss ./src/apps/**/*.scss ./src/components/components.scss --dir ./dist", + "build:css:prod": "postcss ./src/apps/**/*.scss ./src/components/components.scss --no-map --dir ./dist --env production", "watch": "npx concurrently --raw \"yarn watch:lint:js\" \"yarn watch:lint:scss\"", - "watch:css": "postcss ./src/apps/**/*.scss ./src/components/components.scss --ext css --dir ./dist --watch", + "watch:css": "postcss ./src/apps/**/*.scss ./src/components/components.scss --dir ./dist --watch", "watch:lint:scss": "chokidar \"./src/**/*.scss\" -c \"yarn lint:scss:fix\"", "watch:lint:js": "chokidar \"./src/**/*.{js,jsx,ts,tsx}\" -c \"yarn lint:js\"", "build:storybook": "storybook build -c .storybook -o dev", From 8c134ed75033d69caf1ea719b370ac28590f6766 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 17:36:50 +0100 Subject: [PATCH 13/30] Refactor ESLint configuration to match documentation --- eslint.config.js | 64 ++++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 8af95850a..d23011c4a 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,22 +1,24 @@ +const typescriptRecommended = require("@typescript-eslint/eslint-plugin/dist/configs/recommended"); +const prettier = require("eslint-config-prettier"); +const airbnbBase = require("eslint-config-airbnb"); +const airbnbTypeScript = require("eslint-config-airbnb-typescript"); +const airbnbHooks = require("eslint-config-airbnb/hooks"); +const prettierRecommended = require("eslint-plugin-prettier").configs + .recommended; +const cypress = require("eslint-plugin-cypress").configs.recommended; + module.exports = { - parser: "@typescript-eslint/parser", - parserOptions: { - project: "./tsconfig.json", - sourceType: "module", - ecmaFeatures: { - jsx: true + files: ["**/*.{ts,tsx,js,jsx}"], + languageOptions: { + parser: "@typescript-eslint/parser", + parserOptions: { + project: "./tsconfig.json", + sourceType: "module", + ecmaFeatures: { + jsx: true + } } }, - extends: [ - "airbnb", - "airbnb-typescript", - "airbnb/hooks", - "plugin:@typescript-eslint/recommended", - "plugin:cypress/recommended", - "prettier", - "plugin:prettier/recommended" - ], - plugins: ["no-only-tests"], settings: { react: { version: "16.11.0" @@ -25,20 +27,25 @@ module.exports = { // not to throw the import/no-extraneous-dependencies error when doing so. "import/core-modules": ["vitest"] }, - env: { - browser: true, - es6: true - }, - parserOptions: { - sourceType: "module", - allowImportExportEverywhere: false, - ecmaFeatures: { - jsx: true, - globalReturn: false - }, - project: "./tsconfig.json" + plugins: { + "@typescript-eslint": require("@typescript-eslint/eslint-plugin"), + cypress: require("eslint-plugin-cypress"), + "react-hooks": require("eslint-plugin-react-hooks"), + react: require("eslint-plugin-react"), + import: require("eslint-plugin-import"), + "jsx-a11y": require("eslint-plugin-jsx-a11y"), + "no-only-tests": require("eslint-plugin-no-only-tests"), + prettier: require("eslint-plugin-prettier") }, rules: { + ...airbnbBase.rules, + "no-only-tests/no-only-tests": "warn", + ...airbnbTypeScript.rules, + ...airbnbHooks.rules, + ...prettier.rules, + ...prettierRecommended.rules, + ...cypress.rules, + ...typescriptRecommended.rules, "prefer-arrow-callback": [ "error", { @@ -103,7 +110,6 @@ module.exports = { "@typescript-eslint/return-await": "off", "no-param-reassign": "off", "@typescript-eslint/no-var-requires": "off" - // End - ddb-react former code } }, { From 452cda4f10d2d6b092fe6aaf3568eceeb7700d5e Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 17:38:31 +0100 Subject: [PATCH 14/30] Refactor ESLint configuration to use array format and improve rule organization --- eslint.config.js | 304 ++++++++++++++++++++++++----------------------- 1 file changed, 153 insertions(+), 151 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index d23011c4a..84f803a87 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -7,162 +7,164 @@ const prettierRecommended = require("eslint-plugin-prettier").configs .recommended; const cypress = require("eslint-plugin-cypress").configs.recommended; -module.exports = { - files: ["**/*.{ts,tsx,js,jsx}"], - languageOptions: { - parser: "@typescript-eslint/parser", - parserOptions: { - project: "./tsconfig.json", - sourceType: "module", - ecmaFeatures: { - jsx: true +module.exports = [ + { + files: ["**/*.{ts,tsx,js,jsx}"], + languageOptions: { + parser: "@typescript-eslint/parser", + parserOptions: { + project: "./tsconfig.json", + sourceType: "module", + ecmaFeatures: { + jsx: true + } } - } - }, - settings: { - react: { - version: "16.11.0" }, - // Since we use vitest alongside our production code we have to instruct eslint - // not to throw the import/no-extraneous-dependencies error when doing so. - "import/core-modules": ["vitest"] - }, - plugins: { - "@typescript-eslint": require("@typescript-eslint/eslint-plugin"), - cypress: require("eslint-plugin-cypress"), - "react-hooks": require("eslint-plugin-react-hooks"), - react: require("eslint-plugin-react"), - import: require("eslint-plugin-import"), - "jsx-a11y": require("eslint-plugin-jsx-a11y"), - "no-only-tests": require("eslint-plugin-no-only-tests"), - prettier: require("eslint-plugin-prettier") - }, - rules: { - ...airbnbBase.rules, - "no-only-tests/no-only-tests": "warn", - ...airbnbTypeScript.rules, - ...airbnbHooks.rules, - ...prettier.rules, - ...prettierRecommended.rules, - ...cypress.rules, - ...typescriptRecommended.rules, - "prefer-arrow-callback": [ - "error", + settings: { + react: { + version: "16.11.0" + }, + // Since we use vitest alongside our production code we have to instruct eslint + // not to throw the import/no-extraneous-dependencies error when doing so. + "import/core-modules": ["vitest"] + }, + plugins: { + "@typescript-eslint": require("@typescript-eslint/eslint-plugin"), + cypress: require("eslint-plugin-cypress"), + "react-hooks": require("eslint-plugin-react-hooks"), + react: require("eslint-plugin-react"), + import: require("eslint-plugin-import"), + "jsx-a11y": require("eslint-plugin-jsx-a11y"), + "no-only-tests": require("eslint-plugin-no-only-tests"), + prettier: require("eslint-plugin-prettier") + }, + rules: { + ...airbnbBase.rules, + "no-only-tests/no-only-tests": "warn", + ...airbnbTypeScript.rules, + ...airbnbHooks.rules, + ...prettier.rules, + ...prettierRecommended.rules, + ...cypress.rules, + ...typescriptRecommended.rules, + "prefer-arrow-callback": [ + "error", + { + allowNamedFunctions: false, + allowUnboundThis: true + } + ], + "no-param-reassign": [ + "error", + { + props: true, + ignorePropertyModificationsFor: ["state"] + } + ], + "import/no-extraneous-dependencies": [ + "error", + { + devDependencies: [ + "/**/*.dev.jsx", + "/**/*.dev.tsx", + "/**/*.test.js", + "/**/*.test.jsx", + "/**/*.test.ts", + "/**/*.test.tsx", + "vitest.config.ts", + "webpack.config.js", + "webpack.helpers.js", + "postcss.config.js", + "orval.config.ts", + "cypress/plugins/index.js", + "cypress/support/index.ts", + "scripts/postcss-node-sass.js", + "scripts/post-process-generated-graphql.ts", + "cypress/utils/graphql-test-utils.ts" + ] + } + ], + // We like to use arrow function syntax also for functional components. + "react/function-component-definition": "off", + // No complaints about missing trailing comma + "@typescript-eslint/comma-dangle": "off", + "react-hooks/exhaustive-deps": [ + "warn", + { + additionalHooks: "useDeepCompareEffect" + } + ], + "no-only-tests/no-only-tests": "warn" + }, + overrides: [ { - allowNamedFunctions: false, - allowUnboundThis: true - } - ], - "no-param-reassign": [ - "error", + files: ["*.js", "*.jsx"], + rules: { + // These rules were triggered on the former non-typescript codebase. + // We are planning to use only ts/tsx in the future + // Therefor we can seperate them by only being ignored on js/jsx files. + // Start - ddb-react former code + "react/jsx-no-bind": "off", + "react/function-component-definition": "off", + "react/forbid-prop-types": "off", + "react/destructuring-assignment": "off", + "@typescript-eslint/return-await": "off", + "no-param-reassign": "off", + "@typescript-eslint/no-var-requires": "off" + } + }, { - props: true, - ignorePropertyModificationsFor: ["state"] - } - ], - "import/no-extraneous-dependencies": [ - "error", + files: ["*.tsx", "*.ts"], + rules: { + // We do not use prop-types in ts. + "react/prop-types": "off", + "react/require-default-props": "off", + "react/no-unused-prop-types": "off", + "no-underscore-dangle": [ + "error", + { + allow: ["__typename"] + } + ], + "react/forbid-elements": [ + 1, + { + forbid: [ + { + element: "main", + message: + "dpl-cms provide a
to render react in, therefore you must use
to avoid duplicate main" + } + ] + } + ] + } + }, { - devDependencies: [ - "/**/*.dev.jsx", - "/**/*.dev.tsx", - "/**/*.test.js", - "/**/*.test.jsx", - "/**/*.test.ts", - "/**/*.test.tsx", - "vitest.config.ts", - "webpack.config.js", - "webpack.helpers.js", - "postcss.config.js", - "orval.config.ts", - "cypress/plugins/index.js", - "cypress/support/index.ts", - "scripts/postcss-node-sass.js", - "scripts/post-process-generated-graphql.ts", - "cypress/utils/graphql-test-utils.ts" - ] - } - ], - // We like to use arrow function syntax also for functional components. - "react/function-component-definition": "off", - // No complaints about missing trailing comma - "@typescript-eslint/comma-dangle": "off", - "react-hooks/exhaustive-deps": [ - "warn", + files: ["*.dev.jsx", "*.dev.tsx"], + rules: { + // We need a simple way of passing args in stories via object spreading. + "react/jsx-props-no-spreading": "off" + } + }, { - additionalHooks: "useDeepCompareEffect" - } - ], - "no-only-tests/no-only-tests": "warn" - }, - overrides: [ - { - files: ["*.js", "*.jsx"], - rules: { - // These rules were triggered on the former non-typescript codebase. - // We are planning to use only ts/tsx in the future - // Therefor we can seperate them by only being ignored on js/jsx files. - // Start - ddb-react former code - "react/jsx-no-bind": "off", - "react/function-component-definition": "off", - "react/forbid-prop-types": "off", - "react/destructuring-assignment": "off", - "@typescript-eslint/return-await": "off", - "no-param-reassign": "off", - "@typescript-eslint/no-var-requires": "off" - } - }, - { - files: ["*.tsx", "*.ts"], - rules: { - // We do not use prop-types in ts. - "react/prop-types": "off", - "react/require-default-props": "off", - "react/no-unused-prop-types": "off", - "no-underscore-dangle": [ - "error", - { - allow: ["__typename"] - } - ], - "react/forbid-elements": [ - 1, - { - forbid: [ - { - element: "main", - message: - "dpl-cms provide a
to render react in, therefore you must use
to avoid duplicate main" - } - ] - } + files: ["*.entry.tsx"], + rules: { + // Since we use High Order Functional Component in entries for text props + // and want to show the props being used we disable this rule. + "@typescript-eslint/no-unused-vars": "off" + } + }, + { + ignores: [ + "src/core/cover-service-api/model/*", + "src/core/cover-service-api/cover-service.ts", + "src/core/dpl-cms/model/*", + "src/core/dpl-cms/dpl-cms.ts", + "src/core/fbs/fbs.ts", + "src/core/publizon/publizon.ts" ] } - }, - { - files: ["*.dev.jsx", "*.dev.tsx"], - rules: { - // We need a simple way of passing args in stories via object spreading. - "react/jsx-props-no-spreading": "off" - } - }, - { - files: ["*.entry.tsx"], - rules: { - // Since we use High Order Functional Component in entries for text props - // and want to show the props being used we disable this rule. - "@typescript-eslint/no-unused-vars": "off" - } - }, - { - ignores: [ - "src/core/cover-service-api/model/*", - "src/core/cover-service-api/cover-service.ts", - "src/core/dpl-cms/model/*", - "src/core/dpl-cms/dpl-cms.ts", - "src/core/fbs/fbs.ts", - "src/core/publizon/publizon.ts" - ] - } - ] -}; + ] + } +]; From c51d0daf81a1bbc4f96a5d99ba48614f529b8451 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 17:40:50 +0100 Subject: [PATCH 15/30] Refactor ESLint configuration to match documentation part 3 --- eslint.config.js | 129 +++++++++++++++++++++++------------------------ 1 file changed, 63 insertions(+), 66 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 84f803a87..4e7f7fdfa 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -40,7 +40,6 @@ module.exports = [ }, rules: { ...airbnbBase.rules, - "no-only-tests/no-only-tests": "warn", ...airbnbTypeScript.rules, ...airbnbHooks.rules, ...prettier.rules, @@ -95,76 +94,74 @@ module.exports = [ } ], "no-only-tests/no-only-tests": "warn" - }, - overrides: [ - { - files: ["*.js", "*.jsx"], - rules: { - // These rules were triggered on the former non-typescript codebase. - // We are planning to use only ts/tsx in the future - // Therefor we can seperate them by only being ignored on js/jsx files. - // Start - ddb-react former code - "react/jsx-no-bind": "off", - "react/function-component-definition": "off", - "react/forbid-prop-types": "off", - "react/destructuring-assignment": "off", - "@typescript-eslint/return-await": "off", - "no-param-reassign": "off", - "@typescript-eslint/no-var-requires": "off" + } + }, + { + files: ["*.js", "*.jsx"], + rules: { + // These rules were triggered on the former non-typescript codebase. + // We are planning to use only ts/tsx in the future + // Therefor we can seperate them by only being ignored on js/jsx files. + // Start - ddb-react former code + "react/jsx-no-bind": "off", + "react/function-component-definition": "off", + "react/forbid-prop-types": "off", + "react/destructuring-assignment": "off", + "@typescript-eslint/return-await": "off", + "no-param-reassign": "off", + "@typescript-eslint/no-var-requires": "off" + } + }, + { + files: ["*.tsx", "*.ts"], + rules: { + // We do not use prop-types in ts. + "react/prop-types": "off", + "react/require-default-props": "off", + "react/no-unused-prop-types": "off", + "no-underscore-dangle": [ + "error", + { + allow: ["__typename"] } - }, - { - files: ["*.tsx", "*.ts"], - rules: { - // We do not use prop-types in ts. - "react/prop-types": "off", - "react/require-default-props": "off", - "react/no-unused-prop-types": "off", - "no-underscore-dangle": [ - "error", - { - allow: ["__typename"] - } - ], - "react/forbid-elements": [ - 1, + ], + "react/forbid-elements": [ + 1, + { + forbid: [ { - forbid: [ - { - element: "main", - message: - "dpl-cms provide a
to render react in, therefore you must use
to avoid duplicate main" - } - ] + element: "main", + message: + "dpl-cms provide a
to render react in, therefore you must use
to avoid duplicate main" } ] } - }, - { - files: ["*.dev.jsx", "*.dev.tsx"], - rules: { - // We need a simple way of passing args in stories via object spreading. - "react/jsx-props-no-spreading": "off" - } - }, - { - files: ["*.entry.tsx"], - rules: { - // Since we use High Order Functional Component in entries for text props - // and want to show the props being used we disable this rule. - "@typescript-eslint/no-unused-vars": "off" - } - }, - { - ignores: [ - "src/core/cover-service-api/model/*", - "src/core/cover-service-api/cover-service.ts", - "src/core/dpl-cms/model/*", - "src/core/dpl-cms/dpl-cms.ts", - "src/core/fbs/fbs.ts", - "src/core/publizon/publizon.ts" - ] - } + ] + } + }, + { + files: ["*.dev.jsx", "*.dev.tsx"], + rules: { + // We need a simple way of passing args in stories via object spreading. + "react/jsx-props-no-spreading": "off" + } + }, + { + files: ["*.entry.tsx"], + rules: { + // Since we use High Order Functional Component in entries for text props + // and want to show the props being used we disable this rule. + "@typescript-eslint/no-unused-vars": "off" + } + }, + { + ignores: [ + "src/core/cover-service-api/model/*", + "src/core/cover-service-api/cover-service.ts", + "src/core/dpl-cms/model/*", + "src/core/dpl-cms/dpl-cms.ts", + "src/core/fbs/fbs.ts", + "src/core/publizon/publizon.ts" ] } ]; From e12ca43142da130a41cf6ae710aa5850575ae225 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 18:18:00 +0100 Subject: [PATCH 16/30] Update @typescript-eslint packages to version 8.19.0 --- package.json | 4 +- yarn.lock | 224 ++++++++++++++++++++------------------------------- 2 files changed, 88 insertions(+), 140 deletions(-) diff --git a/package.json b/package.json index d67e4a316..8024b50b4 100644 --- a/package.json +++ b/package.json @@ -79,8 +79,8 @@ "@types/react-dom": "^18.3.1", "@types/react-flatpickr": "^3.8.11", "@types/react-redux": "^7.1.24", - "@typescript-eslint/eslint-plugin": "^5.23.0", - "@typescript-eslint/parser": "^7.16.0", + "@typescript-eslint/eslint-plugin": "^8.19.0", + "@typescript-eslint/parser": "^8.19.0", "@vitest/coverage-istanbul": "^2.1.8", "autoprefixer": "^10.4.20", "babel-loader": "^9.2.1", diff --git a/yarn.lock b/yarn.lock index 7b7649873..9303b30e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1532,7 +1532,14 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.12.1": +"@eslint-community/eslint-utils@^4.4.0": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" + integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1": version "4.12.1" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== @@ -3601,121 +3608,86 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^5.23.0": - version "5.23.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz" - integrity sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA== - dependencies: - "@typescript-eslint/scope-manager" "5.23.0" - "@typescript-eslint/type-utils" "5.23.0" - "@typescript-eslint/utils" "5.23.0" - debug "^4.3.2" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.2.0" - semver "^7.3.5" - tsutils "^3.21.0" +"@typescript-eslint/eslint-plugin@^8.19.0": + version "8.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.0.tgz#2b1e1b791e21d5fc27ddc93884db066444f597b5" + integrity sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.19.0" + "@typescript-eslint/type-utils" "8.19.0" + "@typescript-eslint/utils" "8.19.0" + "@typescript-eslint/visitor-keys" "8.19.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.16.0.tgz#53fae8112f8c912024aea7b499cf7374487af6d8" - integrity sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw== +"@typescript-eslint/parser@^8.19.0": + version "8.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.19.0.tgz#f1512e6e5c491b03aabb2718b95becde22b15292" + integrity sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw== dependencies: - "@typescript-eslint/scope-manager" "7.16.0" - "@typescript-eslint/types" "7.16.0" - "@typescript-eslint/typescript-estree" "7.16.0" - "@typescript-eslint/visitor-keys" "7.16.0" + "@typescript-eslint/scope-manager" "8.19.0" + "@typescript-eslint/types" "8.19.0" + "@typescript-eslint/typescript-estree" "8.19.0" + "@typescript-eslint/visitor-keys" "8.19.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.23.0": - version "5.23.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz" - integrity sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw== - dependencies: - "@typescript-eslint/types" "5.23.0" - "@typescript-eslint/visitor-keys" "5.23.0" - -"@typescript-eslint/scope-manager@7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz#eb0757af5720c9c53c8010d7a0355ae27e17b7e5" - integrity sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw== +"@typescript-eslint/scope-manager@8.19.0": + version "8.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.19.0.tgz#28fa413a334f70e8b506a968531e0a7c9c3076dc" + integrity sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA== dependencies: - "@typescript-eslint/types" "7.16.0" - "@typescript-eslint/visitor-keys" "7.16.0" + "@typescript-eslint/types" "8.19.0" + "@typescript-eslint/visitor-keys" "8.19.0" -"@typescript-eslint/type-utils@5.23.0": - version "5.23.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz" - integrity sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw== +"@typescript-eslint/type-utils@8.19.0": + version "8.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.19.0.tgz#41abd7d2e4cf93b6854b1fe6cbf416fab5abf89f" + integrity sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg== dependencies: - "@typescript-eslint/utils" "5.23.0" - debug "^4.3.2" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.23.0": - version "5.23.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz" - integrity sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw== - -"@typescript-eslint/types@7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.16.0.tgz#60a19d7e7a6b1caa2c06fac860829d162a036ed2" - integrity sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw== + "@typescript-eslint/typescript-estree" "8.19.0" + "@typescript-eslint/utils" "8.19.0" + debug "^4.3.4" + ts-api-utils "^1.3.0" -"@typescript-eslint/typescript-estree@5.23.0": - version "5.23.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz" - integrity sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg== - dependencies: - "@typescript-eslint/types" "5.23.0" - "@typescript-eslint/visitor-keys" "5.23.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" +"@typescript-eslint/types@8.19.0": + version "8.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.19.0.tgz#a190a25c5484a42b81eaad06989579fdeb478cbb" + integrity sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA== -"@typescript-eslint/typescript-estree@7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz#98ac779d526fab2a781e5619c9250f3e33867c09" - integrity sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw== +"@typescript-eslint/typescript-estree@8.19.0": + version "8.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.0.tgz#6b4f48f98ffad6597379951b115710f4d68c9ccb" + integrity sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw== dependencies: - "@typescript-eslint/types" "7.16.0" - "@typescript-eslint/visitor-keys" "7.16.0" + "@typescript-eslint/types" "8.19.0" + "@typescript-eslint/visitor-keys" "8.19.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" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@5.23.0": - version "5.23.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz" - integrity sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA== +"@typescript-eslint/utils@8.19.0": + version "8.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.19.0.tgz#33824310e1fccc17f27fbd1030fd8bbd9a674684" + integrity sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg== dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.23.0" - "@typescript-eslint/types" "5.23.0" - "@typescript-eslint/typescript-estree" "5.23.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.23.0": - version "5.23.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz" - integrity sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg== - dependencies: - "@typescript-eslint/types" "5.23.0" - eslint-visitor-keys "^3.0.0" - -"@typescript-eslint/visitor-keys@7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz#a1d99fa7a3787962d6e0efd436575ef840e23b06" - integrity sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg== - dependencies: - "@typescript-eslint/types" "7.16.0" - eslint-visitor-keys "^3.4.3" + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.19.0" + "@typescript-eslint/types" "8.19.0" + "@typescript-eslint/typescript-estree" "8.19.0" + +"@typescript-eslint/visitor-keys@8.19.0": + version "8.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.0.tgz#dc313f735e64c4979c9073f51ffcefb6d9be5c77" + integrity sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w== + dependencies: + "@typescript-eslint/types" "8.19.0" + eslint-visitor-keys "^4.2.0" "@ungap/structured-clone@^1.0.0": version "1.2.0" @@ -6791,7 +6763,7 @@ eslint-plugin-react@^7.37.2: string.prototype.matchall "^4.0.11" string.prototype.repeat "^1.0.0" -eslint-scope@5.1.1, eslint-scope@^5.1.1: +eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -6807,19 +6779,7 @@ eslint-scope@^8.2.0: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, 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== @@ -7453,11 +7413,6 @@ function.prototype.name@^1.1.6: es-abstract "^1.22.1" functions-have-names "^1.2.3" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -7673,7 +7628,7 @@ globalthis@^1.0.3, globalthis@^1.0.4: define-properties "^1.2.1" gopd "^1.0.1" -globby@11.1.0, globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: +globby@11.1.0, globby@^11.0.3, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -7726,6 +7681,11 @@ graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + graphql-config@^5.1.1: version "5.1.3" resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-5.1.3.tgz#343e2867dafd5b009cd97fe6b29a5e9604001819" @@ -8030,16 +7990,16 @@ ieee754@^1.1.4: resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== -ignore@^5.1.8, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -ignore@^5.2.0: +ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== +ignore@^5.2.4: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + ignore@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-6.0.2.tgz#77cccb72a55796af1b6d2f9eb14fa326d24f4283" @@ -11279,11 +11239,6 @@ regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2: es-errors "^1.3.0" set-function-name "^2.0.2" -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - regexpu-core@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" @@ -12762,7 +12717,7 @@ tsconfig-paths@^4.2.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.0.0, tslib@^1.14.1, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.0.0, tslib@^1.14.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -12782,13 +12737,6 @@ tslib@~2.6.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - tty-browserify@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz" From 0a0eb027bfd10b9616c5f08ffbe068d70b3fff24 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 18:18:48 +0100 Subject: [PATCH 17/30] Update eslint.config.js to recommended format + add rules we followed before package upgrade --- eslint.config.js | 58 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 4e7f7fdfa..4921b3510 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,4 +1,3 @@ -const typescriptRecommended = require("@typescript-eslint/eslint-plugin/dist/configs/recommended"); const prettier = require("eslint-config-prettier"); const airbnbBase = require("eslint-config-airbnb"); const airbnbTypeScript = require("eslint-config-airbnb-typescript"); @@ -6,25 +5,38 @@ const airbnbHooks = require("eslint-config-airbnb/hooks"); const prettierRecommended = require("eslint-plugin-prettier").configs .recommended; const cypress = require("eslint-plugin-cypress").configs.recommended; +// Include the recommended settings for @typescript-eslint +const typescriptRecommended = { + plugins: { + "@typescript-eslint": require("@typescript-eslint/eslint-plugin") + }, + rules: { + "@typescript-eslint/no-unused-vars": "warn", + "@typescript-eslint/consistent-type-imports": "error", + "@typescript-eslint/no-explicit-any": "warn", + "@typescript-eslint/explicit-module-boundary-types": "off" + } +}; +// ESLint configuration using flat config module.exports = [ { files: ["**/*.{ts,tsx,js,jsx}"], languageOptions: { - parser: "@typescript-eslint/parser", + parser: require("@typescript-eslint/parser"), parserOptions: { - project: "./tsconfig.json", + project: "./tsconfig.json", // Specify the TypeScript project configuration sourceType: "module", ecmaFeatures: { - jsx: true + jsx: true // Enable JSX support } } }, settings: { react: { - version: "16.11.0" + version: "16.11.0" // React version for linting }, - // Since we use vitest alongside our production code we have to instruct eslint + // Since we use vitest alongside our production code, we have to instruct ESLint // not to throw the import/no-extraneous-dependencies error when doing so. "import/core-modules": ["vitest"] }, @@ -39,6 +51,7 @@ module.exports = [ prettier: require("eslint-plugin-prettier") }, rules: { + // Extend rules from airbnb, prettier, cypress, and @typescript-eslint plugins ...airbnbBase.rules, ...airbnbTypeScript.rules, ...airbnbHooks.rules, @@ -46,6 +59,8 @@ module.exports = [ ...prettierRecommended.rules, ...cypress.rules, ...typescriptRecommended.rules, + // Custom rules + "@typescript-eslint/consistent-type-imports": "off", "prefer-arrow-callback": [ "error", { @@ -57,7 +72,7 @@ module.exports = [ "error", { props: true, - ignorePropertyModificationsFor: ["state"] + ignorePropertyModificationsFor: ["state"] // Ignore state reassignment } ], "import/no-extraneous-dependencies": [ @@ -83,9 +98,11 @@ module.exports = [ ] } ], + // Needed until new TypeScript versions are supported + "@typescript-eslint/no-empty-function": "off", // We like to use arrow function syntax also for functional components. "react/function-component-definition": "off", - // No complaints about missing trailing comma + // No complaints about missing trailing commas "@typescript-eslint/comma-dangle": "off", "react-hooks/exhaustive-deps": [ "warn", @@ -93,15 +110,16 @@ module.exports = [ additionalHooks: "useDeepCompareEffect" } ], - "no-only-tests/no-only-tests": "warn" + "no-only-tests/no-only-tests": "warn" // Warn on `.only` in tests } }, + // JS/JSX-specific rules { files: ["*.js", "*.jsx"], rules: { - // These rules were triggered on the former non-typescript codebase. - // We are planning to use only ts/tsx in the future - // Therefor we can seperate them by only being ignored on js/jsx files. + // These rules were triggered on the former non-TypeScript codebase. + // We are planning to use only ts/tsx in the future. + // Therefore, we can separate them by only being ignored on js/jsx files. // Start - ddb-react former code "react/jsx-no-bind": "off", "react/function-component-definition": "off", @@ -110,19 +128,21 @@ module.exports = [ "@typescript-eslint/return-await": "off", "no-param-reassign": "off", "@typescript-eslint/no-var-requires": "off" + // End - ddb-react former code } }, + // TS/TSX-specific rules { files: ["*.tsx", "*.ts"], rules: { - // We do not use prop-types in ts. + // We do not use prop-types in TypeScript. "react/prop-types": "off", "react/require-default-props": "off", "react/no-unused-prop-types": "off", "no-underscore-dangle": [ "error", { - allow: ["__typename"] + allow: ["__typename"] // Allow specific underscores } ], "react/forbid-elements": [ @@ -132,28 +152,30 @@ module.exports = [ { element: "main", message: - "dpl-cms provide a
to render react in, therefore you must use
to avoid duplicate main" + "dpl-cms provides a
to render React in, therefore you must use
to avoid duplicate
" } ] } ] } }, + // Storybook development rules { files: ["*.dev.jsx", "*.dev.tsx"], rules: { - // We need a simple way of passing args in stories via object spreading. + // Allow spreading props in stories "react/jsx-props-no-spreading": "off" } }, + // Entry point rules { files: ["*.entry.tsx"], rules: { - // Since we use High Order Functional Component in entries for text props - // and want to show the props being used we disable this rule. + // Disable unused vars rule for entry points "@typescript-eslint/no-unused-vars": "off" } }, + // Ignore specific files { ignores: [ "src/core/cover-service-api/model/*", From 860008eacf7063a893a81338be638ab8c5f3b9c5 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Fri, 3 Jan 2025 18:19:14 +0100 Subject: [PATCH 18/30] Lint + fix all files based on latest recommendations --- .../AdvancedSearch.stories.tsx | 2 +- .../advanced-search/AdvancedSearchRow.tsx | 2 +- .../CreatePatron.stories.tsx | 1 - src/apps/dashboard/dashboard.stories.tsx | 2 +- src/apps/demo-modal/demo-modal.stories.tsx | 2 +- ...FavoritesListMaterialComponent.stories.tsx | 2 +- .../favorites-list/FavoritesList.stories.tsx | 2 +- src/apps/fee-list/FeeList.stories.tsx | 2 +- src/apps/loan-list/list/loan-list.stories.tsx | 2 +- .../selectable-material.tsx | 2 -- .../stackable-material/material-info.tsx | 2 +- .../utils/digital-material-fetch-hoc.tsx | 15 ++------- .../materials/utils/material-fetch-hoc.tsx | 17 ++-------- src/apps/material-grid/MaterialGrid.tsx | 1 - .../MaterialGridAutomatic.stories.tsx | 2 +- .../manual/MaterialGridManual.stories.tsx | 2 +- .../MaterialSearch.stories.tsx | 7 ++-- .../material-search/useGetHiddenInputs.tsx | 2 -- src/apps/material-search/useUpdateFields.ts | 2 +- src/apps/material/material.stories.tsx | 2 +- src/apps/menu/menu.stories.tsx | 3 +- .../opening-hours-editor/DialogFormEdit.tsx | 8 ++--- src/apps/opening-hours-editor/EventForm.tsx | 2 +- src/apps/opening-hours-editor/helper.ts | 2 +- .../useOpeningHoursEditor.tsx | 1 - .../OpeningHoursSidebar.stories.tsx | 1 - .../OpeningHoursSidebarDetails.tsx | 1 - .../opening-hours/OpeningHours.stories.tsx | 2 +- src/apps/patron-page/PatronPage.stories.tsx | 2 +- .../recommendation/recommendation.stories.tsx | 3 +- .../RecommendedMaterial.stories.tsx | 2 +- src/apps/recommender/Recommender.stories.tsx | 2 +- .../list/reservation-list.stories.tsx | 2 +- .../modal/reservation-details/helper.ts | 2 +- .../physical-list-details.tsx | 2 +- .../search-header/search-header.stories.tsx | 3 +- src/apps/search-header/search-header.tsx | 2 +- .../search-result/search-result.stories.tsx | 2 +- .../SomethingSimilar.stories.tsx | 2 +- .../autosuggest-category.tsx | 2 +- .../autosuggest-material.tsx | 4 +-- .../autosuggest-text-item.tsx | 4 +-- src/components/autosuggest/autosuggest.tsx | 4 +-- .../button-favourite.stories.tsx | 2 -- .../card-list-item/card-list-item.tsx | 2 +- src/components/checkbox/Checkbox.tsx | 2 +- src/components/cover/cover.stories.tsx | 2 +- src/components/date-inputs/DateRangeInput.tsx | 2 +- src/components/dialog/Dialog.tsx | 3 +- .../ErrorBoundaryAlert.stories.tsx | 3 +- .../facet-line/FacetLineFilters.tsx | 2 +- .../FindOnShelfModal.stories.tsx | 5 ++- src/components/guarded-app.tsx | 12 +++---- src/components/material/ReviewInfomedia.tsx | 2 +- .../material/infomedia/InfomediaModalBody.tsx | 2 +- .../modal-message/ModalMessage.stories.tsx | 2 -- .../message/modal-message/ModalMessage.tsx | 1 - .../multiselect/Multiselect.stories.tsx | 1 - src/components/multiselect/Multiselect.tsx | 4 +-- .../search-bar/search-bar.dev.inc.tsx | 1 - src/components/search-bar/search-bar.tsx | 6 ++-- ...authenticatedPatronV6AuthenticateStatus.ts | 1 - src/core/guardedRequests.slice.ts | 6 ++-- src/core/mount.js | 2 +- src/core/publizon/model/apiResponseCode.ts | 1 - src/core/publizon/model/bookTypes.ts | 1 - .../publizon/model/contentLoanStatusEnum.ts | 1 - src/core/publizon/model/fileExtensionType.ts | 1 - src/core/publizon/model/identifierTypeEnum.ts | 1 - src/core/statistics/useStatistics.ts | 1 - src/core/store.ts | 2 +- src/core/utils/helpers/invalid-switch-case.ts | 1 - src/core/utils/modal.tsx | 4 +-- src/core/utils/useRequestsWithStatus.tsx | 3 +- src/core/utils/withFocusTrap.tsx | 1 - src/core/utils/withIsPatronBlockedHoc.tsx | 7 +--- src/core/utils/withSuffix.tsx | 2 +- src/tests/unit/availability.test.tsx | 32 +++++++++---------- src/tests/unit/useRequestsWithStatus.test.tsx | 1 - .../useReservableFromAnotherLibrary.test.tsx | 4 +-- 80 files changed, 93 insertions(+), 162 deletions(-) diff --git a/src/apps/advanced-search/AdvancedSearch.stories.tsx b/src/apps/advanced-search/AdvancedSearch.stories.tsx index f231d6d3b..0e05b8209 100644 --- a/src/apps/advanced-search/AdvancedSearch.stories.tsx +++ b/src/apps/advanced-search/AdvancedSearch.stories.tsx @@ -13,7 +13,7 @@ import AdvancedSearchEntry from "./AdvancedSearch.entry"; const meta: Meta = { title: "Apps / Advanced Search", component: AdvancedSearchEntry, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type serviceUrlArgTypes and globalTextArgTypes argTypes: { ...serviceUrlArgTypes, diff --git a/src/apps/advanced-search/AdvancedSearchRow.tsx b/src/apps/advanced-search/AdvancedSearchRow.tsx index 48a77f22e..263d29191 100644 --- a/src/apps/advanced-search/AdvancedSearchRow.tsx +++ b/src/apps/advanced-search/AdvancedSearchRow.tsx @@ -40,7 +40,7 @@ const AdvancedSearchRow: React.FC = ({ updateData: (data: AdvancedSearchQuery) => void ) => { const newData = { ...data }; - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore-next-line I wasn't able to match the update type with the rowAspect type // but the values match and it all works. newData.rows[rowIndex][rowAspect] = update; diff --git a/src/apps/create-patron-user-info/CreatePatron.stories.tsx b/src/apps/create-patron-user-info/CreatePatron.stories.tsx index 7c905f5f6..a4fddcaf7 100644 --- a/src/apps/create-patron-user-info/CreatePatron.stories.tsx +++ b/src/apps/create-patron-user-info/CreatePatron.stories.tsx @@ -24,7 +24,6 @@ export default meta; type Story = StoryObj; export const Primary: Story = { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: can't figure out how to type pincodeArgTypes, serviceUrlArgTypes and globalTextArgTypes argTypes: { ...pincodeArgTypes, diff --git a/src/apps/dashboard/dashboard.stories.tsx b/src/apps/dashboard/dashboard.stories.tsx index c1cbe18f3..1f15af283 100644 --- a/src/apps/dashboard/dashboard.stories.tsx +++ b/src/apps/dashboard/dashboard.stories.tsx @@ -40,7 +40,7 @@ import blockedArgs, { const meta: Meta = { title: "Apps / Dashboard", component: DashBoard, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type this argTypes: { ...blockedArgTypes, diff --git a/src/apps/demo-modal/demo-modal.stories.tsx b/src/apps/demo-modal/demo-modal.stories.tsx index 7021db433..9f59403e4 100644 --- a/src/apps/demo-modal/demo-modal.stories.tsx +++ b/src/apps/demo-modal/demo-modal.stories.tsx @@ -12,7 +12,7 @@ const meta: Meta = { modal: "demo-modal-one" } }, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type globalTextArgTypes argTypes: { ...globalTextArgTypes, diff --git a/src/apps/favorites-list-material-component/FavoritesListMaterialComponent.stories.tsx b/src/apps/favorites-list-material-component/FavoritesListMaterialComponent.stories.tsx index 3bf776b68..354405508 100644 --- a/src/apps/favorites-list-material-component/FavoritesListMaterialComponent.stories.tsx +++ b/src/apps/favorites-list-material-component/FavoritesListMaterialComponent.stories.tsx @@ -13,7 +13,7 @@ import globalConfigArgs, { const meta: Meta = { title: "Apps / Favorites list material component", component: FavoritesListMaterialComponent, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type serviceUrlArgTypes and globalTextArgTypes argTypes: { ...serviceUrlArgTypes, diff --git a/src/apps/favorites-list/FavoritesList.stories.tsx b/src/apps/favorites-list/FavoritesList.stories.tsx index 58fced646..a6a13b0c2 100644 --- a/src/apps/favorites-list/FavoritesList.stories.tsx +++ b/src/apps/favorites-list/FavoritesList.stories.tsx @@ -13,7 +13,7 @@ import globalConfigArgs, { const meta: Meta = { title: "Apps / Favorite list", component: FavoritesListEntry, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type serviceUrlArgTypes and globalTextArgTypes argTypes: { ...serviceUrlArgTypes, diff --git a/src/apps/fee-list/FeeList.stories.tsx b/src/apps/fee-list/FeeList.stories.tsx index 1aee0934b..342427bd8 100644 --- a/src/apps/fee-list/FeeList.stories.tsx +++ b/src/apps/fee-list/FeeList.stories.tsx @@ -29,7 +29,7 @@ import renewalArgs, { const meta: Meta = { title: "Apps / Fee list", component: FeeList, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type this argTypes: { ...serviceUrlArgTypes, diff --git a/src/apps/loan-list/list/loan-list.stories.tsx b/src/apps/loan-list/list/loan-list.stories.tsx index bcdb09306..26a80476f 100644 --- a/src/apps/loan-list/list/loan-list.stories.tsx +++ b/src/apps/loan-list/list/loan-list.stories.tsx @@ -29,7 +29,7 @@ import blockedArgs, { const meta: Meta = { title: "Apps / Loan list", component: LoanList, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type this argTypes: { ...serviceUrlArgTypes, diff --git a/src/apps/loan-list/materials/selectable-material/selectable-material.tsx b/src/apps/loan-list/materials/selectable-material/selectable-material.tsx index 6e3880095..68b5bf911 100644 --- a/src/apps/loan-list/materials/selectable-material/selectable-material.tsx +++ b/src/apps/loan-list/materials/selectable-material/selectable-material.tsx @@ -1,5 +1,3 @@ -/* eslint-disable jsx-a11y/no-noninteractive-tabindex */ -/* eslint-disable jsx-a11y/no-static-element-interactions */ import React, { FC, ReactNode } from "react"; import clsx from "clsx"; import { useText } from "../../../../core/utils/text"; diff --git a/src/apps/loan-list/materials/stackable-material/material-info.tsx b/src/apps/loan-list/materials/stackable-material/material-info.tsx index a1a788660..a90b96563 100644 --- a/src/apps/loan-list/materials/stackable-material/material-info.tsx +++ b/src/apps/loan-list/materials/stackable-material/material-info.tsx @@ -75,7 +75,7 @@ const MaterialInfo: FC = ({ }} type="button" // This is to handle focus when more items are loaded via pagination - // eslint-disable-next-line jsx-a11y/no-autofocus + autoFocus={focused} lang={lang || ""} className="list-reservation__header color-secondary-gray" diff --git a/src/apps/loan-list/materials/utils/digital-material-fetch-hoc.tsx b/src/apps/loan-list/materials/utils/digital-material-fetch-hoc.tsx index 0d854c404..eaa0e9175 100644 --- a/src/apps/loan-list/materials/utils/digital-material-fetch-hoc.tsx +++ b/src/apps/loan-list/materials/utils/digital-material-fetch-hoc.tsx @@ -18,13 +18,7 @@ const fetchDigitalMaterial = // If this is a physical book, another HOC fetches the data and this // HOC just returns the component if (item.faust) { - return ( - - ); + return ; } if (item.identifier) { @@ -59,12 +53,7 @@ const fetchDigitalMaterial = if (!digitalMaterial) return null; return ( - + ); } return null; diff --git a/src/apps/loan-list/materials/utils/material-fetch-hoc.tsx b/src/apps/loan-list/materials/utils/material-fetch-hoc.tsx index d03baf9da..fa2ade644 100644 --- a/src/apps/loan-list/materials/utils/material-fetch-hoc.tsx +++ b/src/apps/loan-list/materials/utils/material-fetch-hoc.tsx @@ -27,13 +27,7 @@ const fetchMaterial = // If this is a digital book, another HOC fetches the data and this // HOC just returns the component if (item?.identifier) { - return ( - - ); + return ; } if (item?.faust) { @@ -77,14 +71,7 @@ const fetchMaterial = // in cases where the material is not found we return null, else we would load forever if (!material) return null; - return ( - - ); + return ; } return null; }; diff --git a/src/apps/material-grid/MaterialGrid.tsx b/src/apps/material-grid/MaterialGrid.tsx index 8f5f74134..6fd23f760 100644 --- a/src/apps/material-grid/MaterialGrid.tsx +++ b/src/apps/material-grid/MaterialGrid.tsx @@ -60,7 +60,6 @@ const MaterialGrid: React.FC = ({ } if (!materials.length) { - // eslint-disable-next-line no-console console.warn(`No materials to show for MaterialGrid: ${title}`); return null; } diff --git a/src/apps/material-grid/automatic/MaterialGridAutomatic.stories.tsx b/src/apps/material-grid/automatic/MaterialGridAutomatic.stories.tsx index ede2e3e98..66c076098 100644 --- a/src/apps/material-grid/automatic/MaterialGridAutomatic.stories.tsx +++ b/src/apps/material-grid/automatic/MaterialGridAutomatic.stories.tsx @@ -12,7 +12,7 @@ import MaterialGridSkeleton from "../MaterialGridSkeleton"; const meta: Meta = { title: "Apps / Material Grid / Automatic", component: MaterialGridAutomatic, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type this argTypes: { ...globalTextArgTypes, diff --git a/src/apps/material-grid/manual/MaterialGridManual.stories.tsx b/src/apps/material-grid/manual/MaterialGridManual.stories.tsx index 6afd13be3..62b25466f 100644 --- a/src/apps/material-grid/manual/MaterialGridManual.stories.tsx +++ b/src/apps/material-grid/manual/MaterialGridManual.stories.tsx @@ -49,7 +49,7 @@ const materials = [ const meta: Meta = { title: "Apps / Material Grid / Manual", component: MaterialGridManual, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type this argTypes: { ...globalTextArgTypes, diff --git a/src/apps/material-search/MaterialSearch.stories.tsx b/src/apps/material-search/MaterialSearch.stories.tsx index ec1c26a57..0bd138e16 100644 --- a/src/apps/material-search/MaterialSearch.stories.tsx +++ b/src/apps/material-search/MaterialSearch.stories.tsx @@ -76,7 +76,7 @@ const MaterialSearchHiddenInputs = ({ /> - {/* eslint-disable-next-line react/jsx-props-no-spreading */} + {} ); @@ -85,7 +85,7 @@ const MaterialSearchHiddenInputs = ({ const meta: Meta = { title: "Apps / Material Search", component: MaterialSearchHiddenInputs, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type this argTypes: { ...globalTextArgTypes, @@ -247,7 +247,6 @@ export const WithPreviouslySelectedValues: Story = { const defaultMaterialType = previouslySelectedMaterialType; const modifiedProps = { ...args, defaultWorkId, defaultMaterialType }; - // eslint-disable-next-line react/jsx-props-no-spreading return ; } }; @@ -261,7 +260,6 @@ export const materialWithInvalidType: Story = { const defaultMaterialType = "invalid-type"; const modifiedProps = { ...args, defaultWorkId, defaultMaterialType }; - // eslint-disable-next-line react/jsx-props-no-spreading return ; } }; @@ -275,7 +273,6 @@ export const materialWithInvalidWorkId: Story = { const defaultMaterialType = previouslySelectedMaterialType; const modifiedProps = { ...args, defaultWorkId, defaultMaterialType }; - // eslint-disable-next-line react/jsx-props-no-spreading return ; } }; diff --git a/src/apps/material-search/useGetHiddenInputs.tsx b/src/apps/material-search/useGetHiddenInputs.tsx index d70fd53cd..4309cb5df 100644 --- a/src/apps/material-search/useGetHiddenInputs.tsx +++ b/src/apps/material-search/useGetHiddenInputs.tsx @@ -24,7 +24,6 @@ const useGetHiddenInputs = (uniqueIdentifier: string): HiddenInputsResult => { ) as HTMLInputElement | null; if (!workElement) { - // eslint-disable-next-line no-console console.debug( `Could not find input for work ID with unique identifier: ${uniqueIdentifier}` ); @@ -34,7 +33,6 @@ const useGetHiddenInputs = (uniqueIdentifier: string): HiddenInputsResult => { } if (!materialElement) { - // eslint-disable-next-line no-console console.debug( `Could not find input for material type with unique identifier: ${uniqueIdentifier}` ); diff --git a/src/apps/material-search/useUpdateFields.ts b/src/apps/material-search/useUpdateFields.ts index 13d9259c2..c6cc7f32e 100644 --- a/src/apps/material-search/useUpdateFields.ts +++ b/src/apps/material-search/useUpdateFields.ts @@ -41,7 +41,7 @@ const useUpdateFields = ({ } // Leaving a debug message hif the input element is not found. - // eslint-disable-next-line no-console + console.debug( `Could not find input element to update with ID: ${uniqueIdentifier}` ); diff --git a/src/apps/material/material.stories.tsx b/src/apps/material/material.stories.tsx index 899ca6cb3..ecb6cf7b9 100644 --- a/src/apps/material/material.stories.tsx +++ b/src/apps/material/material.stories.tsx @@ -13,7 +13,7 @@ import globalConfigArgs, { const meta: Meta = { title: "Apps / Material", component: MaterialEntry, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type serviceUrlArgTypes and globalTextArgTypes argTypes: { ...serviceUrlArgTypes, diff --git a/src/apps/menu/menu.stories.tsx b/src/apps/menu/menu.stories.tsx index 897b819bc..fb4616541 100644 --- a/src/apps/menu/menu.stories.tsx +++ b/src/apps/menu/menu.stories.tsx @@ -42,7 +42,7 @@ const WrappedStoryHeader = withText(withUrls(withConfig(StoryHeader))); const meta: Meta = { title: "Apps / Header", component: WrappedMenu, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type this argTypes: { ...serviceUrlArgTypes, @@ -218,7 +218,6 @@ export const UserMenu: Story = { searchHeaderFavoritesText: "Liked" }, render: (args) => { - // eslint-disable-next-line react/jsx-props-no-spreading const menu = ; // We use the Header component as context to the search bar. // It is the Header that creates the Search bar's design - diff --git a/src/apps/opening-hours-editor/DialogFormEdit.tsx b/src/apps/opening-hours-editor/DialogFormEdit.tsx index 42e9e204c..d55804c5f 100644 --- a/src/apps/opening-hours-editor/DialogFormEdit.tsx +++ b/src/apps/opening-hours-editor/DialogFormEdit.tsx @@ -45,7 +45,6 @@ const DialogFormEdit: React.FC = ({ endTime }: EventFormOnSubmitType) => { if (!eventInfo.start || !eventInfo.end) { - // eslint-disable-next-line no-alert alert(t("openingHoursInvalidEventText")); return; } @@ -77,7 +76,7 @@ const DialogFormEdit: React.FC = ({ ...cmsEvent, // Workaround for a bug caused by the orval tool, which incorrectly requires the repetition ID. // Ideally, the repetition ID should be optional according to the API specifications. - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: Unreachable code error repetition: { type: DplOpeningHoursListGET200ItemRepetitionType.weekly, @@ -93,7 +92,7 @@ const DialogFormEdit: React.FC = ({ } else { // Workaround for a bug caused by the orval tool, which incorrectly requires the repetition ID. // Ideally, the repetition ID should be optional according to the API specifications. - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: Unreachable code error handleEventEditing(formatFullCalendarEventToCmsEventEdit(cmsEvent)); closeDialog(); @@ -112,7 +111,7 @@ const DialogFormEdit: React.FC = ({ } else { // Workaround for a bug caused by the orval tool, which incorrectly requires the repetition ID. // Ideally, the repetition ID should be optional according to the API specifications. - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: Unreachable code error handleEventEditing(formatFullCalendarEventToCmsEventEdit(cmsEvent)); closeEditDialog(); @@ -120,7 +119,6 @@ const DialogFormEdit: React.FC = ({ }; if (!eventInfo.start || !eventInfo.end) { - // eslint-disable-next-line no-alert alert(t("openingHoursInvalidEventText")); return null; } diff --git a/src/apps/opening-hours-editor/EventForm.tsx b/src/apps/opening-hours-editor/EventForm.tsx index 0606fe767..99bce7910 100644 --- a/src/apps/opening-hours-editor/EventForm.tsx +++ b/src/apps/opening-hours-editor/EventForm.tsx @@ -1,6 +1,6 @@ // I dont know why eslint is complaining about label-has-associated-control // as the label is associated with the input field. I will disable it for now. -/* eslint-disable jsx-a11y/label-has-associated-control */ + import React, { useEffect, useState } from "react"; import { OpeningHoursCategoriesType } from "./types"; import { useText } from "../../core/utils/text"; diff --git a/src/apps/opening-hours-editor/helper.ts b/src/apps/opening-hours-editor/helper.ts index 99936dfc2..8688bd6b8 100644 --- a/src/apps/opening-hours-editor/helper.ts +++ b/src/apps/opening-hours-editor/helper.ts @@ -187,7 +187,7 @@ export const getInitialDateFromUrl = (): Date | null => { if (!Number.isNaN(date.getTime())) { return date; } - // eslint-disable-next-line no-console + console.debug( "Invalid date format in URL parameter: initialDate =", initialDateString diff --git a/src/apps/opening-hours-editor/useOpeningHoursEditor.tsx b/src/apps/opening-hours-editor/useOpeningHoursEditor.tsx index b4d72ead7..12355d039 100644 --- a/src/apps/opening-hours-editor/useOpeningHoursEditor.tsx +++ b/src/apps/opening-hours-editor/useOpeningHoursEditor.tsx @@ -56,7 +56,6 @@ const useOpeningHoursEditor = () => { }; const onError = (message: string) => { - // eslint-disable-next-line no-alert alert(message); // reload page to get the latest data window.location.reload(); diff --git a/src/apps/opening-hours-sidebar/OpeningHoursSidebar.stories.tsx b/src/apps/opening-hours-sidebar/OpeningHoursSidebar.stories.tsx index 58837fcae..8b5c7fa1f 100644 --- a/src/apps/opening-hours-sidebar/OpeningHoursSidebar.stories.tsx +++ b/src/apps/opening-hours-sidebar/OpeningHoursSidebar.stories.tsx @@ -56,6 +56,5 @@ export default meta; type Story = StoryObj; export const App: Story = { - // eslint-disable-next-line react/jsx-props-no-spreading render: (args) => }; diff --git a/src/apps/opening-hours-sidebar/OpeningHoursSidebarDetails.tsx b/src/apps/opening-hours-sidebar/OpeningHoursSidebarDetails.tsx index 040853a3d..34fd5fbfb 100644 --- a/src/apps/opening-hours-sidebar/OpeningHoursSidebarDetails.tsx +++ b/src/apps/opening-hours-sidebar/OpeningHoursSidebarDetails.tsx @@ -10,7 +10,6 @@ const OpeningHoursSidebarDetails: FC<
{openingHoursData.map(({ term, description }, i) => ( - // eslint-disable-next-line react/no-array-index-key
{term}
diff --git a/src/apps/opening-hours/OpeningHours.stories.tsx b/src/apps/opening-hours/OpeningHours.stories.tsx index 5f147c7fd..297e7d286 100644 --- a/src/apps/opening-hours/OpeningHours.stories.tsx +++ b/src/apps/opening-hours/OpeningHours.stories.tsx @@ -13,7 +13,7 @@ import OpeningHours from "./OpeningHours.entry"; const meta: Meta = { title: "Apps / Opening Hours", component: OpeningHours, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type globalConfigArgTypes, globalTextArgTypes and serviceUrlArgTypes argTypes: { ...globalConfigArgTypes, diff --git a/src/apps/patron-page/PatronPage.stories.tsx b/src/apps/patron-page/PatronPage.stories.tsx index 72696c9fd..4b34c5dac 100644 --- a/src/apps/patron-page/PatronPage.stories.tsx +++ b/src/apps/patron-page/PatronPage.stories.tsx @@ -19,7 +19,7 @@ import globalConfigArgs, { const meta: Meta = { title: "Apps / Patron page", component: PatronPage, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type globalConfigArgTypes, serviceUrlArgTypes and globalTextArgTypes argTypes: { ...serviceUrlArgTypes, diff --git a/src/apps/recommendation/recommendation.stories.tsx b/src/apps/recommendation/recommendation.stories.tsx index f3b4556a7..2db120641 100644 --- a/src/apps/recommendation/recommendation.stories.tsx +++ b/src/apps/recommendation/recommendation.stories.tsx @@ -15,7 +15,7 @@ import { ManifestationMaterialType } from "../../core/utils/types/material-type" const meta: Meta = { title: "Apps / Recommendation", component: Recommendation, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type globalTextArgTypes and serviceUrlArgTypes argTypes: { ...globalTextArgTypes, @@ -60,6 +60,5 @@ export const Skeleton: Story = { ...Default.args }, - // eslint-disable-next-line react/jsx-props-no-spreading render: (args) => }; diff --git a/src/apps/recommended-material/RecommendedMaterial.stories.tsx b/src/apps/recommended-material/RecommendedMaterial.stories.tsx index fdfdeed21..fa689b594 100644 --- a/src/apps/recommended-material/RecommendedMaterial.stories.tsx +++ b/src/apps/recommended-material/RecommendedMaterial.stories.tsx @@ -14,7 +14,7 @@ import { ManifestationMaterialType } from "../../core/utils/types/material-type" const meta: Meta = { title: "Apps / Recommended Material", component: RecommendedMaterial, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type globalTextArgTypes argTypes: { ...globalTextArgTypes, diff --git a/src/apps/recommender/Recommender.stories.tsx b/src/apps/recommender/Recommender.stories.tsx index ac19bb32f..1a9b02b00 100644 --- a/src/apps/recommender/Recommender.stories.tsx +++ b/src/apps/recommender/Recommender.stories.tsx @@ -13,7 +13,7 @@ import globalConfigArgs, { const meta: Meta = { title: "Apps / Recommender", component: Recommender, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type serviceUrlArgTypes and globalTextArgTypes argTypes: { ...serviceUrlArgTypes, diff --git a/src/apps/reservation-list/list/reservation-list.stories.tsx b/src/apps/reservation-list/list/reservation-list.stories.tsx index 25a90d9aa..84d454e53 100644 --- a/src/apps/reservation-list/list/reservation-list.stories.tsx +++ b/src/apps/reservation-list/list/reservation-list.stories.tsx @@ -23,7 +23,7 @@ import globalTextArgs, { const meta: Meta = { title: "Apps / Reservation list", component: ReservationList, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type serviceUrlArgTypes, deleteReservationModalArgTypes, reservationMaterialDetailsPropTypes, blockedArgTypes, reservationListArgTypes, globalTextArgTypes and globalTextArgTypes argTypes: { // Config diff --git a/src/apps/reservation-list/modal/reservation-details/helper.ts b/src/apps/reservation-list/modal/reservation-details/helper.ts index 93d95f1bb..ae739c8cd 100644 --- a/src/apps/reservation-list/modal/reservation-details/helper.ts +++ b/src/apps/reservation-list/modal/reservation-details/helper.ts @@ -29,7 +29,7 @@ export const findEreolAccessLinkFromManifestations = ( (access) => access.__typename === "Ereol" ); // TODO: Find out why TS doesn't understand that ereolAccess will always exist - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore-next-line return ereolAccess?.url; }; diff --git a/src/apps/reservation-list/modal/reservation-details/physical-list-details.tsx b/src/apps/reservation-list/modal/reservation-details/physical-list-details.tsx index 7d8137c67..83821f3a3 100644 --- a/src/apps/reservation-list/modal/reservation-details/physical-list-details.tsx +++ b/src/apps/reservation-list/modal/reservation-details/physical-list-details.tsx @@ -83,7 +83,7 @@ const PhysicalListDetails: FC = ({ const saveChanges = (formSelectValue: FormSelectValue) => { setReservationStatus("pending"); if (!reservationIds || reservationIds.length === 0 || !selectedBranch) { - console.error("Missing reservationId or selectedBranch"); // eslint-disable-line no-console + console.error("Missing reservationId or selectedBranch"); setReservationStatus("error"); return; } diff --git a/src/apps/search-header/search-header.stories.tsx b/src/apps/search-header/search-header.stories.tsx index 2c9aad429..11dffdeed 100644 --- a/src/apps/search-header/search-header.stories.tsx +++ b/src/apps/search-header/search-header.stories.tsx @@ -17,7 +17,7 @@ import globalConfigArgs, { const meta: Meta = { title: "Apps / Header", component: SearchHeaderEntry, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type globalConfigArgTypes, serviceUrlArgTypes and globalTextArgTypes argTypes: { ...serviceUrlArgTypes, @@ -151,7 +151,6 @@ export const Search: Story = { // It is the Header that creates the Search bar's design - // - without it, the Search bar loses its shape. render: (args: SearchHeaderEntryProps) => ( - // eslint-disable-next-line react/jsx-props-no-spreading } /> ) }; diff --git a/src/apps/search-header/search-header.tsx b/src/apps/search-header/search-header.tsx index d0a035044..d88885305 100644 --- a/src/apps/search-header/search-header.tsx +++ b/src/apps/search-header/search-header.tsx @@ -326,7 +326,7 @@ const SearchHeader: React.FC = () => { return (
{/* The downshift combobox uses prop spreading by design */} - {/* eslint-disable-next-line react/jsx-props-no-spreading */} + {}
= { title: "Apps / Search Result", component: SearchResultEntry, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type serviceUrlArgTypes and globalTextArgTypes argTypes: { ...serviceUrlArgTypes, diff --git a/src/apps/something-similar/SomethingSimilar.stories.tsx b/src/apps/something-similar/SomethingSimilar.stories.tsx index 3f804e575..5e7fe60e5 100644 --- a/src/apps/something-similar/SomethingSimilar.stories.tsx +++ b/src/apps/something-similar/SomethingSimilar.stories.tsx @@ -13,7 +13,7 @@ import globalConfigArgs, { const meta: Meta = { title: "Apps / Something similar", component: SomethingSimilar, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore: can't figure out how to type serviceUrlArgTypes and globalTextArgTypes argTypes: { ...serviceUrlArgTypes, diff --git a/src/components/autosuggest-category/autosuggest-category.tsx b/src/components/autosuggest-category/autosuggest-category.tsx index 9f92d4a32..996b83510 100644 --- a/src/components/autosuggest-category/autosuggest-category.tsx +++ b/src/components/autosuggest-category/autosuggest-category.tsx @@ -25,7 +25,7 @@ const AutosuggestCategory: FC = ({ const t = useText(); return ( <> - {/* eslint-disable react/jsx-props-no-spreading */} + {} {/* The downshift combobox works this way by design (line 43) */} {categoryData.map((item, incorrectIndex) => { // incorrectIndex because in the whole of autosuggest dropdown it is diff --git a/src/components/autosuggest-material/autosuggest-material.tsx b/src/components/autosuggest-material/autosuggest-material.tsx index 7f5ac7dd9..1b95e9156 100644 --- a/src/components/autosuggest-material/autosuggest-material.tsx +++ b/src/components/autosuggest-material/autosuggest-material.tsx @@ -31,7 +31,7 @@ const AutosuggestMaterial: React.FC = ({ const t = useText(); return ( <> - {/* eslint-disable react/jsx-props-no-spreading */} + {} {/* The downshift combobox works this way by design (line 54) */} {materialData.map((item, incorrectIndex) => { // incorrectIndex because in the whole of autosuggest dropdown it is @@ -71,7 +71,7 @@ const AutosuggestMaterial: React.FC = ({ {...getItemProps({ item, index })} data-cy={dataCy} > - {/* eslint-enable react/jsx-props-no-spreading */} + {}
= ({ const t = useText(); return ( <> - {/* eslint-disable react/jsx-props-no-spreading */} + {} {/* The downshift combobox works this way by design */}
  • = ({ lang={isoLang} >

    - {/* eslint-enable react/jsx-props-no-spreading */} + {} {item.type === SuggestionTypeEnum.Creator ? `${item.term} (${t("stringSuggestionAuthorText")})` : null} diff --git a/src/components/autosuggest/autosuggest.tsx b/src/components/autosuggest/autosuggest.tsx index b5b67c421..6c7ce8286 100644 --- a/src/components/autosuggest/autosuggest.tsx +++ b/src/components/autosuggest/autosuggest.tsx @@ -43,7 +43,7 @@ export const Autosuggest: React.FC = ({ return ( <> - {/* eslint-disable react/jsx-props-no-spreading */} + {} {/* The downshift combobox works this way by design */}

      = ({ style={!isOpen ? { display: "none" } : {}} data-cy={dataCy} > - {/* eslint-enable react/jsx-props-no-spreading */} + {} ; export const favourite: Story = { - // eslint-disable-next-line react/jsx-props-no-spreading render: (args: ButtonFavouriteProps) => { const addToListRequest = () => {}; return ( - // eslint-disable-next-line react/jsx-props-no-spreading ); } diff --git a/src/components/card-item-list/card-list-item/card-list-item.tsx b/src/components/card-item-list/card-list-item/card-list-item.tsx index 4bf477b98..8b4fe9a9a 100644 --- a/src/components/card-item-list/card-list-item/card-list-item.tsx +++ b/src/components/card-item-list/card-list-item/card-list-item.tsx @@ -121,7 +121,7 @@ const CardListItem: React.FC = ({ // You cannot have nested links so onClick handlers and stopping event propagation // is necessary. // - // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions +
      = ({
      ; export const Item: Story = { render: (args) => { const WrappedCover = withUrls(Cover); - // eslint-disable-next-line react/jsx-props-no-spreading + return ; } }; diff --git a/src/components/date-inputs/DateRangeInput.tsx b/src/components/date-inputs/DateRangeInput.tsx index 8da3ea3df..09d4983a5 100644 --- a/src/components/date-inputs/DateRangeInput.tsx +++ b/src/components/date-inputs/DateRangeInput.tsx @@ -2,7 +2,7 @@ import * as React from "react"; import { FC } from "react"; // Do not understand why eslint is complaining about this import // It is for sure listed in the dependencies of package.json. -// eslint-disable-next-line import/no-extraneous-dependencies + import Flatpickr from "react-flatpickr"; // eslint-disable-next-line import/no-extraneous-dependencies import "flatpickr/dist/flatpickr.css"; diff --git a/src/components/dialog/Dialog.tsx b/src/components/dialog/Dialog.tsx index 50b598724..0666c333a 100644 --- a/src/components/dialog/Dialog.tsx +++ b/src/components/dialog/Dialog.tsx @@ -1,6 +1,5 @@ // The dialog element allready has keyboard support -/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */ -/* eslint-disable jsx-a11y/click-events-have-key-events */ + import React, { forwardRef } from "react"; import clsx from "clsx"; import iconCross from "@danskernesdigitalebibliotek/dpl-design-system/build/icons/basic/icon-cross.svg"; diff --git a/src/components/error-boundary-alert/ErrorBoundaryAlert.stories.tsx b/src/components/error-boundary-alert/ErrorBoundaryAlert.stories.tsx index d7aa22591..8258b318f 100644 --- a/src/components/error-boundary-alert/ErrorBoundaryAlert.stories.tsx +++ b/src/components/error-boundary-alert/ErrorBoundaryAlert.stories.tsx @@ -48,11 +48,10 @@ const WrappedErrorBoundaryAlertBody = withText( export const Primary: Story = { render: (args: ErrorBoundaryAlertBodyProps) => ( { // We just want to confirm that the click handler works and show it in storybook. - // eslint-disable-next-line no-alert + alert("Close button clicked!"); }} /> diff --git a/src/components/facet-line/FacetLineFilters.tsx b/src/components/facet-line/FacetLineFilters.tsx index 521f4acc2..30d4e716a 100644 --- a/src/components/facet-line/FacetLineFilters.tsx +++ b/src/components/facet-line/FacetLineFilters.tsx @@ -30,7 +30,7 @@ const FacetLineFilters: React.FunctionComponent = ({ // summer 2024, a lot of changes has been introduced // which implies refactoring of facet types/functionality. // Something here needs to be looked at. - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore const facetMap = createFacetsMap(facets); diff --git a/src/components/find-on-shelf/FindOnShelfModal.stories.tsx b/src/components/find-on-shelf/FindOnShelfModal.stories.tsx index 54ff5e0f7..e7027dbd6 100644 --- a/src/components/find-on-shelf/FindOnShelfModal.stories.tsx +++ b/src/components/find-on-shelf/FindOnShelfModal.stories.tsx @@ -93,7 +93,7 @@ const meta: Meta = { ...args, selectedPeriodical: storySelectedPeriodical }; - /* eslint-enable no-param-reassign */ + const { manifestations: [{ pid }] } = args; @@ -101,12 +101,11 @@ const meta: Meta = { return ( <> - {/* eslint-disable-next-line react/jsx-props-no-spreading */} + {} ); diff --git a/src/components/guarded-app.tsx b/src/components/guarded-app.tsx index 6242032e7..006c15063 100644 --- a/src/components/guarded-app.tsx +++ b/src/components/guarded-app.tsx @@ -31,7 +31,7 @@ const GuardedApp = ({ app, children }: GuardedAppProps) => { const didAuthenticate = getUrlQueryParam(AUTH_PARAM); // We'll leave this debugging here temporarily also in the testing phase for troubleshooting. - // eslint-disable-next-line no-console + console.debug("PERSISTED REQUEST:", persistedRequest); useEffect(() => { @@ -40,11 +40,11 @@ const GuardedApp = ({ app, children }: GuardedAppProps) => { } // We'll leave this debugging here temporarily also in the testing phase for troubleshooting. - // eslint-disable-next-line no-console + console.debug("HAS REQUEST EXPIRED?", hasRequestExpired(persistedRequest)); - // eslint-disable-next-line no-console + console.debug("CURRENT TIMESTAMP", getCurrentUnixTime()); - // eslint-disable-next-line no-console + console.debug("EXPIRE TIMESTAMP", persistedRequest.expire); // If request has expired remove it. @@ -67,7 +67,7 @@ const GuardedApp = ({ app, children }: GuardedAppProps) => { // TODO: For some reason the type is not right in the redux type system. // It needs to be solved but I do not have the proper solution right now. - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore dispatch(reRunRequest(persistedRequest)); @@ -83,7 +83,7 @@ const GuardedApp = ({ app, children }: GuardedAppProps) => { // This is a special case. We need to return a JSX element // and children is not a JSX element. - // eslint-disable-next-line react/jsx-no-useless-fragment + return <>{children}; }; diff --git a/src/components/material/ReviewInfomedia.tsx b/src/components/material/ReviewInfomedia.tsx index fa1737af2..4dc0707d6 100644 --- a/src/components/material/ReviewInfomedia.tsx +++ b/src/components/material/ReviewInfomedia.tsx @@ -123,7 +123,7 @@ const ReviewInfomedia: React.FC = ({ )} {/* We consider infomedia to be a trustworthy source & decided not to sanitize the text data that we render as HTML. */} - {/* eslint-disable react/no-danger */} + {} {infomedia.article?.text && (

      = ({

      {headline}

      diff --git a/src/components/message/modal-message/ModalMessage.stories.tsx b/src/components/message/modal-message/ModalMessage.stories.tsx index 32e7464a0..130927bb4 100644 --- a/src/components/message/modal-message/ModalMessage.stories.tsx +++ b/src/components/message/modal-message/ModalMessage.stories.tsx @@ -21,7 +21,6 @@ const Template: StoryFn = (props) => { classNames="modal-cta modal-padding" > @@ -49,7 +48,6 @@ const meta: Meta = { subTitle: "This is a subtitle" }, render: (args) => { - // eslint-disable-next-line react/jsx-props-no-spreading return