@greenberry/linting-config 0.2.30 → 3.0.0-beta.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.
@@ -2,9 +2,8 @@ import path from "path";
2
2
  import importPlugin from "eslint-plugin-import-x";
3
3
  import jsxA11yPlugin from "eslint-plugin-jsx-a11y";
4
4
  import perfectionistPlugin from "eslint-plugin-perfectionist";
5
- import prettierPlugin from "eslint-plugin-prettier";
5
+ import prettierRecommended from "eslint-plugin-prettier/recommended";
6
6
  import reactCompilerPlugin from "eslint-plugin-react-compiler";
7
- import reactHooksPlugin from "eslint-plugin-react-hooks";
8
7
  import unicornPlugin from "eslint-plugin-unicorn";
9
8
  import { defineConfig } from "eslint/config";
10
9
  import globals from "globals";
@@ -12,22 +11,13 @@ import tseslint from "typescript-eslint";
12
11
  import eslintReact from "@eslint-react/eslint-plugin";
13
12
  import eslint from "@eslint/js";
14
13
  import nextPlugin from "@next/eslint-plugin-next";
15
- // Extract only meta and rules for TypeScript compatibility with ESLint flat config
16
- // The plugins include a 'configs' property that's incompatible with the Plugin type
17
- // but we only need meta and rules for flat config, so we extract just those
18
- const reactHooksPluginTyped = {
19
- meta: reactHooksPlugin.meta,
20
- rules: reactHooksPlugin.rules,
21
- };
22
- const eslintReactPlugins =
23
- // @ts-ignore - plugins property exists at runtime but not in types
24
- eslintReact.configs.recommended.plugins || {};
25
14
  export default defineConfig(eslint.configs.recommended, tseslint.configs.strict, tseslint.configs.stylistic, nextPlugin.configs.recommended, nextPlugin.configs["core-web-vitals"], {
26
15
  files: [
27
16
  "src/**/*.{js,mjs,cjs,jsx,ts,tsx}",
28
17
  "scripts/**/*.{js,mjs,cjs,jsx,ts,tsx}",
29
18
  "config/**/*.{js,mjs,cjs,jsx,ts,tsx}",
30
19
  ],
20
+ extends: [eslintReact.configs["recommended-type-checked"]],
31
21
  languageOptions: {
32
22
  parserOptions: {
33
23
  ecmaVersion: "latest",
@@ -45,13 +35,10 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
45
35
  },
46
36
  },
47
37
  plugins: {
48
- ...eslintReactPlugins,
49
- "react-hooks": reactHooksPluginTyped,
50
38
  "import-x": importPlugin,
51
39
  unicorn: unicornPlugin,
52
40
  perfectionist: perfectionistPlugin,
53
41
  "jsx-a11y": jsxA11yPlugin,
54
- prettier: prettierPlugin,
55
42
  "react-compiler": reactCompilerPlugin,
56
43
  },
57
44
  settings: {
@@ -64,24 +51,13 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
64
51
  "import-x/parsers": {
65
52
  "@typescript-eslint/parser": [".ts", ".tsx"],
66
53
  },
67
- react: {
68
- version: "detect",
69
- },
70
- // Disable conflicts between @eslint-react/eslint-plugin and eslint-plugin-react-hooks
71
- // when both plugins are used together
72
- "@eslint-react/eslint-plugin": {
73
- "disable-conflict-eslint-plugin-react-hooks": true,
74
- },
75
- // Inform rules about React Compiler compilation mode for better rule accuracy
76
54
  "react-x": {
77
55
  compilationMode: "infer", // Options: "infer" | "annotation" | "off"
78
56
  },
79
57
  },
80
58
  rules: {
81
- ...eslintReact.configs.recommended.rules,
82
- ...reactHooksPlugin.configs.recommended.rules,
83
59
  ...jsxA11yPlugin.configs.recommended.rules,
84
- // TypeScript rules
60
+ // ─── TypeScript ────────────────────────────────────────
85
61
  "@typescript-eslint/array-type": ["error", { default: "array" }],
86
62
  "@typescript-eslint/ban-ts-comment": "off",
87
63
  "@typescript-eslint/consistent-type-assertions": "error",
@@ -111,16 +87,39 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
111
87
  disallowTypeAnnotations: false,
112
88
  },
113
89
  ],
114
- // React rules (using @eslint-react/eslint-plugin)
90
+ // ─── React Core (overrides on recommended-type-checked)
91
+ "@eslint-react/exhaustive-deps": "error",
115
92
  "@eslint-react/no-array-index-key": "error",
93
+ "@eslint-react/no-duplicate-key": "error",
116
94
  "@eslint-react/jsx-shorthand-boolean": "error",
117
- "@eslint-react/no-unnecessary-use-prefix": "warn",
95
+ "@eslint-react/jsx-shorthand-fragment": "error",
96
+ "@eslint-react/no-leaked-conditional-rendering": "error",
97
+ // Strict rules (not in recommended, added for quality)
98
+ "@eslint-react/no-children-prop": "error",
99
+ "@eslint-react/no-class-component": "error",
100
+ "@eslint-react/no-misused-capture-owner-stack": "error",
101
+ "@eslint-react/no-unstable-context-value": "warn",
102
+ "@eslint-react/no-unstable-default-props": "warn",
118
103
  "@eslint-react/no-unused-props": "error",
119
104
  "@eslint-react/no-unused-state": "error",
120
- "@eslint-react/dom/no-void-elements-with-children": "error",
121
- "react-hooks/exhaustive-deps": "error",
105
+ "@eslint-react/no-useless-fragment": "warn",
106
+ "@eslint-react/prefer-destructuring-assignment": "warn",
107
+ // ─── React Hooks ───────────────────────────────────────
108
+ "@eslint-react/no-unnecessary-use-callback": "warn",
109
+ "@eslint-react/no-unnecessary-use-memo": "warn",
110
+ // ─── React DOM ─────────────────────────────────────────
111
+ "@eslint-react/dom/no-missing-button-type": "error",
112
+ "@eslint-react/dom/no-missing-iframe-sandbox": "warn",
113
+ "@eslint-react/dom/no-unsafe-target-blank": "warn",
114
+ "@eslint-react/dom/no-script-url": "error",
115
+ // ─── Web API (leak detection in effects) ───────────────
116
+ "@eslint-react/web-api/no-leaked-event-listener": "warn",
117
+ "@eslint-react/web-api/no-leaked-interval": "warn",
118
+ "@eslint-react/web-api/no-leaked-resize-observer": "warn",
119
+ "@eslint-react/web-api/no-leaked-timeout": "warn",
120
+ // ─── React Compiler ────────────────────────────────────
122
121
  "react-compiler/react-compiler": "error",
123
- // Import rules
122
+ // ─── Import ────────────────────────────────────────────
124
123
  "import-x/extensions": [
125
124
  "error",
126
125
  "ignorePackages",
@@ -133,6 +132,7 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
133
132
  stories: "always",
134
133
  },
135
134
  ],
