diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 32485ce..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,69 +0,0 @@ -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - extends: '@react-native', - plugins: ['react', 'jsx-a11y', 'import', 'react-native', 'observation'], - settings: { - 'import/resolver': { - node: { - paths: ['.'], - extensions: ['.js', '.jsx', '.android.js', '.ios.js', '.native.js', '.ts', '.tsx'], - }, - }, - }, - rules: { - 'observation/no-function-without-logging': 'error', - 'no-shadow': 'off', - '@typescript-eslint/no-shadow': ['error'], - semi: ['error', 'never'], - 'react-native/no-unused-styles': 'error', - 'react-native/no-inline-styles': 'off', - 'no-console': 'warn', - curly: ['error', 'multi-line'], - 'prefer-destructuring': ['error'], - 'no-duplicate-imports': 'error', - 'sort-imports': [ - 'error', - { - ignoreDeclarationSort: true, - }, - ], - 'import/order': [ - 'error', - { - groups: ['builtin', 'external', 'internal', ['parent', 'sibling']], - pathGroups: [ - { - pattern: 'react+(|-native)', - group: 'external', - position: 'before', - }, - ], - pathGroupsExcludedImportTypes: ['react+(|-native)'], - 'newlines-between': 'always', - alphabetize: { - order: 'asc', - caseInsensitive: true, - }, - }, - ], - }, - env: { - jest: true, - browser: true, - }, - overrides: [ - { - files: ['*.ts', '*.tsx'], - rules: { - 'no-undef': 'off', - }, - }, - { - files: ['*test.ts', '*test.tsx'], - rules: { - 'observation/no-function-without-logging': 'off', - }, - }, - ], -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..2affe1c --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,130 @@ +import path from 'node:path' +import { fileURLToPath } from 'node:url' + +import { fixupPluginRules } from '@eslint/compat' +import { FlatCompat } from '@eslint/eslintrc' +import js from '@eslint/js' +import tsParser from '@typescript-eslint/parser' +import _import from 'eslint-plugin-import' +import jsxA11Y from 'eslint-plugin-jsx-a11y' +import observation from 'eslint-plugin-observation' +import prettier from 'eslint-plugin-prettier' +import react from 'eslint-plugin-react' +import reactNative from 'eslint-plugin-react-native' +import globals from 'globals' + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(__filename) +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}) + +export default [ + ...compat.extends('plugin:@typescript-eslint/recommended'), + { + plugins: { + 'react-native': fixupPluginRules(reactNative), + react, + 'jsx-a11y': jsxA11Y, + import: fixupPluginRules(_import), + prettier, + observation, + }, + + languageOptions: { + globals: { + ...globals.jest, + ...globals.browser, + }, + + parser: tsParser, + }, + + settings: { + 'import/resolver': { + node: { + paths: ['.'], + extensions: ['.js', '.jsx', '.android.js', '.ios.js', '.native.js', '.ts', '.tsx'], + }, + }, + }, + + rules: { + 'observation/no-function-without-logging': 'error', + + 'react-native/no-unused-styles': 'error', + 'react-native/no-inline-styles': 'off', + + 'prettier/prettier': 'error', + + 'no-shadow': 'off', + semi: ['error', 'never'], + 'no-console': 'warn', + curly: ['error', 'multi-line'], + 'prefer-destructuring': ['error'], + 'no-duplicate-imports': 'error', + + 'sort-imports': [ + 'error', + { + ignoreDeclarationSort: true, + }, + ], + + '@typescript-eslint/no-shadow': ['error'], + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + args: 'all', + argsIgnorePattern: '^_', + caughtErrors: 'all', + caughtErrorsIgnorePattern: '^_', + destructuredArrayIgnorePattern: '^_', + varsIgnorePattern: '^_', + ignoreRestSiblings: true, + }, + ], + + 'import/order': [ + 'error', + { + groups: ['builtin', 'external', 'internal', ['parent', 'sibling']], + + pathGroups: [ + { + pattern: 'react+(|-native)', + group: 'external', + position: 'before', + }, + ], + + pathGroupsExcludedImportTypes: ['react+(|-native)'], + 'newlines-between': 'always', + + alphabetize: { + order: 'asc', + caseInsensitive: true, + }, + }, + ], + }, + }, + { + files: ['**/*.ts', '**/*.tsx'], + + rules: { + 'no-undef': 'off', + }, + }, + { + files: ['**/*test.ts', '**/*test.tsx'], + + rules: { + 'observation/no-function-without-logging': 'off', + }, + }, +] diff --git a/package.json b/package.json index 66a9b73..d3910db 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,14 @@ { "name": "@observation.org/react-native-components", - "version": "1.42.0", + "version": "1.43.0", "main": "src/index.ts", "repository": "git@github.com:observation/react-native-components.git", "author": "Observation.org", "license": "MIT", "devDependencies": { + "@eslint/compat": "^1.1.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.8.0", "@react-native/eslint-config": "0.74.85", "@react-native/metro-config": "0.74.85", "@react-native/typescript-config": "0.74.85", @@ -15,23 +18,25 @@ "@types/color": "^3.0.6", "@types/jest": "^29.5.12", "@types/react": "^18.3.3", - "eslint": "^8.57.0", + "eslint": "^9.8.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.9.0", "eslint-plugin-observation": "https://github.com/observation/eslint-rules.git", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-react": "^7.34.3", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-react": "^7.35.0", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-native": "^4.1.0", + "globals": "^15.8.0", "jest": "^29.7.0", - "prettier": "^3.3.2", + "prettier": "^3.3.3", "react": "18.2.0", "react-native": "0.74.3", "react-native-render-html": "^6.3.4", "react-test-renderer": "18.2.0", "ts-jest": "^29.2.2", - "typescript": "5.0.4" + "typescript": "5.0.4", + "typescript-eslint": "^7.18.0" }, "react-native": "src/index.ts", "scripts": { diff --git a/src/components/Accordion.tsx b/src/components/Accordion.tsx index 8984ddf..31b6e9a 100644 --- a/src/components/Accordion.tsx +++ b/src/components/Accordion.tsx @@ -1,7 +1,6 @@ import React, { useState } from 'react' import { View } from 'react-native' -// @ts-ignore import { Collapse, CollapseBody, CollapseHeader } from 'accordion-collapse-react-native' import Log from '../lib/Log' diff --git a/src/components/BackButton.tsx b/src/components/BackButton.tsx index f5e3fd4..8879e92 100644 --- a/src/components/BackButton.tsx +++ b/src/components/BackButton.tsx @@ -1,12 +1,12 @@ import React from 'react' -import { NavigationHelpers } from '@react-navigation/native' +import { NavigationProp, ParamListBase } from '@react-navigation/native' import IconButton from '../components/IconButton' import theme from '../styles/theme' type Props = { - navigation: NavigationHelpers<{}> + navigation: NavigationProp } const BackButton = ({ navigation }: Props) => ( diff --git a/src/styles/theme.ts b/src/styles/theme.ts index c820055..c909eae 100644 --- a/src/styles/theme.ts +++ b/src/styles/theme.ts @@ -75,7 +75,7 @@ const margin = { const rounded = { borderRadius: 4, - overflow: 'hidden' as 'hidden', + overflow: 'hidden' as const, } const input = { @@ -128,39 +128,39 @@ export default { rounded, roundedLarge: { borderRadius: 8, - overflow: 'hidden' as 'hidden', + overflow: 'hidden' as const, }, roundedHuge: { borderRadius: 10, - overflow: 'hidden' as 'hidden', + overflow: 'hidden' as const, }, absolute: { - position: 'absolute' as 'absolute', + position: 'absolute' as const, top: 0, bottom: 0, left: 0, right: 0, }, absoluteLeft: { - position: 'absolute' as 'absolute', + position: 'absolute' as const, top: 0, bottom: 0, left: 0, }, absoluteRight: { - position: 'absolute' as 'absolute', + position: 'absolute' as const, top: 0, bottom: 0, right: 0, }, absoluteBottom: { - position: 'absolute' as 'absolute', + position: 'absolute' as const, bottom: 0, left: 0, right: 0, }, absoluteTop: { - position: 'absolute' as 'absolute', + position: 'absolute' as const, top: 0, left: 0, right: 0, diff --git a/yarn.lock b/yarn.lock index 53de6ea..205a5df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1320,14 +1320,39 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.11.0": + version: 4.11.0 + resolution: "@eslint-community/regexpp@npm:4.11.0" + checksum: 97d2fe46690b69417a551bd19a3dc53b6d9590d2295c43cc4c4e44e64131af541e2f4a44d5c12e87de990403654d3dae9d33600081f3a2f0386b368abc9111ec + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.4.0": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.0.3, @eslint/eslintrc@npm:^2.1.4": +"@eslint/compat@npm:^1.1.1": + version: 1.1.1 + resolution: "@eslint/compat@npm:1.1.1" + checksum: c9146b139e52ee4f79e25b97f22d2936c50b876cef8e9c5789600f12d8fabae689d75571a8429e5aae0d5e8067b0628fd87b7e849cee391b485db9557b40b6a4 + languageName: node + linkType: hard + +"@eslint/config-array@npm:^0.17.1": + version: 0.17.1 + resolution: "@eslint/config-array@npm:0.17.1" + dependencies: + "@eslint/object-schema": ^2.1.4 + debug: ^4.3.1 + minimatch: ^3.1.2 + checksum: b678a7af5b0be8f1b29deaf751c77c365cf0b24bead3add677edbc7c7793dfb3eb423e33395787ff86fdbd85117a571f2f338d612a23210d9771aedf765d5482 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.0.3": version: 2.1.4 resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: @@ -1344,6 +1369,23 @@ __metadata: languageName: node linkType: hard +"@eslint/eslintrc@npm:^3.1.0": + version: 3.1.0 + resolution: "@eslint/eslintrc@npm:3.1.0" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + 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 + checksum: b0a9bbd98c8b9e0f4d975b042ff9b874dde722b20834ea2ff46551c3de740d4f10f56c449b790ef34d7f82147cbddfc22b004a43cc885dbc2664bb134766b5e4 + languageName: node + linkType: hard + "@eslint/js@npm:8.43.0": version: 8.43.0 resolution: "@eslint/js@npm:8.43.0" @@ -1351,10 +1393,17 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb +"@eslint/js@npm:9.8.0, @eslint/js@npm:^9.8.0": + version: 9.8.0 + resolution: "@eslint/js@npm:9.8.0" + checksum: 8b6e809127edea3bf5b5b3c01ae75290afe5044f950642445a50cb4b86c153ad1512fc417d3cb7b79eb7cd0ce06acd858946b6497ea912750aa54de609064f63 + languageName: node + linkType: hard + +"@eslint/object-schema@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/object-schema@npm:2.1.4" + checksum: 5a03094115bcdab7991dbbc5d17a9713f394cebb4b44d3eaf990d7487b9b8e1877b817997334ab40be52e299a0384595c6f6ba91b389901e5e1d21efda779271 languageName: node linkType: hard @@ -1422,7 +1471,7 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.10, @humanwhocodes/config-array@npm:^0.11.14": +"@humanwhocodes/config-array@npm:^0.11.10": version: 0.11.14 resolution: "@humanwhocodes/config-array@npm:0.11.14" dependencies: @@ -1447,6 +1496,13 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/retry@npm:^0.3.0": + version: 0.3.0 + resolution: "@humanwhocodes/retry@npm:0.3.0" + checksum: 4349cb8b60466a000e945fde8f8551cefb01ebba22ead4a92ac7b145f67f5da6b52e5a1e0c53185d732d0a49958ac29327934a4a5ac1d0bc20efb4429a4f7bf7 + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -2136,6 +2192,9 @@ __metadata: version: 0.0.0-use.local resolution: "@observation.org/react-native-components@workspace:." dependencies: + "@eslint/compat": ^1.1.1 + "@eslint/eslintrc": ^3.1.0 + "@eslint/js": ^9.8.0 "@fortawesome/fontawesome-svg-core": ^6.5.2 "@fortawesome/pro-light-svg-icons": ^6.5.2 "@fortawesome/pro-solid-svg-icons": ^6.5.2 @@ -2153,17 +2212,18 @@ __metadata: "@types/react": ^18.3.3 accordion-collapse-react-native: ^1.1.1 color: ^4.2.3 - eslint: ^8.57.0 + eslint: ^9.8.0 eslint-config-prettier: ^9.1.0 eslint-plugin-import: ^2.29.1 eslint-plugin-jsx-a11y: ^6.9.0 eslint-plugin-observation: "https://github.com/observation/eslint-rules.git" - eslint-plugin-prettier: ^5.1.3 - eslint-plugin-react: ^7.34.3 + eslint-plugin-prettier: ^5.2.1 + eslint-plugin-react: ^7.35.0 eslint-plugin-react-hooks: ^4.6.2 eslint-plugin-react-native: ^4.1.0 + globals: ^15.8.0 jest: ^29.7.0 - prettier: ^3.3.2 + prettier: ^3.3.3 react: 18.2.0 react-native: 0.74.3 react-native-logs: ^5.1.0 @@ -2172,6 +2232,7 @@ __metadata: react-test-renderer: 18.2.0 ts-jest: ^29.2.2 typescript: 5.0.4 + typescript-eslint: ^7.18.0 peerDependencies: "@react-navigation/native": ^6.0.8 react: 18.2.0 @@ -3022,6 +3083,29 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/eslint-plugin@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" + dependencies: + "@eslint-community/regexpp": ^4.10.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/type-utils": 7.18.0 + "@typescript-eslint/utils": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 + graphemer: ^1.4.0 + ignore: ^5.3.1 + natural-compare: ^1.4.0 + ts-api-utils: ^1.3.0 + peerDependencies: + "@typescript-eslint/parser": ^7.0.0 + eslint: ^8.56.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: dfcf150628ca2d4ccdfc20b46b0eae075c2f16ef5e70d9d2f0d746acf4c69a09f962b93befee01a529f14bbeb3e817b5aba287d7dd0edc23396bc5ed1f448c3d + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^7.1.1": version: 7.13.0 resolution: "@typescript-eslint/eslint-plugin@npm:7.13.0" @@ -3045,6 +3129,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/parser@npm:7.18.0" + dependencies: + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/typescript-estree": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^8.56.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 132b56ac3b2d90b588d61d005a70f6af322860974225b60201cbf45abf7304d67b7d8a6f0ade1c188ac4e339884e78d6dcd450417f1481998f9ddd155bab0801 + languageName: node + linkType: hard + "@typescript-eslint/parser@npm:^5.53.0": version: 5.60.1 resolution: "@typescript-eslint/parser@npm:5.60.1" @@ -3100,6 +3202,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/scope-manager@npm:7.18.0" + dependencies: + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 + checksum: b982c6ac13d8c86bb3b949c6b4e465f3f60557c2ccf4cc229799827d462df56b9e4d3eaed7711d79b875422fc3d71ec1ebcb5195db72134d07c619e3c5506b57 + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:7.13.0": version: 7.13.0 resolution: "@typescript-eslint/type-utils@npm:7.13.0" @@ -3117,6 +3229,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/type-utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/type-utils@npm:7.18.0" + dependencies: + "@typescript-eslint/typescript-estree": 7.18.0 + "@typescript-eslint/utils": 7.18.0 + debug: ^4.3.4 + ts-api-utils: ^1.3.0 + peerDependencies: + eslint: ^8.56.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 68fd5df5146c1a08cde20d59b4b919acab06a1b06194fe4f7ba1b928674880249890785fbbc97394142f2ef5cff5a7fba9b8a940449e7d5605306505348e38bc + languageName: node + linkType: hard + "@typescript-eslint/types@npm:5.60.1": version: 5.60.1 resolution: "@typescript-eslint/types@npm:5.60.1" @@ -3131,6 +3260,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/types@npm:7.18.0" + checksum: 7df2750cd146a0acd2d843208d69f153b458e024bbe12aab9e441ad2c56f47de3ddfeb329c4d1ea0079e2577fea4b8c1c1ce15315a8d49044586b04fedfe7a4d + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.60.1": version: 5.60.1 resolution: "@typescript-eslint/typescript-estree@npm:5.60.1" @@ -3168,6 +3304,25 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" + dependencies: + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^1.3.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: c82d22ec9654973944f779eb4eb94c52f4a6eafaccce2f0231ff7757313f3a0d0256c3252f6dfe6d43f57171d09656478acb49a629a9d0c193fb959bc3f36116 + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:7.13.0": version: 7.13.0 resolution: "@typescript-eslint/utils@npm:7.13.0" @@ -3182,6 +3337,20 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/typescript-estree": 7.18.0 + peerDependencies: + eslint: ^8.56.0 + checksum: 751dbc816dab8454b7dc6b26a56671dbec08e3f4ef94c2661ce1c0fc48fa2d05a64e03efe24cba2c22d03ba943cd3c5c7a5e1b7b03bbb446728aec1c640bd767 + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.53.0": version: 5.60.1 resolution: "@typescript-eslint/utils@npm:5.60.1" @@ -3220,10 +3389,13 @@ __metadata: languageName: node linkType: hard -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 +"@typescript-eslint/visitor-keys@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" + dependencies: + "@typescript-eslint/types": 7.18.0 + eslint-visitor-keys: ^3.4.3 + checksum: 6e806a7cdb424c5498ea187a5a11d0fef7e4602a631be413e7d521e5aec1ab46ba00c76cfb18020adaa0a8c9802354a163bfa0deb74baa7d555526c7517bb158 languageName: node linkType: hard @@ -3274,6 +3446,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.12.0": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" + bin: + acorn: bin/acorn + checksum: 677880034aee5bdf7434cc2d25b641d7bedb0b5ef47868a78dadabedccf58e1c5457526d9d8249cd253f2df087e081c3fe7d903b448d8e19e5131a3065b83c07 + languageName: node + linkType: hard + "acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.11.3 resolution: "acorn@npm:8.11.3" @@ -3531,18 +3712,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.toreversed@npm:^1.1.2": - version: 1.1.2 - resolution: "array.prototype.toreversed@npm:1.1.2" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: 58598193426282155297bedf950dc8d464624a0d81659822fb73124286688644cb7e0e4927a07f3ab2daaeb6617b647736cc3a5e6ca7ade5bb8e573b284e6240 - languageName: node - linkType: hard - "array.prototype.tosorted@npm:^1.1.1": version: 1.1.3 resolution: "array.prototype.tosorted@npm:1.1.3" @@ -5203,12 +5372,12 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-prettier@npm:^5.1.3": - version: 5.1.3 - resolution: "eslint-plugin-prettier@npm:5.1.3" +"eslint-plugin-prettier@npm:^5.2.1": + version: 5.2.1 + resolution: "eslint-plugin-prettier@npm:5.2.1" dependencies: prettier-linter-helpers: ^1.0.0 - synckit: ^0.8.6 + synckit: ^0.9.1 peerDependencies: "@types/eslint": ">=8.0.0" eslint: ">=8.0.0" @@ -5219,7 +5388,7 @@ __metadata: optional: true eslint-config-prettier: optional: true - checksum: eb2a7d46a1887e1b93788ee8f8eb81e0b6b2a6f5a66a62bc6f375b033fc4e7ca16448da99380be800042786e76cf5c0df9c87a51a2c9b960ed47acbd7c0b9381 + checksum: 812f4d1596dcd3a55963212dfbd818a4b38f880741aac75f6869aa740dc5d934060674d3b85d10ff9fec424defa61967dbdef26b8a893a92c9b51880264ed0d9 languageName: node linkType: hard @@ -5284,31 +5453,31 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react@npm:^7.34.3": - version: 7.34.3 - resolution: "eslint-plugin-react@npm:7.34.3" +"eslint-plugin-react@npm:^7.35.0": + version: 7.35.0 + resolution: "eslint-plugin-react@npm:7.35.0" dependencies: array-includes: ^3.1.8 array.prototype.findlast: ^1.2.5 array.prototype.flatmap: ^1.3.2 - array.prototype.toreversed: ^1.1.2 array.prototype.tosorted: ^1.1.4 doctrine: ^2.1.0 es-iterator-helpers: ^1.0.19 estraverse: ^5.3.0 + hasown: ^2.0.2 jsx-ast-utils: ^2.4.1 || ^3.0.0 minimatch: ^3.1.2 object.entries: ^1.1.8 object.fromentries: ^2.0.8 - object.hasown: ^1.1.4 object.values: ^1.2.0 prop-types: ^15.8.1 resolve: ^2.0.0-next.5 semver: ^6.3.1 string.prototype.matchall: ^4.0.11 + string.prototype.repeat: ^1.0.0 peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 1a519b9792ab9392a5157f2543ce98ab1218c62f4a31c4c3ceb5dd3e7997def4aa07ab39f7276af0fe116ef002db29d97216a15b7aa3b200e55b641cf77d6292 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: cd4d3c0567e947964643dda5fc80147e058d75f06bac47c3f086ff0cd6156286c669d98e685e3834997c4043f3922b90e6374b6c3658f22abd025dbd41acc23f languageName: node linkType: hard @@ -5322,7 +5491,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.0, eslint-scope@npm:^7.2.2": +"eslint-scope@npm:^7.2.0": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" dependencies: @@ -5332,6 +5501,16 @@ __metadata: languageName: node linkType: hard +"eslint-scope@npm:^8.0.2": + version: 8.0.2 + resolution: "eslint-scope@npm:8.0.2" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: bd1e7a0597ec605cf3bc9b35c9e13d7ea6c11fee031b0cada9e8993b0ecf16d81d6f40f1dcd463424af439abf53cd62302ea25707c1599689eb2750d6aa29688 + languageName: node + linkType: hard + "eslint-visitor-keys@npm:^2.1.0": version: 2.1.0 resolution: "eslint-visitor-keys@npm:2.1.0" @@ -5346,6 +5525,13 @@ __metadata: languageName: node linkType: hard +"eslint-visitor-keys@npm:^4.0.0": + version: 4.0.0 + resolution: "eslint-visitor-keys@npm:4.0.0" + checksum: 5c09f89cf29d87cdbfbac38802a880d3c2e65f8cb61c689888346758f1e24a4c7f6caefeac9474dfa52058a99920623599bdb00516976a30134abeba91275aa2 + languageName: node + linkType: hard + "eslint@npm:^8.34.0": version: 8.43.0 resolution: "eslint@npm:8.43.0" @@ -5395,40 +5581,36 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" +"eslint@npm:^9.8.0": + version: 9.8.0 + resolution: "eslint@npm:9.8.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.4 - "@eslint/js": 8.57.0 - "@humanwhocodes/config-array": ^0.11.14 + "@eslint-community/regexpp": ^4.11.0 + "@eslint/config-array": ^0.17.1 + "@eslint/eslintrc": ^3.1.0 + "@eslint/js": 9.8.0 "@humanwhocodes/module-importer": ^1.0.1 + "@humanwhocodes/retry": ^0.3.0 "@nodelib/fs.walk": ^1.2.8 - "@ungap/structured-clone": ^1.2.0 ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 debug: ^4.3.2 - doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.3 - espree: ^9.6.1 - esquery: ^1.4.2 + eslint-scope: ^8.0.2 + eslint-visitor-keys: ^4.0.0 + espree: ^10.1.0 + esquery: ^1.5.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 + file-entry-cache: ^8.0.0 find-up: ^5.0.0 glob-parent: ^6.0.2 - globals: ^13.19.0 - graphemer: ^1.4.0 ignore: ^5.2.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 is-path-inside: ^3.0.3 - js-yaml: ^4.1.0 json-stable-stringify-without-jsonify: ^1.0.1 levn: ^0.4.1 lodash.merge: ^4.6.2 @@ -5439,11 +5621,22 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 3a48d7ff85ab420a8447e9810d8087aea5b1df9ef68c9151732b478de698389ee656fd895635b5f2871c89ee5a2652b3f343d11e9db6f8486880374ebc74a2d9 + checksum: 3fdcf4047ccb2e18bf5d072542d41bd60b5816a68bfbe95dff17cc680c90c29dfb9c595f9691db290190e55219a8088cf09c675095790c80db58f1b4560b8a14 languageName: node linkType: hard -"espree@npm:^9.5.2, espree@npm:^9.6.0, espree@npm:^9.6.1": +"espree@npm:^10.0.1, espree@npm:^10.1.0": + version: 10.1.0 + resolution: "espree@npm:10.1.0" + dependencies: + acorn: ^8.12.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^4.0.0 + checksum: a4708ab987f6c03734b8738b1588e9f31b2e305e869ca4677c60d82294eb05f7099b6687eb39eeb0913bb2d49bdf0bd0f31c511599ea7ee171281f871a9c897e + languageName: node + linkType: hard + +"espree@npm:^9.5.2, espree@npm:^9.6.0": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -5473,6 +5666,15 @@ __metadata: languageName: node linkType: hard +"esquery@npm:^1.5.0": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" + dependencies: + estraverse: ^5.1.0 + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 + languageName: node + linkType: hard + "esrecurse@npm:^4.3.0": version: 4.3.0 resolution: "esrecurse@npm:4.3.0" @@ -5666,6 +5868,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" + dependencies: + flat-cache: ^4.0.0 + checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f + languageName: node + linkType: hard + "filelist@npm:^1.0.4": version: 1.0.4 resolution: "filelist@npm:1.0.4" @@ -5757,6 +5968,16 @@ __metadata: languageName: node linkType: hard +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" + dependencies: + flatted: ^3.2.9 + keyv: ^4.5.4 + checksum: 899fc86bf6df093547d76e7bfaeb900824b869d7d457d02e9b8aae24836f0a99fbad79328cfd6415ee8908f180699bf259dc7614f793447cb14f707caf5996f6 + languageName: node + linkType: hard + "flatted@npm:^3.2.9": version: 3.3.1 resolution: "flatted@npm:3.3.1" @@ -6000,6 +6221,20 @@ __metadata: languageName: node linkType: hard +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 534b8216736a5425737f59f6e6a5c7f386254560c9f41d24a9227d60ee3ad4a9e82c5b85def0e212e9d92162f83a92544be4c7fd4c902cb913736c10e08237ac + languageName: node + linkType: hard + +"globals@npm:^15.8.0": + version: 15.8.0 + resolution: "globals@npm:15.8.0" + checksum: 92d0522c47226ca12f6fd8938df04b37852d812cc5a84e31890d919497f102a818d2081570bc08c2dd6353cd8b2699e7180bc468abbbec8c858a19e0fa53aeb8 + languageName: node + linkType: hard + "globalthis@npm:^1.0.3": version: 1.0.3 resolution: "globalthis@npm:1.0.3" @@ -7815,7 +8050,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.3": +"keyv@npm:^4.5.3, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -8802,17 +9037,6 @@ __metadata: languageName: node linkType: hard -"object.hasown@npm:^1.1.4": - version: 1.1.4 - resolution: "object.hasown@npm:1.1.4" - dependencies: - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-object-atoms: ^1.0.0 - checksum: bc46eb5ca22106fcd07aab1411508c2c68b7565fe8fb272f166fb9bf203972e8b5c86a5a4b2c86204beead0626a7a4119d32cefbaf7c5dd57b400bf9e6363cb6 - languageName: node - linkType: hard - "object.values@npm:^1.1.6, object.values@npm:^1.1.7, object.values@npm:^1.2.0": version: 1.2.0 resolution: "object.values@npm:1.2.0" @@ -9144,12 +9368,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^3.3.2": - version: 3.3.2 - resolution: "prettier@npm:3.3.2" +"prettier@npm:^3.3.3": + version: 3.3.3 + resolution: "prettier@npm:3.3.3" bin: prettier: bin/prettier.cjs - checksum: 5557d8caed0b182f68123c2e1e370ef105251d1dd75800fadaece3d061daf96b1389141634febf776050f9d732c7ae8fd444ff0b4a61b20535e7610552f32c69 + checksum: bc8604354805acfdde6106852d14b045bb20827ad76a5ffc2455b71a8257f94de93f17f14e463fe844808d2ccc87248364a5691488a3304f1031326e62d9276e languageName: node linkType: hard @@ -10326,6 +10550,16 @@ __metadata: languageName: node linkType: hard +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" + dependencies: + define-properties: ^1.1.3 + es-abstract: ^1.17.5 + checksum: 95dfc514ed7f328d80a066dabbfbbb1615c3e51490351085409db2eb7cbfed7ea29fdadaf277647fbf9f4a1e10e6dd9e95e78c0fd2c4e6bb6723ea6e59401004 + languageName: node + linkType: hard + "string.prototype.trim@npm:^1.2.9": version: 1.2.9 resolution: "string.prototype.trim@npm:1.2.9" @@ -10501,13 +10735,13 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.8.6": - version: 0.8.8 - resolution: "synckit@npm:0.8.8" +"synckit@npm:^0.9.1": + version: 0.9.1 + resolution: "synckit@npm:0.9.1" dependencies: "@pkgr/core": ^0.1.0 tslib: ^2.6.2 - checksum: 9ed5d33abb785f5f24e2531efd53b2782ca77abf7912f734d170134552b99001915531be5a50297aa45c5701b5c9041e8762e6cd7a38e41e2461c1e7fccdedf8 + checksum: 4042941a4d939675f1d7b01124b8405b6ac616f3e3f396d00e46c67f38d0d5b7f9a1de05bc7ceea4ce80d967b450cfa2460e5f6aca81f7cea8f1a28be9392985 languageName: node linkType: hard @@ -10839,6 +11073,22 @@ __metadata: languageName: node linkType: hard +"typescript-eslint@npm:^7.18.0": + version: 7.18.0 + resolution: "typescript-eslint@npm:7.18.0" + dependencies: + "@typescript-eslint/eslint-plugin": 7.18.0 + "@typescript-eslint/parser": 7.18.0 + "@typescript-eslint/utils": 7.18.0 + peerDependencies: + eslint: ^8.56.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 68f263821c593d77cd607940a1a411edea6dcc528a0f5047be402c4a8cd612e8c7642b5c41ee6cb89c884ad83676658f7adb9ea688e550415938c84701d8ac93 + languageName: node + linkType: hard + "typescript@npm:5.0.4": version: 5.0.4 resolution: "typescript@npm:5.0.4"