@gooddata/eslint-config 11.57.0-alpha.2 → 11.57.0-alpha.4

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/PACKAGES_V9.md CHANGED
@@ -4,7 +4,7 @@ This table shows which packages are required for each configuration.
4
4
 
5
5
  | Package | base | browser-esm | esm | esm-playwright | esm-react | esm-react-playwright | esm-react-storybook | esm-react-vitest | esm-react-vitest-rtl | esm-vitest | esm-vitest-rtl | react | react-playwright | react-vitest | react-vitest-rtl |
6
6
  | --------------------------------- | ------ | ----------- | ------ | -------------- | --------- | -------------------- | ------------------- | ---------------- | -------------------- | ---------- | -------------- | ------ | ---------------- | ------------ | ---------------- |
7
- | @eslint/js | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 | 9.28.0 |
7
+ | @eslint/js | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 | 9.39.5 |
8
8
  | @testing-library/dom | | | | | | | 10.4.1 | | | | | | | | |
9
9
  | @typescript-eslint/eslint-plugin | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 |
10
10
  | @typescript-eslint/parser | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 |
@@ -24,6 +24,7 @@ This table shows which packages are required for each configuration.
24
24
  | eslint-plugin-storybook | | | | | | | 10.5.6 | | | | | | | | |
25
25
  | eslint-plugin-testing-library | | | | | | | | | 7.16.2 | | 7.16.2 | | | | 7.16.2 |
26
26
  | globals | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 |
27
+ | jiti | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 |
27
28
  | react | | | | | | | 19.1.1 | | | | | | | | |
28
29
  | react-dom | | | | | | | 19.1.1 | | | | | | | | |
29
30
  | storybook | | | | | | | ^10.5.6 | | | | | | | | |
@@ -8,5 +8,5 @@ This table shows which packages are required for each configuration.
8
8
  | @typescript-eslint/parser | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 | 8.58.0 |
9
9
  | eslint-plugin-jsdoc | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 | 62.1.0 |
10
10
  | eslint-plugin-react | | | | | 7.37.5 | 7.37.5 | 7.37.5 | 7.37.5 | 7.37.5 | | | 7.37.5 | 7.37.5 | 7.37.5 | 7.37.5 |
11
- | eslint-plugin-react-hooks | | | | | 5.2.0 | 5.2.0 | 5.2.0 | 5.2.0 | 5.2.0 | | | 5.2.0 | 5.2.0 | 5.2.0 | 5.2.0 |
12
11
  | globals | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 | 17.2.0 |
12
+ | jiti | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 | 2.6.1 |
@@ -2357,14 +2357,11 @@ export default [
2357
2357
  },
