diff --git a/.eslintrc.cjs b/.eslintrc.cjs index c40a80d..375883e 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,172 +1,152 @@ module.exports = { - parser: '@typescript-eslint/parser', + root: true, // 表示当前目录即为根目录,ESLint 规则将被限制到该目录下 + env: { browser: true, es2020: true, node: true }, + /* 解析器 */ + parser: '@typescript-eslint/parser', // 指定ESLint解析器 parserOptions: { - // 指定ESLint可以解析JSX语法 + project: './tsconfig.json', // tsconfig.json的路径 ecmaVersion: 'latest', sourceType: 'module', - project: './tsconfig.json', // tsconfig.json的路径 - // React启用jsx ecmaFeatures: { - jsx: true, + jsx: true, // 启用JSX }, + extraFileExtensions: ['.json'], }, - env: { - es6: true, - browser: true, - jest: true, - node: true, + settings: { + // 识别 @ # alias + 'import/resolver': { + alias: { + map: [ + ['@', './src'], + ['#', './types'], + ], + extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'], + }, + }, }, - plugins: ['@typescript-eslint', 'prettier', 'import', 'unused-imports'], + /* ESLint 中基础配置需要继承的配置 */ extends: [ - // airbnb规范 - // https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb 'airbnb', - // 兼容typescript的airbnb规范 - // https://github.com/iamturns/eslint-config-airbnb-typescript 'airbnb-typescript', - // react hooks的airbnb规范 'airbnb/hooks', - - // typescript的eslint插件 - // https://github.com/typescript-eslint/typescript-eslint/blob/master/docs/getting-started/linting/README.md - // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/recommended-requiring-type-checking', - - // 使用prettier格式化代码 - // https://github.com/prettier/eslint-config-prettier#readme + 'plugin:@typescript-eslint/recommended', // 使用@typescript-eslint/eslint-plugin推荐的规则 + 'plugin:jsx-a11y/recommended', + 'plugin:import/errors', + 'plugin:import/warnings', + 'prettier', // 增加 prettier 相关的校验规则 + 'plugin:prettier/recommended', // 开启 Prettier 插件推荐的规则 + ], + /* ESLint文件所依赖的插件 */ + plugins: [ + '@typescript-eslint', 'prettier', - // 整合typescript-eslint与prettier - // https://github.com/prettier/eslint-plugin-prettier - 'plugin:prettier/recommended', + 'react', + 'react-hooks', + 'jsx-a11y', + 'import', + 'unused-imports', ], + /** + * 定义规则 + * "off" 或 0 - 关闭规则 + * "warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出) + * "error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出) + */ rules: { - /* ********************************** ES6+ ********************************** */ - 'no-console': 0, - 'no-var-requires': 0, - 'no-restricted-syntax': 0, - 'no-continue': 0, - 'no-await-in-loop': 0, - 'no-return-await': 0, - 'no-multi-assign': 0, - 'no-param-reassign': [2, { props: false }], - 'max-classes-per-file': 0, - 'class-methods-use-this': 0, - 'guard-for-in': 0, - 'no-underscore-dangle': 0, - 'no-plusplus': 0, - 'no-lonely-if': 0, - 'no-bitwise': ['error', { allow: ['~'] }], + 'no-console': 'off', + 'no-unused-vars': 'off', + 'no-case-declarations': 'off', + 'no-use-before-define': 'off', + 'no-param-reassign': 'off', + 'space-before-function-paren': 'off', + 'class-methods-use-this': 'off', - /* ********************************** Module Import ********************************** */ + 'jsx-a11y/click-events-have-key-events': 'off', + 'jsx-a11y/interactive-supports-focus': 'off', + 'jsx-a11y/no-noninteractive-element-interactions': 'off', + 'jsx-a11y/no-static-element-interactions': 'off', - 'import/prefer-default-export': 0, - 'import/no-cycle': 0, - 'import/no-dynamic-require': 0, - 'import/no-absolute-path': 0, - 'import/extensions': 0, + // 不用手动引入react + 'react/react-in-jsx-scope': 'off', + 'react/button-has-type': 'off', + 'react/require-default-props': 'off', + 'react/no-array-index-key': 'off', + 'react/jsx-props-no-spreading': 'off', + 'react/function-component-definition': [ + 2, + { + namedComponents: ['function-declaration', 'arrow-function'], + unnamedComponents: 'arrow-function', + }, + ], - // 一部分文件在导入devDependencies的依赖时不报错 - 'import/no-extraneous-dependencies': 0, - // 'import/no-extraneous-dependencies': [ - // 1, - // { - // devDependencies: [ - // '**/*.test.{ts,js}', - // '**/*.spec.{ts,js}', - // 'build/**/*.{ts,js}', - // 'mock/**/*.{ts,js}', - // '**.{ts,js}', - // ], - // }, - // ], - // 模块导入顺序规则 + 'import/first': 'warn', + 'import/newline-after-import': 'warn', + 'import/no-duplicates': 'warn', + 'import/no-extraneous-dependencies': 'off', + 'import/prefer-default-export': 'off', + 'import/no-cycle': 0, 'import/order': [ - 1, + 'warn', { + groups: [ + 'builtin', // Node.js内置模块 + 'external', // 第三方模块 + 'internal', // 应用程序内部的模块 + 'parent', // 父级目录中导入的模块 + ['sibling', 'index'], // 具有相同或更高目录的兄弟模块 + 'object', + 'type', + ], pathGroups: [ { pattern: '@/**', - group: 'external', - position: 'after', + group: 'internal', + }, + { + pattern: '#/**', + group: 'type', + }, + { + pattern: '*.{scss,css,less,styl,stylus}', + group: 'parent', + }, + { + pattern: '*.{js,jsx,ts,tsx}', + group: 'sibling', }, ], - 'newlines-between': 'always-and-inside-groups', + 'newlines-between': 'always', // 在组之间插入空行 + pathGroupsExcludedImportTypes: ['sibling', 'index'], warnOnUnassignedImports: true, - }, - ], - // 自动删除未使用的导入 - // https://github.com/sweepline/eslint-plugin-unused-imports - 'no-unused-vars': 0, - '@typescript-eslint/no-unused-vars': 0, - 'unused-imports/no-unused-imports': 1, - 'unused-imports/no-unused-vars': [ - 'error', - { - vars: 'all', - args: 'none', - ignoreRestSiblings: true, + alphabetize: { order: 'asc', caseInsensitive: true }, // 对于每个组,按字母表顺序排序。 }, ], - /* ********************************** Typescript ********************************** */ - '@typescript-eslint/no-empty-interface': 0, - '@typescript-eslint/no-this-alias': 0, - '@typescript-eslint/no-var-requires': 0, - '@typescript-eslint/no-use-before-define': 0, - '@typescript-eslint/explicit-member-accessibility': 0, - '@typescript-eslint/no-non-null-assertion': 0, - '@typescript-eslint/no-unnecessary-type-assertion': 0, - '@typescript-eslint/require-await': 0, - '@typescript-eslint/no-for-in-array': 0, - '@typescript-eslint/interface-name-prefix': 0, - '@typescript-eslint/explicit-function-return-type': 0, - '@typescript-eslint/no-explicit-any': 0, - '@typescript-eslint/explicit-module-boundary-types': 0, - '@typescript-eslint/no-floating-promises': 0, - '@typescript-eslint/restrict-template-expressions': 0, - '@typescript-eslint/no-unsafe-assignment': 0, - '@typescript-eslint/no-unsafe-return': 0, - '@typescript-eslint/no-unused-expressions': 0, - '@typescript-eslint/no-misused-promises': 0, - '@typescript-eslint/no-unsafe-member-access': 0, - '@typescript-eslint/no-unsafe-call': 0, - '@typescript-eslint/no-unsafe-argument': 0, - - /* ********************************** React and Hooks ********************************** */ - 'react/jsx-uses-react': 1, - 'react/jsx-uses-vars': 1, - 'react/jsx-no-useless-fragment': 0, - 'react/display-name': 0, - 'react/button-has-type': 0, - 'react/prop-types': 0, - 'react/jsx-props-no-spreading': 0, - 'react/destructuring-assignment': 0, - 'react/static-property-placement': 0, - 'react/react-in-jsx-scope': 0, - 'react/require-default-props': 0, - 'react/jsx-filename-extension': [1, { extensions: ['.jsx', '.tsx'] }], - 'react/function-component-definition': [ - 2, - { namedComponents: 'arrow-function', unnamedComponents: 'arrow-function' }, + 'unused-imports/no-unused-imports-ts': 'warn', + 'unused-imports/no-unused-vars-ts': [ + 'warn', + { vars: 'all', varsIgnorePattern: '^_', args: 'after-used', argsIgnorePattern: '^_' }, ], - 'react-hooks/exhaustive-deps': 0, - /* ********************************** jax-a11y ********************************** */ - 'jsx-a11y/anchor-is-valid': 0, - 'jsx-a11y/no-static-element-interactions': 0, - 'jsx-a11y/click-events-have-key-events': 0, - 'jsx-a11y/label-has-associated-control': [ - 'error', + '@typescript-eslint/no-unused-vars': [ + 'warn', { - required: { - some: ['nesting', 'id'], - }, + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', }, ], - }, - - settings: { - extensions: ['.js', '.jsx', '.ts', '.tsx', '.d.ts', '.json'], + '@typescript-eslint/no-unused-expressions': 'off', + '@typescript-eslint/ban-ts-ignore': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-shadow': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', }, }; diff --git a/package.json b/package.json index 1794ce4..fda77a5 100644 --- a/package.json +++ b/package.json @@ -76,8 +76,8 @@ "@types/react-dom": "^18.2.13", "@types/react-router-dom": "^5.3.3", "@types/styled-components": "^5.1.28", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", + "@typescript-eslint/eslint-plugin": "^6.5.0", + "@typescript-eslint/parser": "^6.5.0", "autoprefixer": "^10.4.16", "eslint": "^8.51.0", "eslint-config-airbnb": "^19.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 751dc47..6d2d61e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -197,11 +197,11 @@ devDependencies: specifier: ^5.1.28 version: 5.1.28 '@typescript-eslint/eslint-plugin': - specifier: ^5.62.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@5.2.2) + specifier: ^6.5.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.51.0)(typescript@5.2.2) '@typescript-eslint/parser': - specifier: ^5.62.0 - version: 5.62.0(eslint@8.51.0)(typescript@5.2.2) + specifier: ^6.5.0 + version: 6.21.0(eslint@8.51.0)(typescript@5.2.2) autoprefixer: specifier: ^10.4.16 version: 10.4.16(postcss@8.4.31) @@ -213,7 +213,7 @@ devDependencies: version: 19.0.4(eslint-plugin-import@2.28.1)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.51.0) eslint-config-airbnb-typescript: specifier: ^17.1.0 - version: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0) + version: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0) eslint-config-prettier: specifier: ^8.10.0 version: 8.10.0(eslint@8.51.0) @@ -222,7 +222,7 @@ devDependencies: version: 1.1.2(eslint-plugin-import@2.28.1) eslint-plugin-import: specifier: ^2.28.1 - version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.51.0) + version: 2.28.1(@typescript-eslint/parser@6.21.0)(eslint@8.51.0) eslint-plugin-jsx-a11y: specifier: ^6.7.1 version: 6.7.1(eslint@8.51.0) @@ -237,7 +237,7 @@ devDependencies: version: 4.6.0(eslint@8.51.0) eslint-plugin-unused-imports: specifier: ^2.0.0 - version: 2.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.51.0) + version: 2.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.51.0) lint-staged: specifier: ^13.3.0 version: 13.3.0 @@ -3091,47 +3091,49 @@ packages: '@types/vfile-message': 2.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.9.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.21.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.51.0 graphemer: 1.4.0 ignore: 5.2.4 - natural-compare-lite: 1.4.0 + natural-compare: 1.4.0 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) + ts-api-utils: 1.2.1(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@6.21.0(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.51.0 typescript: 5.2.2 @@ -3139,85 +3141,85 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/type-utils@6.21.0(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '*' + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.21.0(eslint@8.51.0)(typescript@5.2.2) debug: 4.3.4 eslint: 8.51.0 - tsutils: 3.21.0(typescript@5.2.2) + ts-api-utils: 1.2.1(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.2.2): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) + ts-api-utils: 1.2.1(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/utils@6.21.0(eslint@8.51.0)(typescript@5.2.2): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) '@types/json-schema': 7.0.13 '@types/semver': 7.5.3 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) eslint: 8.51.0 - eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 dev: true @@ -3814,6 +3816,12 @@ packages: balanced-match: 1.0.2 concat-map: 0.0.1 + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + /braces@2.3.2: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} engines: {node: '>=0.10.0'} @@ -4975,13 +4983,13 @@ packages: dependencies: confusing-browser-globals: 1.0.11 eslint: 8.51.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.51.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.21.0)(eslint@8.51.0) object.assign: 4.1.4 object.entries: 1.1.7 semver: 6.3.1 dev: true - /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0): + /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0): resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0 @@ -4989,11 +4997,11 @@ packages: eslint: ^7.32.0 || ^8.2.0 eslint-plugin-import: ^2.25.3 dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.51.0)(typescript@5.2.2) eslint: 8.51.0 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.28.1)(eslint@8.51.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.51.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.21.0)(eslint@8.51.0) dev: true /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.28.1)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.51.0): @@ -5008,7 +5016,7 @@ packages: dependencies: eslint: 8.51.0 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.28.1)(eslint@8.51.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.51.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.21.0)(eslint@8.51.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.51.0) eslint-plugin-react: 7.33.2(eslint@8.51.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.51.0) @@ -5031,7 +5039,7 @@ packages: peerDependencies: eslint-plugin-import: '>=1.4.0' dependencies: - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.51.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.21.0)(eslint@8.51.0) dev: true /eslint-import-resolver-node@0.3.9: @@ -5044,7 +5052,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.51.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.51.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5065,7 +5073,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.51.0)(typescript@5.2.2) debug: 3.2.7 eslint: 8.51.0 eslint-import-resolver-node: 0.3.9 @@ -5073,7 +5081,7 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.51.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.21.0)(eslint@8.51.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: @@ -5083,7 +5091,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.21.0(eslint@8.51.0)(typescript@5.2.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -5092,7 +5100,7 @@ packages: doctrine: 2.1.0 eslint: 8.51.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.51.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.51.0) has: 1.0.4 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -5184,7 +5192,7 @@ packages: string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.51.0): + /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.51.0): resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5194,7 +5202,7 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.51.0)(typescript@5.2.2) eslint: 8.51.0 eslint-rule-composer: 0.3.0 dev: true @@ -5204,14 +5212,6 @@ packages: engines: {node: '>=4.0.0'} dev: true - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5300,11 +5300,6 @@ packages: estraverse: 5.3.0 dev: true - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -7758,6 +7753,13 @@ packages: dependencies: brace-expansion: 1.1.11 + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist-options@3.0.2: resolution: {integrity: sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==} engines: {node: '>= 4'} @@ -7912,10 +7914,6 @@ packages: - supports-color dev: true - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -11200,6 +11198,15 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false + /ts-api-utils@1.2.1(typescript@5.2.2): + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: true + /ts-easing@0.2.0: resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} dev: false @@ -11303,16 +11310,6 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsutils@3.21.0(typescript@5.2.2): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.2.2 - dev: true - /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'}