From fe855d89cc924c904fec0d4ab3e80d7dd10c0426 Mon Sep 17 00:00:00 2001 From: philibeaux Date: Sun, 8 Dec 2024 23:33:44 +0100 Subject: [PATCH] fix(eslint): config (#2334) * fix(eslint): confict rules Signed-off-by: Alexandre Philibeaux * fix: fix eslint config rules Signed-off-by: Alexandre Philibeaux --------- Signed-off-by: Alexandre Philibeaux --- .changeset/strange-pears-tell.md | 5 + eslint.config.mjs | 15 ++- .../CookieConsentProvider.tsx | 4 +- .../{index.tsx => index.ts} | 0 packages/eslint-config-react/package.json | 3 +- packages/eslint-config-react/shared.mjs | 4 +- packages/eslint-config-react/stylistic.mjs | 8 ++ packages/eslint-config-react/typescript.mjs | 26 +++-- .../use-dataloader/src/DataLoaderProvider.tsx | 2 +- .../use-i18n/src/__tests__/formatDate.test.ts | 2 +- .../use-i18n/src/__tests__/formatUnit.test.ts | 2 +- packages/use-i18n/src/formatters.ts | 2 +- packages/use-i18n/src/usei18n.tsx | 2 +- .../src/__tests__/index.test.tsx | 4 +- .../src/__tests__/SegmentProvider.test.tsx | 2 +- packages/use-segment/src/__tests__/index.tsx | 2 +- packages/use-segment/src/useSegment.tsx | 2 +- packages/validate-icu-locales/src/index.ts | 2 +- pnpm-lock.yaml | 105 ++---------------- 19 files changed, 65 insertions(+), 127 deletions(-) create mode 100644 .changeset/strange-pears-tell.md rename packages/cookie-consent/src/CookieConsentProvider/{index.tsx => index.ts} (100%) diff --git a/.changeset/strange-pears-tell.md b/.changeset/strange-pears-tell.md new file mode 100644 index 000000000..4d9311f8b --- /dev/null +++ b/.changeset/strange-pears-tell.md @@ -0,0 +1,5 @@ +--- +"@scaleway/eslint-config-react": minor +--- + +fix conflict rules apply by formatter like prettier / biome diff --git a/eslint.config.mjs b/eslint.config.mjs index fa958d730..0cc6fd682 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -25,6 +25,14 @@ export default [ defaultVersion: '18', // Default React version to use when the version you have installed cannot be detected. // If not provided, defaults to the latest React version. }, + 'import/resolver': { + typescript: { + project: [ + './tsconfig.json', // Root config + './packages/**/tsconfig.json', + ], + }, + }, }, languageOptions: { globals: { @@ -35,7 +43,6 @@ export default [ ...scw.map(config => ({ ...config, files: ['**/*.js'] })), { files: ['**/*.js'], - languageOptions: { parser: babelParser, parserOptions: { @@ -56,7 +63,9 @@ export default [ sourceType: 'script', parserOptions: { - project: ['tsconfig.json'], + project: ['tsconfig.json', 'packages/**/tsconfig.json'], + projectService: true, + tsconfigRootDir: import.meta.dirname, }, }, }, @@ -73,7 +82,7 @@ export default [ sourceType: 'script', parserOptions: { - project: ['tsconfig.json'], + project: ['tsconfig.json', 'packages/**/tsconfig.json'], }, }, diff --git a/packages/cookie-consent/src/CookieConsentProvider/CookieConsentProvider.tsx b/packages/cookie-consent/src/CookieConsentProvider/CookieConsentProvider.tsx index 5f375b1aa..f0ffce732 100644 --- a/packages/cookie-consent/src/CookieConsentProvider/CookieConsentProvider.tsx +++ b/packages/cookie-consent/src/CookieConsentProvider/CookieConsentProvider.tsx @@ -1,6 +1,5 @@ -import type { SerializeOptions } from 'cookie' import cookie from 'cookie' -import type { PropsWithChildren } from 'react' +import type { SerializeOptions } from 'cookie' import { createContext, useCallback, @@ -9,6 +8,7 @@ import { useMemo, useState, } from 'react' +import type { PropsWithChildren } from 'react' import { uniq } from '../helpers/array' import { stringToHash } from '../helpers/misc' import { isCategoryKind } from './helpers' diff --git a/packages/cookie-consent/src/CookieConsentProvider/index.tsx b/packages/cookie-consent/src/CookieConsentProvider/index.ts similarity index 100% rename from packages/cookie-consent/src/CookieConsentProvider/index.tsx rename to packages/cookie-consent/src/CookieConsentProvider/index.ts diff --git a/packages/eslint-config-react/package.json b/packages/eslint-config-react/package.json index 897a5825c..41dc880d9 100644 --- a/packages/eslint-config-react/package.json +++ b/packages/eslint-config-react/package.json @@ -43,12 +43,11 @@ "eslint-config-airbnb": "19.0.4", "eslint-config-prettier": "9.1.0", "eslint-import-resolver-typescript": "3.7.0", - "eslint-plugin-deprecation": "3.0.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-import": "2.31.0", "eslint-plugin-jsx-a11y": "6.10.2", "eslint-plugin-react": "7.37.2", - "eslint-plugin-react-hooks": "5.0.0" + "eslint-plugin-react-hooks": "5.1.0" }, "peerDependencies": { "eslint": ">= 9.x" diff --git a/packages/eslint-config-react/shared.mjs b/packages/eslint-config-react/shared.mjs index 1355dd680..1cdc707d8 100644 --- a/packages/eslint-config-react/shared.mjs +++ b/packages/eslint-config-react/shared.mjs @@ -37,11 +37,13 @@ export default [ }, groups: [ - ['builtin', 'external'], + 'builtin', + 'external', 'internal', 'parent', 'sibling', 'index', + // "type", ], 'newlines-between': 'never', }, diff --git a/packages/eslint-config-react/stylistic.mjs b/packages/eslint-config-react/stylistic.mjs index 4146dbc10..1fac73c2f 100644 --- a/packages/eslint-config-react/stylistic.mjs +++ b/packages/eslint-config-react/stylistic.mjs @@ -41,6 +41,14 @@ export default [ '@stylistic/arrow-parens': 'off', '@stylistic/multiline-ternary': 'off', '@stylistic/no-trailing-spaces': 'off', + '@stylistic/comma-style': 'off', + '@stylistic/func-call-spacing': 'off', + '@stylistic/jsx-wrap-multilines': 'off', + '@stylistic/member-delimiter-style': 'off', + '@stylistic/jsx-curly-brace-presence': 'off', + '@stylistic/jsx-curly-newline': 'off', + '@stylistic/jsx-one-expression-per-line': 'off', + '@stylistic/max-statements-per-line ': 'off', // -------------------------------------- /// '@stylistic/brace-style': defaultAirBnbRules['brace-style'], diff --git a/packages/eslint-config-react/typescript.mjs b/packages/eslint-config-react/typescript.mjs index 7e26addb4..3a7d5e1b3 100644 --- a/packages/eslint-config-react/typescript.mjs +++ b/packages/eslint-config-react/typescript.mjs @@ -1,6 +1,5 @@ import { fixupConfigRules } from '@eslint/compat' import { FlatCompat } from '@eslint/eslintrc' -import deprecation from 'eslint-plugin-deprecation' import path from 'node:path' import { fileURLToPath } from 'node:url' import shared from './shared.mjs' @@ -19,24 +18,27 @@ export default [ 'airbnb-base', 'plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/recommended-requiring-type-checking', + 'plugin:import/recommended', 'plugin:import/typescript', ), ), ...airbnbTypescript, ...shared, { - plugins: { - deprecation, - }, - rules: { + /******* WARN ********/ + '@typescript-eslint/no-deprecated': 'warn', + '@typescript-eslint/no-explicit-any': 'warn', + '@typescript-eslint/no-redundant-type-constituents': 'warn', + /***************************/ + + /******* ERROR ********/ '@typescript-eslint/array-type': [ 'error', { default: 'array', }, ], - '@typescript-eslint/no-base-to-string': 'error', '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error', '@typescript-eslint/no-unnecessary-condition': 'error', @@ -57,15 +59,10 @@ export default [ }, }, ], - - '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-unused-vars': 'error', '@typescript-eslint/consistent-type-imports': 'error', '@typescript-eslint/consistent-type-exports': 'error', '@typescript-eslint/consistent-type-definitions': ['error', 'type'], - '@typescript-eslint/no-redundant-type-constituents': 'warn', - 'react/require-default-props': 'off', - 'react/prop-types': 'off', 'react/jsx-no-useless-fragment': [ 'error', @@ -74,6 +71,13 @@ export default [ }, ], + /***************************/ + + /******* OFF ********/ + + 'react/require-default-props': 'off', + 'react/prop-types': 'off', + // The following rules are enabled in Airbnb config, but are already checked (more thoroughly) by the TypeScript compiler // Some of the rules also fail in TypeScript files, for example: https://github.com/typescript-eslint/typescript-eslint/issues/662#issuecomment-507081586 // Rules are inspired by: https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslint-recommended.ts diff --git a/packages/use-dataloader/src/DataLoaderProvider.tsx b/packages/use-dataloader/src/DataLoaderProvider.tsx index 2aebf4630..46aebc049 100644 --- a/packages/use-dataloader/src/DataLoaderProvider.tsx +++ b/packages/use-dataloader/src/DataLoaderProvider.tsx @@ -1,5 +1,5 @@ -import type { ReactElement, ReactNode } from 'react' import { createContext, useCallback, useContext, useMemo, useRef } from 'react' +import type { ReactElement, ReactNode } from 'react' import { DEFAULT_MAX_CONCURRENT_REQUESTS, KEY_IS_NOT_STRING_ERROR, diff --git a/packages/use-i18n/src/__tests__/formatDate.test.ts b/packages/use-i18n/src/__tests__/formatDate.test.ts index 7fdd27b59..1522ad279 100644 --- a/packages/use-i18n/src/__tests__/formatDate.test.ts +++ b/packages/use-i18n/src/__tests__/formatDate.test.ts @@ -1,6 +1,6 @@ import { describe, expect, test } from 'vitest' -import type { FormatDateOptions } from '../formatDate' import formatDate, { supportedFormats } from '../formatDate' +import type { FormatDateOptions } from '../formatDate' const locales = ['en', 'fr', 'de', 'ro', 'es'] diff --git a/packages/use-i18n/src/__tests__/formatUnit.test.ts b/packages/use-i18n/src/__tests__/formatUnit.test.ts index 885a3bc07..01b26ca1b 100644 --- a/packages/use-i18n/src/__tests__/formatUnit.test.ts +++ b/packages/use-i18n/src/__tests__/formatUnit.test.ts @@ -1,6 +1,6 @@ import { describe, expect, test } from 'vitest' -import type { FormatUnitOptions } from '../formatUnit' import formatUnit, { supportedUnits } from '../formatUnit' +import type { FormatUnitOptions } from '../formatUnit' const locales = ['en', 'fr', 'ro'] diff --git a/packages/use-i18n/src/formatters.ts b/packages/use-i18n/src/formatters.ts index f7e49d5e0..abfa1f584 100644 --- a/packages/use-i18n/src/formatters.ts +++ b/packages/use-i18n/src/formatters.ts @@ -1,6 +1,6 @@ import type { NumberFormatOptions } from '@formatjs/ecma402-abstract' -import type { Cache } from '@formatjs/fast-memoize' import { memoize, strategies } from '@formatjs/fast-memoize' +import type { Cache } from '@formatjs/fast-memoize' import IntlTranslationFormat from 'intl-messageformat' // Deeply inspired by https://github.com/formatjs/formatjs/blob/7406e526a9c5666cee22cc2316dad1fa1d88697c/packages/intl-messageformat/src/core.ts diff --git a/packages/use-i18n/src/usei18n.tsx b/packages/use-i18n/src/usei18n.tsx index e70256327..2e232e2a7 100644 --- a/packages/use-i18n/src/usei18n.tsx +++ b/packages/use-i18n/src/usei18n.tsx @@ -7,7 +7,6 @@ import type { import { formatDistanceToNow } from 'date-fns/formatDistanceToNow' import { formatDistanceToNowStrict } from 'date-fns/formatDistanceToNowStrict' import type { BaseLocale } from 'international-types' -import type { ReactElement, ReactNode } from 'react' import { createContext, useCallback, @@ -16,6 +15,7 @@ import { useMemo, useState, } from 'react' +import type { ReactElement, ReactNode } from 'react' import dateFormat, { type FormatDateOptions } from './formatDate' import unitFormat, { type FormatUnitOptions } from './formatUnit' import formatters, { type IntlListFormatOptions } from './formatters' diff --git a/packages/use-query-params/src/__tests__/index.test.tsx b/packages/use-query-params/src/__tests__/index.test.tsx index f4c632def..62c01fd5a 100644 --- a/packages/use-query-params/src/__tests__/index.test.tsx +++ b/packages/use-query-params/src/__tests__/index.test.tsx @@ -1,8 +1,8 @@ import { act, renderHook } from '@testing-library/react' -import type { History } from 'history' import { createMemoryHistory } from 'history' -import type { ReactNode } from 'react' +import type { History } from 'history' import { useLayoutEffect, useState } from 'react' +import type { ReactNode } from 'react' import { MemoryRouter, Router } from 'react-router-dom' import { describe, expect, it, test } from 'vitest' import useQueryParams from '..' diff --git a/packages/use-segment/src/__tests__/SegmentProvider.test.tsx b/packages/use-segment/src/__tests__/SegmentProvider.test.tsx index 0fe638c88..6c9924dd0 100644 --- a/packages/use-segment/src/__tests__/SegmentProvider.test.tsx +++ b/packages/use-segment/src/__tests__/SegmentProvider.test.tsx @@ -1,5 +1,5 @@ -import type { Context } from '@segment/analytics-next' import { AnalyticsBrowser } from '@segment/analytics-next' +import type { Context } from '@segment/analytics-next' import { render, screen, waitFor } from '@testing-library/react' import { describe, expect, it, vi } from 'vitest' import SegmentProvider from '..' diff --git a/packages/use-segment/src/__tests__/index.tsx b/packages/use-segment/src/__tests__/index.tsx index d98ddb015..80f4927a3 100644 --- a/packages/use-segment/src/__tests__/index.tsx +++ b/packages/use-segment/src/__tests__/index.tsx @@ -1,5 +1,5 @@ -import type { Context } from '@segment/analytics-next' import { AnalyticsBrowser } from '@segment/analytics-next' +import type { Context } from '@segment/analytics-next' import { renderHook, waitFor } from '@testing-library/react' import type { ReactNode } from 'react' import { beforeEach, describe, expect, it, vi } from 'vitest' diff --git a/packages/use-segment/src/useSegment.tsx b/packages/use-segment/src/useSegment.tsx index 86b871e3d..fcd141958 100644 --- a/packages/use-segment/src/useSegment.tsx +++ b/packages/use-segment/src/useSegment.tsx @@ -4,8 +4,8 @@ import type { AnalyticsBrowserSettings, InitOptions, } from '@segment/analytics-next' -import type { ReactNode } from 'react' import { createContext, useContext, useMemo, useState } from 'react' +import type { ReactNode } from 'react' import { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect' export type OnEventError = (error: Error) => Promise | void diff --git a/packages/validate-icu-locales/src/index.ts b/packages/validate-icu-locales/src/index.ts index a390ef873..b296326ad 100644 --- a/packages/validate-icu-locales/src/index.ts +++ b/packages/validate-icu-locales/src/index.ts @@ -1,8 +1,8 @@ #!/usr/bin/env node +import * as fs from 'fs/promises' import { parse } from '@formatjs/icu-messageformat-parser' import type { ParserError } from '@formatjs/icu-messageformat-parser/error' -import * as fs from 'fs/promises' import { globby } from 'globby' import { importFromString } from 'module-from-string' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c148cb3fd..77e8991d9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -170,16 +170,13 @@ importers: version: 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) eslint-config-airbnb: specifier: 19.0.4 - version: 19.0.4(eslint-plugin-import@2.31.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@9.16.0(jiti@1.21.6)))(eslint-plugin-react-hooks@5.0.0(eslint@9.16.0(jiti@1.21.6)))(eslint-plugin-react@7.37.2(eslint@9.16.0(jiti@1.21.6)))(eslint@9.16.0(jiti@1.21.6)) + version: 19.0.4(eslint-plugin-import@2.31.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@9.16.0(jiti@1.21.6)))(eslint-plugin-react-hooks@5.1.0(eslint@9.16.0(jiti@1.21.6)))(eslint-plugin-react@7.37.2(eslint@9.16.0(jiti@1.21.6)))(eslint@9.16.0(jiti@1.21.6)) eslint-config-prettier: specifier: 9.1.0 version: 9.1.0(eslint@9.16.0(jiti@1.21.6)) eslint-import-resolver-typescript: specifier: 3.7.0 version: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(jiti@1.21.6)) - eslint-plugin-deprecation: - specifier: 3.0.0 - version: 3.0.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) eslint-plugin-eslint-comments: specifier: 3.2.0 version: 3.2.0(eslint@9.16.0(jiti@1.21.6)) @@ -193,8 +190,8 @@ importers: specifier: 7.37.2 version: 7.37.2(eslint@9.16.0(jiti@1.21.6)) eslint-plugin-react-hooks: - specifier: 5.0.0 - version: 5.0.0(eslint@9.16.0(jiti@1.21.6)) + specifier: 5.1.0 + version: 5.1.0(eslint@9.16.0(jiti@1.21.6)) devDependencies: eslint: specifier: 9.16.0 @@ -1798,10 +1795,6 @@ packages: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@7.12.0': - resolution: {integrity: sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.16.0': resolution: {integrity: sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1824,10 +1817,6 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@7.12.0': - resolution: {integrity: sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.16.0': resolution: {integrity: sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1845,15 +1834,6 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.12.0': - resolution: {integrity: sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@8.16.0': resolution: {integrity: sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1878,12 +1858,6 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@7.12.0': - resolution: {integrity: sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - '@typescript-eslint/utils@8.16.0': resolution: {integrity: sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1908,10 +1882,6 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@7.12.0': - resolution: {integrity: sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.16.0': resolution: {integrity: sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2591,12 +2561,6 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-deprecation@3.0.0: - resolution: {integrity: sha512-JuVLdNg/uf0Adjg2tpTyYoYaMbwQNn/c78P1HcccokvhtRphgnRjZDKmhlxbxYptppex03zO76f97DD/yQHv7A==} - peerDependencies: - eslint: ^8.0.0 - typescript: ^4.2.4 || ^5.0.0 - eslint-plugin-eslint-comments@3.2.0: resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} @@ -2619,8 +2583,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react-hooks@5.0.0: - resolution: {integrity: sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==} + eslint-plugin-react-hooks@5.1.0: + resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 @@ -4111,9 +4075,6 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} @@ -6084,11 +6045,6 @@ snapshots: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@7.12.0': - dependencies: - '@typescript-eslint/types': 7.12.0 - '@typescript-eslint/visitor-keys': 7.12.0 - '@typescript-eslint/scope-manager@8.16.0': dependencies: '@typescript-eslint/types': 8.16.0 @@ -6113,8 +6069,6 @@ snapshots: '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@7.12.0': {} - '@typescript-eslint/types@8.16.0': {} '@typescript-eslint/types@8.17.0': {} @@ -6133,21 +6087,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.12.0(typescript@5.7.2)': - dependencies: - '@typescript-eslint/types': 7.12.0 - '@typescript-eslint/visitor-keys': 7.12.0 - debug: 4.3.7 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.16.0(typescript@5.7.2)': dependencies: '@typescript-eslint/types': 8.16.0 @@ -6193,17 +6132,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.12.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.16.0(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 7.12.0 - '@typescript-eslint/types': 7.12.0 - '@typescript-eslint/typescript-estree': 7.12.0(typescript@5.7.2) - eslint: 9.16.0(jiti@1.21.6) - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/utils@8.16.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.16.0(jiti@1.21.6)) @@ -6233,11 +6161,6 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.12.0': - dependencies: - '@typescript-eslint/types': 7.12.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.16.0': dependencies: '@typescript-eslint/types': 8.16.0 @@ -6996,14 +6919,14 @@ snapshots: object.entries: 1.1.8 semver: 6.3.1 - eslint-config-airbnb@19.0.4(eslint-plugin-import@2.31.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@9.16.0(jiti@1.21.6)))(eslint-plugin-react-hooks@5.0.0(eslint@9.16.0(jiti@1.21.6)))(eslint-plugin-react@7.37.2(eslint@9.16.0(jiti@1.21.6)))(eslint@9.16.0(jiti@1.21.6)): + eslint-config-airbnb@19.0.4(eslint-plugin-import@2.31.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@9.16.0(jiti@1.21.6)))(eslint-plugin-react-hooks@5.1.0(eslint@9.16.0(jiti@1.21.6)))(eslint-plugin-react@7.37.2(eslint@9.16.0(jiti@1.21.6)))(eslint@9.16.0(jiti@1.21.6)): dependencies: eslint: 9.16.0(jiti@1.21.6) eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(jiti@1.21.6)) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(jiti@1.21.6)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.16.0(jiti@1.21.6)) eslint-plugin-react: 7.37.2(eslint@9.16.0(jiti@1.21.6)) - eslint-plugin-react-hooks: 5.0.0(eslint@9.16.0(jiti@1.21.6)) + eslint-plugin-react-hooks: 5.1.0(eslint@9.16.0(jiti@1.21.6)) object.assign: 4.1.5 object.entries: 1.1.8 @@ -7046,16 +6969,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-deprecation@3.0.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2): - dependencies: - '@typescript-eslint/utils': 7.12.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) - eslint: 9.16.0(jiti@1.21.6) - ts-api-utils: 1.3.0(typescript@5.7.2) - tslib: 2.6.2 - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - eslint-plugin-eslint-comments@3.2.0(eslint@9.16.0(jiti@1.21.6)): dependencies: escape-string-regexp: 1.0.5 @@ -7110,7 +7023,7 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@5.0.0(eslint@9.16.0(jiti@1.21.6)): + eslint-plugin-react-hooks@5.1.0(eslint@9.16.0(jiti@1.21.6)): dependencies: eslint: 9.16.0(jiti@1.21.6) @@ -8700,8 +8613,6 @@ snapshots: tslib@1.14.1: {} - tslib@2.6.2: {} - tslib@2.7.0: {} tstyche@3.0.0(typescript@5.7.2):