@aliexme/eslint-config 2.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/configs/base.js CHANGED
@@ -1,11 +1,11 @@
1
- import eslintJs from '@eslint/js'
1
+ import { defineConfig } from 'eslint/config'
2
+ import eslint from '@eslint/js'
2
3
  import globals from 'globals'
3
4
 
4
- /** @type {import('eslint').Linter.Config[]} */
5
- export default [
6
- eslintJs.configs.recommended,
5
+ export default defineConfig([
6
+ eslint.configs.recommended,
7
7
  {
8
- name: '@aliexme/eslint-config-base',
8
+ name: '@aliexme/eslint-config/base',
9
9
  languageOptions: {
10
10
  ecmaVersion: 'latest',
11
11
  sourceType: 'module',
@@ -16,38 +16,7 @@ export default [
16
16
  },
17
17
  },
18
18
  rules: {
19
- quotes: ['error', 'single'],
20
- 'jsx-quotes': ['error', 'prefer-single'],
21
- 'quote-props': ['error', 'as-needed'],
22
- semi: ['error', 'never'],
23
- indent: ['error', 2, { SwitchCase: 1, offsetTernaryExpressions: true }],
24
- 'max-len': ['error', 120],
25
- 'no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0, maxBOF: 0 }],
26
- 'comma-dangle': ['error', 'always-multiline'],
27
- 'comma-spacing': ['error', { before: false, after: true }],
28
- 'comma-style': ['error', 'last'],
29
- 'key-spacing': 'error',
30
- 'keyword-spacing': ['error', { before: true, after: true }],
31
- 'object-curly-spacing': ['error', 'always'],
32
- 'array-bracket-spacing': ['error', 'never'],
33
- 'computed-property-spacing': ['error', 'never', { enforceForClassMembers: true }],
34
- 'arrow-spacing': 'error',
35
- 'switch-colon-spacing': ['error', { after: true, before: false }],
36
- 'space-in-parens': ['error', 'never'],
37
- 'space-before-function-paren': [
38
- 'error',
39
- {
40
- anonymous: 'never',
41
- named: 'never',
42
- asyncArrow: 'always',
43
- },
44
- ],
45
- 'space-before-blocks': ['error', 'always'],
46
19
  'no-constant-condition': ['error', { checkLoops: false }],
47
- 'no-trailing-spaces': 'error',
48
- 'no-multi-spaces': 'error',
49
- 'eol-last': 'error',
50
- 'arrow-parens': 'error',
51
20
  'no-useless-rename': 'error',
52
21
  'no-var': 'error',
53
22
  'prefer-const': 'error',
@@ -58,48 +27,22 @@ export default [
58
27
  'array-callback-return': ['error', { checkForEach: true }],
59
28
  'prefer-destructuring': ['error', { array: false, object: true }, { enforceForRenamedProperties: false }],
60
29
  'prefer-template': 'error',
61
- 'template-curly-spacing': ['error', 'never'],
62
30
  'no-eval': 'error',
63
- 'wrap-iife': ['error', 'inside', { functionPrototypeMethods: true }],
64
31
  'no-loop-func': 'error',
65
32
  'prefer-rest-params': 'error',
66
33
  'default-param-last': 'error',
67
34
  'no-new-func': 'error',
68
35
  'no-param-reassign': ['error', { props: true }],
69
36
  'prefer-spread': 'error',
70
- 'space-infix-ops': ['error', { int32Hint: true }],
71
- 'function-paren-newline': ['error', 'multiline-arguments'],
72
- 'object-curly-newline': ['error', { consistent: true }],
73
37
  'prefer-arrow-callback': 'error',
74
38
  'no-empty-function': 'error',
75
39
  'no-useless-constructor': 'error',
76
40
  'dot-notation': 'error',
77
41
  'one-var': ['error', 'never'],
78
42
  'no-multi-assign': 'error',
79
- 'operator-linebreak': [
80
- 'error',
81
- 'before',
82
- {
83
- overrides: { '=': 'after' },
84
- },
85
- ],
86
43
  eqeqeq: 'error',
87
44
  'no-unneeded-ternary': ['error', { defaultAssignment: false }],
88
45
  'no-nested-ternary': 'error',
89
- 'no-mixed-operators': 'error',
90
- 'brace-style': ['error', '1tbs'],
91
- 'spaced-comment': [
92
- 'error',
93
- 'always',
94
- {
95
- markers: ['/', '!', '?'],
96
- },
97
- ],
98
- 'newline-per-chained-call': ['error', { ignoreChainWithDepth: 2 }],
99
- 'no-whitespace-before-property': 'error',
100
- 'padded-blocks': ['error', 'never'],
101
- 'block-spacing': ['error', 'always'],
102
- 'func-call-spacing': ['error', 'never'],
103
46
  'no-new-wrappers': 'error',
104
47
  radix: ['error', 'as-needed'],
105
48
  'id-length': [
@@ -132,4 +75,4 @@ export default [
132
75
  'no-console': 'warn',
133
76
  },
134
77
  },
135
- ]
78
+ ])
package/configs/import.js CHANGED
@@ -1,61 +1,53 @@
1
- import { FlatCompat } from '@eslint/eslintrc'
2
- import { fixupPluginRules } from '@eslint/compat'
3
- // @ts-expect-error Could not find a declaration file for module 'eslint-plugin-import'
4
- import eslintPluginImport from 'eslint-plugin-import'
1
+ import tseslint from 'typescript-eslint'
2
+ import { createNodeResolver, importX } from 'eslint-plugin-import-x'
3
+ import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript'
5
4
 
6
- const compat = new FlatCompat()
7
-
8
- /** @type {import('eslint').Linter.Config[]} */
9
- export default [
10
- ...compat.extends('plugin:import/typescript'),
11
- {
12
- plugins: {
13
- import: fixupPluginRules(eslintPluginImport),
14
- },
15
- settings: {
16
- 'import/resolver': {
17
- node: {
18
- extensions: ['.js', '.cjs', '.mjs', '.jsx', '.ts', '.tsx', '.vue'],
19
- moduleDirectory: ['src/', 'node_modules'],
20
- },
5
+ export default /** @type {import('eslint').Linter.Config[]} */ (
6
+ tseslint.config([
7
+ importX.flatConfigs.recommended,
8
+ importX.flatConfigs.typescript,
9
+ {
10
+ name: '@aliexme/eslint-config/import',
11
+ settings: {
12
+ 'import-x/resolver-next': [
13
+ createNodeResolver({ modules: ['src/', 'node_modules'] }),
14
+ createTypeScriptImportResolver(),
15
+ ],
16
+ 'import-x/extensions': ['.js', '.cjs', '.mjs', '.jsx', '.ts', '.tsx', '.vue', '.astro'],
17
+ 'import-x/ignore': ['node_modules'],
18
+ },
19
+ rules: {
20
+ 'import-x/order': [
21
+ 'error',
22
+ {
23
+ groups: ['builtin', 'external', 'internal', ['parent', 'sibling'], 'index', 'object'],
24
+ pathGroups: [
25
+ { pattern: '{react*,vue*,astro*}', group: 'external', position: 'before' },
26
+ { pattern: '{next*,nuxt*}', group: 'external', position: 'before' },
27
+ { pattern: '@aliexme/**', group: 'external', position: 'after' },
28
+ { pattern: '#*', group: 'external', position: 'after' },
29
+ { pattern: './**/{styles,*.styles,*.css,*.scss}', group: 'internal', position: 'before' },
30
+ { pattern: '../**/{styles,*.styles,*.css,*.scss}', group: 'internal', position: 'before' },
31
+ { pattern: '@/**', group: 'internal', position: 'before' },
32
+ { pattern: '~/**', group: 'internal', position: 'before' },
33
+ ],
34
+ pathGroupsExcludedImportTypes: ['builtin'],
35
+ 'newlines-between': 'always',
36
+ warnOnUnassignedImports: true,
37
+ distinctGroup: false,
38
+ },
39
+ ],
40
+ 'import-x/no-useless-path-segments': ['error', { noUselessIndex: false }],
41
+ 'import-x/no-duplicates': ['error', { 'prefer-inline': true }],
42
+ 'import-x/no-self-import': 'error',
43
+ 'import-x/no-mutable-exports': 'error',
44
+ 'import-x/first': 'error',
45
+ 'import-x/newline-after-import': 'error',
46
+ 'import-x/default': 'off',
47
+ 'import-x/named': 'off',
48
+ 'import-x/namespace': 'off',
49
+ 'import-x/no-named-as-default-member': 'off',
21
50
  },
22
- 'import/ignore': ['node_modules'],
23
- },
24
- rules: {
25
- 'import/no-useless-path-segments': ['error', { noUselessIndex: false }],
26
- 'import/order': [
27
- 'error',
28
- {
29
- groups: [['builtin', 'external'], 'internal', ['parent', 'sibling'], 'index', 'object'],
30
- pathGroups: [
31
- {
32
- pattern: '@aliexme/**',
33
- group: 'external',
34
- position: 'after',
35
- },
36
- {
37
- // Nuxt imports
38
- pattern: '#{app,components,imports}',
39
- group: 'external',
40
- position: 'after',
41
- },
42
- {
43
- pattern: './{styles,*.styles,*.css,*.scss}',
44
- group: 'internal',
45
- position: 'before',
46
- },
47
- ],
48
- pathGroupsExcludedImportTypes: ['@aliexme'],
49
- 'newlines-between': 'always',
50
- warnOnUnassignedImports: true,
51
- },
52
- ],
53
- 'import/no-duplicates': ['error', { 'prefer-inline': true }],
54
- 'import/no-self-import': 'error',
55
- 'import/no-mutable-exports': 'error',
56
- 'import/first': 'error',
57
- 'import/newline-after-import': 'error',
58
- 'import/namespace': 'off',
59
51
  },
60
- },
61
- ]
52
+ ])
53
+ )
@@ -1,51 +1,4 @@
1
+ import { defineConfig } from 'eslint/config'
1
2
  import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
2
3
 
3
- /** @type {import('eslint').Linter.Config[]} */
4
- export default [
5
- eslintPluginPrettierRecommended,
6
- {
7
- rules: {
8
- // Disable @stylistic rules
9
- '@stylistic/block-spacing': 'off',
10
- '@stylistic/brace-style': 'off',
11
- '@stylistic/comma-dangle': 'off',
12
- '@stylistic/comma-spacing': 'off',
13
- '@stylistic/func-call-spacing': 'off',
14
- '@stylistic/function-paren-newline': 'off',
15
- '@stylistic/indent': 'off',
16
- '@stylistic/indent-binary-ops': 'off',
17
- '@stylistic/jsx-child-element-spacing': 'off',
18
- '@stylistic/jsx-closing-bracket-location': 'off',
19
- '@stylistic/jsx-closing-tag-location': 'off',
20
- '@stylistic/jsx-curly-newline': 'off',
21
- '@stylistic/jsx-curly-spacing': 'off',
22
- '@stylistic/jsx-equals-spacing': 'off',
23
- '@stylistic/jsx-first-prop-new-line': 'off',
24
- '@stylistic/jsx-indent': 'off',
25
- '@stylistic/jsx-indent-props': 'off',
26
- '@stylistic/jsx-max-props-per-line': 'off',
27
- '@stylistic/jsx-newline': 'off',
28
- '@stylistic/jsx-one-expression-per-line': 'off',
29
- '@stylistic/jsx-props-no-multi-spaces': 'off',
30
- '@stylistic/jsx-quotes': 'off',
31
- '@stylistic/jsx-tag-spacing': 'off',
32
- '@stylistic/jsx-wrap-multilines': 'off',
33
- '@stylistic/key-spacing': 'off',
34
- '@stylistic/keyword-spacing': 'off',
35
- '@stylistic/lines-around-comment': 'off',
36
- '@stylistic/max-len': 'off',
37
- '@stylistic/member-delimiter-style': 'off',
38
- '@stylistic/multiline-ternary': 'off',
39
- '@stylistic/no-extra-parens': 'off',
40
- '@stylistic/no-extra-semi': 'off',
41
- '@stylistic/object-curly-spacing': 'off',
42
- '@stylistic/operator-linebreak': 'off',
43
- '@stylistic/quotes': 'off',
44
- '@stylistic/semi': 'off',
45
- '@stylistic/space-before-blocks': 'off',
46
- '@stylistic/space-before-function-paren': 'off',
47
- '@stylistic/space-infix-ops': 'off',
48
- '@stylistic/type-annotation-spacing': 'off',
49
- },
50
- },
51
- ]
4
+ export default defineConfig([eslintPluginPrettierRecommended])
@@ -1,8 +1,8 @@
1
+ import { defineConfig } from 'eslint/config'
1
2
  // @ts-expect-error Could not find a declaration file for module 'eslint-plugin-react-native'
2
3
  import eslintPluginReactNative from 'eslint-plugin-react-native'
3
4
 
4
- /** @type {import('eslint').Linter.Config[]} */
5
- export default [
5
+ export default defineConfig([
6
6
  {
7
7
  plugins: {
8
8
  'react-native': eslintPluginReactNative,
@@ -14,4 +14,4 @@ export default [
14
14
  'react-native/no-single-element-style-arrays': 'error',
15
15
  },
16
16
  },
17
- ]
17
+ ])
package/configs/react.js CHANGED
@@ -1,12 +1,11 @@
1
+ import { defineConfig } from 'eslint/config'
1
2
  // @ts-expect-error Could not find a declaration file for module 'eslint-plugin-react/configs/recommended.js'
2
3
  import eslintPluginReactRecommended from 'eslint-plugin-react/configs/recommended.js'
3
4
  // @ts-expect-error Could not find a declaration file for module 'eslint-plugin-react/configs/jsx-runtime.js'
4
5
  import eslintPluginReactJsxRuntime from 'eslint-plugin-react/configs/jsx-runtime.js'
5
- // @ts-expect-error Could not find a declaration file for module 'eslint-plugin-react-hooks'
6
6
  import eslintPluginReactHooks from 'eslint-plugin-react-hooks'
7
7
 
8
- /** @type {import('eslint').Linter.Config[]} */
9
- export default [
8
+ export default defineConfig([
10
9
  eslintPluginReactRecommended,
11
10
  eslintPluginReactJsxRuntime,
12
11
  {
@@ -16,19 +15,6 @@ export default [
16
15
  },
17
16
  },
18
17
  rules: {
19
- 'react/jsx-tag-spacing': [
20
- 'error',
21
- {
22
- closingSlash: 'never',
23
- beforeSelfClosing: 'proportional-always',
24
- afterOpening: 'never',
25
- beforeClosing: 'never',
26
- },
27
- ],
28
- 'react/jsx-max-props-per-line': ['error', { when: 'multiline' }],
29
- 'react/jsx-curly-spacing': ['error', { when: 'never', children: true }],
30
- 'react/jsx-curly-brace-presence': ['error', 'never'],
31
- 'react/jsx-closing-bracket-location': 'error',
32
18
  'react/self-closing-comp': 'error',
33
19
  'react/no-unused-prop-types': 'error',
34
20
  },
@@ -47,4 +33,4 @@ export default [
47
33
  ...eslintPluginReactHooks.configs.recommended.rules,
48
34
  },
49
35
  },
50
- ]
36
+ ])
@@ -1,7 +1,8 @@
1
- import baseConfigArray from './base.js'
2
- import typescriptConfigArray from './typescript.js'
3
- import stylisticConfigArray from './stylistic.js'
4
- import importConfigArray from './import.js'
1
+ import { defineConfig } from 'eslint/config'
5
2
 
6
- /** @type {import('eslint').Linter.Config[]} */
7
- export default [...baseConfigArray, ...typescriptConfigArray, ...stylisticConfigArray, ...importConfigArray]
3
+ import baseConfig from './base.js'
4
+ import typescriptConfig from './typescript.js'
5
+ import stylisticConfig from './stylistic.js'
6
+ import importConfig from './import.js'
7
+
8
+ export default defineConfig([baseConfig, typescriptConfig, stylisticConfig, importConfig])
@@ -1,7 +1,7 @@
1
+ import { defineConfig } from 'eslint/config'
1
2
  import stylistic from '@stylistic/eslint-plugin'
2
3
 
3
- /** @type {import('eslint').Linter.Config[]} */
4
- export default [
4
+ export default defineConfig([
5
5
  stylistic.configs.customize({
6
6
  jsx: true,
7
7
  arrowParens: true,
@@ -14,16 +14,12 @@ export default [
14
14
  semi: false,
15
15
  }),
16
16
  {
17
+ name: '@aliexme/eslint-config/stylistic',
17
18
  rules: {
18
- '@stylistic/array-bracket-newline': ['error', { multiline: true }],
19
- '@stylistic/array-element-newline': [
20
- 'error',
21
- {
22
- consistent: true,
23
- multiline: true,
24
- },
25
- ],
26
- '@stylistic/function-paren-newline': ['error', 'multiline-arguments'],
19
+ '@stylistic/quotes': ['error', 'single'],
20
+ '@stylistic/quote-props': ['error', 'as-needed'],
21
+ '@stylistic/semi': ['error', 'never'],
22
+ '@stylistic/indent': ['error', 2, { SwitchCase: 1, offsetTernaryExpressions: true }],
27
23
  '@stylistic/max-len': [
28
24
  'error',
29
25
  {
@@ -35,11 +31,41 @@ export default [
35
31
  ignoreRegExpLiterals: true,
36
32
  },
37
33
  ],
38
- '@stylistic/member-delimiter-style': [
34
+ '@stylistic/no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0, maxBOF: 0 }],
35
+ '@stylistic/comma-dangle': ['error', 'always-multiline'],
36
+ '@stylistic/comma-spacing': ['error', { before: false, after: true }],
37
+ '@stylistic/comma-style': ['error', 'last'],
38
+ '@stylistic/key-spacing': 'error',
39
+ '@stylistic/keyword-spacing': ['error', { before: true, after: true }],
40
+ '@stylistic/object-curly-spacing': ['error', 'always'],
41
+ '@stylistic/array-bracket-spacing': ['error', 'never'],
42
+ '@stylistic/computed-property-spacing': ['error', 'never', { enforceForClassMembers: true }],
43
+ '@stylistic/arrow-spacing': 'error',
44
+ '@stylistic/switch-colon-spacing': ['error', { after: true, before: false }],
45
+ '@stylistic/space-in-parens': ['error', 'never'],
46
+ '@stylistic/space-before-function-paren': [
39
47
  'error',
40
48
  {
41
- multiline: { delimiter: 'none' },
42
- singleline: { delimiter: 'semi' },
49
+ anonymous: 'never',
50
+ named: 'never',
51
+ asyncArrow: 'always',
52
+ },
53
+ ],
54
+ '@stylistic/space-before-blocks': ['error', 'always'],
55
+ '@stylistic/template-curly-spacing': ['error', 'never'],
56
+ '@stylistic/block-spacing': ['error', 'always'],
57
+ '@stylistic/func-call-spacing': ['error', 'never'],
58
+ '@stylistic/type-annotation-spacing': 'error',
59
+ '@stylistic/no-trailing-spaces': 'error',
60
+ '@stylistic/no-multi-spaces': 'error',
61
+ '@stylistic/eol-last': 'error',
62
+ '@stylistic/arrow-parens': 'error',
63
+ '@stylistic/array-bracket-newline': ['error', { multiline: true }],
64
+ '@stylistic/array-element-newline': [
65
+ 'error',
66
+ {
67
+ consistent: true,
68
+ multiline: true,
43
69
  },
44
70
  ],
45
71
  '@stylistic/object-curly-newline': [
@@ -50,6 +76,35 @@ export default [
50
76
  },
51
77
  ],
52
78
  '@stylistic/object-property-newline': ['error', { allowAllPropertiesOnSameLine: true }],
79
+ '@stylistic/function-paren-newline': ['error', 'multiline-arguments'],
80
+ '@stylistic/member-delimiter-style': [
81
+ 'error',
82
+ {
83
+ multiline: { delimiter: 'none' },
84
+ singleline: { delimiter: 'semi' },
85
+ },
86
+ ],
87
+ '@stylistic/wrap-iife': ['error', 'inside', { functionPrototypeMethods: true }],
88
+ '@stylistic/space-infix-ops': ['error', { int32Hint: true }],
89
+ '@stylistic/operator-linebreak': [
90
+ 'error',
91
+ 'before',
92
+ {
93
+ overrides: { '=': 'after' },
94
+ },
95
+ ],
96
+ '@stylistic/no-mixed-operators': 'error',
97
+ '@stylistic/brace-style': ['error', '1tbs'],
98
+ '@stylistic/spaced-comment': [
99
+ 'error',
100
+ 'always',
101
+ {
102
+ markers: ['/', '!', '?'],
103
+ },
104
+ ],
105
+ '@stylistic/newline-per-chained-call': ['error', { ignoreChainWithDepth: 2 }],
106
+ '@stylistic/no-whitespace-before-property': 'error',
107
+ '@stylistic/padded-blocks': ['error', 'never'],
53
108
 
54
109
  // JSX
55
110
  '@stylistic/jsx-curly-spacing': ['error', { when: 'never', children: true }],
@@ -62,6 +117,9 @@ export default [
62
117
  beforeClosing: 'never',
63
118
  },
64
119
  ],
120
+ '@stylistic/jsx-max-props-per-line': ['error', { when: 'multiline' }],
121
+ '@stylistic/jsx-curly-brace-presence': ['error', 'never'],
122
+ '@stylistic/jsx-closing-bracket-location': 'error',
65
123
  },
66
124
  },
67
- ]
125
+ ])
@@ -1,7 +1,7 @@
1
1
  import tseslint from 'typescript-eslint'
2
2
 
3
3
  export default /** @type {import('eslint').Linter.Config[]} */ (
4
- tseslint.config(...tseslint.configs.strict, ...tseslint.configs.stylistic, {
4
+ tseslint.config(tseslint.configs.strict, tseslint.configs.stylistic, {
5
5
  name: '@aliexme/eslint-config/typescript',
6
6
  languageOptions: {
7
7
  parserOptions: {
@@ -18,13 +18,6 @@ export default /** @type {import('eslint').Linter.Config[]} */ (
18
18
  },
19
19
  ],
20
20
  '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
21
- '@typescript-eslint/member-delimiter-style': [
22
- 'error',
23
- {
24
- multiline: { delimiter: 'none' },
25
- singleline: { delimiter: 'semi' },
26
- },
27
- ],
28
21
  '@typescript-eslint/no-empty-object-type': [
29
22
  'error',
30
23
  {
@@ -35,7 +28,6 @@ export default /** @type {import('eslint').Linter.Config[]} */ (
35
28
  'error',
36
29
  { prefer: 'type-imports', fixStyle: 'inline-type-imports' },
37
30
  ],
38
- '@typescript-eslint/type-annotation-spacing': 'error',
39
31
  },
40
32
  })
41
33
  )
package/index.js CHANGED
@@ -1,4 +1,5 @@
1
- import recommendedConfigArray from './configs/recommended.js'
1
+ import { defineConfig } from 'eslint/config'
2
2
 
3
- /** @type {import('eslint').Linter.Config[]} */
4
- export default recommendedConfigArray
3
+ import recommendedConfig from './configs/recommended.js'
4
+
5
+ export default defineConfig(recommendedConfig)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aliexme/eslint-config",
3
- "version": "2.2.0",
3
+ "version": "3.0.0",
4
4
  "description": "Set of configs for ESLint",
5
5
  "private": false,
6
6
  "author": "Alexander Smirnov <al.smirnov996@gmail.com>",
@@ -22,28 +22,29 @@
22
22
  ],
23
23
  "exports": {
24
24
  ".": "./index.js",
25
+ "./recommended": "./configs/recommended.js",
25
26
  "./base": "./configs/base.js",
26
27
  "./typescript": "./configs/typescript.js",
27
28
  "./stylistic": "./configs/stylistic.js",
28
29
  "./import": "./configs/import.js",
30
+ "./prettier": "./configs/prettier.js",
29
31
  "./react": "./configs/react.js",
30
32
  "./react-native": "./configs/react-native.js",
31
- "./vue": "./configs/vue.js",
32
- "./prettier": "./configs/prettier.js",
33
- "./recommended": "./configs/recommended.js"
33
+ "./vue": "./configs/vue.js"
34
34
  },
35
35
  "sideEffects": false,
36
36
  "publishConfig": {
37
37
  "access": "public"
38
38
  },
39
39
  "dependencies": {
40
- "@eslint/compat": "^1.2.7",
41
- "@eslint/eslintrc": "^3.3.0",
42
- "@eslint/js": "^9.21.0",
43
- "@stylistic/eslint-plugin": "^4.0.1",
44
- "eslint-plugin-import": "^2.31.0",
45
- "globals": "^16.0.0",
46
- "typescript-eslint": "^8.24.1"
40
+ "@eslint/compat": "^1.3.0",
41
+ "@eslint/eslintrc": "^3.3.1",
42
+ "@eslint/js": "^9.29.0",
43
+ "@stylistic/eslint-plugin": "^4.4.1",
44
+ "eslint-import-resolver-typescript": "^4.4.3",
45
+ "eslint-plugin-import-x": "^4.15.2",
46
+ "globals": "^16.2.0",
47
+ "typescript-eslint": "^8.34.0"
47
48
  },
48
49
  "peerDependencies": {
49
50
  "eslint": "^9.0.0",
@@ -52,7 +53,7 @@
52
53
  "eslint-plugin-react": "^7.0.0",
53
54
  "eslint-plugin-react-hooks": "^5.0.0",
54
55
  "eslint-plugin-react-native": "^5.0.0",
55
- "eslint-plugin-vue": "^9.0.0",
56
+ "eslint-plugin-vue": "^10.0.0",
56
57
  "prettier": "^3.0.0"
57
58
  },
58
59
  "peerDependenciesMeta": {
@@ -78,5 +79,5 @@
78
79
  "optional": true
79
80
  }
80
81
  },
81
- "gitHead": "d9dd047ad7d94b5cbca23dee147746f8f1ccc6dd"
82
+ "gitHead": "321970688f8f10ed7dade8a34bdc39bee724f4c8"
82
83
  }