@eslint-react/eslint-plugin 2.0.0-beta.18 → 2.0.0-beta.19

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/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import reactDebug from 'eslint-plugin-react-debug';
2
2
  import reactDom from 'eslint-plugin-react-dom';
3
+ import reactHooksExtra from 'eslint-plugin-react-hooks-extra';
3
4
  import reactNamingConvention from 'eslint-plugin-react-naming-convention';
4
5
  import reactWebApi from 'eslint-plugin-react-web-api';
5
6
  import react from 'eslint-plugin-react-x';
@@ -7,13 +8,13 @@ import { DEFAULT_ESLINT_REACT_SETTINGS } from '@eslint-react/shared';
7
8
 
8
9
  var __defProp = Object.defineProperty;
9
10
  var __export = (target, all) => {
10
- for (var name14 in all)
11
- __defProp(target, name14, { get: all[name14], enumerable: true });
11
+ for (var name15 in all)
12
+ __defProp(target, name15, { get: all[name15], enumerable: true });
12
13
  };
13
14
 
14
15
  // package.json
15
16
  var name = "@eslint-react/eslint-plugin";
16
- var version = "2.0.0-beta.18";
17
+ var version = "2.0.0-beta.19";
17
18
 
18
19
  // src/configs/all.ts
19
20
  var all_exports = {};