135
+ "import-x/no-duplicates": "error",
136
136
  "import-x/prefer-default-export": "off",
137
137
  "import-x/no-extraneous-dependencies": [
138
138
  "error",
@@ -140,7 +140,7 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
140
140
  devDependencies: true,
141
141
  },
142
142
  ],
143
- // Unicorn rules
143
+ // ─── Unicorn ───────────────────────────────────────────
144
144
  "unicorn/catch-error-name": "error",
145
145
  "unicorn/error-message": "error",
146
146
  "unicorn/escape-case": "error",
@@ -159,7 +159,7 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
159
159
  "unicorn/prefer-query-selector": "error",
160
160
  "unicorn/prefer-type-error": "error",
161
161
  "unicorn/throw-new-error": "error",
162
- // Perfectionist rules
162
+ // ─── Perfectionist ─────────────────────────────────────
163
163
  "perfectionist/sort-jsx-props": [
164
164
  "error",
165
165
  {
@@ -174,21 +174,10 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
174
174
  groups: ["key", "ref", "id", "unknown", "className"],
175
175
  },
176
176
  ],
177
- // React Hooks Extra rules (migrated to @eslint-react/eslint-plugin)
178
- "@eslint-react/set-state-in-effect": "warn",
179
- "@eslint-react/use-state": [
180
- "warn",
181
- { enforceLazyInitialization: true },
182
- ],
183
- "@eslint-react/use-memo": "warn",
184
- "@eslint-react/no-unnecessary-use-callback": "warn",
185
- "@eslint-react/no-unnecessary-use-memo": "warn",
186
- "@eslint-react/exhaustive-deps": "off",
187
- // React Compiler compatibility rules
188
- "@eslint-react/unsupported-syntax": "error",
189
- // Other rules
190
- "jsx-a11y/alt-text": "error",
177
+ // ─── Accessibility ─────────────────────────────────────
178
+ "jsx-a11y/anchor-ambiguous-text": "warn",
191
179
  "jsx-a11y/media-has-caption": "warn",
