diff --git a/.changeset/four-items-love.md b/.changeset/four-items-love.md new file mode 100644 index 0000000000..d483579029 --- /dev/null +++ b/.changeset/four-items-love.md @@ -0,0 +1,5 @@ +--- +'@emotion/eslint-plugin': minor +--- + +Adds support for ESLint 9 diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 3406ffb853..0000000000 --- a/.eslintignore +++ /dev/null @@ -1,7 +0,0 @@ -lib/ -dist/ -coverage/ -node_modules/ -stylis.min.js -/demo/dist -/site/out \ No newline at end of file diff --git a/.github/actions/ci-setup/action.yml b/.github/actions/ci-setup/action.yml index 972a58d12f..dde1373e39 100644 --- a/.github/actions/ci-setup/action.yml +++ b/.github/actions/ci-setup/action.yml @@ -1,11 +1,12 @@ name: 'CI setup' +description: 'Installs Node.js and package dependencies.' runs: using: 'composite' steps: - - name: Setup Node.js 16.x - uses: actions/setup-node@v3 + - name: Setup Node.js 20.x + uses: actions/setup-node@v4 with: - node-version: 16.x + node-version: '>=20.9.0' cache: yarn - name: Install Dependencies diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 916f09ebab..b3dc00bc5b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -78,6 +78,9 @@ jobs: - uses: actions/checkout@v3 - uses: ./.github/actions/ci-setup + - name: Build project + run: yarn build + - name: ESLint run: yarn lint:check diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000000..6a118788e3 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,63 @@ +import globals from 'globals' +import prettierRecommended from 'eslint-plugin-prettier/recommended' +import emotion from '@emotion/eslint-plugin' +import react from 'eslint-plugin-react' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { + ignores: [ + '**/lib/', + '**/dist/', + '**/coverage/', + '**/node_modules/', + '**/stylis.min.js', + 'demo/dist', + 'site/out' + ] + }, + tseslint.configs.eslintRecommended, + { + plugins: { + '@emotion': emotion, + react + }, + languageOptions: { + parser: tseslint.parser, + globals: { + ...globals.browser + } + }, + linterOptions: { + reportUnusedDisableDirectives: 0 + }, + rules: { + camelcase: 0, + 'no-template-curly-in-string': 0, + 'prefer-const': 0, + 'no-unused-vars': 0, + 'prettier/prettier': [ + 'error', + { + parser: 'typescript' + } + ], + 'react/jsx-curly-brace-presence': 0, + 'react/jsx-handler-names': 0, + 'react/no-unused-prop-types': 0, + 'react/prop-types': 0, + 'react/react-in-jsx-scope': 0, + '@emotion/pkg-renaming': 2 + } + }, + { + files: ['**/*.test.js', '**/__tests__/**'], + ignores: ['**/__fixtures__/*'], + languageOptions: { + globals: { + ...globals.jest + } + } + }, + prettierRecommended +) diff --git a/package.json b/package.json index ac464ba243..2d99955ed2 100644 --- a/package.json +++ b/package.json @@ -43,76 +43,6 @@ "css", "css-in-js" ], - "eslintConfig": { - "extends": [ - "prettier", - "plugin:@typescript-eslint/eslint-recommended" - ], - "plugins": [ - "prettier", - "@emotion", - "react", - "@typescript-eslint" - ], - "parser": "@typescript-eslint/parser", - "rules": { - "camelcase": 0, - "no-template-curly-in-string": 0, - "prefer-const": 0, - "no-unused-vars": 0, - "prettier/prettier": [ - "error", - { - "parser": "typescript" - } - ], - "react/jsx-curly-brace-presence": 0, - "react/jsx-handler-names": 0, - "react/no-unused-prop-types": 0, - "react/prop-types": 0, - "react/react-in-jsx-scope": 0, - "@emotion/pkg-renaming": 2 - }, - "env": { - "browser": true - }, - "overrides": [ - { - "files": [ - "*.test.js", - "**/__tests__/**" - ], - "env": { - "jest": true - } - }, - { - "files": [ - "**/packages/**/*.ts", - "**/packages/**/*.tsx" - ], - "rules": { - "prettier/prettier": [ - "error", - { - "parser": "typescript" - } - ] - } - }, - { - "files": [ - "**/__fixtures__/*" - ], - "rules": { - "no-unused-vars": 0 - }, - "env": { - "jest": false - } - } - ] - }, "workspaces": { "packages": [ "packages/*", @@ -189,8 +119,6 @@ "@types/jest": "^29.5.12", "@types/node": "^12.20.37", "@types/react": "18.3.12", - "@typescript-eslint/eslint-plugin": "^7.13.0", - "@typescript-eslint/parser": "^7.13.0", "babel-check-duplicated-nodes": "^1.0.0", "babel-eslint": "^10.1.0", "babel-jest": "^29.7.0", @@ -204,14 +132,14 @@ "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.5", "enzyme-to-json": "^3.6.1", - "eslint": "^8.57.0", + "eslint": "^9.10.0", "eslint-config-prettier": "^9.1.0", "eslint-config-react": "^1.1.7", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-promise": "^6.2.0", - "eslint-plugin-react": "^7.34.2", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-promise": "^6.4.0", + "eslint-plugin-react": "^7.35.2", "eslint-plugin-react-hooks": "^4.6.2", + "globals": "^15.9.0", "html-tag-names": "^1.1.2", "husky": "^3.0.9", "jest": "^29.7.0", @@ -240,6 +168,7 @@ "svg-tag-names": "^1.1.1", "through": "^2.3.8", "typescript": "^5.4.5", + "typescript-eslint": "^8.3.0", "unified": "^6.1.6", "webpack-bundle-analyzer": "3.3.2" }, diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 8674d6f7b2..5cb03445b8 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -29,14 +29,14 @@ "license": "MIT", "repository": "https://github.com/emotion-js/emotion/tree/main/packages/eslint-plugin", "peerDependencies": { - "eslint": "6 || 7 || 8" + "eslint": "^6 || ^7 || ^8 || ^9" }, "dependencies": { - "@typescript-eslint/utils": "^5.25.0" + "@typescript-eslint/utils": "^8.5.0" }, "devDependencies": { - "@types/eslint": "^7.0.0", - "eslint": "^8.57.0", - "resolve-from": "^5.0.0" + "@typescript-eslint/rule-tester": "^8.5.0", + "eslint": "^9.10.0", + "espree": "^10.1.0" } } diff --git a/packages/eslint-plugin/src/index.ts b/packages/eslint-plugin/src/index.ts index 3c27f57e22..0f99d4e2de 100644 --- a/packages/eslint-plugin/src/index.ts +++ b/packages/eslint-plugin/src/index.ts @@ -5,6 +5,8 @@ import styledImport from './rules/styled-import' import jsxImport from './rules/jsx-import' import pkgRenaming from './rules/pkg-renaming' +const { name, version } = require('../package.json') + export const rules = { 'import-from-emotion': importFromEmotion, 'no-vanilla': noVanilla, @@ -13,3 +15,13 @@ export const rules = { 'jsx-import': jsxImport, 'pkg-renaming': pkgRenaming } + +const plugin = { + meta: { + name, + version + }, + rules +} + +export default plugin diff --git a/packages/eslint-plugin/src/rules/import-from-emotion.ts b/packages/eslint-plugin/src/rules/import-from-emotion.ts index c390ff1d74..e710f39b7b 100644 --- a/packages/eslint-plugin/src/rules/import-from-emotion.ts +++ b/packages/eslint-plugin/src/rules/import-from-emotion.ts @@ -42,14 +42,20 @@ export default createRule({ node.specifiers[0].type === AST_NODE_TYPES.ImportDefaultSpecifier ) { + type ImportSpecifierWithIdentifier = + TSESTree.ImportSpecifier & { + imported: TSESTree.Identifier + } + return fixer.replaceText( node, `import ${ node.specifiers[0].local.name } from '@emotion/styled';\nimport { ${node.specifiers .filter( - (x): x is TSESTree.ImportSpecifier => - x.type === AST_NODE_TYPES.ImportSpecifier + (x): x is ImportSpecifierWithIdentifier => + x.type === AST_NODE_TYPES.ImportSpecifier && + x.imported.type === AST_NODE_TYPES.Identifier ) .map(x => x.local.name === x.imported.name diff --git a/packages/eslint-plugin/src/rules/jsx-import.ts b/packages/eslint-plugin/src/rules/jsx-import.ts index 2ee930f8d2..54a623dc58 100644 --- a/packages/eslint-plugin/src/rules/jsx-import.ts +++ b/packages/eslint-plugin/src/rules/jsx-import.ts @@ -9,12 +9,6 @@ const JSX_IMPORT_SOURCE_REGEX = /\*?\s*@jsxImportSource\s+([^\s]+)/ // to //
+ import { css } -declare module '@typescript-eslint/utils/dist/ts-eslint/Rule' { - export interface SharedConfigurationSettings { - react?: { pragma?: string } - } -} - type JSXConfig = { runtime: string importSource?: string @@ -22,6 +16,15 @@ type JSXConfig = { type RuleOptions = [(JSXConfig | string)?] +interface ReactConfigurationSettings { + pragma?: string +} + +const isReactSettings = ( + settings: unknown +): settings is ReactConfigurationSettings => + typeof settings === 'object' && settings !== null && 'pragma' in settings + const messages = { cssProp: `The css prop can only be used if jsxImportSource is set to {{ importSource }}`, cssPropWithPragma: `The css prop can only be used if jsx from @emotion/react is imported and it is set as the jsx pragma`, @@ -62,6 +65,10 @@ export default createRule({ }, defaultOptions: [], create(context) { + const filename = + context.filename ?? /* istanbul ignore next */ context.getFilename() + const sourceCode = + context.sourceCode ?? /* istanbul ignore next */ context.getSourceCode() const jsxRuntimeMode = context.options.find( (option): option is JSXConfig => typeof option === 'object' && option.runtime === 'automatic' @@ -77,7 +84,6 @@ export default createRule({ let jsxImportSourcePragmaComment: TSESTree.Comment | null = null let jsxImportSourceMatch let validJsxImportSource = false - let sourceCode = context.getSourceCode() let pragma = sourceCode.getAllComments().find(comment => { if (JSX_IMPORT_SOURCE_REGEX.test(comment.value)) { jsxImportSourcePragmaComment = comment @@ -113,7 +119,7 @@ export default createRule({ /* istanbul ignore if */ if (jsxImportSourcePragmaComment === null) { throw new Error( - `Unexpected null when attempting to fix ${context.getFilename()} - please file a github issue at ${REPO_URL}` + `Unexpected null when attempting to fix ${filename} - please file a github issue at ${REPO_URL}` ) } @@ -136,7 +142,6 @@ export default createRule({ let hasJsxImport = false let emotionCoreNode = null as TSESTree.ImportDeclaration | null let local: string | null = null - let sourceCode = context.getSourceCode() sourceCode.ast.body.forEach(x => { if ( x.type === AST_NODE_TYPES.ImportDeclaration && @@ -155,6 +160,7 @@ export default createRule({ let jsxSpecifier = x.specifiers.find( x => x.type === AST_NODE_TYPES.ImportSpecifier && + x.imported.type === AST_NODE_TYPES.Identifier && x.imported.name === 'jsx' ) if (jsxSpecifier) { @@ -164,10 +170,9 @@ export default createRule({ } } }) - let hasSetPragma = false - if (context.settings.react && context.settings.react.pragma === 'jsx') { - hasSetPragma = true - } + let hasSetPragma = + isReactSettings(context.settings.react) && + context.settings.react.pragma === 'jsx' let pragma = sourceCode .getAllComments() .find(node => JSX_ANNOTATION_REGEX.test(node.value)) @@ -185,10 +190,14 @@ export default createRule({ /* istanbul ignore if */ if (emotionCoreNode === null) { throw new Error( - `Unexpected null when attempting to fix ${context.getFilename()} - please file a github issue at ${REPO_URL}` + `Unexpected null when attempting to fix ${filename} - please file a github issue at ${REPO_URL}` ) } + if (!hasSetPragma && pragma) { + return fixer.replaceText(pragma, `/** @jsx ${local} */`) + } + return fixer.insertTextBefore( emotionCoreNode, `/** @jsx ${local} */\n` @@ -227,7 +236,7 @@ export default createRule({ /* istanbul ignore if */ if (emotionCoreNode === null) { throw new Error( - `Unexpected null when attempting to fix ${context.getFilename()} - please file a github issue at ${REPO_URL}` + `Unexpected null when attempting to fix ${filename} - please file a github issue at ${REPO_URL}` ) } @@ -239,24 +248,40 @@ export default createRule({ value.type === AST_NODE_TYPES.JSXExpressionContainer && value.expression.type === AST_NODE_TYPES.TemplateLiteral ) { + let namespaceSpecifier = specifiers.find( + x => x.type === AST_NODE_TYPES.ImportNamespaceSpecifier + ) let cssSpecifier = specifiers.find( x => x.type === AST_NODE_TYPES.ImportSpecifier && + x.imported.type === AST_NODE_TYPES.Identifier && x.imported.name === 'css' ) + context.report({ node, messageId: 'templateLiterals', fix(fixer) { + if (namespaceSpecifier) { + return fixer.insertTextBefore( + value.expression, + namespaceSpecifier.local.name + '.css' + ) + } if (cssSpecifier) { return fixer.insertTextBefore( value.expression, cssSpecifier.local.name ) } - let lastSpecifier = specifiers[specifiers.length - 1] - if (context.getScope().variables.some(x => x.name === 'css')) { + const lastSpecifier = specifiers[specifiers.length - 1] + const scope = + typeof sourceCode.getScope === 'function' + ? sourceCode.getScope(node) + : /* istanbul ignore next */ context.getScope() + + if (scope.variables.some(x => x.name === 'css')) { return [ fixer.insertTextAfter(lastSpecifier, `, css as _css`), fixer.insertTextBefore(value.expression, '_css') diff --git a/packages/eslint-plugin/src/rules/syntax-preference.ts b/packages/eslint-plugin/src/rules/syntax-preference.ts index 7568eb805b..9309004f99 100644 --- a/packages/eslint-plugin/src/rules/syntax-preference.ts +++ b/packages/eslint-plugin/src/rules/syntax-preference.ts @@ -78,9 +78,11 @@ const checkExpressionPreferringObject = ( ) => { switch (node.type) { case AST_NODE_TYPES.ArrayExpression: - node.elements.forEach(element => - checkExpressionPreferringObject(context, element) - ) + node.elements.forEach(element => { + if (element !== null) { + checkExpressionPreferringObject(context, element) + } + }) return case AST_NODE_TYPES.TemplateLiteral: context.report({ @@ -90,6 +92,7 @@ const checkExpressionPreferringObject = ( return case AST_NODE_TYPES.Literal: // validating other literal types seems out of scope of this plugin + /* istanbul ignore if */ if (typeof node.value !== 'string') { return } @@ -134,6 +137,7 @@ const createPreferredObjectVisitor = ( switch (node.value.type) { case AST_NODE_TYPES.Literal: // validating other literal types seems out of scope of this plugin + /* istanbul ignore if */ if (typeof node.value.value !== 'string') { return } @@ -154,9 +158,11 @@ const checkExpressionPreferringString = ( ) => { switch (node.type) { case 'ArrayExpression': - node.elements.forEach(element => - checkExpressionPreferringString(context, element) - ) + node.elements.forEach(element => { + if (element !== null) { + checkExpressionPreferringString(context, element) + } + }) return case 'ObjectExpression': context.report({ @@ -166,6 +172,7 @@ const checkExpressionPreferringString = ( return case 'Literal': // validating other literal types seems out of scope of this plugin + /* istanbul ignore if */ if (typeof node.value !== 'string') { return } @@ -203,6 +210,7 @@ const createPreferredStringVisitor = ( switch (node.value.type) { case AST_NODE_TYPES.Literal: // validating other literal types seems out of scope of this plugin + /* istanbul ignore if */ if (typeof node.value.value !== 'string') { return } @@ -242,6 +250,7 @@ export default createRule({ }, schema: [ { + type: 'string', enum: ['string', 'object'] } ], diff --git a/packages/eslint-plugin/src/utils.ts b/packages/eslint-plugin/src/utils.ts index 7fbef3077c..c5b8fa2304 100644 --- a/packages/eslint-plugin/src/utils.ts +++ b/packages/eslint-plugin/src/utils.ts @@ -5,7 +5,11 @@ const { version } = require('../package.json') export const REPO_URL = 'https://github.com/emotion-js/emotion' -export const createRule = ESLintUtils.RuleCreator(name => { +export interface EmotionRuleDocs { + recommended?: boolean +} + +export const createRule = ESLintUtils.RuleCreator(name => { const ruleName = parsePath(name).name return `${REPO_URL}/blob/@emotion/eslint-plugin@${version}/packages/eslint-plugin/docs/rules/${ruleName}.md` diff --git a/packages/eslint-plugin/test/rules/import-from-emotion.test.ts b/packages/eslint-plugin/test/rules/import-from-emotion.test.ts index 99be3a0fa0..5a96f8290f 100644 --- a/packages/eslint-plugin/test/rules/import-from-emotion.test.ts +++ b/packages/eslint-plugin/test/rules/import-from-emotion.test.ts @@ -2,17 +2,17 @@ * @jest-environment node */ -import { TSESLint } from '@typescript-eslint/utils' +import { RuleTester } from '@typescript-eslint/rule-tester' import rule from '../../src/rules/import-from-emotion' import { espreeParser } from '../test-utils' -const ruleTester = new TSESLint.RuleTester({ - parser: espreeParser, - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true +const ruleTester = new RuleTester({ + languageOptions: { + parser: espreeParser, + parserOptions: { + ecmaFeatures: { + jsx: true + } } } }) diff --git a/packages/eslint-plugin/test/rules/jsx-import.test.ts b/packages/eslint-plugin/test/rules/jsx-import.test.ts index f245357e64..80e99739c9 100644 --- a/packages/eslint-plugin/test/rules/jsx-import.test.ts +++ b/packages/eslint-plugin/test/rules/jsx-import.test.ts @@ -2,17 +2,17 @@ * @jest-environment node */ -import { TSESLint } from '@typescript-eslint/utils' +import { RuleTester } from '@typescript-eslint/rule-tester' import rule from '../../src/rules/jsx-import' import { espreeParser } from '../test-utils' -const ruleTester = new TSESLint.RuleTester({ - parser: espreeParser, - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true +const ruleTester = new RuleTester({ + languageOptions: { + parser: espreeParser, + parserOptions: { + ecmaFeatures: { + jsx: true + } } } }) @@ -233,7 +233,7 @@ let ele =
code: ` /** @jsx jsx */ import * as emotion from '@emotion/react' -let ele =
+let ele =
`.trim(), errors: [ { @@ -241,10 +241,9 @@ let ele =
} ], output: ` -/** @jsx jsx */ /** @jsx emotion.jsx */ import * as emotion from '@emotion/react' -let ele =
+let ele =
`.trim() }, { @@ -285,6 +284,53 @@ let ele2 =
`.trim() }, + { + settings: { react: { pragma: 'jsx' } }, + code: ` +let ele =
+ `.trim(), + errors: [ + { + messageId: 'cssPropWithPragma' + } + ], + output: ` +import { jsx } from '@emotion/react' +let ele =
+ `.trim() + }, + { + settings: { react: { pragma: 'jsx' } }, + code: ` +import { css } from '@emotion/react' +let ele =
+ `.trim(), + errors: [ + { + messageId: 'cssPropWithPragma' + } + ], + output: ` +import { css, jsx } from '@emotion/react' +let ele =
+ `.trim() + }, + { + settings: { react: { pragma: 'jsx' } }, + code: ` +import DefaultExport from '@emotion/react' +let ele =
+ `.trim(), + errors: [ + { + messageId: 'cssPropWithPragma' + } + ], + output: ` +import DefaultExport, { jsx } from '@emotion/react' +let ele =
+ `.trim() + }, { code: ` /** @jsx jsx */ @@ -337,6 +383,23 @@ let ele2 =
import {jsx, css} from '@emotion/react' let ele =
`.trim() + }, + { + code: ` + /** @jsx emotion.jsx */ + import * as emotion from '@emotion/react' + let ele =
+ `.trim(), + errors: [ + { + messageId: 'templateLiterals' + } + ], + output: ` + /** @jsx emotion.jsx */ + import * as emotion from '@emotion/react' + let ele =
+ `.trim() } ] }) diff --git a/packages/eslint-plugin/test/rules/no-vanilla.test.ts b/packages/eslint-plugin/test/rules/no-vanilla.test.ts index a897ec3a70..b96afbfcaa 100644 --- a/packages/eslint-plugin/test/rules/no-vanilla.test.ts +++ b/packages/eslint-plugin/test/rules/no-vanilla.test.ts @@ -2,17 +2,17 @@ * @jest-environment node */ -import { TSESLint } from '@typescript-eslint/utils' +import { RuleTester } from '@typescript-eslint/rule-tester' import rule from '../../src/rules/no-vanilla' import { espreeParser } from '../test-utils' -const ruleTester = new TSESLint.RuleTester({ - parser: espreeParser, - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true +const ruleTester = new RuleTester({ + languageOptions: { + parser: espreeParser, + parserOptions: { + ecmaFeatures: { + jsx: true + } } } }) diff --git a/packages/eslint-plugin/test/rules/pkg-renaming.test.ts b/packages/eslint-plugin/test/rules/pkg-renaming.test.ts index 6e7093212e..fd8cee16f6 100644 --- a/packages/eslint-plugin/test/rules/pkg-renaming.test.ts +++ b/packages/eslint-plugin/test/rules/pkg-renaming.test.ts @@ -2,17 +2,17 @@ * @jest-environment node */ -import { TSESLint } from '@typescript-eslint/utils' +import { RuleTester } from '@typescript-eslint/rule-tester' import rule from '../../src/rules/pkg-renaming' import { espreeParser } from '../test-utils' -const ruleTester = new TSESLint.RuleTester({ - parser: espreeParser, - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true +const ruleTester = new RuleTester({ + languageOptions: { + parser: espreeParser, + parserOptions: { + ecmaFeatures: { + jsx: true + } } } }) diff --git a/packages/eslint-plugin/test/rules/styled-import.test.ts b/packages/eslint-plugin/test/rules/styled-import.test.ts index 944053cd46..7b3107311c 100644 --- a/packages/eslint-plugin/test/rules/styled-import.test.ts +++ b/packages/eslint-plugin/test/rules/styled-import.test.ts @@ -2,17 +2,17 @@ * @jest-environment node */ -import { TSESLint } from '@typescript-eslint/utils' +import { RuleTester } from '@typescript-eslint/rule-tester' import rule from '../../src/rules/styled-import' import { espreeParser } from '../test-utils' -const ruleTester = new TSESLint.RuleTester({ - parser: espreeParser, - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true +const ruleTester = new RuleTester({ + languageOptions: { + parser: espreeParser, + parserOptions: { + ecmaFeatures: { + jsx: true + } } } }) diff --git a/packages/eslint-plugin/test/rules/syntax-preference.test.ts b/packages/eslint-plugin/test/rules/syntax-preference.test.ts index 4ea172d97a..e5e488429e 100644 --- a/packages/eslint-plugin/test/rules/syntax-preference.test.ts +++ b/packages/eslint-plugin/test/rules/syntax-preference.test.ts @@ -8,17 +8,18 @@ // Requirements // ------------------------------------------------------------------------------ -import { AST_NODE_TYPES, TSESLint } from '@typescript-eslint/utils' +import { RuleTester } from '@typescript-eslint/rule-tester' +import { AST_NODE_TYPES } from '@typescript-eslint/utils' import rule from '../../src/rules/syntax-preference' import { espreeParser } from '../test-utils' -const ruleTester = new TSESLint.RuleTester({ - parser: espreeParser, - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true +const ruleTester = new RuleTester({ + languageOptions: { + parser: espreeParser, + parserOptions: { + ecmaFeatures: { + jsx: true + } } } }) @@ -42,12 +43,16 @@ ruleTester.run('syntax-preference (string)', rule, { code: 'const query = gql` { user(id: 5) { firstName, lastName } }`', options: ['string'] }, + { + code: `const Foo = () =>
`, + options: ['string'] + }, { code: `const Foo = () =>
`, options: ['string'] }, { - code: `const Foo = () =>
`, + code: `const Foo = () =>
`, options: ['string'] }, { @@ -163,6 +168,10 @@ ruleTester.run('syntax-preference (object)', rule, { code: 'const query = gql` { user(id: 5) { firstName, lastName } }`', options: ['object'] }, + { + code: `const Foo = () =>
`, + options: ['object'] + }, { code: `const Foo = () =>
`, options: ['object'] @@ -170,6 +179,10 @@ ruleTester.run('syntax-preference (object)', rule, { { code: `const Foo = () =>
`, options: ['object'] + }, + { + code: `const Foo = () =>
`, + options: ['object'] } ], @@ -214,6 +227,16 @@ ruleTester.run('syntax-preference (object)', rule, { } ] }, + { + code: `const Foo = () =>
`, + options: ['object'], + errors: [ + { + messageId: 'preferObjectStyle', + type: AST_NODE_TYPES.TemplateLiteral + } + ] + }, { code: `const Foo = () =>
`, options: ['object'], diff --git a/packages/eslint-plugin/test/test-utils.ts b/packages/eslint-plugin/test/test-utils.ts index 551a54e9db..00f1dfc055 100644 --- a/packages/eslint-plugin/test/test-utils.ts +++ b/packages/eslint-plugin/test/test-utils.ts @@ -1,6 +1 @@ -import resolveFrom from 'resolve-from' - -export const espreeParser: string = resolveFrom( - require.resolve('eslint'), - 'espree' -) +export const espreeParser = require('espree') diff --git a/yarn.lock b/yarn.lock index cc30493e9c..dfd588aaff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2748,12 +2748,12 @@ __metadata: version: 0.0.0-use.local resolution: "@emotion/eslint-plugin@workspace:packages/eslint-plugin" dependencies: - "@types/eslint": ^7.0.0 - "@typescript-eslint/utils": ^5.25.0 - eslint: ^8.57.0 - resolve-from: ^5.0.0 + "@typescript-eslint/rule-tester": ^8.5.0 + "@typescript-eslint/utils": ^8.5.0 + eslint: ^9.10.0 + espree: ^10.1.0 peerDependencies: - eslint: 6 || 7 || 8 + eslint: ^6 || ^7 || ^8 || ^9 languageName: unknown linkType: soft @@ -3026,13 +3026,40 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.10.0": version: 4.10.1 resolution: "@eslint-community/regexpp@npm:4.10.1" checksum: 1e04bc366fb8152c9266258cd25e3fded102f1d212a9476928e3cb98c48be645df6d676728d1c596053992fb9134879fe0de23c9460035b342cceb22d3af1776 languageName: node linkType: hard +"@eslint-community/regexpp@npm:^4.12.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 + languageName: node + linkType: hard + +"@eslint/config-array@npm:^0.19.0": + version: 0.19.1 + resolution: "@eslint/config-array@npm:0.19.1" + dependencies: + "@eslint/object-schema": ^2.1.5 + debug: ^4.3.1 + minimatch: ^3.1.2 + checksum: 421aad712a5ef1a3d118b5e0857f79c080f9dd619a76ce19d20105d381521583786f7abb1195744af9e62a5124e6657066eb6780e920f4001846bd91c1a665f0 + languageName: node + linkType: hard + +"@eslint/core@npm:^0.9.0": + version: 0.9.1 + resolution: "@eslint/core@npm:0.9.1" + dependencies: + "@types/json-schema": ^7.0.15 + checksum: 33c8159842cc3a646caa267c008cb567ca60e0220bcdcf6e426128409953b8f6a9b142246db616c71d06331edf769c192d7e2792b3f19c2a6b8179e491512d89 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^0.4.3": version: 0.4.3 resolution: "@eslint/eslintrc@npm:0.4.3" @@ -3050,27 +3077,43 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" +"@eslint/eslintrc@npm:^3.2.0": + version: 3.2.0 + resolution: "@eslint/eslintrc@npm:3.2.0" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.6.0 - globals: ^13.19.0 + espree: ^10.0.1 + globals: ^14.0.0 ignore: ^5.2.0 import-fresh: ^3.2.1 js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 + checksum: c898e4d12f4c9a79a61ee3c91e38eea5627a04e021cb749191e8537445858bfe32f810eca0cb2dc9902b8ad8b65ca07ef7221dc4bad52afe60cbbf50ec56c236 + languageName: node + linkType: hard + +"@eslint/js@npm:9.17.0": + version: 9.17.0 + resolution: "@eslint/js@npm:9.17.0" + checksum: b68a14ff518ffa12e3b85fa9c72b818faeff092285acfbf02da2d0fb12a681b76651638881e98845f2df2ed346ed0d33faeb1d9caac163daf232c223b7efe89c languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb +"@eslint/object-schema@npm:^2.1.5": + version: 2.1.5 + resolution: "@eslint/object-schema@npm:2.1.5" + checksum: 5facffc832bae93c510f4d38f0f1cbfebd3d7ec772ece6b801bd09bf2dce52e781f4dea500aa133d02257e04ed6a3958fa18cbaed1f9623974a804ee60a8ca54 + languageName: node + linkType: hard + +"@eslint/plugin-kit@npm:^0.2.3": + version: 0.2.4 + resolution: "@eslint/plugin-kit@npm:0.2.4" + dependencies: + levn: ^0.4.1 + checksum: 5693465dca5fc6f27b090f987b51bc738f48c6a6b5678dcc1791522921834206388b462578edd362d458e8de6dcd21cce1a2e8cff47d1512411ba0389112c231 languageName: node linkType: hard @@ -3167,14 +3210,20 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" +"@humanfs/core@npm:^0.19.1": + version: 0.19.1 + resolution: "@humanfs/core@npm:0.19.1" + checksum: 611e0545146f55ddfdd5c20239cfb7911f9d0e28258787c4fc1a1f6214250830c9367aaaeace0096ed90b6739bee1e9c52ad5ba8adaf74ab8b449119303babfe + languageName: node + linkType: hard + +"@humanfs/node@npm:^0.16.6": + version: 0.16.6 + resolution: "@humanfs/node@npm:0.16.6" dependencies: - "@humanwhocodes/object-schema": ^2.0.2 - debug: ^4.3.1 - minimatch: ^3.0.5 - checksum: 861ccce9eaea5de19546653bccf75bf09fe878bc39c3aab00aeee2d2a0e654516adad38dd1098aab5e3af0145bbcbf3f309bdf4d964f8dab9dcd5834ae4c02f2 + "@humanfs/core": ^0.19.1 + "@humanwhocodes/retry": ^0.3.0 + checksum: f9cb52bb235f8b9c6fcff43a7e500669a38f8d6ce26593404a9b56365a1644e0ed60c720dc65ff6a696b1f85f3563ab055bb554ec8674f2559085ba840e47710 languageName: node linkType: hard @@ -3203,10 +3252,17 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 +"@humanwhocodes/retry@npm:^0.3.0": + version: 0.3.1 + resolution: "@humanwhocodes/retry@npm:0.3.1" + checksum: 7e5517bb51dbea3e02ab6cacef59a8f4b0ca023fc4b0b8cbc40de0ad29f46edd50b897c6e7fba79366a0217e3f48e2da8975056f6c35cfe19d9cc48f1d03c1dd + languageName: node + linkType: hard + +"@humanwhocodes/retry@npm:^0.4.1": + version: 0.4.1 + resolution: "@humanwhocodes/retry@npm:0.4.1" + checksum: f11167c28e8266faba470fd273cbaafe2827523492bc18c5623015adb7ed66f46b2e542e3d756fed9ca614300249267814220c2f5f03a59e07fdfa64fc14ad52 languageName: node linkType: hard @@ -4240,16 +4296,6 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: ^1.1.9 - checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 - languageName: node - linkType: hard - "@nodelib/fs.stat@npm:2.0.3, @nodelib/fs.stat@npm:^2.0.2": version: 2.0.3 resolution: "@nodelib/fs.stat@npm:2.0.3" @@ -4257,13 +4303,6 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.stat@npm:2.0.5": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 - languageName: node - linkType: hard - "@nodelib/fs.stat@npm:^1.1.2": version: 1.1.3 resolution: "@nodelib/fs.stat@npm:1.1.3" @@ -4281,16 +4320,6 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.walk@npm:^1.2.8": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: ^1.6.0 - checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 - languageName: node - linkType: hard - "@npmcli/fs@npm:^1.0.0": version: 1.0.0 resolution: "@npmcli/fs@npm:1.0.0" @@ -6317,16 +6346,6 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:^7.0.0": - version: 7.29.0 - resolution: "@types/eslint@npm:7.29.0" - dependencies: - "@types/estree": "*" - "@types/json-schema": "*" - checksum: df13991c554954353ce8f3bb03e19da6cc71916889443d68d178d4f858b561ba4cc4a4f291c6eb9eebb7f864b12b9b9313051b3a8dfea3e513dadf3188a77bdf - languageName: node - linkType: hard - "@types/eslint@npm:^7.2.6": version: 7.28.2 resolution: "@types/eslint@npm:7.28.2" @@ -6374,6 +6393,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:^1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 + languageName: node + linkType: hard + "@types/events@npm:*": version: 3.0.0 resolution: "@types/events@npm:3.0.0" @@ -6533,6 +6559,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:^7.0.15": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 + languageName: node + linkType: hard + "@types/json-schema@npm:^7.0.3, @types/json-schema@npm:^7.0.5": version: 7.0.7 resolution: "@types/json-schema@npm:7.0.7" @@ -6540,13 +6573,6 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.9": - version: 7.0.11 - resolution: "@types/json-schema@npm:7.0.11" - checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d - languageName: node - linkType: hard - "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" @@ -6891,6 +6917,27 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/eslint-plugin@npm:8.18.0": + version: 8.18.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.18.0" + dependencies: + "@eslint-community/regexpp": ^4.10.0 + "@typescript-eslint/scope-manager": 8.18.0 + "@typescript-eslint/type-utils": 8.18.0 + "@typescript-eslint/utils": 8.18.0 + "@typescript-eslint/visitor-keys": 8.18.0 + graphemer: ^1.4.0 + ignore: ^5.3.1 + natural-compare: ^1.4.0 + ts-api-utils: ^1.3.0 + peerDependencies: + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 0d40e5426a233ddbe0cf517e1fb7a78b231882f676542ff50ae949b8301c20cffdcacd2daf05e893e119d361642625b777883ce26145ea5f3df2177569a51379 + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^4.5.0": version: 4.33.0 resolution: "@typescript-eslint/eslint-plugin@npm:4.33.0" @@ -6913,29 +6960,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^7.13.0": - version: 7.13.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.13.0" - dependencies: - "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 7.13.0 - "@typescript-eslint/type-utils": 7.13.0 - "@typescript-eslint/utils": 7.13.0 - "@typescript-eslint/visitor-keys": 7.13.0 - graphemer: ^1.4.0 - ignore: ^5.3.1 - natural-compare: ^1.4.0 - ts-api-utils: ^1.3.0 - peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 8bb62f7d4ab3af3656e564c0dd164316e1518475e34a65495b8b2ff816ce24e6df9b1b1d3616bc128fe1d6f26247a04b01513d99e69e2cf0a8048f32b67d58c5 - languageName: node - linkType: hard - "@typescript-eslint/experimental-utils@npm:4.33.0, @typescript-eslint/experimental-utils@npm:^4.0.1": version: 4.33.0 resolution: "@typescript-eslint/experimental-utils@npm:4.33.0" @@ -6967,6 +6991,22 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:8.18.0": + version: 8.18.0 + resolution: "@typescript-eslint/parser@npm:8.18.0" + dependencies: + "@typescript-eslint/scope-manager": 8.18.0 + "@typescript-eslint/types": 8.18.0 + "@typescript-eslint/typescript-estree": 8.18.0 + "@typescript-eslint/visitor-keys": 8.18.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 8d95c49440001436dfdbcd64f7fe845ff05777aa8e314c91b3fdb7d8dfb91a42b3bf62b0be16967845d1a1ef70d25aa9fc29ff79b7a0d6474ea121a9fac1f5c0 + languageName: node + linkType: hard + "@typescript-eslint/parser@npm:^4.5.0": version: 4.33.0 resolution: "@typescript-eslint/parser@npm:4.33.0" @@ -6984,21 +7024,19 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^7.13.0": - version: 7.13.0 - resolution: "@typescript-eslint/parser@npm:7.13.0" +"@typescript-eslint/rule-tester@npm:^8.5.0": + version: 8.18.0 + resolution: "@typescript-eslint/rule-tester@npm:8.18.0" dependencies: - "@typescript-eslint/scope-manager": 7.13.0 - "@typescript-eslint/types": 7.13.0 - "@typescript-eslint/typescript-estree": 7.13.0 - "@typescript-eslint/visitor-keys": 7.13.0 - debug: ^4.3.4 + "@typescript-eslint/typescript-estree": 8.18.0 + "@typescript-eslint/utils": 8.18.0 + ajv: ^6.12.6 + json-stable-stringify-without-jsonify: ^1.0.1 + lodash.merge: 4.6.2 + semver: ^7.6.0 peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: dd7ef8380d954bb073b9d5d9f785fdc46a109d2938691f9b5fa6c227bd808bb64d8afc6ccccf217d3499deb8947d2f22ed51862e2e9563987ba3e225c58583a3 + eslint: ^8.57.0 || ^9.0.0 + checksum: 95d77ccec37d9ccdae55784f281bda1e660d717831891fc9bdb68a3b9ac3f49fc5f81a6b9298fd4b62130b8d483bfdb1bb34ae497bccada1a7055e3a9b7d0c0f languageName: node linkType: hard @@ -7012,40 +7050,28 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.32.0": - version: 5.32.0 - resolution: "@typescript-eslint/scope-manager@npm:5.32.0" - dependencies: - "@typescript-eslint/types": 5.32.0 - "@typescript-eslint/visitor-keys": 5.32.0 - checksum: 69bdeb029f39d1112299dc0cb0ddef30e51bdb782fdb79cc4e72fa448e00d71e39938d3bff3fa4ee43b3416c2e3b4564de2c37252914772b07eeedafb14412d6 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:7.13.0": - version: 7.13.0 - resolution: "@typescript-eslint/scope-manager@npm:7.13.0" +"@typescript-eslint/scope-manager@npm:8.18.0": + version: 8.18.0 + resolution: "@typescript-eslint/scope-manager@npm:8.18.0" dependencies: - "@typescript-eslint/types": 7.13.0 - "@typescript-eslint/visitor-keys": 7.13.0 - checksum: fb9663f414985e0fecd0952a9c5ff2a2e2b975cc7eb07a3fa13243b30d8aa67f9b707d636aa050b673b50a6b63aa8b5ba78a64f712e801e23f9c86e1896c3f21 + "@typescript-eslint/types": 8.18.0 + "@typescript-eslint/visitor-keys": 8.18.0 + checksum: d01f36ca17a2ffa9873851bf823942d254ab826ef3581d9104c1eee944a3e6fcebec60f521bfb65a6ee11efc11acdf2469706a4371bed9fec893009802b5cb45 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.13.0": - version: 7.13.0 - resolution: "@typescript-eslint/type-utils@npm:7.13.0" +"@typescript-eslint/type-utils@npm:8.18.0": + version: 8.18.0 + resolution: "@typescript-eslint/type-utils@npm:8.18.0" dependencies: - "@typescript-eslint/typescript-estree": 7.13.0 - "@typescript-eslint/utils": 7.13.0 + "@typescript-eslint/typescript-estree": 8.18.0 + "@typescript-eslint/utils": 8.18.0 debug: ^4.3.4 ts-api-utils: ^1.3.0 peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 5f325fc325b166853444354e254c0d7fbb15dde2a61bbf63313cc58cb7a0546023241848671f216c268f1b87dce9c1e40b89dccae1846f2662e2cf2c99a83aef + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 60456e3cfb8cb49236bca886e0b94a3568c2ce0b1a370d71b071479f43b209489ecc959f21a7d55a0f6ec9afefdb3a7a2abdba2fd44969e1ddf28a99c88bb60a languageName: node linkType: hard @@ -7063,17 +7089,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:5.32.0": - version: 5.32.0 - resolution: "@typescript-eslint/types@npm:5.32.0" - checksum: 6758f54d8d7763893cd7c1753f525ef1777eee8b558bf3d54fd2a2ce691ca0cf813c68a26e4db83a1deae4e4a62b247f1195e15a1f3577f1293849f9e55a232c - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:7.13.0": - version: 7.13.0 - resolution: "@typescript-eslint/types@npm:7.13.0" - checksum: 1b81398bf4d0cb2602220d3a64f3bb74cd7b1e3e75fc1aecd28b9a6d6d20314ed7dffe057db3526ef3bdaa951e401443bb82e034cdebee79b28ea3b4ca9ff50f +"@typescript-eslint/types@npm:8.18.0": + version: 8.18.0 + resolution: "@typescript-eslint/types@npm:8.18.0" + checksum: fec2dbb356608d7538868c58b0de71851b7b2cea4ebb752cd4acdd217e0d54d19d6230344e9867559ea67dd6655fde6f2460be23f206aea487cc295c28eb6191 languageName: node linkType: hard @@ -7114,70 +7133,36 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.32.0": - version: 5.32.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.32.0" - dependencies: - "@typescript-eslint/types": 5.32.0 - "@typescript-eslint/visitor-keys": 5.32.0 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - semver: ^7.3.7 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 6aee08be5d36603d038fb8340f324f5cb38519150c9b37c012f0c1ff2a4d8cf22fbc6835de31d069949c2b3d8ed3e729076a724ef29db4289d9fe73b97c9d310 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:7.13.0": - version: 7.13.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.13.0" +"@typescript-eslint/typescript-estree@npm:8.18.0": + version: 8.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.18.0" dependencies: - "@typescript-eslint/types": 7.13.0 - "@typescript-eslint/visitor-keys": 7.13.0 + "@typescript-eslint/types": 8.18.0 + "@typescript-eslint/visitor-keys": 8.18.0 debug: ^4.3.4 - globby: ^11.1.0 + fast-glob: ^3.3.2 is-glob: ^4.0.3 minimatch: ^9.0.4 semver: ^7.6.0 ts-api-utils: ^1.3.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 5a410db27ddb514344414a579e9f81a0db0e7e9f579aa624ace223655b905705a37510992a94924d9ead3c4c84c9357cf5358599036f7c44f50b56b54a791d82 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:7.13.0": - version: 7.13.0 - resolution: "@typescript-eslint/utils@npm:7.13.0" - dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 7.13.0 - "@typescript-eslint/types": 7.13.0 - "@typescript-eslint/typescript-estree": 7.13.0 peerDependencies: - eslint: ^8.56.0 - checksum: d57c60767949e3ea9d9b33de69a18396fea0e5d2eeb13ef8bbdcfe9c8fae62bf5af25f571b1b7c480362ddb9ccd8f811df4330af595b32a46bf0b8b8ce9b598e + typescript: ">=4.8.4 <5.8.0" + checksum: 2b04a9eb1d942ee26358f411ed6df26b36366ec93d6e3d1ab94f27915c23531e01edb94456ae1d47086e7180dc94d0027035ab08d377469fe01ffa621bfaf96f languageName: node linkType: hard -"@typescript-eslint/utils@npm:^5.25.0": - version: 5.32.0 - resolution: "@typescript-eslint/utils@npm:5.32.0" +"@typescript-eslint/utils@npm:8.18.0, @typescript-eslint/utils@npm:^8.5.0": + version: 8.18.0 + resolution: "@typescript-eslint/utils@npm:8.18.0" dependencies: - "@types/json-schema": ^7.0.9 - "@typescript-eslint/scope-manager": 5.32.0 - "@typescript-eslint/types": 5.32.0 - "@typescript-eslint/typescript-estree": 5.32.0 - eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 + "@eslint-community/eslint-utils": ^4.4.0 + "@typescript-eslint/scope-manager": 8.18.0 + "@typescript-eslint/types": 8.18.0 + "@typescript-eslint/typescript-estree": 8.18.0 peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: cfd88d93508c8fb0db17d2726691e1383db390357fa0637bd8111558fbe72da5130d995294001d71b1d929d620fbce3f20a70b277a77ca21a4241b3b470dc758 + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 8da7419ae53944a3efc99e33df8fa651303ff736338ed101eae0f64fe53661ad947784ff769ca8589c9803a099dd6d43e891fbedec5212a2b2ea031f0218eb56 languageName: node linkType: hard @@ -7200,30 +7185,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.32.0": - version: 5.32.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.32.0" +"@typescript-eslint/visitor-keys@npm:8.18.0": + version: 8.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.18.0" dependencies: - "@typescript-eslint/types": 5.32.0 - eslint-visitor-keys: ^3.3.0 - checksum: 1f9b756d648c2346a6e8538ffde729d3d9ce6621fded3d9f15c96aa0ebf8f511daf8232470423fb36359c2113538a4daaf3336181be78a0cfbfd297af91ce9ba - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:7.13.0": - version: 7.13.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.13.0" - dependencies: - "@typescript-eslint/types": 7.13.0 - eslint-visitor-keys: ^3.4.3 - checksum: 23d48e1c1b9e16e5a867615ffe7111f637224b79bd738f94282b610a0b6b7bf5e436e1422e82395243d0f58714353fc613a11ea671bb217ea99d710f93ab6a26 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 + "@typescript-eslint/types": 8.18.0 + eslint-visitor-keys: ^4.2.0 + checksum: bf4c45bb3bdfd2bc4df86bc50649e8a9734d294a80fb9a78b52cc8ed247384f9d525fb0693372fd52864175fd7036069c5f59b920c12f0ee34d52c2ab0332841 languageName: node linkType: hard @@ -7607,7 +7575,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.8.1, acorn@npm:^8.9.0": +"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.8.1": version: 8.12.0 resolution: "acorn@npm:8.12.0" bin: @@ -7616,6 +7584,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.14.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" + bin: + acorn: bin/acorn + checksum: 8755074ba55fff94e84e81c72f1013c2d9c78e973c31231c8ae505a5f966859baf654bddd75046bffd73ce816b149298977fff5077a3033dedba0ae2aad152d4 + languageName: node + linkType: hard + "acorn@npm:^8.2.4": version: 8.6.0 resolution: "acorn@npm:8.6.0" @@ -7758,7 +7735,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.5": +"ajv@npm:^6.12.5, ajv@npm:^6.12.6": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -8376,19 +8353,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.toreversed@npm:^1.1.2": - version: 1.1.2 - resolution: "array.prototype.toreversed@npm:1.1.2" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: 58598193426282155297bedf950dc8d464624a0d81659822fb73124286688644cb7e0e4927a07f3ab2daaeb6617b647736cc3a5e6ca7ade5bb8e573b284e6240 - languageName: node - linkType: hard - -"array.prototype.tosorted@npm:^1.1.3": +"array.prototype.tosorted@npm:^1.1.4": version: 1.1.4 resolution: "array.prototype.tosorted@npm:1.1.4" dependencies: @@ -9846,6 +9811,16 @@ __metadata: languageName: node linkType: hard +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1": + version: 1.0.1 + resolution: "call-bind-apply-helpers@npm:1.0.1" + dependencies: + es-errors: ^1.3.0 + function-bind: ^1.1.2 + checksum: 3c55343261bb387c58a4762d15ad9d42053659a62681ec5eb50690c6b52a4a666302a01d557133ce6533e8bd04530ee3b209f23dd06c9577a1925556f8fcccdf + languageName: node + linkType: hard + "call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": version: 1.0.2 resolution: "call-bind@npm:1.0.2" @@ -9869,6 +9844,28 @@ __metadata: languageName: node linkType: hard +"call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: ^1.0.0 + es-define-property: ^1.0.0 + get-intrinsic: ^1.2.4 + set-function-length: ^1.2.2 + checksum: aa2899bce917a5392fd73bd32e71799c37c0b7ab454e0ed13af7f6727549091182aade8bbb7b55f304a5bc436d543241c14090fb8a3137e9875e23f444f4f5a9 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bound@npm:1.0.2" + dependencies: + call-bind: ^1.0.8 + get-intrinsic: ^1.2.5 + checksum: 6f0020b8848307446ed410d0dcf40470b3c16d96a26d8d8bba2ea5bc1582f9bdfc49945cf270698495d4c0f422ad56d243a336855cfb0260feabf72952238cf8 + languageName: node + linkType: hard + "call-me-maybe@npm:^1.0.1": version: 1.0.1 resolution: "call-me-maybe@npm:1.0.1" @@ -11188,6 +11185,17 @@ __metadata: languageName: node linkType: hard +"cross-spawn@npm:^7.0.6": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b + languageName: node + linkType: hard + "cryptiles@npm:2.x.x": version: 2.0.5 resolution: "cryptiles@npm:2.0.5" @@ -12543,6 +12551,17 @@ __metadata: languageName: node linkType: hard +"dunder-proto@npm:^1.0.0": + version: 1.0.0 + resolution: "dunder-proto@npm:1.0.0" + dependencies: + call-bind-apply-helpers: ^1.0.0 + es-errors: ^1.3.0 + gopd: ^1.2.0 + checksum: 6f0697b17c47377efc00651f43f34e71c09ebba85fafb4d91fe67f5810931f3fa3f45a1ef5d207debbd5682ad9abc3b71b49cb3e67222dcad71fafc92cf6199b + languageName: node + linkType: hard + "duplexer2@npm:^0.1.2": version: 0.1.4 resolution: "duplexer2@npm:0.1.4" @@ -12716,8 +12735,6 @@ __metadata: "@types/jest": ^29.5.12 "@types/node": ^12.20.37 "@types/react": 18.3.12 - "@typescript-eslint/eslint-plugin": ^7.13.0 - "@typescript-eslint/parser": ^7.13.0 babel-check-duplicated-nodes: ^1.0.0 babel-eslint: ^10.1.0 babel-jest: ^29.7.0 @@ -12731,14 +12748,14 @@ __metadata: enzyme: ^3.11.0 enzyme-adapter-react-16: ^1.15.5 enzyme-to-json: ^3.6.1 - eslint: ^8.57.0 + eslint: ^9.10.0 eslint-config-prettier: ^9.1.0 eslint-config-react: ^1.1.7 - eslint-plugin-node: ^11.1.0 - eslint-plugin-prettier: ^5.1.3 - eslint-plugin-promise: ^6.2.0 - eslint-plugin-react: ^7.34.2 + eslint-plugin-prettier: ^5.2.1 + eslint-plugin-promise: ^6.4.0 + eslint-plugin-react: ^7.35.2 eslint-plugin-react-hooks: ^4.6.2 + globals: ^15.9.0 html-tag-names: ^1.1.2 husky: ^3.0.9 jest: ^29.7.0 @@ -12767,6 +12784,7 @@ __metadata: svg-tag-names: ^1.1.1 through: ^2.3.8 typescript: ^5.4.5 + typescript-eslint: ^8.3.0 unified: ^6.1.6 webpack-bundle-analyzer: 3.3.2 languageName: unknown @@ -13165,7 +13183,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.1, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": +"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": version: 1.23.3 resolution: "es-abstract@npm:1.23.3" dependencies: @@ -13219,6 +13237,60 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.23.5": + version: 1.23.5 + resolution: "es-abstract@npm:1.23.5" + dependencies: + array-buffer-byte-length: ^1.0.1 + arraybuffer.prototype.slice: ^1.0.3 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 + data-view-buffer: ^1.0.1 + data-view-byte-length: ^1.0.1 + data-view-byte-offset: ^1.0.0 + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-set-tostringtag: ^2.0.3 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.6 + get-intrinsic: ^1.2.4 + get-symbol-description: ^1.0.2 + globalthis: ^1.0.4 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.2 + has-proto: ^1.0.3 + has-symbols: ^1.0.3 + hasown: ^2.0.2 + internal-slot: ^1.0.7 + is-array-buffer: ^3.0.4 + is-callable: ^1.2.7 + is-data-view: ^1.0.1 + is-negative-zero: ^2.0.3 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.3 + is-string: ^1.0.7 + is-typed-array: ^1.1.13 + is-weakref: ^1.0.2 + object-inspect: ^1.13.3 + object-keys: ^1.1.1 + object.assign: ^4.1.5 + regexp.prototype.flags: ^1.5.3 + safe-array-concat: ^1.1.2 + safe-regex-test: ^1.0.3 + string.prototype.trim: ^1.2.9 + string.prototype.trimend: ^1.0.8 + string.prototype.trimstart: ^1.0.8 + typed-array-buffer: ^1.0.2 + typed-array-byte-length: ^1.0.1 + typed-array-byte-offset: ^1.0.2 + typed-array-length: ^1.0.6 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.15 + checksum: 17c81f8a42f0322fd11e0025d3c2229ecfd7923560c710906b8e68660e19c42322750dcedf8ba5cf28bae50d5befd8174d3903ac50dbabb336d3efc3aabed2ee + languageName: node + linkType: hard + "es-define-property@npm:^1.0.0": version: 1.0.0 resolution: "es-define-property@npm:1.0.0" @@ -13228,6 +13300,13 @@ __metadata: languageName: node linkType: hard +"es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 0512f4e5d564021c9e3a644437b0155af2679d10d80f21adaf868e64d30efdfbd321631956f20f42d655fedb2e3a027da479fad3fa6048f768eb453a80a5f80a + languageName: node + linkType: hard + "es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" @@ -13235,9 +13314,9 @@ __metadata: languageName: node linkType: hard -"es-iterator-helpers@npm:^1.0.19": - version: 1.0.19 - resolution: "es-iterator-helpers@npm:1.0.19" +"es-iterator-helpers@npm:^1.1.0": + version: 1.2.0 + resolution: "es-iterator-helpers@npm:1.2.0" dependencies: call-bind: ^1.0.7 define-properties: ^1.2.1 @@ -13246,14 +13325,15 @@ __metadata: es-set-tostringtag: ^2.0.3 function-bind: ^1.1.2 get-intrinsic: ^1.2.4 - globalthis: ^1.0.3 + globalthis: ^1.0.4 + gopd: ^1.0.1 has-property-descriptors: ^1.0.2 has-proto: ^1.0.3 has-symbols: ^1.0.3 internal-slot: ^1.0.7 - iterator.prototype: ^1.1.2 + iterator.prototype: ^1.1.3 safe-array-concat: ^1.1.2 - checksum: 7ae112b88359fbaf4b9d7d1d1358ae57c5138768c57ba3a8fb930393662653b0512bfd7917c15890d1471577fb012fee8b73b4465e59b331739e6ee94f961683 + checksum: c5f5ff10d57f956539581aca7a2d8726c5a8a3e49e6285700d74dcd8b64c7a337b9ab5e81b459b079dac745d2fe02e4f6b80a842e3df45d9cfe3f12325fda8c0 languageName: node linkType: hard @@ -13491,18 +13571,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-es@npm:^3.0.0": - version: 3.0.1 - resolution: "eslint-plugin-es@npm:3.0.1" - dependencies: - eslint-utils: ^2.0.0 - regexpp: ^3.0.0 - peerDependencies: - eslint: ">=4.19.1" - checksum: e57592c52301ee8ddc296ae44216df007f3a870bcb3be8d1fbdb909a1d3a3efe3fa3785de02066f9eba1d6466b722d3eb3cc3f8b75b3cf6a1cbded31ac6298e4 - languageName: node - linkType: hard - "eslint-plugin-flowtype@npm:^5.2.0": version: 5.2.0 resolution: "eslint-plugin-flowtype@npm:5.2.0" @@ -13574,28 +13642,12 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-node@npm:^11.1.0": - version: 11.1.0 - resolution: "eslint-plugin-node@npm:11.1.0" - dependencies: - eslint-plugin-es: ^3.0.0 - eslint-utils: ^2.0.0 - ignore: ^5.1.1 - minimatch: ^3.0.4 - resolve: ^1.10.1 - semver: ^6.1.0 - peerDependencies: - eslint: ">=5.16.0" - checksum: 5804c4f8a6e721f183ef31d46fbe3b4e1265832f352810060e0502aeac7de034df83352fc88643b19641bb2163f2587f1bd4119aff0fd21e8d98c57c450e013b - languageName: node - linkType: hard - -"eslint-plugin-prettier@npm:^5.1.3": - version: 5.1.3 - resolution: "eslint-plugin-prettier@npm:5.1.3" +"eslint-plugin-prettier@npm:^5.2.1": + version: 5.2.1 + resolution: "eslint-plugin-prettier@npm:5.2.1" dependencies: prettier-linter-helpers: ^1.0.0 - synckit: ^0.8.6 + synckit: ^0.9.1 peerDependencies: "@types/eslint": ">=8.0.0" eslint: ">=8.0.0" @@ -13606,16 +13658,16 @@ __metadata: optional: true eslint-config-prettier: optional: true - checksum: eb2a7d46a1887e1b93788ee8f8eb81e0b6b2a6f5a66a62bc6f375b033fc4e7ca16448da99380be800042786e76cf5c0df9c87a51a2c9b960ed47acbd7c0b9381 + checksum: 812f4d1596dcd3a55963212dfbd818a4b38f880741aac75f6869aa740dc5d934060674d3b85d10ff9fec424defa61967dbdef26b8a893a92c9b51880264ed0d9 languageName: node linkType: hard -"eslint-plugin-promise@npm:^6.2.0": - version: 6.2.0 - resolution: "eslint-plugin-promise@npm:6.2.0" +"eslint-plugin-promise@npm:^6.4.0": + version: 6.6.0 + resolution: "eslint-plugin-promise@npm:6.6.0" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 4ce2ee365044aaeac7feb7c4b62f7d432594960bf96be703f871fa5fdd61f358d6620222e7c907f7ee43ff54b0b2ff392c1f70680bce335f6396c8c7af79c141 + checksum: 5098fbf38585ad411737c389c462df72b11a7db2f0241eca23cf990e5535a2de3fac7fb24258c3e6bf05433ef2a59425ec1ca1cef456360614eb7cdbfefcec66 languageName: node linkType: hard @@ -13661,31 +13713,31 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react@npm:^7.34.2": - version: 7.34.2 - resolution: "eslint-plugin-react@npm:7.34.2" +"eslint-plugin-react@npm:^7.35.2": + version: 7.37.2 + resolution: "eslint-plugin-react@npm:7.37.2" dependencies: array-includes: ^3.1.8 array.prototype.findlast: ^1.2.5 array.prototype.flatmap: ^1.3.2 - array.prototype.toreversed: ^1.1.2 - array.prototype.tosorted: ^1.1.3 + array.prototype.tosorted: ^1.1.4 doctrine: ^2.1.0 - es-iterator-helpers: ^1.0.19 + es-iterator-helpers: ^1.1.0 estraverse: ^5.3.0 + hasown: ^2.0.2 jsx-ast-utils: ^2.4.1 || ^3.0.0 minimatch: ^3.1.2 object.entries: ^1.1.8 object.fromentries: ^2.0.8 - object.hasown: ^1.1.4 object.values: ^1.2.0 prop-types: ^15.8.1 resolve: ^2.0.0-next.5 semver: ^6.3.1 string.prototype.matchall: ^4.0.11 + string.prototype.repeat: ^1.0.0 peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: aed331239f3a64fcd884380534ece4b8716f1eca4899c8636d04306879e6b4e7339e28e427bdd571d372b78b713025e0767e5f5b5486a8d19bff82616ebe8959 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 7f5203afee7fbe3702b27fdd2b9a3c0ccbbb47d0672f58311b9d8a08dea819c9da4a87c15e8bd508f2562f327a9d29ee8bd9cd189bf758d8dc903de5648b0bfa languageName: node linkType: hard @@ -13720,13 +13772,13 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" +"eslint-scope@npm:^8.2.0": + version: 8.2.0 + resolution: "eslint-scope@npm:8.2.0" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e + checksum: 750eff4672ca2bf274ec0d1bbeae08aadd53c1907d5c6aff5564d8e047a5f49afa8ae6eee333cab637fd3ebcab2141659d8f2f040f6fdc982b0f61f8bf03136f languageName: node linkType: hard @@ -13778,10 +13830,10 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 779c604672b570bb4da84cef32f6abb085ac78379779c1122d7879eade8bb38ae715645324597cf23232d03cef06032c9844d25c73625bc282a5bfd30247e5b5 languageName: node linkType: hard @@ -13852,51 +13904,63 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" +"eslint@npm:^9.10.0": + version: 9.17.0 + resolution: "eslint@npm:9.17.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.4 - "@eslint/js": 8.57.0 - "@humanwhocodes/config-array": ^0.11.14 + "@eslint-community/regexpp": ^4.12.1 + "@eslint/config-array": ^0.19.0 + "@eslint/core": ^0.9.0 + "@eslint/eslintrc": ^3.2.0 + "@eslint/js": 9.17.0 + "@eslint/plugin-kit": ^0.2.3 + "@humanfs/node": ^0.16.6 "@humanwhocodes/module-importer": ^1.0.1 - "@nodelib/fs.walk": ^1.2.8 - "@ungap/structured-clone": ^1.2.0 + "@humanwhocodes/retry": ^0.4.1 + "@types/estree": ^1.0.6 + "@types/json-schema": ^7.0.15 ajv: ^6.12.4 chalk: ^4.0.0 - cross-spawn: ^7.0.2 + cross-spawn: ^7.0.6 debug: ^4.3.2 - doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.3 - espree: ^9.6.1 - esquery: ^1.4.2 + eslint-scope: ^8.2.0 + eslint-visitor-keys: ^4.2.0 + espree: ^10.3.0 + esquery: ^1.5.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 + file-entry-cache: ^8.0.0 find-up: ^5.0.0 glob-parent: ^6.0.2 - globals: ^13.19.0 - graphemer: ^1.4.0 ignore: ^5.2.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 - is-path-inside: ^3.0.3 - js-yaml: ^4.1.0 json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 lodash.merge: ^4.6.2 minimatch: ^3.1.2 natural-compare: ^1.4.0 optionator: ^0.9.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true bin: eslint: bin/eslint.js - checksum: 3a48d7ff85ab420a8447e9810d8087aea5b1df9ef68c9151732b478de698389ee656fd895635b5f2871c89ee5a2652b3f343d11e9db6f8486880374ebc74a2d9 + checksum: 0caae58c53bf4dc9b4893d75e62339e4c40fe5589652a3cb63f30a15bad1f34f8f784ca4fca471bbffedabee516a9f9620ebc33818b55e1b715e8f000865c851 + languageName: node + linkType: hard + +"espree@npm:^10.0.1, espree@npm:^10.1.0, espree@npm:^10.3.0": + version: 10.3.0 + resolution: "espree@npm:10.3.0" + dependencies: + acorn: ^8.14.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^4.2.0 + checksum: 63e8030ff5a98cea7f8b3e3a1487c998665e28d674af08b9b3100ed991670eb3cbb0e308c4548c79e03762753838fbe530c783f17309450d6b47a889fee72bef languageName: node linkType: hard @@ -13922,17 +13986,6 @@ __metadata: languageName: node linkType: hard -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: ^8.9.0 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.4.1 - checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 - languageName: node - linkType: hard - "esprima@npm:^4.0.0, esprima@npm:^4.0.1": version: 4.0.1 resolution: "esprima@npm:4.0.1" @@ -13952,12 +14005,12 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" +"esquery@npm:^1.5.0": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: ^5.1.0 - checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 languageName: node linkType: hard @@ -14471,7 +14524,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.4, fast-glob@npm:^3.2.9": +"fast-glob@npm:^3.2.4": version: 3.2.11 resolution: "fast-glob@npm:3.2.11" dependencies: @@ -14484,6 +14537,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -14640,6 +14706,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" + dependencies: + flat-cache: ^4.0.0 + checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f + languageName: node + linkType: hard + "file-loader@npm:6.1.1": version: 6.1.1 resolution: "file-loader@npm:6.1.1" @@ -14805,6 +14880,16 @@ __metadata: languageName: node linkType: hard +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" + dependencies: + flatted: ^3.2.9 + keyv: ^4.5.4 + checksum: 899fc86bf6df093547d76e7bfaeb900824b869d7d457d02e9b8aae24836f0a99fbad79328cfd6415ee8908f180699bf259dc7614f793447cb14f707caf5996f6 + languageName: node + linkType: hard + "flatted@npm:^3.1.0": version: 3.2.2 resolution: "flatted@npm:3.2.2" @@ -14812,6 +14897,13 @@ __metadata: languageName: node linkType: hard +"flatted@npm:^3.2.9": + version: 3.3.2 + resolution: "flatted@npm:3.3.2" + checksum: ac3c159742e01d0e860a861164bcfd35bb567ccbebb8a0dd041e61cf3c64a435b917dd1e7ed1c380c2ebca85735fb16644485ec33665bc6aafc3b316aa1eed44 + languageName: node + linkType: hard + "flatten@npm:^1.0.2": version: 1.0.2 resolution: "flatten@npm:1.0.2" @@ -15158,7 +15250,7 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6": +"function.prototype.name@npm:^1.1.6": version: 1.1.6 resolution: "function.prototype.name@npm:1.1.6" dependencies: @@ -15279,6 +15371,24 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6": + version: 1.2.6 + resolution: "get-intrinsic@npm:1.2.6" + dependencies: + call-bind-apply-helpers: ^1.0.1 + dunder-proto: ^1.0.0 + es-define-property: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + function-bind: ^1.1.2 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + hasown: ^2.0.2 + math-intrinsics: ^1.0.0 + checksum: a7592a0b7f023a2e83c0121fa9449ca83780e370a5feeebe8452119474d148016e43b455049134ae7a683b9b11b93d3f65eac199a0ad452ab740d5f0c299de47 + languageName: node + linkType: hard + "get-own-enumerable-property-symbols@npm:^3.0.0": version: 3.0.0 resolution: "get-own-enumerable-property-symbols@npm:3.0.0" @@ -15561,15 +15671,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: ^0.20.2 - checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c - languageName: node - linkType: hard - "globals@npm:^13.2.0, globals@npm:^13.6.0, globals@npm:^13.9.0": version: 13.12.0 resolution: "globals@npm:13.12.0" @@ -15579,7 +15680,21 @@ __metadata: languageName: node linkType: hard -"globalthis@npm:^1.0.3": +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 534b8216736a5425737f59f6e6a5c7f386254560c9f41d24a9227d60ee3ad4a9e82c5b85def0e212e9d92162f83a92544be4c7fd4c902cb913736c10e08237ac + languageName: node + linkType: hard + +"globals@npm:^15.9.0": + version: 15.13.0 + resolution: "globals@npm:15.13.0" + checksum: 3f98514ce25a21150b246fbd63aeaeb271a93b3340cf7f4f6e9934d3b37dbb4b0fddef9c470183097dcfd2e8757bb86bbae701588f0e376667d8d9d6f665db3b + languageName: node + linkType: hard + +"globalthis@npm:^1.0.3, globalthis@npm:^1.0.4": version: 1.0.4 resolution: "globalthis@npm:1.0.4" dependencies: @@ -15617,20 +15732,6 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: ^2.1.0 - dir-glob: ^3.0.1 - fast-glob: ^3.2.9 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^3.0.0 - checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 - languageName: node - linkType: hard - "globby@npm:^6.1.0": version: 6.1.0 resolution: "globby@npm:6.1.0" @@ -15669,6 +15770,13 @@ __metadata: languageName: node linkType: hard +"gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: cc6d8e655e360955bdccaca51a12a474268f95bb793fc3e1f2bdadb075f28bfd1fd988dab872daf77a61d78cbaf13744bc8727a17cfb1d150d76047d805375f3 + languageName: node + linkType: hard + "got@npm:^9.6.0": version: 9.6.0 resolution: "got@npm:9.6.0" @@ -15903,6 +16011,13 @@ __metadata: languageName: node linkType: hard +"has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: b2316c7302a0e8ba3aaba215f834e96c22c86f192e7310bdf689dd0e6999510c89b00fbc5742571507cebf25764d68c988b3a0da217369a73596191ac0ce694b + languageName: node + linkType: hard + "has-tostringtag@npm:^1.0.0": version: 1.0.0 resolution: "has-tostringtag@npm:1.0.0" @@ -16728,13 +16843,6 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.1": - version: 5.1.4 - resolution: "ignore@npm:5.1.4" - checksum: d7f763f4ace754f6103f07b76e774e6749128a13b7b31d96082b5cc6aeb809812c7385d8917340f621f7b8bd2f1f71e9501461045ba0b47c3e15d853c795f959 - languageName: node - linkType: hard - "ignore@npm:^5.1.4, ignore@npm:^5.1.8": version: 5.1.8 resolution: "ignore@npm:5.1.8" @@ -17175,6 +17283,15 @@ __metadata: languageName: node linkType: hard +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" + dependencies: + has-bigints: ^1.0.2 + checksum: ee1544f0e664f253306786ed1dce494b8cf242ef415d6375d8545b4d8816b0f054bd9f948a8988ae2c6325d1c28260dd02978236b2f7b8fb70dfc4838a6c9fa7 + languageName: node + linkType: hard + "is-binary-path@npm:^1.0.0": version: 1.0.1 resolution: "is-binary-path@npm:1.0.1" @@ -17209,6 +17326,16 @@ __metadata: languageName: node linkType: hard +"is-boolean-object@npm:^1.2.0": + version: 1.2.1 + resolution: "is-boolean-object@npm:1.2.1" + dependencies: + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: 2672609f0f2536172873810a38ec006a415e43ddc6a240f7638a1659cb20dfa91cc75c8a1bed36247bb046aa8f0eab945f20d1203bc69606418bd129c745f861 + languageName: node + linkType: hard + "is-buffer@npm:^1.1.4, is-buffer@npm:^1.1.5": version: 1.1.6 resolution: "is-buffer@npm:1.1.6" @@ -17362,12 +17489,13 @@ __metadata: languageName: node linkType: hard -"is-date-object@npm:^1.0.5": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" +"is-date-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: d6c36ab9d20971d65f3fc64cef940d57a4900a2ac85fb488a46d164c2072a33da1cb51eefcc039e3e5c208acbce343d3480b84ab5ff0983f617512da2742562a languageName: node linkType: hard @@ -17460,12 +17588,12 @@ __metadata: languageName: node linkType: hard -"is-finalizationregistry@npm:^1.0.2": - version: 1.0.2 - resolution: "is-finalizationregistry@npm:1.0.2" +"is-finalizationregistry@npm:^1.1.0": + version: 1.1.0 + resolution: "is-finalizationregistry@npm:1.1.0" dependencies: - call-bind: ^1.0.2 - checksum: 4f243a8e06228cd45bdab8608d2cb7abfc20f6f0189c8ac21ea8d603f1f196eabd531ce0bb8e08cbab047e9845ef2c191a3761c9a17ad5cabf8b35499c4ad35d + call-bind: ^1.0.7 + checksum: 480818ab86e112a00444410a2fd551a5363bca0c39c7bc66e29df665b1e47c803ba107227c1db86d67264a3f020779fab257061463ce02b01b6abbe5966e33b8 languageName: node linkType: hard @@ -17634,6 +17762,16 @@ __metadata: languageName: node linkType: hard +"is-number-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-number-object@npm:1.1.0" + dependencies: + call-bind: ^1.0.7 + has-tostringtag: ^1.0.2 + checksum: 965f91493e5c02a44bb9c5d8dd4ae40da20bd9bd1cff9cd92e2f2e66a486935a0a01f8a4744eab033c450888f01a4ec3226e1c75bbcff973ce12d06ed79eb17b + languageName: node + linkType: hard + "is-number@npm:^3.0.0": version: 3.0.0 resolution: "is-number@npm:3.0.0" @@ -17691,13 +17829,6 @@ __metadata: languageName: node linkType: hard -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 - languageName: node - linkType: hard - "is-plain-obj@npm:^1.0.0, is-plain-obj@npm:^1.1.0": version: 1.1.0 resolution: "is-plain-obj@npm:1.1.0" @@ -17812,6 +17943,18 @@ __metadata: languageName: node linkType: hard +"is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" + dependencies: + call-bound: ^1.0.2 + gopd: ^1.2.0 + has-tostringtag: ^1.0.2 + hasown: ^2.0.2 + checksum: 99ee0b6d30ef1bb61fa4b22fae7056c6c9b3c693803c0c284ff7a8570f83075a7d38cda53b06b7996d441215c27895ea5d1af62124562e13d91b3dbec41a5e13 + languageName: node + linkType: hard + "is-regexp@npm:^1.0.0": version: 1.0.0 resolution: "is-regexp@npm:1.0.0" @@ -17886,6 +18029,16 @@ __metadata: languageName: node linkType: hard +"is-string@npm:^1.1.0": + version: 1.1.0 + resolution: "is-string@npm:1.1.0" + dependencies: + call-bind: ^1.0.7 + has-tostringtag: ^1.0.2 + checksum: 1e330e9fe0984cdf37371f704f9babf9b56d50b1e9d2e6c19b8b78443be3e9771c33309b4aadde9ba2a8870769374538681e01f54113a335dd393c80a72e7d11 + languageName: node + linkType: hard + "is-subdir@npm:^1.1.1": version: 1.1.1 resolution: "is-subdir@npm:1.1.1" @@ -17929,6 +18082,17 @@ __metadata: languageName: node linkType: hard +"is-symbol@npm:^1.1.0": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" + dependencies: + call-bound: ^1.0.2 + has-symbols: ^1.1.0 + safe-regex-test: ^1.1.0 + checksum: bfafacf037af6f3c9d68820b74be4ae8a736a658a3344072df9642a090016e281797ba8edbeb1c83425879aae55d1cb1f30b38bf132d703692b2570367358032 + languageName: node + linkType: hard + "is-typed-array@npm:^1.1.13": version: 1.1.13 resolution: "is-typed-array@npm:1.1.13" @@ -18172,16 +18336,17 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.2": - version: 1.1.2 - resolution: "iterator.prototype@npm:1.1.2" +"iterator.prototype@npm:^1.1.3": + version: 1.1.4 + resolution: "iterator.prototype@npm:1.1.4" dependencies: - define-properties: ^1.2.1 - get-intrinsic: ^1.2.1 - has-symbols: ^1.0.3 - reflect.getprototypeof: ^1.0.4 - set-function-name: ^2.0.1 - checksum: d8a507e2ccdc2ce762e8a1d3f4438c5669160ac72b88b648e59a688eec6bc4e64b22338e74000518418d9e693faf2a092d2af21b9ec7dbf7763b037a54701168 + define-data-property: ^1.1.4 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.6 + has-symbols: ^1.1.0 + reflect.getprototypeof: ^1.0.8 + set-function-name: ^2.0.2 + checksum: e2b1f0f7678cf6ff02b74085dbd708bdfb6c18357af46cedc18a34e08d066c9b26e9dfb7dd2619dc199d17e681f30200b122425f793e9ad0105671191433d50f languageName: node linkType: hard @@ -19638,6 +19803,13 @@ __metadata: languageName: node linkType: hard +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + languageName: node + linkType: hard + "json-parse-better-errors@npm:^1.0.1, json-parse-better-errors@npm:^1.0.2": version: 1.0.2 resolution: "json-parse-better-errors@npm:1.0.2" @@ -19825,6 +19997,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.5.4": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + languageName: node + linkType: hard + "killable@npm:^1.0.1": version: 1.0.1 resolution: "killable@npm:1.0.1" @@ -20376,7 +20557,7 @@ __metadata: languageName: node linkType: hard -"lodash.merge@npm:^4.6.2": +"lodash.merge@npm:4.6.2, lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 @@ -20757,6 +20938,13 @@ __metadata: languageName: node linkType: hard +"math-intrinsics@npm:^1.0.0": + version: 1.0.0 + resolution: "math-intrinsics@npm:1.0.0" + checksum: ad9edf8b5bec32c78d25163a9343dbe960331c8b4815b099181de7be4681e5abff9642a4b2fbeb3e882d7616567ffc45a5bae59dc8fec417cf5c76d47b92b197 + languageName: node + linkType: hard + "md5.js@npm:^1.3.4": version: 1.3.5 resolution: "md5.js@npm:1.3.5" @@ -21085,7 +21273,7 @@ __metadata: languageName: node linkType: hard -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": +"merge2@npm:^1.3.0": version: 1.4.1 resolution: "merge2@npm:1.4.1" checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 @@ -22120,7 +22308,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.5, minimatch@npm:^3.1.2": +"minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -23328,6 +23516,13 @@ __metadata: languageName: node linkType: hard +"object-inspect@npm:^1.13.3": + version: 1.13.3 + resolution: "object-inspect@npm:1.13.3" + checksum: 8c962102117241e18ea403b84d2521f78291b774b03a29ee80a9863621d88265ffd11d0d7e435c4c2cea0dc2a2fbf8bbc92255737a05536590f2df2e8756f297 + languageName: node + linkType: hard + "object-inspect@npm:^1.7.0, object-inspect@npm:^1.8.0": version: 1.8.0 resolution: "object-inspect@npm:1.8.0" @@ -23512,17 +23707,6 @@ __metadata: languageName: node linkType: hard -"object.hasown@npm:^1.1.4": - version: 1.1.4 - resolution: "object.hasown@npm:1.1.4" - dependencies: - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-object-atoms: ^1.0.0 - checksum: bc46eb5ca22106fcd07aab1411508c2c68b7565fe8fb272f166fb9bf203972e8b5c86a5a4b2c86204beead0626a7a4119d32cefbaf7c5dd57b400bf9e6363cb6 - languageName: node - linkType: hard - "object.pick@npm:^1.3.0": version: 1.3.0 resolution: "object.pick@npm:1.3.0" @@ -26736,18 +26920,19 @@ __metadata: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.4": - version: 1.0.6 - resolution: "reflect.getprototypeof@npm:1.0.6" +"reflect.getprototypeof@npm:^1.0.8": + version: 1.0.8 + resolution: "reflect.getprototypeof@npm:1.0.8" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 define-properties: ^1.2.1 - es-abstract: ^1.23.1 + dunder-proto: ^1.0.0 + es-abstract: ^1.23.5 es-errors: ^1.3.0 get-intrinsic: ^1.2.4 - globalthis: ^1.0.3 - which-builtin-type: ^1.1.3 - checksum: 88e9e65a7eaa0bf8e9a8bbf8ac07571363bc333ba8b6769ed5e013e0042ed7c385e97fae9049510b3b5fe4b42472d8f32de9ce8ce84902bc4297d4bbe3777dba + gopd: ^1.2.0 + which-builtin-type: ^1.2.0 + checksum: d7dcbe34bec80f50e2b2f824af83302aae2520863b56b967052ade76402cddcb61933690931d567b973ff7635ae39ff655237ad9cdb2be755190eace95c1768b languageName: node linkType: hard @@ -26864,10 +27049,15 @@ __metadata: languageName: node linkType: hard -"regexpp@npm:^3.0.0": - version: 3.0.0 - resolution: "regexpp@npm:3.0.0" - checksum: 5e0056050baa01f34a0594c88989e6bad5710b63311b4a0ef07cff3a510ce75fc3f5b1d72a326e8c2d586b1139315965e52a3798ea8e9b2e27070fdef0888f62 +"regexp.prototype.flags@npm:^1.5.3": + version: 1.5.3 + resolution: "regexp.prototype.flags@npm:1.5.3" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-errors: ^1.3.0 + set-function-name: ^2.0.2 + checksum: 83ff0705b837f7cb6d664010a11642250f36d3f642263dd0f3bdfe8f150261aa7b26b50ee97f21c1da30ef82a580bb5afedbef5f45639d69edaafbeac9bbb0ed languageName: node linkType: hard @@ -27314,7 +27504,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.3.2, resolve@npm:^1.5.0": +"resolve@npm:^1.10.0, resolve@npm:^1.3.2, resolve@npm:^1.5.0": version: 1.12.0 resolution: "resolve@npm:1.12.0" dependencies: @@ -27388,7 +27578,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.10.1#~builtin, resolve@patch:resolve@^1.3.2#~builtin, resolve@patch:resolve@^1.5.0#~builtin": +"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.3.2#~builtin, resolve@patch:resolve@^1.5.0#~builtin": version: 1.12.0 resolution: "resolve@patch:resolve@npm%3A1.12.0#~builtin::version=1.12.0&hash=07638b" dependencies: @@ -27795,6 +27985,17 @@ __metadata: languageName: node linkType: hard +"safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + is-regex: ^1.2.1 + checksum: 3c809abeb81977c9ed6c869c83aca6873ea0f3ab0f806b8edbba5582d51713f8a6e9757d24d2b4b088f563801475ea946c8e77e7713e8c65cdd02305b6caedab + languageName: node + linkType: hard + "safe-regex@npm:^1.1.0": version: 1.1.0 resolution: "safe-regex@npm:1.1.0" @@ -28047,7 +28248,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.2.0, semver@npm:^6.3.0": +"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.2.0, semver@npm:^6.3.0": version: 6.3.0 resolution: "semver@npm:6.3.0" bin: @@ -28174,7 +28375,7 @@ __metadata: languageName: node linkType: hard -"set-function-length@npm:^1.2.1": +"set-function-length@npm:^1.2.1, set-function-length@npm:^1.2.2": version: 1.2.2 resolution: "set-function-length@npm:1.2.2" dependencies: @@ -29156,6 +29357,16 @@ __metadata: languageName: node linkType: hard +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" + dependencies: + define-properties: ^1.1.3 + es-abstract: ^1.17.5 + checksum: 95dfc514ed7f328d80a066dabbfbbb1615c3e51490351085409db2eb7cbfed7ea29fdadaf277647fbf9f4a1e10e6dd9e95e78c0fd2c4e6bb6723ea6e59401004 + languageName: node + linkType: hard + "string.prototype.trim@npm:^1.2.1": version: 1.2.2 resolution: "string.prototype.trim@npm:1.2.2" @@ -29632,13 +29843,13 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.8.6": - version: 0.8.8 - resolution: "synckit@npm:0.8.8" +"synckit@npm:^0.9.1": + version: 0.9.2 + resolution: "synckit@npm:0.9.2" dependencies: "@pkgr/core": ^0.1.0 tslib: ^2.6.2 - checksum: 9ed5d33abb785f5f24e2531efd53b2782ca77abf7912f734d170134552b99001915531be5a50297aa45c5701b5c9041e8762e6cd7a38e41e2461c1e7fccdedf8 + checksum: 3a30e828efbdcf3b50fccab4da6e90ea7ca24d8c5c2ad3ffe98e07d7c492df121e0f75227c6e510f96f976aae76f1fa4710cb7b1d69db881caf66ef9de89360e languageName: node linkType: hard @@ -30506,6 +30717,20 @@ __metadata: languageName: node linkType: hard +"typescript-eslint@npm:^8.3.0": + version: 8.18.0 + resolution: "typescript-eslint@npm:8.18.0" + dependencies: + "@typescript-eslint/eslint-plugin": 8.18.0 + "@typescript-eslint/parser": 8.18.0 + "@typescript-eslint/utils": 8.18.0 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 68002f2528589a0b8130d2374503e4c96afef370a2aaa33d20e618339561e556fe467dcec02798d6b3e62a2d5c0330843cc428bf84897d27462d332aa96caa08 + languageName: node + linkType: hard + "typescript@npm:^5.4.5": version: 5.4.5 resolution: "typescript@npm:5.4.5" @@ -31826,27 +32051,41 @@ __metadata: languageName: node linkType: hard -"which-builtin-type@npm:^1.1.3": - version: 1.1.3 - resolution: "which-builtin-type@npm:1.1.3" +"which-boxed-primitive@npm:^1.1.0": + version: 1.1.0 + resolution: "which-boxed-primitive@npm:1.1.0" dependencies: - function.prototype.name: ^1.1.5 - has-tostringtag: ^1.0.0 + is-bigint: ^1.1.0 + is-boolean-object: ^1.2.0 + is-number-object: ^1.1.0 + is-string: ^1.1.0 + is-symbol: ^1.1.0 + checksum: 49ebec9693ed21ee8183b9e353ee7134a03722776c84624019964124885a4a940f469af3d1508ad83022a68cc515aecbef70fb1256ace57a871c43d24d050304 + languageName: node + linkType: hard + +"which-builtin-type@npm:^1.2.0": + version: 1.2.1 + resolution: "which-builtin-type@npm:1.2.1" + dependencies: + call-bound: ^1.0.2 + function.prototype.name: ^1.1.6 + has-tostringtag: ^1.0.2 is-async-function: ^2.0.0 - is-date-object: ^1.0.5 - is-finalizationregistry: ^1.0.2 + is-date-object: ^1.1.0 + is-finalizationregistry: ^1.1.0 is-generator-function: ^1.0.10 - is-regex: ^1.1.4 + is-regex: ^1.2.1 is-weakref: ^1.0.2 isarray: ^2.0.5 - which-boxed-primitive: ^1.0.2 - which-collection: ^1.0.1 - which-typed-array: ^1.1.9 - checksum: 43730f7d8660ff9e33d1d3f9f9451c4784265ee7bf222babc35e61674a11a08e1c2925019d6c03154fcaaca4541df43abe35d2720843b9b4cbcebdcc31408f36 + which-boxed-primitive: ^1.1.0 + which-collection: ^1.0.2 + which-typed-array: ^1.1.16 + checksum: 7a3617ba0e7cafb795f74db418df889867d12bce39a477f3ee29c6092aa64d396955bf2a64eae3726d8578440e26777695544057b373c45a8bcf5fbe920bf633 languageName: node linkType: hard -"which-collection@npm:^1.0.1": +"which-collection@npm:^1.0.2": version: 1.0.2 resolution: "which-collection@npm:1.0.2" dependencies: @@ -31875,7 +32114,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.9": +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": version: 1.1.15 resolution: "which-typed-array@npm:1.1.15" dependencies: @@ -31888,6 +32127,19 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.16": + version: 1.1.16 + resolution: "which-typed-array@npm:1.1.16" + dependencies: + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.2 + checksum: 903d398ec234d608011e1df09af6c004e66965bb24d5e1a82856cba0495fa6389ae393d1c9d5411498a9cba8e61b2e39a8e8be7b3005cbeadd317f772b1bdaef + languageName: node + linkType: hard + "which@npm:^1.2.10, which@npm:^1.2.9, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1"