2358
2358
  rules: {
2359
2359
  "react/no-danger": "error",
2360
- "react/prop-types": "off",
2361
- "react/function-component-definition": [
2360
+ "react/jsx-boolean-value": [
2362
2361
  "error",
2363
- {
2364
- namedComponents: "function-declaration",
2365
- unnamedComponents: "arrow-function",
2366
- },
2362
+ "never",
2367
2363
  ],
2364
+ "react/react-in-jsx-scope": "off",
2368
2365
  "react/jsx-no-leaked-render": [
2369
2366
  "warn",
2370
2367
  {
@@ -2374,11 +2371,13 @@ export default [
2374
2371
  ],
2375
2372
  },
2376
2373
  ],
2377
- "react/jsx-boolean-value": [
2374
+ "react/function-component-definition": [
2378
2375
  "error",
2379
- "never",
2376
+ {
2377
+ namedComponents: "function-declaration",
2378
+ unnamedComponents: "arrow-function",
2379
+ },
2380
2380
  ],
2381
- "react/react-in-jsx-scope": "off",
2382
2381
  "react-hooks/rules-of-hooks": "error",
2383
2382
  "react-hooks/exhaustive-deps": "error",
2384
2383
  },
@@ -936,14 +936,11 @@
936
936
  "sonarjs/no-implicit-global": "off",
937
937
  "sonarjs/no-control-regex": "off",
938
938
  "react/no-danger": "error",
939
- "react/prop-types": "off",
940
- "react/function-component-definition": [
939
+ "react/jsx-boolean-value": [
941
940
  "error",
942
- {
943
- "namedComponents": "function-declaration",
944
- "unnamedComponents": "arrow-function"
945
- }
941
+ "never"
946
942
  ],
943
+ "react/react-in-jsx-scope": "off",
947
944
  "react/jsx-no-leaked-render": [
948
945
  "warn",
949
946
  {
@@ -953,11 +950,13 @@
953
950
  ]
954
951
  }
955
952
  ],
956
- "react/jsx-boolean-value": [
953
+ "react/function-component-definition": [
957
954
  "error",
958
- "never"
955
+ {
956
+ "namedComponents": "function-declaration",
957
+ "unnamedComponents": "arrow-function"
958
+ }
959
959
  ],
960
- "react/react-in-jsx-scope": "off",
961
960
  "react-hooks/rules-of-hooks": "error",
962
961
  "react-hooks/exhaustive-deps": "error",
963
962
  "import-esm/explicit-extension": "error",
@@ -2355,14 +2355,11 @@ export default [
2355
2355
  },
2356
2356
  rules: {
2357
2357
  "react/no-danger": "error",
2358
- "react/prop-types": "off",
2359
- "react/function-component-definition": [
2358
+ "react/jsx-boolean-value": [
2360
2359
  "error",
2361
- {
2362
- namedComponents: "function-declaration",
2363
- unnamedComponents: "arrow-function",
2364
- },
2360
+ "never",
2365
2361
  ],
2362
+ "react/react-in-jsx-scope": "off",
2366
2363
  "react/jsx-no-leaked-render": [
2367
2364
  "warn",
2368
2365
  {
@@ -2372,11 +2369,13 @@ export default [
2372
2369
  ],
2373
2370
  },
2374
2371
  ],
2375
- "react/jsx-boolean-value": [
2372
+ "react/function-component-definition": [
2376
2373
  "error",
2377
- "never",
2374
+ {
2375
+ namedComponents: "function-declaration",
2376
+ unnamedComponents: "arrow-function",
2377
+ },
2378
2378
  ],
2379
- "react/react-in-jsx-scope": "off",
2380
2379
  "react-hooks/rules-of-hooks": "error",
2381
2380
  "react-hooks/exhaustive-deps": "error",
2382
2381
  },
@@ -934,14 +934,11 @@
934
934
  "sonarjs/no-implicit-global": "off",
935
935
  "sonarjs/no-control-regex": "off",
936
936
  "react/no-danger": "error",
937
- "react/prop-types": "off",
938
- "react/function-component-definition": [
937
+ "react/jsx-boolean-value": [
939
938
  "error",
940
- {
941
- "namedComponents": "function-declaration",
942
- "unnamedComponents": "arrow-function"
943
- }
939
+ "never"
944
940
  ],
941
+ "react/react-in-jsx-scope": "off",
945
942
  "react/jsx-no-leaked-render": [
946
943
  "warn",
947
944
  {
@@ -951,11 +948,13 @@
951
948
  ]
952
949
  }
953
950
  ],
954
- "react/jsx-boolean-value": [
951
+ "react/function-component-definition": [
955
952
  "error",
956
- "never"
953
+ {
954
+ "namedComponents": "function-declaration",
955
+ "unnamedComponents": "arrow-function"
956
+ }
957
957
  ],
958
- "react/react-in-jsx-scope": "off",
959
958
  "react-hooks/rules-of-hooks": "error",
960
959
  "react-hooks/exhaustive-deps": "error",
961
960
  "import-esm/explicit-extension": "error"
@@ -2357,14 +2357,11 @@ export default [
2357
2357
  },
2358
2358
  rules: {
2359
2359
  "react/no-danger": "error",
2360
- "react/prop-types": "off",
2361
- "react/function-component-definition": [
2360
+ "react/jsx-boolean-value": [
2362
2361
  "error",
2363
- {
2364
- namedComponents: "function-declaration",
2365
- unnamedComponents: "arrow-function",
2366
- },
2362
+ "never",
2367
2363
  ],
2364
+ "react/react-in-jsx-scope": "off",
2368
2365
  "react/jsx-no-leaked-render": [
2369
2366
  "warn",
2370
2367
  {
@@ -2374,11 +2371,13 @@ export default [
2374
2371
  ],
2375
2372
  },
2376
2373
  ],
2377
- "react/jsx-boolean-value": [
2374
+ "react/function-component-definition": [
2378
2375
  "error",
2379
- "never",
2376
+ {
2377
+ namedComponents: "function-declaration",
2378
+ unnamedComponents: "arrow-function",
2379
+ },
2380
2380
  ],
2381
- "react/react-in-jsx-scope": "off",
2382
2381
  "react-hooks/rules-of-hooks": "error",
2383
2382
  "react-hooks/exhaustive-deps": "error",
2384
2383
  },
@@ -2412,6 +2411,7 @@ export default [
2412
2411
  "vitest/no-focused-tests": "warn",
2413
2412
  "vitest/no-identical-title": "warn",
2414
2413
  "vitest/valid-expect": "warn",
2414
+ "vitest/valid-expect-in-promise": "error",
2415
2415
  },
2416
2416
  },
2417
2417
  {
@@ -936,14 +936,11 @@
936
936
  "sonarjs/no-implicit-global": "off",
937
937
  "sonarjs/no-control-regex": "off",
938
938
  "react/no-danger": "error",
939
- "react/prop-types": "off",
940
- "react/function-component-definition": [
939
+ "react/jsx-boolean-value": [
941
940
  "error",
942
- {
943
- "namedComponents": "function-declaration",
944
- "unnamedComponents": "arrow-function"
945
- }
941
+ "never"
946
942
  ],
943
+ "react/react-in-jsx-scope": "off",
947
944
  "react/jsx-no-leaked-render": [
948
945
  "warn",
949
946
  {
@@ -953,11 +950,13 @@
953
950
  ]
954
951
  }
955
952
  ],
956
- "react/jsx-boolean-value": [
953
+ "react/function-component-definition": [
957
954
  "error",
958
- "never"
955
+ {
956
+ "namedComponents": "function-declaration",
957
+ "unnamedComponents": "arrow-function"
958
+ }
959
959
  ],
960
- "react/react-in-jsx-scope": "off",
961
960
  "react-hooks/rules-of-hooks": "error",
962
961
  "react-hooks/exhaustive-deps": "error",
963
962
  "import-esm/explicit-extension": "error",
@@ -977,6 +976,7 @@
977
976
  "@vitest/no-focused-tests": "warn",
978
977
  "@vitest/no-identical-title": "warn",
979
978
  "@vitest/valid-expect": "warn",
979
+ "@vitest/valid-expect-in-promise": "error",
980
980
  "testing-library/await-async-queries": "error",
981
981
  "testing-library/await-async-utils": "error",
982
982
  "testing-library/no-await-sync-queries": "error",
@@ -2356,14 +2356,11 @@ export default [
2356
2356
  },
2357
2357
  rules: {
2358
2358
  "react/no-danger": "error",
2359
- "react/prop-types": "off",
2360
- "react/function-component-definition": [
2359
+ "react/jsx-boolean-value": [
2361
2360
  "error",
2362
- {
2363
- namedComponents: "function-declaration",
2364
- unnamedComponents: "arrow-function",
2365
- },
2361
+ "never",
2366
2362
  ],
2363
+ "react/react-in-jsx-scope": "off",
2367
2364
  "react/jsx-no-leaked-render": [
2368
2365
  "warn",
2369
2366
  {
@@ -2373,11 +2370,13 @@ export default [
2373
2370
  ],
2374
2371
  },
2375
2372
  ],
2376
- "react/jsx-boolean-value": [
2373
+ "react/function-component-definition": [
2377
2374
  "error",
2378
- "never",
2375
+ {
2376
+ namedComponents: "function-declaration",
2377
+ unnamedComponents: "arrow-function",
2378
+ },
2379
2379
  ],
2380
- "react/react-in-jsx-scope": "off",
2381
2380
  "react-hooks/rules-of-hooks": "error",
2382
2381
  "react-hooks/exhaustive-deps": "error",
2383
2382
  },
@@ -2411,6 +2410,7 @@ export default [
2411
2410
  "vitest/no-focused-tests": "warn",
2412
2411
  "vitest/no-identical-title": "warn",
2413
2412
  "vitest/valid-expect": "warn",
2413
+ "vitest/valid-expect-in-promise": "error",
2414
2414
  },
2415
2415
  },
2416
2416
  {
@@ -935,14 +935,11 @@
935
935
  "sonarjs/no-implicit-global": "off",
936
936
  "sonarjs/no-control-regex": "off",
937
937
  "react/no-danger": "error",
938
- "react/prop-types": "off",
939
- "react/function-component-definition": [
938
+ "react/jsx-boolean-value": [
940
939
  "error",
941
- {
942
- "namedComponents": "function-declaration",
943
- "unnamedComponents": "arrow-function"
944
- }
940
+ "never"
945
941
  ],
942
+ "react/react-in-jsx-scope": "off",
946
943
  "react/jsx-no-leaked-render": [
947
944
  "warn",
948
945
  {
@@ -952,11 +949,13 @@
952
949
  ]
953
950
  }
954
951
  ],
955
- "react/jsx-boolean-value": [
952
+ "react/function-component-definition": [
956
953
  "error",
957
- "never"
954
+ {
955
+ "namedComponents": "function-declaration",
956
+ "unnamedComponents": "arrow-function"
957
+ }
958
958
  ],
959
- "react/react-in-jsx-scope": "off",
960
959
  "react-hooks/rules-of-hooks": "error",
961
960
  "react-hooks/exhaustive-deps": "error",
962
961
  "import-esm/explicit-extension": "error",
@@ -976,6 +975,7 @@
976
975
  "@vitest/no-focused-tests": "warn",
977
976
  "@vitest/no-identical-title": "warn",
978
977
  "@vitest/valid-expect": "warn",
978
+ "@vitest/valid-expect-in-promise": "error",
979
979
  "no-only-tests/no-only-tests": [
980
980
  "error",
981
981
  {
package/dist/esm-react.js CHANGED
@@ -2354,14 +2354,11 @@ export default [
2354
2354
  },
2355
2355
  rules: {
2356
2356
  "react/no-danger": "error",
2357
- "react/prop-types": "off",
2358
- "react/function-component-definition": [
2357
+ "react/jsx-boolean-value": [
2359
2358
  "error",
2360
- {
2361
- namedComponents: "function-declaration",
2362
- unnamedComponents: "arrow-function",
2363
- },
2359
+ "never",
2364
2360
  ],
2361
+ "react/react-in-jsx-scope": "off",
2365
2362
  "react/jsx-no-leaked-render": [
2366
2363
  "warn",
2367
2364
  {
@@ -2371,11 +2368,13 @@ export default [
2371
2368
  ],
2372
2369
  },
2373
2370
  ],
2374
- "react/jsx-boolean-value": [
2371
+ "react/function-component-definition": [
2375
2372
  "error",
2376
- "never",
2373
+ {
2374
+ namedComponents: "function-declaration",
2375
+ unnamedComponents: "arrow-function",
2376
+ },
2377
2377
  ],
2378
- "react/react-in-jsx-scope": "off",
2379
2378
  "react-hooks/rules-of-hooks": "error",
2380
2379
  "react-hooks/exhaustive-deps": "error",
2381
2380
  },
@@ -933,14 +933,11 @@
933
933
  "sonarjs/no-implicit-global": "off",
934
934
  "sonarjs/no-control-regex": "off",
935
935
  "react/no-danger": "error",
936
- "react/prop-types": "off",
937
- "react/function-component-definition": [
936
+ "react/jsx-boolean-value": [
938
937
  "error",
939
- {
940
- "namedComponents": "function-declaration",
941
- "unnamedComponents": "arrow-function"
942
- }
938
+ "never"
943
939
  ],
940
+ "react/react-in-jsx-scope": "off",
944
941
  "react/jsx-no-leaked-render": [
945
942
  "warn",
946
943
  {
@@ -950,11 +947,13 @@
950
947
  ]
951
948
  }
952
949
  ],
953
- "react/jsx-boolean-value": [
950
+ "react/function-component-definition": [
954
951
  "error",
955
- "never"
952
+ {
953
+ "namedComponents": "function-declaration",
954
+ "unnamedComponents": "arrow-function"
955
+ }
956
956
  ],
957
- "react/react-in-jsx-scope": "off",
958
957
  "react-hooks/rules-of-hooks": "error",
959
958
  "react-hooks/exhaustive-deps": "error",
960
959
  "import-esm/explicit-extension": "error"
@@ -2367,6 +2367,7 @@ export default [
2367
2367
  "vitest/no-focused-tests": "warn",
2368
2368
  "vitest/no-identical-title": "warn",
2369
2369
  "vitest/valid-expect": "warn",
2370
+ "vitest/valid-expect-in-promise": "error",
2370
2371
  },
2371
2372
  },
2372
2373
  {
@@ -950,6 +950,7 @@
950
950
  "@vitest/no-focused-tests": "warn",
951
951
  "@vitest/no-identical-title": "warn",
952
952
  "@vitest/valid-expect": "warn",
953
+ "@vitest/valid-expect-in-promise": "error",
953
954
  "testing-library/await-async-queries": "error",
954
955
  "testing-library/await-async-utils": "error",
955
956
  "testing-library/no-await-sync-queries": "error",
@@ -2366,6 +2366,7 @@ export default [
2366
2366
  "vitest/no-focused-tests": "warn",
2367
2367
  "vitest/no-identical-title": "warn",
2368
2368
  "vitest/valid-expect": "warn",
2369
+ "vitest/valid-expect-in-promise": "error",
2369
2370
  },
2370
2371
  },
2371
2372
  {
@@ -949,6 +949,7 @@
949
949
  "@vitest/no-focused-tests": "warn",
950
950
  "@vitest/no-identical-title": "warn",
951
951
  "@vitest/valid-expect": "warn",
952
+ "@vitest/valid-expect-in-promise": "error",
952
953
  "no-only-tests/no-only-tests": [
953
954
  "error",
954
955
  {
@@ -5,7 +5,6 @@ import plugin0001 from "@typescript-eslint/eslint-plugin";
5
5
  import plugin0002 from "@typescript-eslint/parser";
6
6
  import plugin0003 from "eslint-plugin-jsdoc";
7
7
  import plugin0004 from "eslint-plugin-react";
8
- import plugin0005 from "eslint-plugin-react-hooks";
9
8
 
10
9
  export default [
11
10
  {
@@ -119,7 +118,6 @@ export default [
119
118
  {
120
119
  plugins: {
121
120
  react: plugin0004,
122
- "react-hooks": plugin0005,
123
121
  },
124
122
  settings: {
125
123
  react: {
@@ -127,15 +125,6 @@ export default [
127
125
  },
128
126
  },
129
127
  rules: {
130
- "react/no-danger": "error",
131
- "react/prop-types": "off",
132
- "react/function-component-definition": [
133
- "error",
134
- {
135
- namedComponents: "function-declaration",
136
- unnamedComponents: "arrow-function",
137
- },
138
- ],
139
128
  "react/jsx-no-leaked-render": [
140
129
  "warn",
141
130
  {
@@ -145,13 +134,13 @@ export default [
145
134
  ],
146
135
  },
147
136
  ],
148
- "react/jsx-boolean-value": [
137
+ "react/function-component-definition": [
149
138
  "error",
150
- "never",
139
+ {
140
+ namedComponents: "function-declaration",
141
+ unnamedComponents: "arrow-function",
142
+ },
151
143
  ],
152
- "react/react-in-jsx-scope": "off",
153
- "react-hooks/rules-of-hooks": "error",
154
- "react-hooks/exhaustive-deps": "error",
155
144
  },
156
145
  },
157
146
  ];
@@ -5,7 +5,6 @@ import plugin0001 from "@typescript-eslint/eslint-plugin";
5
5
  import plugin0002 from "@typescript-eslint/parser";
6
6
  import plugin0003 from "eslint-plugin-jsdoc";
7
7
  import plugin0004 from "eslint-plugin-react";
8
- import plugin0005 from "eslint-plugin-react-hooks";
9
8
 
10
9
  export default [
11
10
  {
@@ -119,7 +118,6 @@ export default [
119
118
  {
120
119
  plugins: {
121
120
  react: plugin0004,
122
- "react-hooks": plugin0005,
123
121
  },
124
122
  settings: {
125
123
  react: {
@@ -127,15 +125,6 @@ export default [
127
125
  },
128
126
  },
129
127
  rules: {
130
- "react/no-danger": "error",
131
- "react/prop-types": "off",
132
- "react/function-component-definition": [
133
- "error",
134
- {
135
- namedComponents: "function-declaration",
136
- unnamedComponents: "arrow-function",
137
- },
138
- ],
139
128
  "react/jsx-no-leaked-render": [
140
129
  "warn",
141
130
  {
@@ -145,13 +134,13 @@ export default [
145
134
  ],
146
135
  },
147
136
  ],
148
- "react/jsx-boolean-value": [
137
+ "react/function-component-definition": [
149
138
  "error",
150
- "never",
139
+ {
140
+ namedComponents: "function-declaration",
141
+ unnamedComponents: "arrow-function",
142
+ },
151
143
  ],
152
- "react/react-in-jsx-scope": "off",
153
- "react-hooks/rules-of-hooks": "error",
154
- "react-hooks/exhaustive-deps": "error",
155
144
  },
156
145
  },
157
146
  ];
@@ -5,7 +5,6 @@ import plugin0001 from "@typescript-eslint/eslint-plugin";
5
5
  import plugin0002 from "@typescript-eslint/parser";
6
6
  import plugin0003 from "eslint-plugin-jsdoc";
7
7
  import plugin0004 from "eslint-plugin-react";
8
- import plugin0005 from "eslint-plugin-react-hooks";
9
8
 
10
9
  export default [
11
10
  {
@@ -119,7 +118,6 @@ export default [
119
118
  {
120
119
  plugins: {
121
120
  react: plugin0004,
122
- "react-hooks": plugin0005,
123
121
  },
124
122
  settings: {
125
123
  react: {
@@ -127,15 +125,6 @@ export default [
127
125
  },
128
126
  },
129
127
  rules: {
130
- "react/no-danger": "error",
131
- "react/prop-types": "off",
132
- "react/function-component-definition": [
133
- "error",
134
- {
135
- namedComponents: "function-declaration",
136
- unnamedComponents: "arrow-function",
137
- },
138
- ],
139
128
  "react/jsx-no-leaked-render": [
140
129
  "warn",
141
130
  {
@@ -145,13 +134,13 @@ export default [
145
134
  ],
146
135
  },
147
136
  ],
148
- "react/jsx-boolean-value": [
137
+ "react/function-component-definition": [
149
138
  "error",
150
- "never",
139
+ {
140
+ namedComponents: "function-declaration",
141
+ unnamedComponents: "arrow-function",
142
+ },
151
143
  ],
152
- "react/react-in-jsx-scope": "off",
153
- "react-hooks/rules-of-hooks": "error",
154
- "react-hooks/exhaustive-deps": "error",
155
144
  },
156
145
  },
157
146
  ];
@@ -5,7 +5,6 @@ import plugin0001 from "@typescript-eslint/eslint-plugin";
5
5
  import plugin0002 from "@typescript-eslint/parser";
6
6
  import plugin0003 from "eslint-plugin-jsdoc";
7
7
  import plugin0004 from "eslint-plugin-react";
8
- import plugin0005 from "eslint-plugin-react-hooks";
9
8
 
10
9
  export default [
11
10
  {
@@ -119,7 +118,6 @@ export default [
119
118
  {
120
119
  plugins: {
121
120
  react: plugin0004,
122
- "react-hooks": plugin0005,
123
121
  },
124
122
  settings: {
125
123
  react: {
@@ -127,15 +125,6 @@ export default [
127
125
  },
128
126
  },
129
127
  rules: {
130
- "react/no-danger": "error",
131
- "react/prop-types": "off",
132
- "react/function-component-definition": [
133
- "error",
134
- {
135
- namedComponents: "function-declaration",
136
- unnamedComponents: "arrow-function",
137
- },
138
- ],
139
128
  "react/jsx-no-leaked-render": [
140
129
  "warn",
141
130
  {
@@ -145,13 +134,13 @@ export default [
145
134
  ],
146
135
  },
147
136
  ],
148
- "react/jsx-boolean-value": [
137
+ "react/function-component-definition": [
149
138
  "error",
150
- "never",
139
+ {
140
+ namedComponents: "function-declaration",
141
+ unnamedComponents: "arrow-function",
142
+ },
151
143
  ],
152
- "react/react-in-jsx-scope": "off",
153
- "react-hooks/rules-of-hooks": "error",
154
- "react-hooks/exhaustive-deps": "error",
155
144
  },
156
145
  },
157
146
  ];
@@ -5,7 +5,6 @@ import plugin0001 from "@typescript-eslint/eslint-plugin";
5
5
  import plugin0002 from "@typescript-eslint/parser";
6
6
  import plugin0003 from "eslint-plugin-jsdoc";
7
7
  import plugin0004 from "eslint-plugin-react";
8
- import plugin0005 from "eslint-plugin-react-hooks";
9
8
 
10
9
  export default [
11
10
  {
@@ -119,7 +118,6 @@ export default [
119
118
  {
120
119
  plugins: {
121
120
  react: plugin0004,
122
- "react-hooks": plugin0005,
123
121
  },
124
122
  settings: {
125
123
  react: {
@@ -127,15 +125,6 @@ export default [
127
125
  },
128
126
  },
129
127
  rules: {
130
- "react/no-danger": "error",
131
- "react/prop-types": "off",
132
- "react/function-component-definition": [
133
- "error",
134
- {
135
- namedComponents: "function-declaration",
136
- unnamedComponents: "arrow-function",
137
- },
138
- ],
139
128
  "react/jsx-no-leaked-render": [
140
129
  "warn",
141
130
  {
@@ -145,13 +134,13 @@ export default [
145
134
  ],
146
135
  },
147
136
  ],
148
- "react/jsx-boolean-value": [
137
+ "react/function-component-definition": [
149
138
  "error",
150
- "never",
139
+ {
140
+ namedComponents: "function-declaration",
141
+ unnamedComponents: "arrow-function",
142
+ },
151
143
  ],
152
- "react/react-in-jsx-scope": "off",
153
- "react-hooks/rules-of-hooks": "error",
154
- "react-hooks/exhaustive-deps": "error",
155
144
  },
156
145
  },
157
146
  ];
@@ -5,7 +5,6 @@ import plugin0001 from "@typescript-eslint/eslint-plugin";
5
5
  import plugin0002 from "@typescript-eslint/parser";
6
6
  import plugin0003 from "eslint-plugin-jsdoc";
7
7
  import plugin0004 from "eslint-plugin-react";
8
- import plugin0005 from "eslint-plugin-react-hooks";
9
8
 
10
9
  export default [
11
10
  {
@@ -119,7 +118,6 @@ export default [
119
118
  {
120
119
  plugins: {
121
120
  react: plugin0004,
122
- "react-hooks": plugin0005,
123
121
  },
124
122
  settings: {
125
123
  react: {
@@ -127,15 +125,6 @@ export default [
127
125
  },
128
126
  },
129
127
  rules: {
130
- "react/no-danger": "error",
131
- "react/prop-types": "off",
132
- "react/function-component-definition": [
133
- "error",
134
- {
135
- namedComponents: "function-declaration",
136
- unnamedComponents: "arrow-function",
137
- },
138
- ],
139
128
  "react/jsx-no-leaked-render": [
140
129
  "warn",
141
130
  {
@@ -145,13 +134,13 @@ export default [
145
134
  ],
146
135
  },
147
136
  ],
148
- "react/jsx-boolean-value": [
137
+ "react/function-component-definition": [
149
138
  "error",
150
- "never",
139
+ {
140
+ namedComponents: "function-declaration",
141
+ unnamedComponents: "arrow-function",
142
+ },
151
143
  ],
152
- "react/react-in-jsx-scope": "off",
153
- "react-hooks/rules-of-hooks": "error",
154
- "react-hooks/exhaustive-deps": "error",
155
144
  },
156
145
  },
157
146
  ];
@@ -5,7 +5,6 @@ import plugin0001 from "@typescript-eslint/eslint-plugin";
5
5
  import plugin0002 from "@typescript-eslint/parser";
6
6
  import plugin0003 from "eslint-plugin-jsdoc";
7
7
  import plugin0004 from "eslint-plugin-react";
8
- import plugin0005 from "eslint-plugin-react-hooks";
9
8
 
10
9
  export default [
11
10
  {
@@ -119,7 +118,6 @@ export default [
119
118
  {
120
119
  plugins: {
121
120
  react: plugin0004,
122
- "react-hooks": plugin0005,
123
121
  },
124
122
  settings: {
125
123
  react: {
@@ -127,15 +125,6 @@ export default [
127
125
  },
128
126
  },
129
127
  rules: {
130
- "react/no-danger": "error",
131
- "react/prop-types": "off",
132
- "react/function-component-definition": [
133
- "error",
134
- {
135
- namedComponents: "function-declaration",
136
- unnamedComponents: "arrow-function",
137
- },
138
- ],
139
128
  "react/jsx-no-leaked-render": [
140
129
  "warn",
141
130
  {
@@ -145,13 +134,13 @@ export default [
145
134
  ],
146
135
  },
147
136
  ],
148
- "react/jsx-boolean-value": [
137
+ "react/function-component-definition": [
149
138
  "error",
150
- "never",
139
+ {
140
+ namedComponents: "function-declaration",
141
+ unnamedComponents: "arrow-function",
142
+ },
151
143
  ],
152
- "react/react-in-jsx-scope": "off",
153
- "react-hooks/rules-of-hooks": "error",
154
- "react-hooks/exhaustive-deps": "error",
155
144
  },
156
145
  },
157
146
  ];
@@ -5,7 +5,6 @@ import plugin0001 from "@typescript-eslint/eslint-plugin";
5
5
  import plugin0002 from "@typescript-eslint/parser";
6
6
  import plugin0003 from "eslint-plugin-jsdoc";
7
7
  import plugin0004 from "eslint-plugin-react";
8
- import plugin0005 from "eslint-plugin-react-hooks";
9
8
 
10
9
  export default [
11
10
  {
@@ -119,7 +118,6 @@ export default [
119
118
  {
120
119
  plugins: {
121
120
  react: plugin0004,
122
- "react-hooks": plugin0005,
123
121
  },
124
122
  settings: {
125
123
  react: {
@@ -127,15 +125,6 @@ export default [
127
125
  },
128
126
  },
129
127
  rules: {
130
- "react/no-danger": "error",
131
- "react/prop-types": "off",
132
- "react/function-component-definition": [
133
- "error",
134
- {
135
- namedComponents: "function-declaration",
136
- unnamedComponents: "arrow-function",
137
- },
138
- ],
139
128
  "react/jsx-no-leaked-render": [
140
129
  "warn",
141
130
  {
@@ -145,13 +134,13 @@ export default [
145
134
  ],
146
135
  },
147
136
  ],
148
- "react/jsx-boolean-value": [
137
+ "react/function-component-definition": [
149
138
  "error",
150
- "never",
139
+ {
140
+ namedComponents: "function-declaration",
141
+ unnamedComponents: "arrow-function",
142
+ },
151
143
  ],
152
- "react/react-in-jsx-scope": "off",
153
- "react-hooks/rules-of-hooks": "error",
154
- "react-hooks/exhaustive-deps": "error",
155
144
  },
156
145
  },
157
146
  ];
@@ -5,7 +5,6 @@ import plugin0001 from "@typescript-eslint/eslint-plugin";
5
5
  import plugin0002 from "@typescript-eslint/parser";
6
6
  import plugin0003 from "eslint-plugin-jsdoc";
7
7
  import plugin0004 from "eslint-plugin-react";
8
- import plugin0005 from "eslint-plugin-react-hooks";
9
8
 
10
9
  export default [
11
10
  {
@@ -119,7 +118,6 @@ export default [
119
118
  {
120
119
  plugins: {
121
120
  react: plugin0004,
122
- "react-hooks": plugin0005,
123
121
  },
124
122
  settings: {
125
123
  react: {
@@ -127,15 +125,6 @@ export default [
127
125
  },
128
126
  },
129
127
  rules: {
130
- "react/no-danger": "error",
131
- "react/prop-types": "off",
132
- "react/function-component-definition": [
133
- "error",
134
- {
135
- namedComponents: "function-declaration",
136
- unnamedComponents: "arrow-function",
137
- },
138
- ],
139
128
  "react/jsx-no-leaked-render": [
140
129
  "warn",
141
130
  {
@@ -145,13 +134,13 @@ export default [
145
134
  ],
146
135
  },
147
136
  ],
148
- "react/jsx-boolean-value": [
137
+ "react/function-component-definition": [
149
138
  "error",
150
- "never",
139
+ {
140
+ namedComponents: "function-declaration",
141
+ unnamedComponents: "arrow-function",
142
+ },
151
143
  ],
152
- "react/react-in-jsx-scope": "off",
153
- "react-hooks/rules-of-hooks": "error",
154
- "react-hooks/exhaustive-deps": "error",
155
144
  },
156
145
  },
157
146
  ];
@@ -2356,14 +2356,11 @@ export default [
2356
2356
  },
2357
2357
  rules: {
2358
2358
  "react/no-danger": "error",
2359
- "react/prop-types": "off",
2360
- "react/function-component-definition": [
2359
+ "react/jsx-boolean-value": [
2361
2360
  "error",
2362
- {
2363
- namedComponents: "function-declaration",
2364
- unnamedComponents: "arrow-function",
2365
- },
2361
+ "never",
2366
2362
  ],
2363
+ "react/react-in-jsx-scope": "off",
2367
2364
  "react/jsx-no-leaked-render": [
2368
2365
  "warn",
2369
2366
  {
@@ -2373,11 +2370,13 @@ export default [
2373
2370
  ],
2374
2371
  },
2375
2372
  ],
2376
- "react/jsx-boolean-value": [
2373
+ "react/function-component-definition": [
2377
2374
  "error",
2378
- "never",
2375
+ {
2376
+ namedComponents: "function-declaration",
2377
+ unnamedComponents: "arrow-function",
2378
+ },
2379
2379
  ],
2380
- "react/react-in-jsx-scope": "off",
2381
2380
  "react-hooks/rules-of-hooks": "error",
2382
2381
  "react-hooks/exhaustive-deps": "error",
2383
2382
  },
@@ -935,14 +935,11 @@
935
935
  "sonarjs/no-implicit-global": "off",
936
936
  "sonarjs/no-control-regex": "off",
937
937
  "react/no-danger": "error",
938
- "react/prop-types": "off",
939
- "react/function-component-definition": [
938
+ "react/jsx-boolean-value": [
940
939
  "error",
941
- {
942
- "namedComponents": "function-declaration",
943
- "unnamedComponents": "arrow-function"
944
- }
940
+ "never"
945
941
  ],
942
+ "react/react-in-jsx-scope": "off",
946
943
  "react/jsx-no-leaked-render": [
947
944
  "warn",
948
945
  {
@@ -952,11 +949,13 @@
952
949
  ]
953
950
  }
954
951
  ],
955
- "react/jsx-boolean-value": [
952
+ "react/function-component-definition": [
956
953
  "error",
957
- "never"
954
+ {
955
+ "namedComponents": "function-declaration",
956
+ "unnamedComponents": "arrow-function"
957
+ }
958
958
  ],
959
- "react/react-in-jsx-scope": "off",
960
959
  "react-hooks/rules-of-hooks": "error",
961
960
  "react-hooks/exhaustive-deps": "error",
962
961
  "playwright/consistent-spacing-between-blocks": "warn",
@@ -2356,14 +2356,11 @@ export default [
2356
2356
  },
2357
2357
  rules: {
2358
2358
  "react/no-danger": "error",
2359
- "react/prop-types": "off",
2360
- "react/function-component-definition": [
2359
+ "react/jsx-boolean-value": [
2361
2360
  "error",
2362
- {
2363
- namedComponents: "function-declaration",
2364
- unnamedComponents: "arrow-function",
2365
- },
2361
+ "never",
2366
2362
  ],
2363
+ "react/react-in-jsx-scope": "off",
2367
2364
  "react/jsx-no-leaked-render": [
2368
2365
  "warn",
2369
2366
  {
@@ -2373,11 +2370,13 @@ export default [
2373
2370
  ],
2374
2371
  },
2375
2372
  ],
2376
- "react/jsx-boolean-value": [
2373
+ "react/function-component-definition": [
2377
2374
  "error",
2378
- "never",
2375
+ {
2376
+ namedComponents: "function-declaration",
2377
+ unnamedComponents: "arrow-function",
2378
+ },
2379
2379
  ],
2380
- "react/react-in-jsx-scope": "off",
2381
2380
  "react-hooks/rules-of-hooks": "error",
2382
2381
  "react-hooks/exhaustive-deps": "error",
2383
2382
  },
@@ -2403,6 +2402,7 @@ export default [
2403
2402
  "vitest/no-focused-tests": "warn",
2404
2403
  "vitest/no-identical-title": "warn",
2405
2404
  "vitest/valid-expect": "warn",
2405
+ "vitest/valid-expect-in-promise": "error",
2406
2406
  },
2407
2407
  },
2408
2408
  {
@@ -935,14 +935,11 @@
935
935
  "sonarjs/no-implicit-global": "off",
936
936
  "sonarjs/no-control-regex": "off",
937
937
  "react/no-danger": "error",
938
- "react/prop-types": "off",
939
- "react/function-component-definition": [
938
+ "react/jsx-boolean-value": [
940
939
  "error",
941
- {
942
- "namedComponents": "function-declaration",
943
- "unnamedComponents": "arrow-function"
944
- }
940
+ "never"
945
941
  ],
942
+ "react/react-in-jsx-scope": "off",
946
943
  "react/jsx-no-leaked-render": [
947
944
  "warn",
948
945
  {
@@ -952,11 +949,13 @@
952
949
  ]
953
950
  }
954
951
  ],
955
- "react/jsx-boolean-value": [
952
+ "react/function-component-definition": [
956
953
  "error",
957
- "never"
954
+ {
955
+ "namedComponents": "function-declaration",
956
+ "unnamedComponents": "arrow-function"
957
+ }
958
958
  ],
959
- "react/react-in-jsx-scope": "off",
960
959
  "react-hooks/rules-of-hooks": "error",
961
960
  "react-hooks/exhaustive-deps": "error",
962
961
  "@vitest/no-conditional-expect": "error",
@@ -975,6 +974,7 @@
975
974
  "@vitest/no-focused-tests": "warn",
976
975
  "@vitest/no-identical-title": "warn",
977
976
  "@vitest/valid-expect": "warn",
977
+ "@vitest/valid-expect-in-promise": "error",
978
978
  "testing-library/await-async-queries": "error",
979
979
  "testing-library/await-async-utils": "error",
980
980
  "testing-library/no-await-sync-queries": "error",
@@ -2355,14 +2355,11 @@ export default [
2355
2355
  },
2356
2356
  rules: {
2357
2357
  "react/no-danger": "error",
2358
- "react/prop-types": "off",
2359
- "react/function-component-definition": [
2358
+ "react/jsx-boolean-value": [
2360
2359
  "error",
2361
- {
2362
- namedComponents: "function-declaration",
2363
- unnamedComponents: "arrow-function",
2364
- },
2360
+ "never",
2365
2361
  ],
2362
+ "react/react-in-jsx-scope": "off",
2366
2363
  "react/jsx-no-leaked-render": [
2367
2364
  "warn",
2368
2365
  {
@@ -2372,11 +2369,13 @@ export default [
2372
2369
  ],
2373
2370
  },
2374
2371
  ],
2375
- "react/jsx-boolean-value": [
2372
+ "react/function-component-definition": [
2376
2373
  "error",
2377
- "never",
2374
+ {
2375
+ namedComponents: "function-declaration",
2376
+ unnamedComponents: "arrow-function",
2377
+ },
2378
2378
  ],
2379
- "react/react-in-jsx-scope": "off",
2380
2379
  "react-hooks/rules-of-hooks": "error",
2381
2380
  "react-hooks/exhaustive-deps": "error",
2382
2381
  },
@@ -2402,6 +2401,7 @@ export default [
2402
2401
  "vitest/no-focused-tests": "warn",
2403
2402
  "vitest/no-identical-title": "warn",
2404
2403
  "vitest/valid-expect": "warn",
2404
+ "vitest/valid-expect-in-promise": "error",
2405
2405
  },
2406
2406
  },
2407
2407
  {
@@ -934,14 +934,11 @@
934
934
  "sonarjs/no-implicit-global": "off",
935
935
  "sonarjs/no-control-regex": "off",
936
936
  "react/no-danger": "error",
937
- "react/prop-types": "off",
938
- "react/function-component-definition": [
937
+ "react/jsx-boolean-value": [
939
938
  "error",
940
- {
941
- "namedComponents": "function-declaration",
942
- "unnamedComponents": "arrow-function"
943
- }
939
+ "never"
944
940
  ],
941
+ "react/react-in-jsx-scope": "off",
945
942
  "react/jsx-no-leaked-render": [
946
943
  "warn",
947
944
  {
@@ -951,11 +948,13 @@
951
948
  ]
952
949
  }
953
950
  ],
954
- "react/jsx-boolean-value": [
951
+ "react/function-component-definition": [
955
952
  "error",
956
- "never"
953
+ {
954
+ "namedComponents": "function-declaration",
955
+ "unnamedComponents": "arrow-function"
956
+ }
957
957
  ],
958
- "react/react-in-jsx-scope": "off",
959
958
  "react-hooks/rules-of-hooks": "error",
960
959
  "react-hooks/exhaustive-deps": "error",
961
960
  "@vitest/no-conditional-expect": "error",
@@ -974,6 +973,7 @@
974
973
  "@vitest/no-focused-tests": "warn",
975
974
  "@vitest/no-identical-title": "warn",
976
975
  "@vitest/valid-expect": "warn",
976
+ "@vitest/valid-expect-in-promise": "error",
977
977
  "no-only-tests/no-only-tests": [
978
978
  "error",
979
979
  {
package/dist/react.js CHANGED
@@ -2353,14 +2353,11 @@ export default [
2353
2353
  },
2354
2354
  rules: {
2355
2355
  "react/no-danger": "error",
2356
- "react/prop-types": "off",
2357
- "react/function-component-definition": [
2356
+ "react/jsx-boolean-value": [
2358
2357
  "error",
2359
- {
2360
- namedComponents: "function-declaration",
2361
- unnamedComponents: "arrow-function",
2362
- },
2358
+ "never",
2363
2359
  ],
2360
+ "react/react-in-jsx-scope": "off",
2364
2361
  "react/jsx-no-leaked-render": [
2365
2362
  "warn",
2366
2363
  {
@@ -2370,11 +2367,13 @@ export default [
2370
2367
  ],
2371
2368
  },
2372
2369
  ],
2373
- "react/jsx-boolean-value": [
2370
+ "react/function-component-definition": [
2374
2371
  "error",
2375
- "never",
2372
+ {
2373
+ namedComponents: "function-declaration",
2374
+ unnamedComponents: "arrow-function",
2375
+ },
2376
2376
  ],
2377
- "react/react-in-jsx-scope": "off",
2378
2377
  "react-hooks/rules-of-hooks": "error",
2379
2378
  "react-hooks/exhaustive-deps": "error",
2380
2379
  },
package/dist/react.json CHANGED
@@ -932,14 +932,11 @@
932
932
  "sonarjs/no-implicit-global": "off",
933
933
  "sonarjs/no-control-regex": "off",
934
934
  "react/no-danger": "error",
935
- "react/prop-types": "off",
936
- "react/function-component-definition": [
935
+ "react/jsx-boolean-value": [
937
936
  "error",
938
- {
939
- "namedComponents": "function-declaration",
940
- "unnamedComponents": "arrow-function"
941
- }
937
+ "never"
942
938
  ],
939
+ "react/react-in-jsx-scope": "off",
943
940
  "react/jsx-no-leaked-render": [
944
941
  "warn",
945
942
  {
@@ -949,11 +946,13 @@
949
946
  ]
950
947
  }
951
948
  ],
952
- "react/jsx-boolean-value": [
949
+ "react/function-component-definition": [
953
950
  "error",
954
- "never"
951
+ {
952
+ "namedComponents": "function-declaration",
953
+ "unnamedComponents": "arrow-function"
954
+ }
955
955
  ],
956
- "react/react-in-jsx-scope": "off",
957
956
  "react-hooks/rules-of-hooks": "error",
958
957
  "react-hooks/exhaustive-deps": "error"
959
958
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/eslint-config",
3
- "version": "11.57.0-alpha.2",
3
+ "version": "11.57.0-alpha.4",
4
4
  "license": "MIT",
5
5
  "author": "GoodData",
6
6
  "repository": {
@@ -123,6 +123,7 @@
123
123
  }
124
124
  },
125
125
  "devDependencies": {
126
+ "@eslint/js": "9.39.5",
126
127
  "@testing-library/dom": "10.4.1",
127
128
  "@types/node": "24.12.0",
128
129
  "@typescript-eslint/eslint-plugin": "8.58.0",
@@ -151,7 +152,7 @@
151
152
  "storybook": "^10.5.6",
152
153
  "typescript": "7.0.2",
153
154
  "vite-node": "5.3.0",
154
- "@gooddata/lint-config": "11.57.0-alpha.2"
155
+ "@gooddata/lint-config": "11.57.0-alpha.4"
155
156
  },
156
157
  "peerDependencies": {
157
158
  "@typescript-eslint/eslint-plugin": "8.58.0",