From 2e0d445d2b349639f612e7ed54158a33e0f5757b Mon Sep 17 00:00:00 2001 From: Alex Lavrov <36633600+alexslavr@users.noreply.github.com> Date: Fri, 19 Jun 2026 15:08:20 +0400 Subject: [PATCH 1/4] feat: update eslint to v9 --- packages/devextreme-cli/.eslintignore | 2 - packages/devextreme-cli/.eslintrc | 87 -- packages/devextreme-cli/eslint.config.mjs | 103 ++ packages/devextreme-cli/package.json | 22 +- packages/devextreme-cli/testing/.eslintrc | 6 - .../testing/lint-config/angular.config.mjs | 25 + .../testing/lint-config/angular.eslintrc | 14 - .../testing/lint-config/react-ts.config.mjs | 64 ++ .../testing/lint-config/react-ts.eslintrc | 53 - .../testing/lint-config/react.config.mjs | 53 + .../testing/lint-config/react.eslintrc | 43 - .../testing/lint-config/vue.config.mjs | 5 + .../testing/lint-config/vue.eslintrc | 5 - packages/devextreme-cli/testing/linting.js | 3 +- pnpm-lock.yaml | 1024 +++++------------ 15 files changed, 544 insertions(+), 965 deletions(-) delete mode 100644 packages/devextreme-cli/.eslintignore delete mode 100644 packages/devextreme-cli/.eslintrc create mode 100644 packages/devextreme-cli/eslint.config.mjs delete mode 100644 packages/devextreme-cli/testing/.eslintrc create mode 100644 packages/devextreme-cli/testing/lint-config/angular.config.mjs delete mode 100644 packages/devextreme-cli/testing/lint-config/angular.eslintrc create mode 100644 packages/devextreme-cli/testing/lint-config/react-ts.config.mjs delete mode 100644 packages/devextreme-cli/testing/lint-config/react-ts.eslintrc create mode 100644 packages/devextreme-cli/testing/lint-config/react.config.mjs delete mode 100644 packages/devextreme-cli/testing/lint-config/react.eslintrc create mode 100644 packages/devextreme-cli/testing/lint-config/vue.config.mjs delete mode 100644 packages/devextreme-cli/testing/lint-config/vue.eslintrc diff --git a/packages/devextreme-cli/.eslintignore b/packages/devextreme-cli/.eslintignore deleted file mode 100644 index a6a4f3d8a..000000000 --- a/packages/devextreme-cli/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -/src/templates -/testing/sandbox diff --git a/packages/devextreme-cli/.eslintrc b/packages/devextreme-cli/.eslintrc deleted file mode 100644 index 84c3ede7e..000000000 --- a/packages/devextreme-cli/.eslintrc +++ /dev/null @@ -1,87 +0,0 @@ -{ - "ignorePatterns": ["src/templates/**", "testing/sandbox/**"], - "env": { - "es6": true, - "node": true - }, - "parserOptions": { - "ecmaVersion": 2018, - "sourceType": "module", - "ecmaFeatures": { - "globalReturn": true - } - }, - "globals": { - "setInterval": true, - "setTimeout": true, - "clearInterval": true, - "clearTimeout": true, - "require": true, - "module": true, - "exports": true - }, - "rules": { - "block-spacing": "error", - "comma-spacing": "error", - "computed-property-spacing": "error", - "comma-style": ["error", "last"], - "eqeqeq": ["error", "allow-null"], - "strict": "error", - "func-call-spacing": "error", - "key-spacing": "error", - "keyword-spacing": [ - "error", - { - "overrides": { - "catch": { "after": false }, - "for": { "after": false }, - "if": { "after": false }, - "switch": { "after": false }, - "while": { "after": false } - } - } - ], - "linebreak-style": ["error", "unix"], - "no-multiple-empty-lines": [ "error", { "max": 2 } ], - "no-irregular-whitespace": "error", - "no-multi-spaces": "error", - "no-trailing-spaces": "error", - "no-new-func": "error", - "no-eval": "error", - "no-undef": "error", - "no-unused-expressions": "off", - "no-unused-vars": ["error", { "args": "none" }], - "no-extend-native": "error", - "no-alert": "error", - "no-whitespace-before-property": "error", - "object-curly-spacing": [ "error", "always" ], - "semi-spacing": "error", - "semi": "error", - "space-before-blocks": "error", - "space-before-function-paren": [ "error", "never" ], - "space-in-parens": "error", - "space-infix-ops": "error", - "space-unary-ops": "error", - "spaced-comment": [ "error", "always", { - "markers": [ "/" ] - } ], - - "brace-style": [ "error", "1tbs", { "allowSingleLine": true } ], - "curly": [ "error", "multi-line", "consistent" ], - - "unicode-bom": [ "error", "never" ], - "eol-last": [ "error", "always" ], - "indent": [ - "error", - 4, - { - "SwitchCase": 1, - "MemberExpression": 1, - "CallExpression": { - "arguments": 1 - } - } - ], - "quotes": [ "error", "single" ] - } -} diff --git a/packages/devextreme-cli/eslint.config.mjs b/packages/devextreme-cli/eslint.config.mjs new file mode 100644 index 000000000..85157f0e1 --- /dev/null +++ b/packages/devextreme-cli/eslint.config.mjs @@ -0,0 +1,103 @@ +import globals from 'globals'; + +export default [ + { + ignores: [ + 'src/templates/**', + 'testing/sandbox/**' + ] + }, + { + linterOptions: { + reportUnusedDisableDirectives: 'off' + }, + languageOptions: { + ecmaVersion: 2022, + sourceType: 'module', + parserOptions: { + ecmaFeatures: { + globalReturn: true + } + }, + globals: { + ...globals.node, + ...globals.es2022, + setInterval: 'readonly', + setTimeout: 'readonly', + clearInterval: 'readonly', + clearTimeout: 'readonly', + require: 'readonly', + module: 'readonly', + exports: 'readonly' + } + }, + rules: { + 'block-spacing': 'error', + 'comma-spacing': 'error', + 'computed-property-spacing': 'error', + 'comma-style': ['error', 'last'], + 'eqeqeq': ['error', 'allow-null'], + 'strict': 'error', + 'func-call-spacing': 'error', + 'key-spacing': 'error', + 'keyword-spacing': [ + 'error', + { + overrides: { + catch: { after: false }, + for: { after: false }, + if: { after: false }, + switch: { after: false }, + while: { after: false } + } + } + ], + 'linebreak-style': ['error', 'unix'], + 'no-multiple-empty-lines': ['error', { max: 2 }], + 'no-irregular-whitespace': 'error', + 'no-multi-spaces': 'error', + 'no-trailing-spaces': 'error', + 'no-new-func': 'error', + 'no-eval': 'error', + 'no-undef': 'error', + 'no-unused-expressions': 'off', + 'no-unused-vars': ['error', { args: 'none', caughtErrors: 'none' }], + 'no-extend-native': 'error', + 'no-alert': 'error', + 'no-whitespace-before-property': 'error', + 'object-curly-spacing': ['error', 'always'], + 'semi-spacing': 'error', + 'semi': 'error', + 'space-before-blocks': 'error', + 'space-before-function-paren': ['error', 'never'], + 'space-in-parens': 'error', + 'space-infix-ops': 'error', + 'space-unary-ops': 'error', + 'spaced-comment': ['error', 'always', { markers: ['/'] }], + 'brace-style': ['error', '1tbs', { allowSingleLine: true }], + 'curly': ['error', 'multi-line', 'consistent'], + 'unicode-bom': ['error', 'never'], + 'eol-last': ['error', 'always'], + 'indent': [ + 'error', + 4, + { + SwitchCase: 1, + MemberExpression: 1, + CallExpression: { + arguments: 1 + } + } + ], + 'quotes': ['error', 'single'] + } + }, + { + files: ['testing/**/*.js'], + languageOptions: { + globals: { + ...globals.jest + } + } + } +]; diff --git a/packages/devextreme-cli/package.json b/packages/devextreme-cli/package.json index 196c2d40d..68a3a4085 100644 --- a/packages/devextreme-cli/package.json +++ b/packages/devextreme-cli/package.json @@ -48,22 +48,23 @@ "strip-bom": "^4.0.0" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^4.33.0", - "@typescript-eslint/parser": "^4.33.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.39.4", + "@typescript-eslint/eslint-plugin": "^8.61.0", + "@typescript-eslint/parser": "^8.61.0", "@types/node": "20.19.42", "create-vite": "7.1.3", "cross-env": "^5.2.1", - "eslint": "^7.32.0", + "eslint": "^9.39.4", "eslint-config-angular": "^0.5.0", - "eslint-config-prettier": "^8.10.2", + "eslint-config-prettier": "^10.0.1", "eslint-plugin-angular": "^4.1.0", - "eslint-plugin-jest": "^22.21.0", - "eslint-plugin-prettier": "^4.2.5", + "eslint-plugin-jest": "^28.10.0", "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^4.6.2", - "eslint-plugin-unused-imports": "^1.1.5", - "eslint-plugin-vue": "^7.20.0", - "eslint-stylish": "^0.2.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-unused-imports": "^4.1.4", + "eslint-plugin-vue": "^9.32.0", + "globals": "^15.14.0", "jest": "^29.7.0", "jest-image-snapshot": "^6.5.2", "prettier": "^2.8.8", @@ -71,7 +72,6 @@ "tree-kill": "^1.2.2", "tree-kill-promise": "^1.0.12", "typescript": "^4.9.5", - "typescript-eslint-parser": "^22.0.0", "wait-on": "8.0.5" } } diff --git a/packages/devextreme-cli/testing/.eslintrc b/packages/devextreme-cli/testing/.eslintrc deleted file mode 100644 index 356916623..000000000 --- a/packages/devextreme-cli/testing/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "plugins": ["jest"], - "env": { - "jest/globals": true - } -} diff --git a/packages/devextreme-cli/testing/lint-config/angular.config.mjs b/packages/devextreme-cli/testing/lint-config/angular.config.mjs new file mode 100644 index 000000000..04c8e282f --- /dev/null +++ b/packages/devextreme-cli/testing/lint-config/angular.config.mjs @@ -0,0 +1,25 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { FlatCompat } from '@eslint/eslintrc'; +import globals from 'globals'; +import tsParser from '@typescript-eslint/parser'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const compat = new FlatCompat({ baseDirectory: __dirname }); + +export default [ + ...compat.extends('angular', 'plugin:angular/johnpapa'), + { + languageOptions: { + parser: tsParser, + ecmaVersion: 2018, + sourceType: 'module', + globals: { + ...globals.node + } + }, + rules: { + 'angular/log': 'off' + } + } +]; diff --git a/packages/devextreme-cli/testing/lint-config/angular.eslintrc b/packages/devextreme-cli/testing/lint-config/angular.eslintrc deleted file mode 100644 index 8d0fdc456..000000000 --- a/packages/devextreme-cli/testing/lint-config/angular.eslintrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": ["angular", "plugin:angular/johnpapa"], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": 2018, - "sourceType": "module" - }, - "env": { - "node": true - }, - "rules":{ - "angular/log": 0 - } -} diff --git a/packages/devextreme-cli/testing/lint-config/react-ts.config.mjs b/packages/devextreme-cli/testing/lint-config/react-ts.config.mjs new file mode 100644 index 000000000..1fd907a5d --- /dev/null +++ b/packages/devextreme-cli/testing/lint-config/react-ts.config.mjs @@ -0,0 +1,64 @@ +import globals from 'globals'; +import tsParser from '@typescript-eslint/parser'; +import tsPlugin from '@typescript-eslint/eslint-plugin'; +import reactPlugin from 'eslint-plugin-react'; +import reactHooks from 'eslint-plugin-react-hooks'; +import unusedImports from 'eslint-plugin-unused-imports'; +import jestPlugin from 'eslint-plugin-jest'; +import prettierConfig from 'eslint-config-prettier'; + +export default [ + { ignores: ['node_modules/'] }, + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + parser: tsParser, + ecmaVersion: 2018, + sourceType: 'module', + parserOptions: { + project: './testing/sandbox/react-ts/my-app/tsconfig.json', + ecmaFeatures: { jsx: true, useJSXTextNode: true } + }, + globals: { + ...globals.browser, + ...globals.es2017, + ...globals.jest + } + }, + plugins: { + '@typescript-eslint': tsPlugin, + react: reactPlugin, + 'react-hooks': reactHooks, + 'unused-imports': unusedImports, + jest: jestPlugin + }, + settings: { + react: { version: 'detect' }, + 'import/resolver': { + node: { extensions: ['.ts', '.tsx'] } + } + }, + rules: { + ...tsPlugin.configs.recommended.rules, + ...jestPlugin.configs.recommended.rules, + ...prettierConfig.rules, + 'react/jsx-uses-react': 'error', + 'react/jsx-uses-vars': 'error', + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': ['error'], + 'unused-imports/no-unused-imports': 'error', + 'unused-imports/no-unused-vars': [ + 'error', + { + vars: 'all', + varsIgnorePattern: '^props', + args: 'after-used', + argsIgnorePattern: '^props' + } + ], + 'react/display-name': 'off', + 'react/prop-types': 'off', + 'react/react-in-jsx-scope': 'off' + } + } +]; diff --git a/packages/devextreme-cli/testing/lint-config/react-ts.eslintrc b/packages/devextreme-cli/testing/lint-config/react-ts.eslintrc deleted file mode 100644 index f5e7ddce7..000000000 --- a/packages/devextreme-cli/testing/lint-config/react-ts.eslintrc +++ /dev/null @@ -1,53 +0,0 @@ -{ - "env": { - "es6": true, - "browser": true, - "jest": true - }, - "parser": "@typescript-eslint/parser", - "extends": [ - "plugin:@typescript-eslint/recommended", - "plugin:jest/recommended", - "prettier" - ], - "parserOptions": { - "ecmaFeatures": { - "jsx": true, - "useJSXTextNode": true - }, - "sourceType": "module", - "ecmaVersion": 2018, - "project": "./testing/sandbox/react-ts/my-app/tsconfig.json" - }, - "plugins": ["react", "react-hooks", "unused-imports", "@typescript-eslint", "jest"], - "ignorePatterns": ["node_modules/"], - "rules": { - "react/jsx-uses-react": "error", - "react/jsx-uses-vars": "error", - "no-unused-vars": "off", - "@typescript-eslint/no-unused-vars": ["error"], - "unused-imports/no-unused-imports": "error", - "unused-imports/no-unused-vars": [ - "error", - { - "vars": "all", - "varsIgnorePattern": "^props", - "args": "after-used", - "argsIgnorePattern": "^props" - } - ], - "react/display-name": "off", - "react/prop-types": "off", - "react/react-in-jsx-scope": "off" - }, - "settings": { - "react": { - "version": "detect" - }, - "import/resolver": { - "node": { - "extensions": [".ts", ".tsx"] - } - } - } -} diff --git a/packages/devextreme-cli/testing/lint-config/react.config.mjs b/packages/devextreme-cli/testing/lint-config/react.config.mjs new file mode 100644 index 000000000..2d8a29f18 --- /dev/null +++ b/packages/devextreme-cli/testing/lint-config/react.config.mjs @@ -0,0 +1,53 @@ +import js from '@eslint/js'; +import globals from 'globals'; +import reactPlugin from 'eslint-plugin-react'; +import reactHooks from 'eslint-plugin-react-hooks'; +import unusedImports from 'eslint-plugin-unused-imports'; + +export default [ + { ignores: ['node_modules/'] }, + js.configs.recommended, + { + files: ['**/*.js', '**/*.jsx', '**/*.mjs', '**/*.cjs'], + ...reactPlugin.configs.flat.recommended, + languageOptions: { + ...reactPlugin.configs.flat.recommended.languageOptions, + ecmaVersion: 2018, + sourceType: 'module', + parserOptions: { + ecmaFeatures: { jsx: true } + }, + globals: { + ...globals.node, + ...globals.browser, + ...globals.jest + } + }, + plugins: { + ...reactPlugin.configs.flat.recommended.plugins, + 'react-hooks': reactHooks, + 'unused-imports': unusedImports + }, + settings: { + react: { version: 'detect' } + }, + rules: { + 'react/jsx-uses-react': 'error', + 'react/jsx-uses-vars': 'error', + 'no-unused-vars': ['error', { args: 'after-used', argsIgnorePattern: '^props' }], + 'unused-imports/no-unused-imports': 'error', + 'unused-imports/no-unused-vars': [ + 'error', + { + vars: 'all', + varsIgnorePattern: '^props', + args: 'after-used', + argsIgnorePattern: '^props' + } + ], + 'react/display-name': 'off', + 'react/prop-types': 'off', + 'react/react-in-jsx-scope': 'off' + } + } +]; diff --git a/packages/devextreme-cli/testing/lint-config/react.eslintrc b/packages/devextreme-cli/testing/lint-config/react.eslintrc deleted file mode 100644 index d3db29882..000000000 --- a/packages/devextreme-cli/testing/lint-config/react.eslintrc +++ /dev/null @@ -1,43 +0,0 @@ -{ - "env": { - "node": true, - "browser": true, - "jest": true - }, - "extends": [ - "eslint:recommended", - "plugin:react/recommended" - ], - "parserOptions": { - "ecmaFeatures": { - "jsx": true - }, - "sourceType": "module", - "ecmaVersion": 2018 - }, - "plugins": ["react", "react-hooks", "unused-imports"], - "ignorePatterns": ["node_modules/"], - "rules": { - "react/jsx-uses-react": "error", - "react/jsx-uses-vars": "error", - "no-unused-vars": [2, {"args": "after-used", "argsIgnorePattern": "^props"}], - "unused-imports/no-unused-imports": "error", - "unused-imports/no-unused-vars": [ - "error", - { - "vars": "all", - "varsIgnorePattern": "^props", - "args": "after-used", - "argsIgnorePattern": "^props" - } - ], - "react/display-name": "off", - "react/prop-types": "off", - "react/react-in-jsx-scope": "off" - }, - "settings": { - "react": { - "version": "detect" - } - } -} diff --git a/packages/devextreme-cli/testing/lint-config/vue.config.mjs b/packages/devextreme-cli/testing/lint-config/vue.config.mjs new file mode 100644 index 000000000..475a56210 --- /dev/null +++ b/packages/devextreme-cli/testing/lint-config/vue.config.mjs @@ -0,0 +1,5 @@ +import pluginVue from 'eslint-plugin-vue'; + +export default [ + ...pluginVue.configs['flat/vue3-recommended'] +]; diff --git a/packages/devextreme-cli/testing/lint-config/vue.eslintrc b/packages/devextreme-cli/testing/lint-config/vue.eslintrc deleted file mode 100644 index cd0d53847..000000000 --- a/packages/devextreme-cli/testing/lint-config/vue.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": [ - "plugin:vue/vue3-recommended" - ] -} diff --git a/packages/devextreme-cli/testing/linting.js b/packages/devextreme-cli/testing/linting.js index 45fc5cb81..737831f98 100644 --- a/packages/devextreme-cli/testing/linting.js +++ b/packages/devextreme-cli/testing/linting.js @@ -26,8 +26,7 @@ const projectLint = async(app) => { const customLint = async(env) => { const eslint = new ESLint({ - useEslintrc: false, - overrideConfigFile: `./testing/lint-config/${env.engine}.eslintrc`, + overrideConfigFile: `./testing/lint-config/${env.engine}.config.mjs`, ignore: false }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 29dbd8509..3614b1f3f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,15 +64,21 @@ importers: specifier: ^4.0.0 version: 4.0.0 devDependencies: + '@eslint/eslintrc': + specifier: ^3.2.0 + version: 3.3.5 + '@eslint/js': + specifier: ^9.39.4 + version: 9.39.4 '@types/node': specifier: 20.19.42 version: 20.19.42 '@typescript-eslint/eslint-plugin': - specifier: ^4.33.0 - version: 4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.9.5))(eslint@7.32.0)(typescript@4.9.5) + specifier: ^8.61.0 + version: 8.61.1(@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(typescript@4.9.5) '@typescript-eslint/parser': - specifier: ^4.33.0 - version: 4.33.0(eslint@7.32.0)(typescript@4.9.5) + specifier: ^8.61.0 + version: 8.61.0(eslint@9.39.4)(typescript@4.9.5) create-vite: specifier: 7.1.3 version: 7.1.3 @@ -80,38 +86,35 @@ importers: specifier: ^5.2.1 version: 5.2.1 eslint: - specifier: ^7.32.0 - version: 7.32.0 + specifier: ^9.39.4 + version: 9.39.4 eslint-config-angular: specifier: ^0.5.0 version: 0.5.0 eslint-config-prettier: - specifier: ^8.10.2 - version: 8.10.2(eslint@7.32.0) + specifier: ^10.0.1 + version: 10.1.8(eslint@9.39.4) eslint-plugin-angular: specifier: ^4.1.0 version: 4.1.0 eslint-plugin-jest: - specifier: ^22.21.0 - version: 22.21.0(eslint@7.32.0) - eslint-plugin-prettier: - specifier: ^4.2.5 - version: 4.2.5(eslint-config-prettier@8.10.2(eslint@7.32.0))(eslint@7.32.0)(prettier@2.8.8) + specifier: ^28.10.0 + version: 28.14.0(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(jest@29.7.0(@types/node@20.19.42))(typescript@4.9.5) eslint-plugin-react: specifier: ^7.37.5 - version: 7.37.5(eslint@7.32.0) + version: 7.37.5(eslint@9.39.4) eslint-plugin-react-hooks: - specifier: ^4.6.2 - version: 4.6.2(eslint@7.32.0) + specifier: ^5.1.0 + version: 5.2.0(eslint@9.39.4) eslint-plugin-unused-imports: - specifier: ^1.1.5 - version: 1.1.5(@typescript-eslint/eslint-plugin@4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.9.5))(eslint@7.32.0)(typescript@4.9.5))(eslint@7.32.0) + specifier: ^4.1.4 + version: 4.4.1(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4) eslint-plugin-vue: - specifier: ^7.20.0 - version: 7.20.0(eslint@7.32.0) - eslint-stylish: - specifier: ^0.2.0 - version: 0.2.0 + specifier: ^9.32.0 + version: 9.33.0(eslint@9.39.4) + globals: + specifier: ^15.14.0 + version: 15.15.0 jest: specifier: ^29.7.0 version: 29.7.0(@types/node@20.19.42) @@ -133,9 +136,6 @@ importers: typescript: specifier: ^4.9.5 version: 4.9.5 - typescript-eslint-parser: - specifier: ^22.0.0 - version: 22.0.0(eslint@7.32.0)(typescript@4.9.5) wait-on: specifier: 8.0.5 version: 8.0.5 @@ -206,9 +206,6 @@ packages: peerDependencies: '@angular-devkit/schematics': '*' - '@babel/code-frame@7.12.11': - resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} @@ -279,10 +276,6 @@ packages: resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.25.9': - resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} - engines: {node: '>=6.9.0'} - '@babel/parser@7.29.3': resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} engines: {node: '>=6.0.0'} @@ -430,10 +423,6 @@ packages: resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@0.4.3': - resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} - engines: {node: ^10.12.0 || >=12.0.0} - '@eslint/eslintrc@3.3.5': resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -482,19 +471,10 @@ packages: resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} engines: {node: '>=18.18.0'} - '@humanwhocodes/config-array@0.5.0': - resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@1.2.1': - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - deprecated: Use @eslint/object-schema instead - '@humanwhocodes/retry@0.4.3': resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} @@ -595,18 +575,6 @@ packages: peerDependencies: eslint: ^9 - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} engines: {node: '>= 10.0.0'} @@ -780,38 +748,13 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@4.33.0': - resolution: {integrity: sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - '@typescript-eslint/parser': ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/experimental-utils@1.13.0': - resolution: {integrity: sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==} - engines: {node: ^6.14.0 || ^8.10.0 || >=9.10.0} - peerDependencies: - eslint: '*' - - '@typescript-eslint/experimental-utils@4.33.0': - resolution: {integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - - '@typescript-eslint/parser@4.33.0': - resolution: {integrity: sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==} - engines: {node: ^10.12.0 || >=12.0.0} + '@typescript-eslint/eslint-plugin@8.61.1': + resolution: {integrity: sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser': ^8.61.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/parser@8.61.0': resolution: {integrity: sha512-5B7PfA2e1NQGCnDHd/0lW7W3gvp3d59Ryw54FYO8Uswxo9f6ikw3AZV+Xj/TvpImmpsiYyUqAfhC6kJID1jF6w==} @@ -826,40 +769,46 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@4.33.0': - resolution: {integrity: sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + '@typescript-eslint/project-service@8.61.1': + resolution: {integrity: sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/scope-manager@8.61.0': resolution: {integrity: sha512-IWdXFHFSb6mlC3HPc7QsLDm5zYEbUla6trDEHf32D3/dnuUyXd87plScSNXSbm0/RxMvObpI17sv/EDTGrGZkA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.61.1': + resolution: {integrity: sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.61.0': resolution: {integrity: sha512-O5Amvdv9ztMpxpf+vmFULGG78IE6Qwdr3bCGvqwG4nwc9H2qXkOYJJnRbRHyMkQTjv1d03olqwwwzHLMqpFePQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@4.33.0': - resolution: {integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + '@typescript-eslint/tsconfig-utils@8.61.1': + resolution: {integrity: sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.61.1': + resolution: {integrity: sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/types@8.61.0': resolution: {integrity: sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@1.13.0': - resolution: {integrity: sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==} - engines: {node: '>=6.14.0'} - - '@typescript-eslint/typescript-estree@4.33.0': - resolution: {integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/types@8.61.1': + resolution: {integrity: sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.61.0': resolution: {integrity: sha512-42zatd5qSvvcV1JdDBCLxYRznvP4eIHpPoZXdkPFnAmanA4FuZ5dibSnCBggY8hQnqajPpoGjXFdZ7fIJKQnlA==} @@ -867,14 +816,27 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@4.33.0': - resolution: {integrity: sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + '@typescript-eslint/typescript-estree@8.61.1': + resolution: {integrity: sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/utils@8.61.1': + resolution: {integrity: sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/visitor-keys@8.61.0': resolution: {integrity: sha512-QVLZu3ZPQEE+HICQyAMZ2yLQhxf0meY/wx6Hx14YcTNj13JB3qHlX3lJ02L3fLGHgERRH71kvYDwiXIguT3AjQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.61.1': + resolution: {integrity: sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -883,11 +845,6 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.16.0: resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} @@ -911,13 +868,6 @@ packages: ajv@8.18.0: resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} - ajv@8.20.0: - resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -926,10 +876,6 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-styles@1.0.0: - resolution: {integrity: sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA==} - engines: {node: '>=0.8.0'} - ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -957,10 +903,6 @@ packages: resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - array.prototype.findlast@1.2.5: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} @@ -985,10 +927,6 @@ packages: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} @@ -1099,6 +1037,9 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + brace-expansion@1.1.14: resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} @@ -1161,10 +1102,6 @@ packages: caniuse-lite@1.0.30001799: resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==} - chalk@0.4.0: - resolution: {integrity: sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ==} - engines: {node: '>=0.8.0'} - chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -1284,6 +1221,11 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + data-uri-to-buffer@6.0.2: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} @@ -1362,18 +1304,10 @@ packages: resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} engines: {node: '>=0.3.1'} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -1395,10 +1329,6 @@ packages: resolution: {integrity: sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==} engines: {node: '>=10.13.0'} - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - entities@6.0.1: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} @@ -1476,8 +1406,8 @@ packages: eslint-config-angular@0.5.0: resolution: {integrity: sha512-uRSdXjc+dXvf4Je2vQAgt39JWsbtBv87bhQkKUQ2gnActKOOix51uVMpxe6qenY+XFbQ2wswXto3Z1OVVP+zrA==} - eslint-config-prettier@8.10.2: - resolution: {integrity: sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==} + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -1491,11 +1421,18 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-jest@22.21.0: - resolution: {integrity: sha512-OaqnSS7uBgcGiqXUiEnjoqxPNKvR4JWG5mSRkzVoR6+vDwlqqp11beeql1hYs0HTbdhiwrxWLxbX0Vx7roG3Ew==} - engines: {node: '>=6'} + eslint-plugin-jest@28.14.0: + resolution: {integrity: sha512-P9s/qXSMTpRTerE2FQ0qJet2gKbcGyFTPAJipoKxmWqR6uuFqIqk8FuEfg5yBieOezVrEfAMZrEwJ6yEp+1MFQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} peerDependencies: - eslint: '>=5' + '@typescript-eslint/eslint-plugin': ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true eslint-plugin-n@17.10.3: resolution: {integrity: sha512-ySZBfKe49nQZWR1yFaA0v/GsH6Fgp8ah6XV0WDz6CN8WO0ek4McMzb7A2xnf4DCYV43frjCygvb9f/wx7UUxRw==} @@ -1503,22 +1440,11 @@ packages: peerDependencies: eslint: '>=8.23.0' - eslint-plugin-prettier@4.2.5: - resolution: {integrity: sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 eslint-plugin-react@7.37.3: resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} @@ -1545,61 +1471,29 @@ packages: resolution: {integrity: sha512-tfuQT8K/Li1ZxhFzyD8wPIKtlzZxqBcPr9q0jFMQ77wWAbKBVEhaMPVQRTMTvCMUDhwBe5vPVqQPwAGk/ASfxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-plugin-unused-imports@1.1.5: - resolution: {integrity: sha512-TeV8l8zkLQrq9LBeYFCQmYVIXMjfHgdRQLw7dEZp4ZB3PeR10Y5Uif11heCsHRmhdRIYMoewr1d9ouUHLbLHew==} - engines: {node: ^10.12.0 || >=12.0.0} + eslint-plugin-unused-imports@4.4.1: + resolution: {integrity: sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ==} peerDependencies: - '@typescript-eslint/eslint-plugin': ^4.14.2 - eslint: ^6.0.0 || ^7.0.0 + '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^10.0.0 || ^9.0.0 || ^8.0.0 peerDependenciesMeta: '@typescript-eslint/eslint-plugin': optional: true - eslint-plugin-vue@7.20.0: - resolution: {integrity: sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==} - engines: {node: '>=8.10'} + eslint-plugin-vue@9.33.0: + resolution: {integrity: sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==} + engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 - - eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - - eslint-scope@4.0.3: - resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==} - engines: {node: '>=4.0.0'} + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} eslint-scope@8.4.0: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-stylish@0.2.0: - resolution: {integrity: sha512-Q/YgUO+BkiAU6YXuTr27vjm/hquqR/6SjCYvbtv3qUkMOTHpj/MyFK5W9OhmSOhXmfJAQ6ZLWoczpNFj5tURDA==} - engines: {node: '>=0.8.0'} - deprecated: Deprecated as it's now the default reporter in ESLint - - eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1612,12 +1506,6 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@7.32.0: - resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} - engines: {node: ^10.12.0 || >=12.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - eslint@9.39.4: resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1632,13 +1520,9 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@6.2.1: - resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} - engines: {node: '>=6.0.0'} - - espree@7.3.1: - resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} - engines: {node: ^10.12.0 || >=12.0.0} + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -1653,10 +1537,6 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -1688,16 +1568,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -1707,9 +1580,6 @@ packages: fast-uri@3.1.2: resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -1725,10 +1595,6 @@ packages: picomatch: optional: true - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -1745,10 +1611,6 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -1788,9 +1650,6 @@ packages: resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} - functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} @@ -1841,10 +1700,6 @@ packages: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} @@ -1869,10 +1724,6 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - glur@1.1.2: resolution: {integrity: sha512-l+8esYHTKOx2G/Aao4lEQ0bnHWg4fWtJbVoZZT9Knxi01pB8C80BR85nONLFwkkQoFRCmXY+BUcGZN3yZ2QsRA==} @@ -1887,10 +1738,6 @@ packages: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} - has-color@0.1.7: - resolution: {integrity: sha512-kaNz5OTAYYmt646Hkqw50/qyxP2vFnTVu5AQ1Zmk22Kk5+4Qx6BpO8+u7IKsML5fOsFk0ZT0AcCJNYwcvaLBvw==} - engines: {node: '>=0.10.0'} - has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -1940,14 +1787,14 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + image-size@0.5.5: resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} engines: {node: '>=0.10.0'} @@ -2381,12 +2228,6 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - - lodash.unescape@4.0.1: - resolution: {integrity: sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg==} - lodash@4.18.1: resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} @@ -2426,10 +2267,6 @@ packages: merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -2512,6 +2349,9 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -2617,10 +2457,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -2663,6 +2499,10 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-selector-parser@6.1.4: + resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==} + engines: {node: '>=4'} + pre-commit@1.2.2: resolution: {integrity: sha512-qokTiqxD6GjODy5ETAIgzsRgnBWWQHQH2ghy86PU7mIn/wuWeTwF3otyNQZxWBwVn8XNr8Tdzj/QfUXpH+gRZA==} @@ -2670,10 +2510,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.1: - resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} - engines: {node: '>=6.0.0'} - prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -2730,9 +2566,6 @@ packages: pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -2793,10 +2626,6 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -2842,23 +2671,11 @@ packages: resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} engines: {node: '>=0.12'} - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -2902,11 +2719,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} - engines: {node: '>=10'} - hasBin: true - semver@7.8.4: resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} engines: {node: '>=10'} @@ -2958,10 +2770,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -3039,11 +2847,6 @@ packages: string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - strip-ansi@0.1.1: - resolution: {integrity: sha512-behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg==} - engines: {node: '>=0.8.0'} - hasBin: true - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -3080,10 +2883,6 @@ packages: resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} engines: {node: ^14.18.0 || >=16.0.0} - table@6.9.0: - resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} - engines: {node: '>=10.0.0'} - tapable@2.3.3: resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} @@ -3104,9 +2903,6 @@ packages: text-decoder@1.2.7: resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} @@ -3149,12 +2945,6 @@ packages: peerDependencies: typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' - tsutils@3.21.0: - 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' - type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -3193,21 +2983,6 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint-parser@22.0.0: - resolution: {integrity: sha512-pD8D7oTeRwWvFVxK3PaY6FYAiZsuRXFkIc2+1xkwCT3NduySgCgjeAkR5/dnIWecOiFVcEHf4ypXurF02Q6Z3Q==} - engines: {node: '>=6.14.0'} - deprecated: 'Deprecated: Use @typescript-eslint/parser instead' - peerDependencies: - eslint: '>=4.19.1' - typescript: '*' - - typescript-estree@18.0.0: - resolution: {integrity: sha512-HxTWrzFyYOPWA91Ij7xL9mNUVpGTKLH2KiaBn28CMbYgX2zgWdJqU9hO7Are+pAPAqY91NxAYoaAyDDZ3rLj2A==} - engines: {node: '>=6.14.0'} - deprecated: This package was moved to @typescript-eslint/typescript-estree, please install the latest version from there instead - peerDependencies: - typescript: '*' - typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -3237,18 +3012,15 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} - v8-to-istanbul@9.3.0: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} - vue-eslint-parser@7.11.0: - resolution: {integrity: sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==} - engines: {node: '>=8.10'} + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: - eslint: '>=5.0.0' + eslint: '>=6.0.0' wait-on@8.0.5: resolution: {integrity: sha512-J3WlS0txVHkhLRb2FsmRg3dkMTCV1+M6Xra3Ho7HzZDHpE7DCOnoSoCJsZotrmW3uRMhvIJGSKUKrh/MeF4iag==} @@ -3316,6 +3088,10 @@ packages: utf-8-validate: optional: true + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -3369,10 +3145,6 @@ snapshots: '@angular-devkit/schematics': 19.2.27(chokidar@4.0.3) strip-json-comments: 3.1.1 - '@babel/code-frame@7.12.11': - dependencies: - '@babel/highlight': 7.25.9 - '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.28.5 @@ -3466,13 +3238,6 @@ snapshots: '@babel/template': 7.29.7 '@babel/types': 7.29.7 - '@babel/highlight@7.25.9': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.1 - '@babel/parser@7.29.3': dependencies: '@babel/types': 7.29.0 @@ -3627,20 +3392,6 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@0.4.3': - dependencies: - ajv: 6.15.0 - debug: 4.4.3 - espree: 7.3.1 - globals: 13.24.0 - ignore: 4.0.6 - import-fresh: 3.3.1 - js-yaml: 4.2.0 - minimatch: 3.1.5 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - '@eslint/eslintrc@3.3.5': dependencies: ajv: 6.15.0 @@ -3692,18 +3443,8 @@ snapshots: '@humanfs/types@0.15.0': {} - '@humanwhocodes/config-array@0.5.0': - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.4.3 - minimatch: 3.1.5 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@1.2.1': {} - '@humanwhocodes/retry@0.4.3': {} '@istanbuljs/load-nyc-config@1.1.0': @@ -3904,18 +3645,6 @@ snapshots: eslint-plugin-react: 7.37.3(eslint@9.39.4) eslint-plugin-security: 1.4.0 - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 - '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -4082,51 +3811,30 @@ snapshots: '@types/node': 20.19.41 optional: true - '@typescript-eslint/eslint-plugin@4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.9.5))(eslint@7.32.0)(typescript@4.9.5)': + '@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(typescript@4.9.5)': dependencies: - '@typescript-eslint/experimental-utils': 4.33.0(eslint@7.32.0)(typescript@4.9.5) - '@typescript-eslint/parser': 4.33.0(eslint@7.32.0)(typescript@4.9.5) - '@typescript-eslint/scope-manager': 4.33.0 - debug: 4.4.3 - eslint: 7.32.0 - functional-red-black-tree: 1.0.1 - ignore: 5.3.2 - regexpp: 3.2.0 - semver: 7.7.4 - tsutils: 3.21.0(typescript@4.9.5) - optionalDependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.61.0(eslint@9.39.4)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.61.1 + '@typescript-eslint/type-utils': 8.61.1(eslint@9.39.4)(typescript@4.9.5) + '@typescript-eslint/utils': 8.61.1(eslint@9.39.4)(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.61.1 + eslint: 9.39.4 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@1.13.0(eslint@7.32.0)': - dependencies: - '@types/json-schema': 7.0.15 - '@typescript-eslint/typescript-estree': 1.13.0 - eslint: 7.32.0 - eslint-scope: 4.0.3 - - '@typescript-eslint/experimental-utils@4.33.0(eslint@7.32.0)(typescript@4.9.5)': - dependencies: - '@types/json-schema': 7.0.15 - '@typescript-eslint/scope-manager': 4.33.0 - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/typescript-estree': 4.33.0(typescript@4.9.5) - eslint: 7.32.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0(eslint@7.32.0) - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.9.5)': + '@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@4.9.5)': dependencies: - '@typescript-eslint/scope-manager': 4.33.0 - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/typescript-estree': 4.33.0(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.61.0 + '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/typescript-estree': 8.61.0(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.61.0 debug: 4.4.3 - eslint: 7.32.0 - optionalDependencies: + eslint: 9.39.4 typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -4143,6 +3851,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.61.0(typescript@4.9.5)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.61.0(typescript@4.9.5) + '@typescript-eslint/types': 8.61.0 + debug: 4.4.3 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/project-service@8.61.0(typescript@5.6.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.61.0(typescript@5.6.3) @@ -4152,39 +3869,64 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@4.33.0': + '@typescript-eslint/project-service@8.61.1(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/visitor-keys': 4.33.0 + '@typescript-eslint/tsconfig-utils': 8.61.1(typescript@4.9.5) + '@typescript-eslint/types': 8.61.1 + debug: 4.4.3 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color '@typescript-eslint/scope-manager@8.61.0': dependencies: '@typescript-eslint/types': 8.61.0 '@typescript-eslint/visitor-keys': 8.61.0 + '@typescript-eslint/scope-manager@8.61.1': + dependencies: + '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/visitor-keys': 8.61.1 + + '@typescript-eslint/tsconfig-utils@8.61.0(typescript@4.9.5)': + dependencies: + typescript: 4.9.5 + '@typescript-eslint/tsconfig-utils@8.61.0(typescript@5.6.3)': dependencies: typescript: 5.6.3 - '@typescript-eslint/types@4.33.0': {} + '@typescript-eslint/tsconfig-utils@8.61.1(typescript@4.9.5)': + dependencies: + typescript: 4.9.5 + + '@typescript-eslint/type-utils@8.61.1(eslint@9.39.4)(typescript@4.9.5)': + dependencies: + '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/typescript-estree': 8.61.1(typescript@4.9.5) + '@typescript-eslint/utils': 8.61.1(eslint@9.39.4)(typescript@4.9.5) + debug: 4.4.3 + eslint: 9.39.4 + ts-api-utils: 2.5.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color '@typescript-eslint/types@8.61.0': {} - '@typescript-eslint/typescript-estree@1.13.0': - dependencies: - lodash.unescape: 4.0.1 - semver: 7.8.4 + '@typescript-eslint/types@8.61.1': {} - '@typescript-eslint/typescript-estree@4.33.0(typescript@4.9.5)': + '@typescript-eslint/typescript-estree@8.61.0(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/visitor-keys': 4.33.0 + '@typescript-eslint/project-service': 8.61.0(typescript@4.9.5) + '@typescript-eslint/tsconfig-utils': 8.61.0(typescript@4.9.5) + '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/visitor-keys': 8.61.0 debug: 4.4.3 - globby: 11.1.0 - is-glob: 4.0.3 + minimatch: 10.2.5 semver: 7.8.4 - tsutils: 3.21.0(typescript@4.9.5) - optionalDependencies: + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -4204,28 +3946,48 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@4.33.0': + '@typescript-eslint/typescript-estree@8.61.1(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 4.33.0 - eslint-visitor-keys: 2.1.0 + '@typescript-eslint/project-service': 8.61.1(typescript@4.9.5) + '@typescript-eslint/tsconfig-utils': 8.61.1(typescript@4.9.5) + '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/visitor-keys': 8.61.1 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.8.4 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.61.1(eslint@9.39.4)(typescript@4.9.5)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4) + '@typescript-eslint/scope-manager': 8.61.1 + '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/typescript-estree': 8.61.1(typescript@4.9.5) + eslint: 9.39.4 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color '@typescript-eslint/visitor-keys@8.61.0': dependencies: '@typescript-eslint/types': 8.61.0 eslint-visitor-keys: 5.0.1 - '@yarnpkg/lockfile@1.1.0': {} - - acorn-jsx@5.3.2(acorn@7.4.1): + '@typescript-eslint/visitor-keys@8.61.1': dependencies: - acorn: 7.4.1 + '@typescript-eslint/types': 8.61.1 + eslint-visitor-keys: 5.0.1 + + '@yarnpkg/lockfile@1.1.0': {} acorn-jsx@5.3.2(acorn@8.16.0): dependencies: acorn: 8.16.0 - acorn@7.4.1: {} - acorn@8.16.0: {} agent-base@7.1.4: {} @@ -4248,23 +4010,12 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - ajv@8.20.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.1.2 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - - ansi-colors@4.1.3: {} - ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 ansi-regex@5.0.1: {} - ansi-styles@1.0.0: {} - ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -4298,8 +4049,6 @@ snapshots: is-string: 1.1.1 math-intrinsics: 1.1.0 - array-union@2.1.0: {} - array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.9 @@ -4345,8 +4094,6 @@ snapshots: dependencies: tslib: 2.8.1 - astral-regex@2.0.0: {} - async-function@1.0.0: {} asynckit@0.4.0: {} @@ -4468,6 +4215,8 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + boolbase@1.0.0: {} + brace-expansion@1.1.14: dependencies: balanced-match: 1.0.2 @@ -4533,12 +4282,6 @@ snapshots: caniuse-lite@1.0.30001799: {} - chalk@0.4.0: - dependencies: - ansi-styles: 1.0.0 - has-color: 0.1.7 - strip-ansi: 0.1.1 - chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -4660,6 +4403,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cssesc@3.0.0: {} + data-uri-to-buffer@6.0.2: {} data-view-buffer@1.0.2: @@ -4725,18 +4470,10 @@ snapshots: diff@4.0.4: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - doctrine@2.1.0: dependencies: esutils: 2.0.3 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -4758,11 +4495,6 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.3.3 - enquirer@2.4.1: - dependencies: - ansi-colors: 4.1.3 - strip-ansi: 6.0.1 - entities@6.0.1: {} env-paths@2.2.1: {} @@ -4900,9 +4632,9 @@ snapshots: eslint-config-angular@0.5.0: {} - eslint-config-prettier@8.10.2(eslint@7.32.0): + eslint-config-prettier@10.1.8(eslint@9.39.4): dependencies: - eslint: 7.32.0 + eslint: 9.39.4 eslint-plugin-angular@4.1.0: {} @@ -4913,10 +4645,16 @@ snapshots: eslint: 9.39.4 eslint-compat-utils: 0.5.1(eslint@9.39.4) - eslint-plugin-jest@22.21.0(eslint@7.32.0): + eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(jest@29.7.0(@types/node@20.19.42))(typescript@4.9.5): dependencies: - '@typescript-eslint/experimental-utils': 1.13.0(eslint@7.32.0) - eslint: 7.32.0 + '@typescript-eslint/utils': 8.61.1(eslint@9.39.4)(typescript@4.9.5) + eslint: 9.39.4 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.61.1(@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(typescript@4.9.5) + jest: 29.7.0(@types/node@20.19.42) + transitivePeerDependencies: + - supports-color + - typescript eslint-plugin-n@17.10.3(eslint@9.39.4): dependencies: @@ -4930,17 +4668,9 @@ snapshots: minimatch: 9.0.9 semver: 7.8.4 - eslint-plugin-prettier@4.2.5(eslint-config-prettier@8.10.2(eslint@7.32.0))(eslint@7.32.0)(prettier@2.8.8): - dependencies: - eslint: 7.32.0 - prettier: 2.8.8 - prettier-linter-helpers: 1.0.1 - optionalDependencies: - eslint-config-prettier: 8.10.2(eslint@7.32.0) - - eslint-plugin-react-hooks@4.6.2(eslint@7.32.0): + eslint-plugin-react-hooks@5.2.0(eslint@9.39.4): dependencies: - eslint: 7.32.0 + eslint: 9.39.4 eslint-plugin-react@7.37.3(eslint@9.39.4): dependencies: @@ -4964,28 +4694,6 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-react@7.37.5(eslint@7.32.0): - dependencies: - array-includes: 3.1.9 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.3.2 - eslint: 7.32.0 - estraverse: 5.3.0 - hasown: 2.0.3 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.5 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.6 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - eslint-plugin-react@7.37.5(eslint@9.39.4): dependencies: array-includes: 3.1.9 @@ -5021,109 +4729,42 @@ snapshots: dependencies: safe-regex: 2.1.1 - eslint-plugin-unused-imports@1.1.5(@typescript-eslint/eslint-plugin@4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.9.5))(eslint@7.32.0)(typescript@4.9.5))(eslint@7.32.0): + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4): dependencies: - eslint: 7.32.0 - eslint-rule-composer: 0.3.0 + eslint: 9.39.4 optionalDependencies: - '@typescript-eslint/eslint-plugin': 4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.9.5))(eslint@7.32.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 8.61.1(@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(typescript@4.9.5) - eslint-plugin-vue@7.20.0(eslint@7.32.0): + eslint-plugin-vue@9.33.0(eslint@9.39.4): dependencies: - eslint: 7.32.0 - eslint-utils: 2.1.0 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4) + eslint: 9.39.4 + globals: 13.24.0 natural-compare: 1.4.0 - semver: 6.3.1 - vue-eslint-parser: 7.11.0(eslint@7.32.0) + nth-check: 2.1.1 + postcss-selector-parser: 6.1.4 + semver: 7.8.4 + vue-eslint-parser: 9.4.3(eslint@9.39.4) + xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-rule-composer@0.3.0: {} - - eslint-scope@4.0.3: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-scope@5.1.1: + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 - estraverse: 4.3.0 + estraverse: 5.3.0 eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-stylish@0.2.0: - dependencies: - chalk: 0.4.0 - text-table: 0.2.0 - - eslint-utils@2.1.0: - dependencies: - eslint-visitor-keys: 1.3.0 - - eslint-utils@3.0.0(eslint@7.32.0): - dependencies: - eslint: 7.32.0 - eslint-visitor-keys: 2.1.0 - - eslint-visitor-keys@1.3.0: {} - - eslint-visitor-keys@2.1.0: {} - eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.2.1: {} eslint-visitor-keys@5.0.1: {} - eslint@7.32.0: - dependencies: - '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.4.3 - '@humanwhocodes/config-array': 0.5.0 - ajv: 6.15.0 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3 - doctrine: 3.0.0 - enquirer: 2.4.1 - escape-string-regexp: 4.0.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - eslint-visitor-keys: 2.1.0 - espree: 7.3.1 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 - globals: 13.24.0 - ignore: 4.0.6 - import-fresh: 3.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 4.2.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.5 - natural-compare: 1.4.0 - optionator: 0.9.4 - progress: 2.0.3 - regexpp: 3.2.0 - semver: 7.7.4 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - table: 6.9.0 - text-table: 0.2.0 - v8-compile-cache: 2.4.0 - transitivePeerDependencies: - - supports-color - eslint@9.39.4: dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4) @@ -5169,17 +4810,11 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 4.2.1 - espree@6.2.1: - dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - eslint-visitor-keys: 1.3.0 - - espree@7.3.1: + espree@9.6.1: dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - eslint-visitor-keys: 1.3.0 + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -5191,8 +4826,6 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} - estraverse@5.3.0: {} esutils@2.0.3: {} @@ -5237,28 +4870,14 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-diff@1.3.0: {} - fast-fifo@1.3.2: {} - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} fast-uri@3.1.2: {} - fastq@1.20.1: - dependencies: - reusify: 1.1.0 - fb-watchman@2.0.2: dependencies: bser: 2.1.1 @@ -5271,10 +4890,6 @@ snapshots: optionalDependencies: picomatch: 4.0.4 - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -5293,12 +4908,6 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: - dependencies: - flatted: 3.4.2 - keyv: 4.5.4 - rimraf: 3.0.2 - flat-cache@4.0.1: dependencies: flatted: 3.4.2 @@ -5336,8 +4945,6 @@ snapshots: hasown: 2.0.3 is-callable: 1.2.7 - functional-red-black-tree@1.0.1: {} - functions-have-names@1.2.3: {} generator-function@2.0.1: {} @@ -5392,10 +4999,6 @@ snapshots: transitivePeerDependencies: - supports-color - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - glob-parent@6.0.2: dependencies: is-glob: 4.0.3 @@ -5422,15 +5025,6 @@ snapshots: define-properties: 1.2.1 gopd: 1.2.0 - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - glur@1.1.2: {} gopd@1.2.0: {} @@ -5439,8 +5033,6 @@ snapshots: has-bigints@1.1.0: {} - has-color@0.1.7: {} - has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -5487,10 +5079,10 @@ snapshots: ieee754@1.2.1: {} - ignore@4.0.6: {} - ignore@5.3.2: {} + ignore@7.0.5: {} + image-size@0.5.5: optional: true @@ -6148,10 +5740,6 @@ snapshots: lodash.merge@4.6.2: {} - lodash.truncate@4.4.2: {} - - lodash.unescape@4.0.1: {} - lodash@4.18.1: {} log-symbols@4.1.0: @@ -6191,8 +5779,6 @@ snapshots: merge-stream@2.0.0: {} - merge2@1.4.1: {} - micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -6260,6 +5846,10 @@ snapshots: dependencies: path-key: 3.1.1 + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + object-assign@4.1.1: {} object-inspect@1.13.4: {} @@ -6392,8 +5982,6 @@ snapshots: path-parse@1.0.7: {} - path-type@4.0.0: {} - pend@1.2.0: {} picocolors@1.1.1: {} @@ -6421,6 +6009,11 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-selector-parser@6.1.4: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + pre-commit@1.2.2: dependencies: cross-spawn: 7.0.6 @@ -6429,10 +6022,6 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.1: - dependencies: - fast-diff: 1.3.0 - prettier@2.8.8: {} pretty-format@29.7.0: @@ -6519,8 +6108,6 @@ snapshots: pure-rand@6.1.0: {} - queue-microtask@1.2.3: {} - react-is@16.13.1: {} react-is@18.3.1: {} @@ -6593,8 +6180,6 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpp@3.2.0: {} - require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -6634,20 +6219,10 @@ snapshots: ret@0.1.15: {} - reusify@1.1.0: {} - rimraf@2.7.1: dependencies: glob: 7.2.3 - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - rxjs@7.8.1: dependencies: tslib: 2.8.1 @@ -6699,8 +6274,6 @@ snapshots: semver@6.3.1: {} - semver@7.7.4: {} - semver@7.8.4: {} set-function-length@1.2.2: @@ -6765,12 +6338,6 @@ snapshots: slash@3.0.0: {} - slice-ansi@4.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - smart-buffer@4.2.0: {} socks-proxy-agent@8.0.5: @@ -6885,8 +6452,6 @@ snapshots: dependencies: safe-buffer: 5.2.1 - strip-ansi@0.1.1: {} - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -6916,14 +6481,6 @@ snapshots: '@pkgr/core': 0.1.2 tslib: 2.8.1 - table@6.9.0: - dependencies: - ajv: 8.20.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - tapable@2.3.3: {} tar-fs@3.1.2: @@ -6968,8 +6525,6 @@ snapshots: transitivePeerDependencies: - react-native-b4a - text-table@0.2.0: {} - tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -6987,6 +6542,10 @@ snapshots: tree-kill@1.2.2: {} + ts-api-utils@2.5.0(typescript@4.9.5): + dependencies: + typescript: 4.9.5 + ts-api-utils@2.5.0(typescript@5.6.3): dependencies: typescript: 5.6.3 @@ -7017,11 +6576,6 @@ snapshots: tslib: 1.14.1 typescript: 5.6.3 - tsutils@3.21.0(typescript@4.9.5): - dependencies: - tslib: 1.14.1 - typescript: 4.9.5 - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -7069,20 +6623,6 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint-parser@22.0.0(eslint@7.32.0)(typescript@4.9.5): - dependencies: - eslint: 7.32.0 - eslint-scope: 4.0.3 - eslint-visitor-keys: 1.3.0 - typescript: 4.9.5 - typescript-estree: 18.0.0(typescript@4.9.5) - - typescript-estree@18.0.0(typescript@4.9.5): - dependencies: - lodash.unescape: 4.0.1 - semver: 7.8.4 - typescript: 4.9.5 - typescript@4.9.5: {} typescript@5.6.3: {} @@ -7108,24 +6648,22 @@ snapshots: util-deprecate@1.0.2: {} - v8-compile-cache@2.4.0: {} - v8-to-istanbul@9.3.0: dependencies: '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - vue-eslint-parser@7.11.0(eslint@7.32.0): + vue-eslint-parser@9.4.3(eslint@9.39.4): dependencies: debug: 4.4.3 - eslint: 7.32.0 - eslint-scope: 5.1.1 - eslint-visitor-keys: 1.3.0 - espree: 6.2.1 + eslint: 9.39.4 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 esquery: 1.7.0 lodash: 4.18.1 - semver: 6.3.1 + semver: 7.8.4 transitivePeerDependencies: - supports-color @@ -7215,6 +6753,8 @@ snapshots: ws@8.21.0: {} + xml-name-validator@4.0.0: {} + y18n@5.0.8: {} yallist@3.1.1: {} From a22db12ecab897484bf00c433b516cc45d149078 Mon Sep 17 00:00:00 2001 From: Alex Lavrov <36633600+alexslavr@users.noreply.github.com> Date: Fri, 19 Jun 2026 15:49:30 +0400 Subject: [PATCH 2/4] feat: add @eslint/compat --- packages/devextreme-cli/package.json | 1 + .../testing/lint-config/angular.config.mjs | 9 ++++++++- pnpm-lock.yaml | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/packages/devextreme-cli/package.json b/packages/devextreme-cli/package.json index 68a3a4085..2b450023b 100644 --- a/packages/devextreme-cli/package.json +++ b/packages/devextreme-cli/package.json @@ -48,6 +48,7 @@ "strip-bom": "^4.0.0" }, "devDependencies": { + "@eslint/compat": "^1.2.4", "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.39.4", "@typescript-eslint/eslint-plugin": "^8.61.0", diff --git a/packages/devextreme-cli/testing/lint-config/angular.config.mjs b/packages/devextreme-cli/testing/lint-config/angular.config.mjs index 04c8e282f..d47f3c3d2 100644 --- a/packages/devextreme-cli/testing/lint-config/angular.config.mjs +++ b/packages/devextreme-cli/testing/lint-config/angular.config.mjs @@ -1,15 +1,22 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { FlatCompat } from '@eslint/eslintrc'; +import { fixupConfigRules } from '@eslint/compat'; import globals from 'globals'; import tsParser from '@typescript-eslint/parser'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const compat = new FlatCompat({ baseDirectory: __dirname }); +const tsFiles = ['**/*.ts', '**/*.tsx']; + export default [ - ...compat.extends('angular', 'plugin:angular/johnpapa'), + ...fixupConfigRules(compat.extends('angular', 'plugin:angular/johnpapa')).map(config => ({ + ...config, + files: tsFiles + })), { + files: tsFiles, languageOptions: { parser: tsParser, ecmaVersion: 2018, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3614b1f3f..1a9887a46 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,6 +64,9 @@ importers: specifier: ^4.0.0 version: 4.0.0 devDependencies: + '@eslint/compat': + specifier: ^1.2.4 + version: 1.4.1(eslint@9.39.4) '@eslint/eslintrc': specifier: ^3.2.0 version: 3.3.5 @@ -411,6 +414,15 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/compat@1.4.1': + resolution: {integrity: sha512-cfO82V9zxxGBxcQDr1lfaYB7wykTa0b00mGa36FrJl7iTFd0Z2cHfEYuxcBRP/iNijCsWsEkA+jzT8hGYmv33w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.40 || 9 + peerDependenciesMeta: + eslint: + optional: true + '@eslint/config-array@0.21.2': resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3376,6 +3388,12 @@ snapshots: '@eslint-community/regexpp@4.12.2': {} + '@eslint/compat@1.4.1(eslint@9.39.4)': + dependencies: + '@eslint/core': 0.17.0 + optionalDependencies: + eslint: 9.39.4 + '@eslint/config-array@0.21.2': dependencies: '@eslint/object-schema': 2.1.7 From 2489035ce940ffe33945bdcd14f8a6d5bfbfe677 Mon Sep 17 00:00:00 2001 From: Alex Lavrov <36633600+alexslavr@users.noreply.github.com> Date: Fri, 19 Jun 2026 15:59:05 +0400 Subject: [PATCH 3/4] fix: update paths in customLint function for ESLint configuration --- packages/devextreme-cli/testing/linting.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/devextreme-cli/testing/linting.js b/packages/devextreme-cli/testing/linting.js index 737831f98..97880f96d 100644 --- a/packages/devextreme-cli/testing/linting.js +++ b/packages/devextreme-cli/testing/linting.js @@ -26,14 +26,15 @@ const projectLint = async(app) => { const customLint = async(env) => { const eslint = new ESLint({ - overrideConfigFile: `./testing/lint-config/${env.engine}.config.mjs`, + overrideConfigFile: path.join(__dirname, 'lint-config', `${env.engine}.config.mjs`), ignore: false }); + const sandboxSrc = path.join(__dirname, 'sandbox', env.engine, 'my-app', 'src'); const lintFiles = isTypeScript(env.engine) - ? [`./testing/sandbox/${env.engine}/my-app/src/**/*.ts`, - `./testing/sandbox/${env.engine}/my-app/src/**/*.tsx`] - : [`./testing/sandbox/${env.engine}/my-app/src/**/*.${env.fileExtension}`]; + ? [path.join(sandboxSrc, '**/*.ts'), + path.join(sandboxSrc, '**/*.tsx')] + : [path.join(sandboxSrc, `**/*.${env.fileExtension}`)]; const report = await eslint.lintFiles(lintFiles); From 3aa17f8ae55896fea9add72ec3e2e6a517821bb7 Mon Sep 17 00:00:00 2001 From: Alex Lavrov <36633600+alexslavr@users.noreply.github.com> Date: Fri, 19 Jun 2026 16:24:01 +0400 Subject: [PATCH 4/4] fix: normalize path separators in customLint function for linting files --- packages/devextreme-cli/testing/linting.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/devextreme-cli/testing/linting.js b/packages/devextreme-cli/testing/linting.js index 97880f96d..221875c3e 100644 --- a/packages/devextreme-cli/testing/linting.js +++ b/packages/devextreme-cli/testing/linting.js @@ -30,11 +30,10 @@ const customLint = async(env) => { ignore: false }); - const sandboxSrc = path.join(__dirname, 'sandbox', env.engine, 'my-app', 'src'); + const sandboxSrc = path.join(__dirname, 'sandbox', env.engine, 'my-app', 'src').replace(/\\/g, '/'); const lintFiles = isTypeScript(env.engine) - ? [path.join(sandboxSrc, '**/*.ts'), - path.join(sandboxSrc, '**/*.tsx')] - : [path.join(sandboxSrc, `**/*.${env.fileExtension}`)]; + ? [`${sandboxSrc}/**/*.ts`, `${sandboxSrc}/**/*.tsx`] + : [`${sandboxSrc}/**/*.${env.fileExtension}`]; const report = await eslint.lintFiles(lintFiles);