@@ -68,9 +69,11 @@ __export(x_exports, {
68
69
  var name3 = "@eslint-react/x";
69
70
  var rules2 = {
70
71
  "@eslint-react/jsx-no-comment-textnodes": "warn",
71
- "@eslint-react/jsx-key-before-spread": "warn",
72
72
  "@eslint-react/jsx-no-duplicate-props": "warn",
73
+ // "@eslint-react/jsx-no-iife": "warn",
73
74
  // "@eslint-react/jsx-no-undef": "error",
75
+ // "@eslint-react/jsx-shorthand-boolean": "warn",
76
+ // "@eslint-react/jsx-shorthand-fragment": "warn",
74
77
  "@eslint-react/jsx-uses-react": "warn",
75
78
  "@eslint-react/jsx-uses-vars": "warn",
76
79
  "@eslint-react/no-access-state-in-setstate": "error",
@@ -83,6 +86,7 @@ var rules2 = {
83
86
  "@eslint-react/no-children-to-array": "warn",
84
87
  // "@eslint-react/no-class-component": "warn",
85
88
  "@eslint-react/no-clone-element": "warn",
89
+ "@eslint-react/no-comment-textnodes": "warn",
86
90
  "@eslint-react/no-component-will-mount": "error",
87
91
  "@eslint-react/no-component-will-receive-props": "error",
88
92
  "@eslint-react/no-component-will-update": "error",
@@ -90,25 +94,24 @@ var rules2 = {
90
94
  "@eslint-react/no-create-ref": "error",
91
95
  "@eslint-react/no-default-props": "error",
92
96
  "@eslint-react/no-direct-mutation-state": "error",
93
- // "@eslint-react/prefer-destructuring-assignment": "warn",
94
- // "@eslint-react/prefer-namespace-import": "warn",
95
- // "@eslint-react/prefer-read-only-props": "error",
96
- "@eslint-react/no-direct-set-state-in-use-effect": "warn",
97
- "@eslint-react/no-duplicate-key": "warn",
97
+ "@eslint-react/no-duplicate-key": "error",
98
98
  "@eslint-react/no-forward-ref": "warn",
99
99
  "@eslint-react/no-implicit-key": "warn",
100
+ // "@eslint-react/no-leaked-conditional-rendering": "warn",
100
101
  // "@eslint-react/no-missing-component-display-name": "warn",
101
102
  // "@eslint-react/no-missing-context-display-name": "warn",
102
103
  "@eslint-react/no-missing-key": "error",
103
104
  // "@eslint-react/no-misused-capture-owner-stack": "error",
104
105
  "@eslint-react/no-nested-component-definitions": "error",
105
- "@eslint-react/no-nested-lazy-component-declarations": "warn",
106
+ "@eslint-react/no-nested-lazy-component-declarations": "error",
106
107
  "@eslint-react/no-prop-types": "error",
107
108
  "@eslint-react/no-redundant-should-component-update": "error",
108
109
  "@eslint-react/no-set-state-in-component-did-mount": "warn",
109
110
  "@eslint-react/no-set-state-in-component-did-update": "warn",
110
111
  "@eslint-react/no-set-state-in-component-will-update": "warn",
111
112
  "@eslint-react/no-string-refs": "error",
113
+ // "@eslint-react/no-unnecessary-use-callback": "warn",
114
+ // "@eslint-react/no-unnecessary-use-memo": "warn",
112
115
  "@eslint-react/no-unnecessary-use-prefix": "warn",
113
116
  "@eslint-react/no-unsafe-component-will-mount": "warn",
114
117
  "@eslint-react/no-unsafe-component-will-receive-props": "warn",
@@ -116,9 +119,14 @@ var rules2 = {
116
119
  "@eslint-react/no-unstable-context-value": "warn",
117
120
  "@eslint-react/no-unstable-default-props": "warn",
118
121
  "@eslint-react/no-unused-class-component-members": "warn",
122
+ // "@eslint-react/no-unused-props": "warn",
119
123
  "@eslint-react/no-unused-state": "warn",
120
124
  "@eslint-react/no-use-context": "warn",
121
125
  "@eslint-react/no-useless-forward-ref": "warn",
126
+ // "@eslint-react/no-useless-fragment": "warn",
127
+ // "@eslint-react/prefer-destructuring-assignment": "warn",
128
+ // "@eslint-react/prefer-namespace-import": "warn",
129
+ // "@eslint-react/prefer-read-only-props": "error",
122
130
  "@eslint-react/prefer-use-state-lazy-initialization": "warn"
123
131
  };
124
132
  var plugins2 = {
@@ -131,9 +139,13 @@ var settings2 = {
131
139
  // src/configs/all.ts
132
140
  var name4 = "@eslint-react/all";
133
141
  var rules3 = {
142
+ "@eslint-react/jsx-key-before-spread": "warn",
134
143
  "@eslint-react/jsx-no-comment-textnodes": "warn",
135
144
  "@eslint-react/jsx-no-duplicate-props": "warn",
145
+ "@eslint-react/jsx-no-iife": "warn",
136
146
  "@eslint-react/jsx-no-undef": "error",
147
+ "@eslint-react/jsx-shorthand-boolean": "warn",
148
+ "@eslint-react/jsx-shorthand-fragment": "warn",
137
149
  "@eslint-react/jsx-uses-react": "warn",
138
150
  "@eslint-react/jsx-uses-vars": "warn",
139
151
  "@eslint-react/no-access-state-in-setstate": "error",
@@ -146,6 +158,7 @@ var rules3 = {
146
158
  "@eslint-react/no-children-to-array": "warn",
147
159
  "@eslint-react/no-class-component": "warn",
148
160
  "@eslint-react/no-clone-element": "warn",
161
+ "@eslint-react/no-comment-textnodes": "warn",
149
162
  "@eslint-react/no-component-will-mount": "error",
150
163
  "@eslint-react/no-component-will-receive-props": "error",
151
164
  "@eslint-react/no-component-will-update": "error",
@@ -153,17 +166,16 @@ var rules3 = {
153
166
  "@eslint-react/no-create-ref": "error",
154
167
  "@eslint-react/no-default-props": "error",
155
168
  "@eslint-react/no-direct-mutation-state": "error",
156
- "@eslint-react/no-direct-set-state-in-use-effect": "warn",
157
- "@eslint-react/no-direct-set-state-in-use-layout-effect": "warn",
158
- "@eslint-react/no-duplicate-key": "warn",
169
+ "@eslint-react/no-duplicate-key": "error",
159
170
  "@eslint-react/no-forward-ref": "warn",
160
171
  "@eslint-react/no-implicit-key": "warn",
172
+ // "@eslint-react/no-leaked-conditional-rendering": "warn",
161
173
  "@eslint-react/no-missing-component-display-name": "warn",
162
174
  "@eslint-react/no-missing-context-display-name": "warn",
163
175
  "@eslint-react/no-missing-key": "error",
164
176
  "@eslint-react/no-misused-capture-owner-stack": "error",
165
177
  "@eslint-react/no-nested-component-definitions": "error",
166
- "@eslint-react/no-nested-lazy-component-declarations": "warn",
178
+ "@eslint-react/no-nested-lazy-component-declarations": "error",
167
179
  "@eslint-react/no-prop-types": "error",
168
180
  "@eslint-react/no-redundant-should-component-update": "error",
169
181
  "@eslint-react/no-set-state-in-component-did-mount": "warn",
@@ -179,12 +191,17 @@ var rules3 = {
179
191
  "@eslint-react/no-unstable-context-value": "warn",
180
192
  "@eslint-react/no-unstable-default-props": "warn",
181
193
  "@eslint-react/no-unused-class-component-members": "warn",
194
+ // "@eslint-react/no-unused-props": "warn",
182
195
  "@eslint-react/no-unused-state": "warn",
183
196
  "@eslint-react/no-use-context": "warn",
184
197
  "@eslint-react/no-useless-forward-ref": "warn",
198
+ "@eslint-react/no-useless-fragment": "warn",
185
199
  "@eslint-react/prefer-destructuring-assignment": "warn",
186
200
  "@eslint-react/prefer-namespace-import": "warn",
201
+ // "@eslint-react/prefer-read-only-props": "error",
187
202
  "@eslint-react/prefer-use-state-lazy-initialization": "warn",
203
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "warn",
204
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect": "warn",
188
205
  "@eslint-react/dom/no-dangerously-set-innerhtml": "warn",
189
206
  "@eslint-react/dom/no-dangerously-set-innerhtml-with-children": "error",
190
207
  "@eslint-react/dom/no-find-dom-node": "error",
@@ -215,6 +232,7 @@ var plugins3 = {
215
232
  ...plugins2,
216
233
  ...plugins,
217
234
  "@eslint-react/debug": reactDebug,
235
+ "@eslint-react/hooks-extra": reactHooksExtra,
218
236
  "@eslint-react/naming-convention": reactNamingConvention,
219
237
  "@eslint-react/web-api": reactWebApi
220
238
  };
@@ -241,43 +259,103 @@ var plugins4 = {
241
259
  "@eslint-react/debug": reactDebug
242
260
  };
243
261
 
262
+ // src/configs/disable-conflict-eslint-plugin-react.ts
263
+ var disable_conflict_eslint_plugin_react_exports = {};
264
+ __export(disable_conflict_eslint_plugin_react_exports, {
265
+ name: () => name6,
266
+ rules: () => rules5
267
+ });
268
+ var conflictingRules = [
269
+ "button-has-type",
270
+ "destructuring-assignment",
271
+ "display-name",
272
+ "forbid-prop-types",
273
+ "forward-ref-uses-ref",
274
+ "hook-use-state",
275
+ "iframe-missing-sandbox",
276
+ "jsx-boolean-value",
277
+ "jsx-filename-extension",
278
+ "jsx-fragments",
279
+ "jsx-key",
280
+ "jsx-no-comment-textnodes",
281
+ "jsx-no-constructed-context-values",
282
+ "jsx-no-duplicate-props",
283
+ "jsx-no-leaked-render",
284
+ "jsx-no-script-url",
285
+ "jsx-no-target-blank",
286
+ "jsx-no-undef",
287
+ "jsx-no-useless-fragment",
288
+ "jsx-pascal-case",
289
+ "jsx-uses-react",
290
+ "jsx-uses-vars",
291
+ "no-access-state-in-setstate",
292
+ "no-array-index-key",
293
+ "no-children-prop",
294
+ "no-danger",
295
+ "no-danger-with-children",
296
+ "no-deprecated",
297
+ "no-did-mount-set-state",
298
+ "no-did-update-set-state",
299
+ "no-direct-mutation-state",
300
+ "no-find-dom-node",
301
+ "no-namespace",
302
+ "no-object-type-as-default-prop",
303
+ "no-redundant-should-component-update",
304
+ "no-render-return-value",
305
+ "no-string-refs",
306
+ "no-unknown-property",
307
+ "no-unsafe",
308
+ "no-unstable-nested-components",
309
+ "no-unused-class-component-members",
310
+ "no-unused-state",
311
+ "no-will-update-set-state",
312
+ "prefer-read-only-props",
313
+ "prop-types",
314
+ "void-dom-elements-no-children"
315
+ ];
316
+ var name6 = "@eslint-react/disable-conflict-eslint-plugin-react";
317
+ var rules5 = Object.fromEntries(
318
+ Object.entries(conflictingRules).map(([key]) => [key, "off"])
319
+ );
320
+
244
321
  // src/configs/disable-debug.ts
245
322
  var disable_debug_exports = {};
246
323
  __export(disable_debug_exports, {
247
- name: () => name6,
248
- rules: () => rules5
324
+ name: () => name7,
325
+ rules: () => rules6
249
326
  });
250
- var name6 = "@eslint-react/disable-debug";
251
- var rules5 = Object.fromEntries(Object.entries(rules4).map(([rule]) => [rule, "off"]));
327
+ var name7 = "@eslint-react/disable-debug";
328
+ var rules6 = Object.fromEntries(Object.entries(rules4).map(([rule]) => [rule, "off"]));
252
329
 
253
330
  // src/configs/disable-dom.ts
254
331
  var disable_dom_exports = {};
255
332
  __export(disable_dom_exports, {
256
- name: () => name7,
257
- rules: () => rules6
333
+ name: () => name8,
334
+ rules: () => rules7
258
335
  });
259
- var name7 = "@eslint-react/disable-dom";
260
- var rules6 = Object.fromEntries(Object.entries(rules).map(([key]) => [key, "off"]));
336
+ var name8 = "@eslint-react/disable-dom";
337
+ var rules7 = Object.fromEntries(Object.entries(rules).map(([key]) => [key, "off"]));
261
338
 
262
339
  // src/configs/disable-type-checked.ts
263
340
  var disable_type_checked_exports = {};
264
341
  __export(disable_type_checked_exports, {
265
- name: () => name8,
266
- rules: () => rules7
342
+ name: () => name9,
343
+ rules: () => rules8
267
344
  });
268
- var name8 = "@eslint-react/disable-type-checked";
269
- var rules7 = {
345
+ var name9 = "@eslint-react/disable-type-checked";
346
+ var rules8 = {
270
347
  "@eslint-react/no-leaked-conditional-rendering": "off",
348
+ "@eslint-react/no-unused-props": "off",
271
349
  "@eslint-react/prefer-read-only-props": "off"
272
350
  };
273
351
 
274
352
  // src/configs/disable-web-api.ts
275
353
  var disable_web_api_exports = {};
276
354
  __export(disable_web_api_exports, {
277
- name: () => name9,
278
- rules: () => rules9
355
+ name: () => name10,
356
+ rules: () => rules10
279
357
  });
280
- var rules8 = {
358
+ var rules9 = {
281
359
  "@eslint-react/web-api/no-leaked-event-listener": "warn",
282
360
  "@eslint-react/web-api/no-leaked-interval": "warn",
283
361
  "@eslint-react/web-api/no-leaked-resize-observer": "warn",
@@ -288,34 +366,34 @@ var plugins5 = {
288
366
  };
289
367
 
290
368
  // src/configs/disable-web-api.ts
291
- var name9 = "@eslint-react/disable-web-api";
292
- var rules9 = Object.fromEntries(Object.entries(rules8).map(([key]) => [key, "off"]));
369
+ var name10 = "@eslint-react/disable-web-api";
370
+ var rules10 = Object.fromEntries(Object.entries(rules9).map(([key]) => [key, "off"]));
293
371
 
294
372
  // src/configs/off.ts
295
373
  var off_exports = {};
296
374
  __export(off_exports, {
297
- name: () => name10,
298
- rules: () => rules10
375
+ name: () => name11,
376
+ rules: () => rules11
299
377
  });
300
- var name10 = "@eslint-react/off";
301
- var rules10 = {
378
+ var name11 = "@eslint-react/off";
379
+ var rules11 = {
302
380
  ...Object.fromEntries(Object.entries(rules3).map(([key]) => [key, "off"])),
303
- ...rules7
381
+ ...rules8
304
382
  };
305
383
 
306
384
  // src/configs/recommended.ts
307
385
  var recommended_exports = {};
308
386
  __export(recommended_exports, {
309
- name: () => name11,
387
+ name: () => name12,
310
388
  plugins: () => plugins6,
311
- rules: () => rules11,
389
+ rules: () => rules12,
312
390
  settings: () => settings5
313
391
  });
314
- var name11 = "@eslint-react/recommended";
315
- var rules11 = {
392
+ var name12 = "@eslint-react/recommended";
393
+ var rules12 = {
316
394
  ...rules2,
317
395
  ...rules,
318
- ...rules8,
396
+ ...rules9,
319
397
  "@eslint-react/naming-convention/context-name": "warn"
320
398
  // "@eslint-react/naming-convention/use-state": "warn",
321
399
  };
@@ -324,6 +402,7 @@ var plugins6 = {
324
402
  ...plugins,
325
403
  ...plugins5,
326
404
  "@eslint-react/debug": reactDebug,
405
+ "@eslint-react/hooks-extra": reactHooksExtra,
327
406
  "@eslint-react/naming-convention": reactNamingConvention
328
407
  };
329
408
  var settings5 = {
@@ -333,23 +412,23 @@ var settings5 = {
333
412
  // src/configs/recommended-type-checked.ts
334
413
  var recommended_type_checked_exports = {};
335
414
  __export(recommended_type_checked_exports, {
336
- name: () => name13,
415
+ name: () => name14,
337
416
  plugins: () => plugins8,
338
- rules: () => rules13,
417
+ rules: () => rules14,
339
418
  settings: () => settings7
340
419
  });
341
420
 
342
421
  // src/configs/recommended-typescript.ts
343
422
  var recommended_typescript_exports = {};
344
423
  __export(recommended_typescript_exports, {
345
- name: () => name12,
424
+ name: () => name13,
346
425
  plugins: () => plugins7,
347
- rules: () => rules12,
426
+ rules: () => rules13,
348
427
  settings: () => settings6
349
428
  });
350
- var name12 = "@eslint-react/recommended-typescript";
351
- var rules12 = {
352
- ...rules11,
429
+ var name13 = "@eslint-react/recommended-typescript";
430
+ var rules13 = {
431
+ ...rules12,
353
432
  "@eslint-react/dom/no-unknown-property": "off",
354
433
  "@eslint-react/jsx-no-duplicate-props": "off",
355
434
  "@eslint-react/jsx-uses-react": "off",
@@ -363,9 +442,9 @@ var settings6 = {
363
442
  };
364
443
 
365
444
  // src/configs/recommended-type-checked.ts
366
- var name13 = "@eslint-react/recommended-type-checked";
367
- var rules13 = {
368
- ...rules12,
445
+ var name14 = "@eslint-react/recommended-type-checked";
446
+ var rules14 = {
447
+ ...rules13,
369
448
  "@eslint-react/no-leaked-conditional-rendering": "warn"
370
449
  // "@eslint-react/prefer-read-only-props": "warn",
371
450
  };
@@ -399,10 +478,10 @@ function padKeysLeft(obj, left) {
399
478
  }
400
479
 
401
480
  // src/index.ts
402
- function toLegacyConfig({ rules: rules14 }) {
481
+ function toLegacyConfig({ rules: rules15 }) {
403
482
  return {
404
483
  plugins: ["@eslint-react"],
405
- rules: rules14
484
+ rules: rules15
406
485
  };
407
486
  }
408
487
  var index_default = {
@@ -415,6 +494,8 @@ var index_default = {
415
494
  ["all-legacy"]: toLegacyConfig(all_exports),
416
495
  ["debug"]: debug_exports,
417
496
  ["debug-legacy"]: toLegacyConfig(debug_exports),
497
+ ["disable-conflict-eslint-plugin-react"]: disable_conflict_eslint_plugin_react_exports,
498
+ ["disable-conflict-eslint-plugin-react-legacy"]: toLegacyConfig(disable_conflict_eslint_plugin_react_exports),
418
499
  ["disable-debug"]: disable_debug_exports,
419
500
  ["disable-debug-legacy"]: toLegacyConfig(disable_debug_exports),
420
501
  ["disable-dom"]: disable_dom_exports,
@@ -440,6 +521,7 @@ var index_default = {
440
521
  ...react.rules,
441
522
  ...padKeysLeft(reactDom.rules, "dom/"),
442
523
  ...padKeysLeft(reactWebApi.rules, "web-api/"),
524
+ ...padKeysLeft(reactHooksExtra, "hooks-extra/"),
443
525
  ...padKeysLeft(reactNamingConvention.rules, "naming-convention/"),
444
526
  ...padKeysLeft(reactDebug.rules, "debug/")
445
527
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eslint-react/eslint-plugin",
3
- "version": "2.0.0-beta.18",
3
+ "version": "2.0.0-beta.19",
4
4
  "description": "A unified plugin that combines all individual plugins from the eslint-react monorepo into one.",
5
5
  "keywords": [
6
6
  "react",
@@ -37,25 +37,26 @@
37
37
  "./package.json"
38
38
  ],
39
39
  "dependencies": {
40
- "@typescript-eslint/scope-manager": "^8.32.0",
41
- "@typescript-eslint/type-utils": "^8.32.0",
42
- "@typescript-eslint/types": "^8.32.0",
43
- "@typescript-eslint/utils": "^8.32.0",
44
- "@eslint-react/eff": "2.0.0-beta.18",
45
- "@eslint-react/kit": "2.0.0-beta.18",
46
- "eslint-plugin-react-dom": "2.0.0-beta.18",
47
- "eslint-plugin-react-debug": "2.0.0-beta.18",
48
- "eslint-plugin-react-naming-convention": "2.0.0-beta.18",
49
- "@eslint-react/shared": "2.0.0-beta.18",
50
- "eslint-plugin-react-web-api": "2.0.0-beta.18",
51
- "eslint-plugin-react-x": "2.0.0-beta.18"
40
+ "@typescript-eslint/scope-manager": "^8.38.0",
41
+ "@typescript-eslint/type-utils": "^8.38.0",
42
+ "@typescript-eslint/types": "^8.38.0",
43
+ "@typescript-eslint/utils": "^8.38.0",
44
+ "@eslint-react/eff": "2.0.0-beta.19",
45
+ "@eslint-react/kit": "2.0.0-beta.19",
46
+ "eslint-plugin-react-debug": "2.0.0-beta.19",
47
+ "@eslint-react/shared": "2.0.0-beta.19",
48
+ "eslint-plugin-react-dom": "2.0.0-beta.19",
49
+ "eslint-plugin-react-web-api": "2.0.0-beta.19",
50
+ "eslint-plugin-react-hooks-extra": "2.0.0-beta.19",
51
+ "eslint-plugin-react-x": "2.0.0-beta.19",
52
+ "eslint-plugin-react-naming-convention": "2.0.0-beta.19"
52
53
  },
53
54
  "devDependencies": {
54
- "tsup": "^8.4.0",
55
+ "tsup": "^8.5.0",
55
56
  "@local/configs": "0.0.0"
56
57
  },
57
58
  "peerDependencies": {
58
- "eslint": "^9.26.0",
59
+ "eslint": "^9.31.0",
59
60
  "typescript": "^4.9.5 || ^5.4.5"
60
61
  },
61
62
  "peerDependenciesMeta": {
@@ -67,7 +68,6 @@
67
68
  }
68
69
  },
69
70
  "engines": {
70
- "bun": ">=1.0.15",
71
71
  "node": ">=20.19.0"
72
72
  },
73
73
  "publishConfig": {