180
+ // ─── General ───────────────────────────────────────────
192
181
  "no-unused-expressions": "error",
193
182
  "no-inner-declarations": "error",
194
183
  "no-process-env": "error",
@@ -209,8 +198,6 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
209
198
  ],
210
199
  "no-console": ["warn", { allow: ["warn", "error", "info"] }],
211
200
  curly: ["error", "all"],
212
- // Prettier integration
213
- "prettier/prettier": "error",
214
201
  },
215
202
  }, {
216
203
  files: [
@@ -219,8 +206,16 @@ export default defineConfig(eslint.configs.recommended, tseslint.configs.strict,
219
206
  ],
220
207
  rules: {
221
208
  "@eslint-react/rules-of-hooks": "off",
209
+ "@eslint-react/no-unstable-context-value": "off",
210
+ "@eslint-react/no-unstable-default-props": "off",
211
+ "@eslint-react/no-unused-props": "off",
212
+ "@eslint-react/prefer-destructuring-assignment": "off",
213
+ "no-process-env": "off",
222
214
  },
223
- }, {
215
+ },
216
+ // Must be last — disables all ESLint formatting rules that conflict with prettier
217
+ // (covers tseslint.configs.stylistic rules like semi, quotes, indent, etc.)
218
+ prettierRecommended, {
224
219
  ignores: [
225
220
  "**/node_modules/**",
226
221
  "**/*.gql",
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../src/eslint.config.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../src/eslint.config.js"],"names":[],"mappings":"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"}
@@ -24,9 +24,8 @@ export default defineConfig(
24
24
  "storybook/use-storybook-testing-library": "error",
25
25
  "@eslint-react/no-array-index-key": "off",
26
26
  "@eslint-react/rules-of-hooks": "off",
27
- "react-hooks/rules-of-hooks": "off",
27
+ "@eslint-react/exhaustive-deps": "warn",
28
28
  "import-x/no-anonymous-default-export": "off",
29
- "react-hooks/exhaustive-deps": "warn",
30
29
  },
31
30
  },
32
31
  // Storybook main config file
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.storybook.config.js","sourceRoot":"","sources":["../src/eslint.storybook.config.js"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY;AACzB,kCAAkC;AAClC;IACE,KAAK,EAAE;QACL,2CAA2C;QAC3C,yCAAyC;KAC1C;IACD,OAAO,EAAE;QACP,SAAS,EAAE,eAAe;KAC3B;IACD,KAAK,EAAE;QACL,8CAA8C;QAC9C,8BAA8B,EAAE,OAAO;QACvC,oCAAoC,EAAE,OAAO;QAC7C,2BAA2B,EAAE,OAAO;QACpC,+BAA+B,EAAE,MAAM;QACvC,mCAAmC,EAAE,MAAM;QAC3C,yBAAyB,EAAE,OAAO;QAClC,8BAA8B,EAAE,MAAM;QACtC,yBAAyB,EAAE,OAAO;QAClC,gCAAgC,EAAE,OAAO;QACzC,yCAAyC,EAAE,OAAO;QAClD,kCAAkC,EAAE,KAAK;QACzC,8BAA8B,EAAE,KAAK;QACrC,4BAA4B,EAAE,KAAK;QACnC,sCAAsC,EAAE,KAAK;QAC7C,6BAA6B,EAAE,MAAM;KACtC;CACF;AACD,6BAA6B;AAC7B;IACE,KAAK,EAAE,CAAC,kCAAkC,CAAC;IAC3C,OAAO,EAAE;QACP,SAAS,EAAE,eAAe;KAC3B;IACD,KAAK,EAAE;QACL,iCAAiC,EAAE,OAAO;KAC3C;CACF,CACF,CAAC"}
1
+ {"version":3,"file":"eslint.storybook.config.js","sourceRoot":"","sources":["../src/eslint.storybook.config.js"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY;AACzB,kCAAkC;AAClC;IACE,KAAK,EAAE;QACL,2CAA2C;QAC3C,yCAAyC;KAC1C;IACD,OAAO,EAAE;QACP,SAAS,EAAE,eAAe;KAC3B;IACD,KAAK,EAAE;QACL,8CAA8C;QAC9C,8BAA8B,EAAE,OAAO;QACvC,oCAAoC,EAAE,OAAO;QAC7C,2BAA2B,EAAE,OAAO;QACpC,+BAA+B,EAAE,MAAM;QACvC,mCAAmC,EAAE,MAAM;QAC3C,yBAAyB,EAAE,OAAO;QAClC,8BAA8B,EAAE,MAAM;QACtC,yBAAyB,EAAE,OAAO;QAClC,gCAAgC,EAAE,OAAO;QACzC,yCAAyC,EAAE,OAAO;QAClD,kCAAkC,EAAE,KAAK;QACzC,8BAA8B,EAAE,KAAK;QACrC,+BAA+B,EAAE,MAAM;QACvC,sCAAsC,EAAE,KAAK;KAC9C;CACF;AACD,6BAA6B;AAC7B;IACE,KAAK,EAAE,CAAC,kCAAkC,CAAC;IAC3C,OAAO,EAAE;QACP,SAAS,EAAE,eAAe;KAC3B;IACD,KAAK,EAAE;QACL,iCAAiC,EAAE,OAAO;KAC3C;CACF,CACF,CAAC"}
@@ -1,86 +1,4 @@
1
1
  export default config;
2
- declare const config: ({
3
- files: string[];
4
- languageOptions: {
5
- sourceType: string;
6
- parserOptions: {
7
- project: string;
8
- };
9
- };
10
- plugins: any;
11
- settings: {
12
- "import/resolver": {
13
- typescript: {
14
- project: string;
15
- };
16
- };
17
- react: {
18
- version: string;
19
- };
20
- };
21
- rules: {
22
- "@eslint-react/no-array-index-key": string;
23
- "@eslint-react/jsx-shorthand-boolean": string;
24
- "@eslint-react/no-unnecessary-use-prefix": string;
25
- "@eslint-react/no-unused-props": string;
26
- "@eslint-react/no-unused-state": string;
27
- "@eslint-react/dom/no-void-elements-with-children": string;
28
- "react-hooks/exhaustive-deps": string;
29
- "react-compiler/react-compiler": string;
30
- "import-x/prefer-default-export": string;
31
- "import-x/no-extraneous-dependencies": (string | {
32
- devDependencies: boolean;
33
- })[];
34
- "unicorn/catch-error-name": string;
35
- "unicorn/error-message": string;
36
- "unicorn/escape-case": string;
37
- "unicorn/explicit-length-check": string;
38
- "unicorn/new-for-builtins": string;
39
- "unicorn/no-instanceof-builtins": string;
40
- "unicorn/no-abusive-eslint-disable": string;
41
- "unicorn/no-console-spaces": string;
42
- "unicorn/no-for-loop": string;
43
- "unicorn/no-hex-escape": string;
44
- "unicorn/no-new-buffer": string;
45
- "unicorn/no-unreadable-array-destructuring": string;
46
- "unicorn/no-zero-fractions": string;
47
- "unicorn/number-literal-case": string;
48
- "unicorn/prefer-includes": string;
49
- "unicorn/prefer-query-selector": string;
50
- "unicorn/prefer-type-error": string;
51
- "unicorn/throw-new-error": string;
52
- "@next/next/no-html-link-for-pages": string;
53
- "@next/next/no-img-element": string;
54
- "@next/next/no-unwanted-polyfillio": string;
55
- "@next/next/no-sync-scripts": string;
56
- "@next/next/no-script-component-in-head": string;
57
- "@next/next/google-font-display": string;
58
- "@next/next/google-font-preconnect": string;
59
- "@next/next/next-script-for-ga": string;
60
- "@next/next/no-typos": string;
61
- "@next/next/no-duplicate-head": string;
62
- "jsx-a11y/alt-text": string;
63
- "jsx-a11y/media-has-caption": string;
64
- "no-unused-expressions": string;
65
- "no-inner-declarations": string;
66
- "no-process-env": string;
67
- "no-restricted-syntax": (string | {
68
- selector: string;
69
- message: string;
70
- })[];
71
- "no-console": (string | {
72
- allow: string[];
73
- })[];
74
- curly: string[];
75
- "prettier/prettier": string;
76
- };
77
- ignores?: undefined;
78
- } | {
79
- ignores: string[];
80
- files?: undefined;
81
- languageOptions?: undefined;
82
- plugins?: undefined;
83
- settings?: undefined;
84
- rules?: undefined;
85
- })[];
2
+ /** @type {import("eslint").Linter.Config[]} */
3
+ declare const config: import("eslint").Linter.Config[];
86
4
  //# sourceMappingURL=eslint.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.config.d.ts","sourceRoot":"","sources":["../../src/legacy/eslint.config.js"],"names":[],"mappings":";AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2HE"}
1
+ {"version":3,"file":"eslint.config.d.ts","sourceRoot":"","sources":["../../src/legacy/eslint.config.js"],"names":[],"mappings":";AASA,+CAA+C;AAC/C,sBADW,OAAO,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAyJzC"}
@@ -1,11 +1,11 @@
1
1
  import importPlugin from "eslint-plugin-import-x";
2
2
  import jsxA11yPlugin from "eslint-plugin-jsx-a11y";
3
- import prettierPlugin from "eslint-plugin-prettier";
3
+ import prettierRecommended from "eslint-plugin-prettier/recommended";
4
4
  import eslintReact from "@eslint-react/eslint-plugin";
5
5
  import reactCompilerPlugin from "eslint-plugin-react-compiler";
6
- import reactHooksPlugin from "eslint-plugin-react-hooks";
7
6
  import unicornPlugin from "eslint-plugin-unicorn";
8
7
  import nextPlugin from "@next/eslint-plugin-next";
8
+ /** @type {import("eslint").Linter.Config[]} */
9
9
  const config = [
10
10
  {
11
11
  files: ["**/*.{js,mjs,cjs,jsx,ts,tsx}"],
@@ -19,14 +19,11 @@ const config = [
19
19
  // Spread plugins from @eslint-react/eslint-plugin recommended config
20
20
  // This includes: @eslint-react, @eslint-react/dom, @eslint-react/web-api,
21
21
  // @eslint-react/hooks-extra, @eslint-react/naming-convention
22
- // @ts-expect-error - plugins property exists at runtime but not in types
23
22
  ...eslintReact.configs.recommended.plugins,
24
- "react-hooks": reactHooksPlugin,
25
23
  "import-x": importPlugin,
26
24
  unicorn: unicornPlugin,
27
25
  "@next/next": nextPlugin,
28
26
  "jsx-a11y": jsxA11yPlugin,
29
- prettier: prettierPlugin,
30
27
  "react-compiler": reactCompilerPlugin,
31
28
  },
32
29
  settings: {
@@ -35,25 +32,49 @@ const config = [
35
32
  project: "./jsconfig.json",
36
33
  },
37
34
  },
38
- react: {
39
- version: "detect",
35
+ "react-x": {
36
+ compilationMode: "infer",
40
37
  },
41
38
  },
42
39
  rules: {
43
- // Include recommended rules
40
+ // Include recommended rules from @eslint-react (replaces eslint-plugin-react-hooks)
44
41
  ...eslintReact.configs.recommended.rules,
45
- ...reactHooksPlugin.configs.recommended.rules,
46
42
  ...jsxA11yPlugin.configs.recommended.rules,
47
43
  ...nextPlugin.configs.recommended.rules,
48
- // React rules (using @eslint-react/eslint-plugin)
44
+ // ─── React Core (overrides on recommended defaults) ────
45
+ "@eslint-react/exhaustive-deps": "error",
49
46
  "@eslint-react/no-array-index-key": "error",
47
+ "@eslint-react/no-duplicate-key": "error",
50
48
  "@eslint-react/jsx-shorthand-boolean": "error",
51
- "@eslint-react/no-unnecessary-use-prefix": "warn",
49
+ "@eslint-react/jsx-shorthand-fragment": "error",
50
+ // Strict rules (not in recommended, added for quality)
51
+ "@eslint-react/no-children-prop": "error",
52
+ "@eslint-react/no-class-component": "error",
53
+ "@eslint-react/no-misused-capture-owner-stack": "error",
54
+ "@eslint-react/no-unstable-context-value": "warn",
55
+ "@eslint-react/no-unstable-default-props": "warn",
52
56
  "@eslint-react/no-unused-props": "error",
53
57
  "@eslint-react/no-unused-state": "error",
58
+ "@eslint-react/no-useless-fragment": "warn",
59
+ "@eslint-react/prefer-destructuring-assignment": "warn",
60
+ "@eslint-react/no-unnecessary-use-prefix": "warn",
61
+ // ─── React Hooks ───────────────────────────────────────
62
+ "@eslint-react/no-unnecessary-use-callback": "warn",
63
+ "@eslint-react/no-unnecessary-use-memo": "warn",
64
+ // ─── React DOM ─────────────────────────────────────────
54
65
  "@eslint-react/dom/no-void-elements-with-children": "error",
55
- "react-hooks/exhaustive-deps": "error",
66
+ "@eslint-react/dom/no-missing-button-type": "error",
67
+ "@eslint-react/dom/no-missing-iframe-sandbox": "warn",
68
+ "@eslint-react/dom/no-unsafe-target-blank": "warn",
69
+ "@eslint-react/dom/no-script-url": "error",
70
+ // ─── Web API (leak detection in effects) ───────────────
71
+ "@eslint-react/web-api/no-leaked-event-listener": "warn",
72
+ "@eslint-react/web-api/no-leaked-interval": "warn",
73
+ "@eslint-react/web-api/no-leaked-resize-observer": "warn",
74
+ "@eslint-react/web-api/no-leaked-timeout": "warn",
75
+ // ─── React Compiler ────────────────────────────────────
56
76
  "react-compiler/react-compiler": "error",
77
+ // ─── Import ────────────────────────────────────────────
57
78
  "import-x/prefer-default-export": "off",
58
79
  "import-x/no-extraneous-dependencies": [
59
80
  "error",
@@ -61,7 +82,7 @@ const config = [
61
82
  devDependencies: true,
62
83
  },
63
84
  ],
64
- // Unicorn rules
85
+ // ─── Unicorn ───────────────────────────────────────────
65
86
  "unicorn/catch-error-name": "error",
66
87
  "unicorn/error-message": "error",
67
88
  "unicorn/escape-case": "error",
@@ -80,7 +101,7 @@ const config = [
80
101
  "unicorn/prefer-query-selector": "error",
81
102
  "unicorn/prefer-type-error": "error",
82
103
  "unicorn/throw-new-error": "error",
83
- // Next.js specific rules
104
+ // ─── Next.js ───────────────────────────────────────────
84
105
  "@next/next/no-html-link-for-pages": "error",
85
106
  "@next/next/no-img-element": "error",
86
107
  "@next/next/no-unwanted-polyfillio": "error",
@@ -91,9 +112,10 @@ const config = [
91
112
  "@next/next/next-script-for-ga": "error",
92
113
  "@next/next/no-typos": "error",
93
114
  "@next/next/no-duplicate-head": "error",
94
- // Other rules
95
- "jsx-a11y/alt-text": "error",
115
+ // ─── Accessibility ─────────────────────────────────────
116
+ "jsx-a11y/anchor-ambiguous-text": "warn",
96
117
  "jsx-a11y/media-has-caption": "warn",
118
+ // ─── General ───────────────────────────────────────────
97
119
  "no-unused-expressions": "error",
98
120
  "no-inner-declarations": "error",
99
121
  "no-process-env": "error",
@@ -114,10 +136,10 @@ const config = [
114
136
  ],
115
137
  "no-console": ["warn", { allow: ["warn", "error", "info"] }],
116
138
  curly: ["error", "all"],
117
- // Prettier integration
118
- "prettier/prettier": "error",
119
139
  },
120
140
  },
141
+ // Must be last — disables all ESLint formatting rules that conflict with prettier
142
+ prettierRecommended,
121
143
  {
122
144
  ignores: [".next/*", "coverage/*", "src/env.ts", "**/*.gql"],
123
145
  },
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../../src/legacy/eslint.config.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../../src/legacy/eslint.config.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greenberry/linting-config",
3
- "version": "0.2.30",
3
+ "version": "3.0.0-beta.0",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -18,42 +18,45 @@
18
18
  "build": "npm run clean && tsc",
19
19
  "release:patch": "npm run build && npm version patch && npm publish --access public",
20
20
  "release:minor": "npm run build && npm version minor && npm publish --access public",
21
- "release:major": "npm run build && npm version major && npm publish --access public"
21
+ "release:major": "npm run build && npm version major && npm publish --access public",
22
+ "publish:beta": "npm run build && npm publish --access public --tag beta",
23
+ "release:beta": "npm run build && npm version prerelease --preid=beta && npm publish --access public --tag beta"
22
24
  },
23
25
  "files": [
24
26
  "dist"
25
27
  ],
26
28
  "overrides": {
27
- "minimatch": "^10.2.1",
28
- "ajv": "^8.18.0"
29
+ "ajv": "^8.18.0",
30
+ "eslint-plugin-jsx-a11y": {
31
+ "eslint": "$eslint"
32
+ }
29
33
  },
30
34
  "dependencies": {
31
- "@eslint-react/eslint-plugin": "^3.0.0-beta.45",
35
+ "@eslint-react/eslint-plugin": "^3.0.0",
32
36
  "@ianvs/prettier-plugin-sort-imports": "^4.7.1",
33
- "@next/eslint-plugin-next": "^16.1.6",
34
- "@typescript-eslint/parser": "^8.56.0",
35
- "eslint": "^9.39.2",
37
+ "@next/eslint-plugin-next": "^16.2.1",
38
+ "@typescript-eslint/parser": "^8.57.2",
39
+ "eslint": "^10.0.0",
36
40
  "eslint-config-prettier": "^10.1.8",
37
41
  "eslint-import-resolver-typescript": "^4.4.4",
38
- "eslint-plugin-import-x": "^4.16.1",
42
+ "eslint-plugin-import-x": "^4.16.2",
39
43
  "eslint-plugin-jsx-a11y": "^6.10.2",
40
- "eslint-plugin-perfectionist": "^5.6.0",
44
+ "eslint-plugin-perfectionist": "^5.7.0",
41
45
  "eslint-plugin-prettier": "^5.5.5",
42
46
  "eslint-plugin-react-compiler": "^19.1.0-rc.2",
43
- "eslint-plugin-react-hooks": "^7.0.1",
44
- "eslint-plugin-storybook": "^10.2.10",
47
+ "eslint-plugin-storybook": "^10.3.3",
45
48
  "eslint-plugin-unicorn": "^63.0.0",
46
- "globals": "^17.3.0",
49
+ "globals": "^17.4.0",
47
50
  "prettier": "^3.8.1",
48
51
  "prettier-plugin-tailwindcss": "^0.7.2",
49
- "stylelint": "^17.3.0",
52
+ "stylelint": "^17.6.0",
50
53
  "stylelint-config-standard-scss": "^17.0.0",
51
54
  "stylelint-prettier": "^5.0.3",
52
- "typescript-eslint": "^8.56.0"
55
+ "typescript-eslint": "^8.57.2"
53
56
  },
54
57
  "devDependencies": {
55
58
  "@types/eslint-plugin-jsx-a11y": "^6.10.1",
56
- "@types/node": "^25.3.0",
59
+ "@types/node": "^25.5.0",
57
60
  "typescript": "^5.9.3"
58
61
  }
59
62
  }