diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json
index 8674d6f7b..87275e351 100644
--- a/packages/eslint-plugin/package.json
+++ b/packages/eslint-plugin/package.json
@@ -29,14 +29,15 @@
"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.3.0"
},
"devDependencies": {
- "@types/eslint": "^7.0.0",
- "eslint": "^8.57.0",
- "resolve-from": "^5.0.0"
+ "@types/eslint": "^9.6.1",
+ "@typescript-eslint/rule-tester": "^8.3.0",
+ "eslint": "^9.9.1",
+ "espree": "^10.1.0"
}
}
diff --git a/packages/eslint-plugin/src/index.ts b/packages/eslint-plugin/src/index.ts
index 3c27f57e2..0f99d4e2d 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/jsx-import.ts b/packages/eslint-plugin/src/rules/jsx-import.ts
index 2ee930f8d..af682be45 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,8 @@ export default createRule({
},
defaultOptions: [],
create(context) {
+ const filename = context.filename ?? context.getFilename()
+ const sourceCode = context.sourceCode ?? context.getSourceCode()
const jsxRuntimeMode = context.options.find(
(option): option is JSXConfig =>
typeof option === 'object' && option.runtime === 'automatic'
@@ -77,7 +82,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 +117,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 +140,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 &&
@@ -164,10 +167,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 +187,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 +233,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 +245,38 @@ 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.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 = sourceCode.getScope
+ ? sourceCode.getScope(node)
+ : 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 7568eb805..d972191bd 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({
@@ -154,9 +156,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({
@@ -242,6 +246,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 7fbef3077..90430d367 100644
--- a/packages/eslint-plugin/src/utils.ts
+++ b/packages/eslint-plugin/src/utils.ts
@@ -5,8 +5,14 @@ const { version } = require('../package.json')
export const REPO_URL = 'https://github.com/emotion-js/emotion'
-export const createRule = ESLintUtils.RuleCreator(name => {
- const ruleName = parsePath(name).name
+export interface EmotionESLintPluginDocs {
+ recommended: boolean
+}
- return `${REPO_URL}/blob/@emotion/eslint-plugin@${version}/packages/eslint-plugin/docs/rules/${ruleName}.md`
-})
+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 99be3a0fa..5a96f8290 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 f245357e6..56c2b0456 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()
},
{
@@ -337,6 +336,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 a897ec3a7..b96afbfca 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 6e7093212..fd8cee16f 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 944053cd4..7b3107311 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 4ea172d97..6263138a7 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
+ }
}
}
})
diff --git a/packages/eslint-plugin/test/test-utils.ts b/packages/eslint-plugin/test/test-utils.ts
index 551a54e9d..00f1dfc05 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 3118f6267..69de7bcd9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2746,12 +2746,13 @@ __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
+ "@types/eslint": ^9.6.1
+ "@typescript-eslint/rule-tester": ^8.3.0
+ "@typescript-eslint/utils": ^8.3.0
+ eslint: ^9.9.1
+ espree: ^10.1.0
peerDependencies:
- eslint: 6 || 7 || 8
+ eslint: ^6 || ^7 || ^8 || ^9
languageName: unknown
linkType: soft
@@ -3030,6 +3031,24 @@ __metadata:
languageName: node
linkType: hard
+"@eslint-community/regexpp@npm:^4.11.0":
+ version: 4.11.0
+ resolution: "@eslint-community/regexpp@npm:4.11.0"
+ checksum: 97d2fe46690b69417a551bd19a3dc53b6d9590d2295c43cc4c4e44e64131af541e2f4a44d5c12e87de990403654d3dae9d33600081f3a2f0386b368abc9111ec
+ languageName: node
+ linkType: hard
+
+"@eslint/config-array@npm:^0.18.0":
+ version: 0.18.0
+ resolution: "@eslint/config-array@npm:0.18.0"
+ dependencies:
+ "@eslint/object-schema": ^2.1.4
+ debug: ^4.3.1
+ minimatch: ^3.1.2
+ checksum: 5ff748e1788745bfb3160c3b3151d62a7c054e336e9fe8069e86cfa6106f3abbd59b24f1253122268295f98c66803e9a7b23d7f947a8c00f62d2060cc44bc7fc
+ languageName: node
+ linkType: hard
+
"@eslint/eslintrc@npm:^0.4.3":
version: 0.4.3
resolution: "@eslint/eslintrc@npm:0.4.3"
@@ -3064,6 +3083,23 @@ __metadata:
languageName: node
linkType: hard
+"@eslint/eslintrc@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "@eslint/eslintrc@npm:3.1.0"
+ dependencies:
+ ajv: ^6.12.4
+ debug: ^4.3.2
+ espree: ^10.0.1
+ globals: ^14.0.0
+ ignore: ^5.2.0
+ import-fresh: ^3.2.1
+ js-yaml: ^4.1.0
+ minimatch: ^3.1.2
+ strip-json-comments: ^3.1.1
+ checksum: b0a9bbd98c8b9e0f4d975b042ff9b874dde722b20834ea2ff46551c3de740d4f10f56c449b790ef34d7f82147cbddfc22b004a43cc885dbc2664bb134766b5e4
+ languageName: node
+ linkType: hard
+
"@eslint/js@npm:8.57.0":
version: 8.57.0
resolution: "@eslint/js@npm:8.57.0"
@@ -3071,6 +3107,20 @@ __metadata:
languageName: node
linkType: hard
+"@eslint/js@npm:9.9.1":
+ version: 9.9.1
+ resolution: "@eslint/js@npm:9.9.1"
+ checksum: 24436d7a1023dbc6c63fd199e45afa9eab8537f7bd808872d9d17dd70c5237f599fe3d08f519d55b40e33bfde02a460861df1c96aa07674090c3f98c83b0c178
+ languageName: node
+ linkType: hard
+
+"@eslint/object-schema@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@eslint/object-schema@npm:2.1.4"
+ checksum: 5a03094115bcdab7991dbbc5d17a9713f394cebb4b44d3eaf990d7487b9b8e1877b817997334ab40be52e299a0384595c6f6ba91b389901e5e1d21efda779271
+ languageName: node
+ linkType: hard
+
"@fortawesome/fontawesome-common-types@npm:6.1.1":
version: 6.1.1
resolution: "@fortawesome/fontawesome-common-types@npm:6.1.1"
@@ -3207,6 +3257,13 @@ __metadata:
languageName: node
linkType: hard
+"@humanwhocodes/retry@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "@humanwhocodes/retry@npm:0.3.0"
+ checksum: 4349cb8b60466a000e945fde8f8551cefb01ebba22ead4a92ac7b145f67f5da6b52e5a1e0c53185d732d0a49958ac29327934a4a5ac1d0bc20efb4429a4f7bf7
+ languageName: node
+ linkType: hard
+
"@iarna/toml@npm:^2.2.0":
version: 2.2.3
resolution: "@iarna/toml@npm:2.2.3"
@@ -6001,23 +6058,23 @@ __metadata:
languageName: node
linkType: hard
-"@types/eslint@npm:^7.0.0":
- version: 7.29.0
- resolution: "@types/eslint@npm:7.29.0"
+"@types/eslint@npm:^7.2.6":
+ version: 7.28.2
+ resolution: "@types/eslint@npm:7.28.2"
dependencies:
"@types/estree": "*"
"@types/json-schema": "*"
- checksum: df13991c554954353ce8f3bb03e19da6cc71916889443d68d178d4f858b561ba4cc4a4f291c6eb9eebb7f864b12b9b9313051b3a8dfea3e513dadf3188a77bdf
+ checksum: d177f3eec22971baeef8f244693687ee4c0357125f4a8fb7e614b83e36b98318a0b1a13b31230199d2a91af54122b67883faa7b4d2c29f0c83e2650f6b0d4d9c
languageName: node
linkType: hard
-"@types/eslint@npm:^7.2.6":
- version: 7.28.2
- resolution: "@types/eslint@npm:7.28.2"
+"@types/eslint@npm:^9.6.1":
+ version: 9.6.1
+ resolution: "@types/eslint@npm:9.6.1"
dependencies:
"@types/estree": "*"
"@types/json-schema": "*"
- checksum: d177f3eec22971baeef8f244693687ee4c0357125f4a8fb7e614b83e36b98318a0b1a13b31230199d2a91af54122b67883faa7b4d2c29f0c83e2650f6b0d4d9c
+ checksum: c286e79707ab604b577cf8ce51d9bbb9780e3d6a68b38a83febe13fa05b8012c92de17c28532fac2b03d3c460123f5055d603a579685325246ca1c86828223e0
languageName: node
linkType: hard
@@ -6223,13 +6280,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"
@@ -6693,6 +6743,22 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/rule-tester@npm:^8.3.0":
+ version: 8.3.0
+ resolution: "@typescript-eslint/rule-tester@npm:8.3.0"
+ dependencies:
+ "@typescript-eslint/typescript-estree": 8.3.0
+ "@typescript-eslint/utils": 8.3.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.57.0 || ^9.0.0
+ checksum: 170e14df968e44f7da5a6518e2e9984ec8313036ee2483329709746c75d131855599200c260c8ab1cc1d84be89f1e5025d5d7b33bd08977a896992acfa2587b5
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/scope-manager@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/scope-manager@npm:4.33.0"
@@ -6703,16 +6769,6 @@ __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"
@@ -6723,6 +6779,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:8.3.0":
+ version: 8.3.0
+ resolution: "@typescript-eslint/scope-manager@npm:8.3.0"
+ dependencies:
+ "@typescript-eslint/types": 8.3.0
+ "@typescript-eslint/visitor-keys": 8.3.0
+ checksum: 2ccf0d965c0e812f21a156bdb551029d2777bf1e6528275ccb9b79f9a36e4c6803c94f4e98519095396d3e416a62dc2356fda7286a6feeec8af6b63154f158d9
+ 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"
@@ -6754,13 +6820,6 @@ __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"
@@ -6768,6 +6827,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:8.3.0":
+ version: 8.3.0
+ resolution: "@typescript-eslint/types@npm:8.3.0"
+ checksum: 6fa6be32dbb32899b0ccb6a5cf78bf85892efa87048e0d3939f706743d3c2ad4afab8228d588883ac314d4934a01bafc5e4043b6608ebb82290edf3bfc17f442
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:3.10.1":
version: 3.10.1
resolution: "@typescript-eslint/typescript-estree@npm:3.10.1"
@@ -6805,32 +6871,33 @@ __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"
+"@typescript-eslint/typescript-estree@npm:7.13.0":
+ version: 7.13.0
+ resolution: "@typescript-eslint/typescript-estree@npm:7.13.0"
dependencies:
- "@typescript-eslint/types": 5.32.0
- "@typescript-eslint/visitor-keys": 5.32.0
+ "@typescript-eslint/types": 7.13.0
+ "@typescript-eslint/visitor-keys": 7.13.0
debug: ^4.3.4
globby: ^11.1.0
is-glob: ^4.0.3
- semver: ^7.3.7
- tsutils: ^3.21.0
+ minimatch: ^9.0.4
+ semver: ^7.6.0
+ ts-api-utils: ^1.3.0
peerDependenciesMeta:
typescript:
optional: true
- checksum: 6aee08be5d36603d038fb8340f324f5cb38519150c9b37c012f0c1ff2a4d8cf22fbc6835de31d069949c2b3d8ed3e729076a724ef29db4289d9fe73b97c9d310
+ checksum: 5a410db27ddb514344414a579e9f81a0db0e7e9f579aa624ace223655b905705a37510992a94924d9ead3c4c84c9357cf5358599036f7c44f50b56b54a791d82
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.3.0":
+ version: 8.3.0
+ resolution: "@typescript-eslint/typescript-estree@npm:8.3.0"
dependencies:
- "@typescript-eslint/types": 7.13.0
- "@typescript-eslint/visitor-keys": 7.13.0
+ "@typescript-eslint/types": 8.3.0
+ "@typescript-eslint/visitor-keys": 8.3.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
@@ -6838,7 +6905,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 5a410db27ddb514344414a579e9f81a0db0e7e9f579aa624ace223655b905705a37510992a94924d9ead3c4c84c9357cf5358599036f7c44f50b56b54a791d82
+ checksum: edfddfa895201be7cc6c83e8d4d72ce3e0877693bf109ced94dcd1496fc45ea9cceae08e1b8a451bee7df7f23748f79b80797ddf49d5e6c96d8f2053ce28e966
languageName: node
linkType: hard
@@ -6856,19 +6923,17 @@ __metadata:
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.3.0, @typescript-eslint/utils@npm:^8.3.0":
+ version: 8.3.0
+ resolution: "@typescript-eslint/utils@npm:8.3.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.3.0
+ "@typescript-eslint/types": 8.3.0
+ "@typescript-eslint/typescript-estree": 8.3.0
peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- checksum: cfd88d93508c8fb0db17d2726691e1383db390357fa0637bd8111558fbe72da5130d995294001d71b1d929d620fbce3f20a70b277a77ca21a4241b3b470dc758
+ eslint: ^8.57.0 || ^9.0.0
+ checksum: 041cd2cef3d89d0b45c99a5226aadfa0b25fdd517842cf6dd864ae57fa28afb5f613f5589fe5138662025903de9df8e24ed7fe55486da46e971751405b5ed9fb
languageName: node
linkType: hard
@@ -6891,16 +6956,6 @@ __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"
- 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"
@@ -6911,6 +6966,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:8.3.0":
+ version: 8.3.0
+ resolution: "@typescript-eslint/visitor-keys@npm:8.3.0"
+ dependencies:
+ "@typescript-eslint/types": 8.3.0
+ eslint-visitor-keys: ^3.4.3
+ checksum: 23a85ae0a3d693be1c9db92457727ab3f16cac3d1fb4950e29bfe2b0f4d186a755a71b2a347063cc94cf03b8dd1367502e0a60386eed71425f74c18fb686b0e8
+ languageName: node
+ linkType: hard
+
"@ungap/structured-clone@npm:^1.2.0":
version: 1.2.0
resolution: "@ungap/structured-clone@npm:1.2.0"
@@ -7324,6 +7389,15 @@ __metadata:
languageName: node
linkType: hard
+"acorn@npm:^8.12.0":
+ version: 8.12.1
+ resolution: "acorn@npm:8.12.1"
+ bin:
+ acorn: bin/acorn
+ checksum: 677880034aee5bdf7434cc2d25b641d7bedb0b5ef47868a78dadabedccf58e1c5457526d9d8249cd253f2df087e081c3fe7d903b448d8e19e5131a3065b83c07
+ languageName: node
+ linkType: hard
+
"acorn@npm:^8.2.4":
version: 8.6.0
resolution: "acorn@npm:8.6.0"
@@ -7466,7 +7540,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:
@@ -13691,6 +13765,16 @@ __metadata:
languageName: node
linkType: hard
+"eslint-scope@npm:^8.0.2":
+ version: 8.0.2
+ resolution: "eslint-scope@npm:8.0.2"
+ dependencies:
+ esrecurse: ^4.3.0
+ estraverse: ^5.2.0
+ checksum: bd1e7a0597ec605cf3bc9b35c9e13d7ea6c11fee031b0cada9e8993b0ecf16d81d6f40f1dcd463424af439abf53cd62302ea25707c1599689eb2750d6aa29688
+ languageName: node
+ linkType: hard
+
"eslint-utils@npm:^2.0.0, eslint-utils@npm:^2.1.0":
version: 2.1.0
resolution: "eslint-utils@npm:2.1.0"
@@ -13746,6 +13830,13 @@ __metadata:
languageName: node
linkType: hard
+"eslint-visitor-keys@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "eslint-visitor-keys@npm:4.0.0"
+ checksum: 5c09f89cf29d87cdbfbac38802a880d3c2e65f8cb61c689888346758f1e24a4c7f6caefeac9474dfa52058a99920623599bdb00516976a30134abeba91275aa2
+ languageName: node
+ linkType: hard
+
"eslint-webpack-plugin@npm:^2.5.2":
version: 2.5.4
resolution: "eslint-webpack-plugin@npm:2.5.4"
@@ -13861,6 +13952,66 @@ __metadata:
languageName: node
linkType: hard
+"eslint@npm:^9.9.1":
+ version: 9.9.1
+ resolution: "eslint@npm:9.9.1"
+ dependencies:
+ "@eslint-community/eslint-utils": ^4.2.0
+ "@eslint-community/regexpp": ^4.11.0
+ "@eslint/config-array": ^0.18.0
+ "@eslint/eslintrc": ^3.1.0
+ "@eslint/js": 9.9.1
+ "@humanwhocodes/module-importer": ^1.0.1
+ "@humanwhocodes/retry": ^0.3.0
+ "@nodelib/fs.walk": ^1.2.8
+ ajv: ^6.12.4
+ chalk: ^4.0.0
+ cross-spawn: ^7.0.2
+ debug: ^4.3.2
+ escape-string-regexp: ^4.0.0
+ eslint-scope: ^8.0.2
+ eslint-visitor-keys: ^4.0.0
+ espree: ^10.1.0
+ esquery: ^1.5.0
+ esutils: ^2.0.2
+ fast-deep-equal: ^3.1.3
+ file-entry-cache: ^8.0.0
+ find-up: ^5.0.0
+ glob-parent: ^6.0.2
+ ignore: ^5.2.0
+ imurmurhash: ^0.1.4
+ is-glob: ^4.0.0
+ is-path-inside: ^3.0.3
+ 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: a1ff85cd26a6f138e0f52e17668b7794371c81fd0ac66634c4d554dc2d878dcfbe6047a025e63e85168c897c83dfa453501a10395cbefda7debd79fe6ea00eab
+ languageName: node
+ linkType: hard
+
+"espree@npm:^10.0.1, espree@npm:^10.1.0":
+ version: 10.1.0
+ resolution: "espree@npm:10.1.0"
+ dependencies:
+ acorn: ^8.12.0
+ acorn-jsx: ^5.3.2
+ eslint-visitor-keys: ^4.0.0
+ checksum: a4708ab987f6c03734b8738b1588e9f31b2e305e869ca4677c60d82294eb05f7099b6687eb39eeb0913bb2d49bdf0bd0f31c511599ea7ee171281f871a9c897e
+ languageName: node
+ linkType: hard
+
"espree@npm:^7.3.0":
version: 7.3.0
resolution: "espree@npm:7.3.0"
@@ -13922,6 +14073,15 @@ __metadata:
languageName: node
linkType: hard
+"esquery@npm:^1.5.0":
+ version: 1.6.0
+ resolution: "esquery@npm:1.6.0"
+ dependencies:
+ estraverse: ^5.1.0
+ checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2
+ languageName: node
+ linkType: hard
+
"esrecurse@npm:^4.1.0":
version: 4.2.1
resolution: "esrecurse@npm:4.2.1"
@@ -14465,6 +14625,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"
@@ -14653,6 +14826,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"
@@ -14825,6 +15007,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"
@@ -14832,6 +15024,13 @@ __metadata:
languageName: node
linkType: hard
+"flatted@npm:^3.2.9":
+ version: 3.3.1
+ resolution: "flatted@npm:3.3.1"
+ checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94
+ languageName: node
+ linkType: hard
+
"flatten@npm:^1.0.2":
version: 1.0.2
resolution: "flatten@npm:1.0.2"
@@ -15636,6 +15835,13 @@ __metadata:
languageName: node
linkType: hard
+"globals@npm:^14.0.0":
+ version: 14.0.0
+ resolution: "globals@npm:14.0.0"
+ checksum: 534b8216736a5425737f59f6e6a5c7f386254560c9f41d24a9227d60ee3ad4a9e82c5b85def0e212e9d92162f83a92544be4c7fd4c902cb913736c10e08237ac
+ languageName: node
+ linkType: hard
+
"globalthis@npm:^1.0.3":
version: 1.0.4
resolution: "globalthis@npm:1.0.4"
@@ -19838,6 +20044,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"
@@ -20032,6 +20245,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"
@@ -20476,7 +20698,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