@etchteam/eslint-config 3.3.2 → 3.3.3

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/AGENTS.md CHANGED
@@ -132,7 +132,7 @@ Note: `HUSKY=0` environment variable disables hooks in CI.
132
132
 
133
133
  ### CI Pipeline (`.github/workflows/ci.yml`)
134
134
  - Runs on pull requests
135
- - Tests against Node.js 18, 20, 22
135
+ - Tests against Node.js 20, 22, 24 (matches `engines` field)
136
136
  - Lints source code with `npx eslint src`
137
137
  - Validates config against `test-files/` (expects violations to prove rules work)
138
138
 
package/CHANGELOG.md CHANGED
@@ -1,4 +1,6 @@
1
- ## <small>3.3.2 (2026-04-21)</small>
1
+ ## <small>3.3.3 (2026-04-24)</small>
2
2
 
3
- * Merge pull request #572 from etchteam/dependabot/npm_and_yarn/eslint-plugin-sonarjs-4.0.3 ([9f4145a](https://github.com/etchteam/eslint/commit/9f4145a)), closes [#572](https://github.com/etchteam/eslint/issues/572)
4
- * fix: Bump eslint-plugin-sonarjs from 3.0.7 to 4.0.3 ([9b73753](https://github.com/etchteam/eslint/commit/9b73753))
3
+ * Merge pull request #573 from etchteam/fix/import-x-native-flat-config ([81e963d](https://github.com/etchteam/eslint/commit/81e963d)), closes [#573](https://github.com/etchteam/eslint/issues/573)
4
+ * test: add JSON/YAML fixtures to every preset dir ([0fd6678](https://github.com/etchteam/eslint/commit/0fd6678))
5
+ * fix: scope preact config block to JS/TS files ([acf94db](https://github.com/etchteam/eslint/commit/acf94db))
6
+ * fix: switch to eslint-plugin-import-x and drop fixup wrappers ([052f3ce](https://github.com/etchteam/eslint/commit/052f3ce))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etchteam/eslint-config",
3
- "version": "3.3.2",
3
+ "version": "3.3.3",
4
4
  "description": "Etch's standard eslint config",
5
5
  "type": "module",
6
6
  "main": "src/index.mjs",
@@ -59,7 +59,7 @@
59
59
  "@eslint/js": "^9.29.0",
60
60
  "eslint-config-prettier": "^10.1.5",
61
61
  "eslint-import-resolver-typescript": "^4.4.4",
62
- "eslint-plugin-import": "^2.32.0",
62
+ "eslint-plugin-import-x": "^4.16.2",
63
63
  "eslint-plugin-json": "^4.0.1",
64
64
  "eslint-plugin-prettier": "^5.5.0",
65
65
  "eslint-plugin-security": "^4.0.0",
package/src/base.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import js from '@eslint/js';
2
- import importPlugin from 'eslint-plugin-import';
2
+ import importX from 'eslint-plugin-import-x';
3
3
  import prettier from 'eslint-plugin-prettier/recommended';
4
4
  import security from 'eslint-plugin-security';
5
5
  import sonarjs from 'eslint-plugin-sonarjs';
@@ -47,7 +47,7 @@ export default [
47
47
  files: JS_FILES,
48
48
  plugins: {
49
49
  'unused-imports': unusedImports,
50
- import: fixupPluginRules(importPlugin),
50
+ 'import-x': importX,
51
51
  'you-dont-need-lodash-underscore': fixupPluginRules(youDontNeedLodash),
52
52
  },
53
53
  languageOptions: {
@@ -61,7 +61,7 @@ export default [
61
61
  '@typescript-eslint/no-explicit-any': 'warn',
62
62
  'unused-imports/no-unused-imports': 'error',
63
63
  'unused-imports/no-unused-vars': 'off',
64
- 'import/order': [
64
+ 'import-x/order': [
65
65
  'error',
66
66
  {
67
67
  'newlines-between': 'always',
@@ -100,7 +100,7 @@ export default [
100
100
  ],
101
101
  },
102
102
  settings: {
103
- 'import/resolver': {
103
+ 'import-x/resolver': {
104
104
  typescript: true,
105
105
  node: true,
106
106
  },
@@ -24,6 +24,7 @@ export default [
24
24
  ...storybook,
25
25
  ...react,
26
26
  {
27
+ files: ['**/*.{js,mjs,cjs,jsx,ts,mts,cts,tsx}'],
27
28
  plugins: {
28
29
  '@next/next': nextPlugin,
29
30
  'react-hooks': reactHooks,
@@ -32,7 +33,7 @@ export default [
32
33
  ...nextPlugin.configs.recommended.rules,
33
34
  ...nextPlugin.configs['core-web-vitals'].rules,
34
35
  ...reactHooks.configs.recommended.rules,
35
- 'import/no-anonymous-default-export': 'warn',
36
+ 'import-x/no-anonymous-default-export': 'warn',
36
37
  'react/react-in-jsx-scope': 'off',
37
38
  'react/prop-types': 'off',
38
39
  },
@@ -21,6 +21,7 @@ export default [
21
21
  ...storybook,
22
22
  ...react,
23
23
  {
24
+ files: ['**/*.{js,mjs,cjs,jsx,ts,mts,cts,tsx}'],
24
25
  settings: {
25
26
  react: {
26
27
  pragma: 'h',
@@ -1,8 +1,6 @@
1
1
  import jsxA11y from 'eslint-plugin-jsx-a11y';
2
2
  import react from 'eslint-plugin-react';
3
3
 
4
- import { fixupPluginRules } from '../utils/fixup.mjs';
5
-
6
4
  /**
7
5
  * React and JSX accessibility linting configuration.
8
6
  */
@@ -10,8 +8,8 @@ export default [
10
8
  {
11
9
  files: ['**/*.{js,mjs,cjs,jsx,ts,mts,cts,tsx}'],
12
10
  plugins: {
13
- react: fixupPluginRules(react),
14
- 'jsx-a11y': fixupPluginRules(jsxA11y),
11
+ react,
12
+ 'jsx-a11y': jsxA11y,
15
13
  },
16
14
  rules: {
17
15
  'jsx-a11y/anchor-ambiguous-text': 'error',