@eslint-react/eslint-plugin 1.16.1 → 1.16.2-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.
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var tools = require('@eslint-react/tools');
4
3
  var reactDebug = require('eslint-plugin-react-debug');
5
4
  var reactDom = require('eslint-plugin-react-dom');
6
5
  var reactHooksExtra = require('eslint-plugin-react-hooks-extra');
7
6
  var reactNamingConvention = require('eslint-plugin-react-naming-convention');
8
7
  var reactWebApi = require('eslint-plugin-react-web-api');
9
8
  var react = require('eslint-plugin-react-x');
9
+ var tools = require('@eslint-react/tools');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
12
 
@@ -17,243 +17,369 @@ var reactNamingConvention__default = /*#__PURE__*/_interopDefault(reactNamingCon
17
17
  var reactWebApi__default = /*#__PURE__*/_interopDefault(reactWebApi);
18
18
  var react__default = /*#__PURE__*/_interopDefault(react);
19
19
 
20
- // src/index.ts
20
+ var __defProp = Object.defineProperty;
21
+ var __export = (target, all) => {
22
+ for (var name14 in all)
23
+ __defProp(target, name14, { get: all[name14], enumerable: true });
24
+ };
21
25
 
22
26
  // package.json
23
27
  var name = "@eslint-react/eslint-plugin";
24
- var version = "1.16.1";
25
- function transformKeys(obj, transform) {
26
- if (tools.typeOf(obj) !== "object") return obj;
27
- const res = {};
28
- for (const key in obj) {
29
- res[transform(key)] = obj[key];
30
- }
31
- return res;
32
- }
28
+ var version = "1.16.2-beta.0";
33
29
 
34
- // src/utils/pad-keys.ts
35
- function padKeysLeft(obj, left) {
36
- return transformKeys(obj, (key) => `${left}${key}`);
37
- }
30
+ // src/configs/all.ts
31
+ var all_exports = {};
32
+ __export(all_exports, {
33
+ name: () => name4,
34
+ plugins: () => plugins3,
35
+ rules: () => rules3,
36
+ settings: () => settings3
37
+ });
38
38
 
39
- // src/index.ts
40
- var allPreset = {
41
- // Part: Core
42
- "avoid-shorthand-boolean": "warn",
43
- "avoid-shorthand-fragment": "warn",
44
- "ensure-forward-ref-using-ref": "warn",
45
- "jsx-no-duplicate-props": "warn",
46
- "jsx-uses-vars": "warn",
47
- "no-access-state-in-setstate": "error",
48
- "no-array-index-key": "warn",
49
- "no-children-count": "warn",
50
- "no-children-for-each": "warn",
51
- "no-children-map": "warn",
52
- "no-children-only": "warn",
53
- "no-children-prop": "warn",
54
- "no-children-to-array": "warn",
55
- "no-class-component": "warn",
56
- "no-clone-element": "warn",
57
- "no-comment-textnodes": "warn",
58
- "no-complex-conditional-rendering": "warn",
59
- "no-component-will-mount": "error",
60
- "no-component-will-receive-props": "error",
61
- "no-component-will-update": "error",
62
- "no-create-ref": "error",
63
- "no-default-props": "error",
64
- "no-direct-mutation-state": "error",
65
- "no-duplicate-key": "error",
66
- "no-implicit-key": "warn",
67
- // "no-leaked-conditional-rendering": "warn", // This rule requires type information
68
- "no-missing-component-display-name": "warn",
69
- "no-missing-key": "error",
70
- "no-nested-components": "error",
71
- "no-prop-types": "error",
72
- "no-redundant-should-component-update": "error",
73
- "no-set-state-in-component-did-mount": "warn",
74
- "no-set-state-in-component-did-update": "warn",
75
- "no-set-state-in-component-will-update": "warn",
76
- "no-string-refs": "error",
77
- "no-unsafe-component-will-mount": "warn",
78
- "no-unsafe-component-will-receive-props": "warn",
79
- "no-unsafe-component-will-update": "warn",
80
- "no-unstable-context-value": "warn",
81
- "no-unstable-default-props": "warn",
82
- "no-unused-class-component-members": "warn",
83
- "no-unused-state": "warn",
84
- "no-useless-fragment": "warn",
85
- "prefer-destructuring-assignment": "warn",
86
- // "prefer-read-only-props": "warn", // This rule requires type information
87
- "prefer-shorthand-boolean": "warn",
88
- "prefer-shorthand-fragment": "warn",
89
- // Part: DOM
90
- "dom/no-children-in-void-dom-elements": "warn",
91
- "dom/no-dangerously-set-innerhtml": "warn",
92
- "dom/no-dangerously-set-innerhtml-with-children": "error",
93
- "dom/no-find-dom-node": "error",
94
- "dom/no-missing-button-type": "warn",
95
- "dom/no-missing-iframe-sandbox": "warn",
96
- "dom/no-namespace": "error",
97
- "dom/no-render-return-value": "error",
98
- "dom/no-script-url": "warn",
99
- "dom/no-unknown-property": "warn",
100
- "dom/no-unsafe-iframe-sandbox": "warn",
101
- "dom/no-unsafe-target-blank": "warn",
102
- // Part: Web API
103
- "web-api/no-leaked-event-listener": "warn",
104
- "web-api/no-leaked-interval": "warn",
105
- "web-api/no-leaked-resize-observer": "warn",
106
- "web-api/no-leaked-timeout": "warn",
107
- // Part: Hooks Extra
108
- "hooks-extra/no-direct-set-state-in-use-effect": "warn",
109
- "hooks-extra/no-direct-set-state-in-use-layout-effect": "warn",
110
- "hooks-extra/no-redundant-custom-hook": "warn",
111
- "hooks-extra/no-unnecessary-use-callback": "warn",
112
- "hooks-extra/no-unnecessary-use-memo": "warn",
113
- "hooks-extra/prefer-use-state-lazy-initialization": "warn",
114
- "naming-convention/component-name": "warn",
115
- "naming-convention/filename": "warn",
116
- "naming-convention/filename-extension": "warn",
117
- "naming-convention/use-state": "warn"
39
+ // src/configs/core.ts
40
+ var core_exports = {};
41
+ __export(core_exports, {
42
+ name: () => name2,
43
+ plugins: () => plugins,
44
+ rules: () => rules,
45
+ settings: () => settings
46
+ });
47
+ var name2 = "@eslint-react/core";
48
+ var rules = {
49
+ "@eslint-react/ensure-forward-ref-using-ref": "warn",
50
+ "@eslint-react/jsx-no-duplicate-props": "warn",
51
+ "@eslint-react/jsx-uses-vars": "warn",
52
+ "@eslint-react/no-access-state-in-setstate": "error",
53
+ "@eslint-react/no-array-index-key": "warn",
54
+ "@eslint-react/no-children-count": "warn",
55
+ "@eslint-react/no-children-for-each": "warn",
56
+ "@eslint-react/no-children-map": "warn",
57
+ "@eslint-react/no-children-only": "warn",
58
+ "@eslint-react/no-children-to-array": "warn",
59
+ "@eslint-react/no-clone-element": "warn",
60
+ "@eslint-react/no-comment-textnodes": "warn",
61
+ "@eslint-react/no-component-will-mount": "error",
62
+ "@eslint-react/no-component-will-receive-props": "error",
63
+ "@eslint-react/no-component-will-update": "error",
64
+ "@eslint-react/no-create-ref": "error",
65
+ "@eslint-react/no-default-props": "error",
66
+ "@eslint-react/no-direct-mutation-state": "error",
67
+ "@eslint-react/no-duplicate-key": "error",
68
+ "@eslint-react/no-missing-key": "error",
69
+ "@eslint-react/no-nested-components": "error",
70
+ "@eslint-react/no-prop-types": "error",
71
+ "@eslint-react/no-redundant-should-component-update": "error",
72
+ "@eslint-react/no-set-state-in-component-did-mount": "warn",
73
+ "@eslint-react/no-set-state-in-component-did-update": "warn",
74
+ "@eslint-react/no-set-state-in-component-will-update": "warn",
75
+ "@eslint-react/no-string-refs": "error",
76
+ "@eslint-react/no-unsafe-component-will-mount": "warn",
77
+ "@eslint-react/no-unsafe-component-will-receive-props": "warn",
78
+ "@eslint-react/no-unsafe-component-will-update": "warn",
79
+ "@eslint-react/no-unstable-context-value": "warn",
80
+ "@eslint-react/no-unstable-default-props": "warn",
81
+ "@eslint-react/no-unused-class-component-members": "warn",
82
+ "@eslint-react/no-unused-state": "warn"
118
83
  };
119
- var corePreset = {
120
- "ensure-forward-ref-using-ref": "warn",
121
- // "avoid-shorthand-boolean": "warn",
122
- // "avoid-shorthand-fragment": "warn",
123
- "jsx-no-duplicate-props": "warn",
124
- "jsx-uses-vars": "warn",
125
- "no-access-state-in-setstate": "error",
126
- "no-array-index-key": "warn",
127
- "no-children-count": "warn",
128
- "no-children-for-each": "warn",
129
- "no-children-map": "warn",
130
- "no-children-only": "warn",
131
- // "no-children-prop": "warn",
132
- "no-children-to-array": "warn",
133
- // "no-class-component": "warn",
134
- "no-clone-element": "warn",
135
- "no-comment-textnodes": "warn",
136
- // "no-complex-conditional-rendering": "warn",
137
- "no-component-will-mount": "error",
138
- "no-component-will-receive-props": "error",
139
- "no-component-will-update": "error",
140
- "no-create-ref": "error",
141
- "no-default-props": "error",
142
- "no-direct-mutation-state": "error",
143
- "no-duplicate-key": "error",
144
- // "no-implicit-key": "error",
145
- // "no-leaked-conditional-rendering": "warn",
146
- // "no-missing-component-display-name": "warn",
147
- "no-missing-key": "error",
148
- "no-nested-components": "error",
149
- "no-prop-types": "error",
150
- "no-redundant-should-component-update": "error",
151
- "no-set-state-in-component-did-mount": "warn",
152
- "no-set-state-in-component-did-update": "warn",
153
- "no-set-state-in-component-will-update": "warn",
154
- "no-string-refs": "error",
155
- "no-unsafe-component-will-mount": "warn",
156
- "no-unsafe-component-will-receive-props": "warn",
157
- "no-unsafe-component-will-update": "warn",
158
- "no-unstable-context-value": "warn",
159
- "no-unstable-default-props": "warn",
160
- "no-unused-class-component-members": "warn",
161
- "no-unused-state": "warn"
162
- // "no-useless-fragment": "warn",
163
- // "prefer-read-only-props": "warn",
164
- // "prefer-destructuring-assignment": "warn",
165
- // "prefer-shorthand-boolean": "warn",
166
- // "prefer-shorthand-fragment": "warn",
84
+ var plugins = {
85
+ "@eslint-react": react__default.default
167
86
  };
168
- var domPreset = {
169
- "dom/no-children-in-void-dom-elements": "warn",
170
- "dom/no-dangerously-set-innerhtml": "warn",
171
- "dom/no-dangerously-set-innerhtml-with-children": "error",
172
- "dom/no-find-dom-node": "error",
173
- "dom/no-missing-button-type": "warn",
174
- "dom/no-missing-iframe-sandbox": "warn",
175
- "dom/no-namespace": "error",
176
- "dom/no-render-return-value": "error",
177
- "dom/no-script-url": "warn",
178
- "dom/no-unknown-property": "warn",
179
- "dom/no-unsafe-iframe-sandbox": "warn",
180
- "dom/no-unsafe-target-blank": "warn"
87
+ var settings = {
88
+ "react-x": react__default.default.DEFAULT_ESLINT_REACT_SETTINGS
181
89
  };
182
- var webApiPreset = {
183
- "web-api/no-leaked-event-listener": "warn",
184
- "web-api/no-leaked-interval": "warn",
185
- "web-api/no-leaked-resize-observer": "warn",
186
- "web-api/no-leaked-timeout": "warn"
90
+
91
+ // src/configs/dom.ts
92
+ var dom_exports = {};
93
+ __export(dom_exports, {
94
+ name: () => name3,
95
+ plugins: () => plugins2,
96
+ rules: () => rules2,
97
+ settings: () => settings2
98
+ });
99
+ var name3 = "@eslint-react/all";
100
+ var rules2 = {
101
+ "@eslint-react/dom/no-children-in-void-dom-elements": "warn",
102
+ "@eslint-react/dom/no-dangerously-set-innerhtml": "warn",
103
+ "@eslint-react/dom/no-dangerously-set-innerhtml-with-children": "error",
104
+ "@eslint-react/dom/no-find-dom-node": "error",
105
+ "@eslint-react/dom/no-missing-button-type": "warn",
106
+ "@eslint-react/dom/no-missing-iframe-sandbox": "warn",
107
+ "@eslint-react/dom/no-namespace": "error",
108
+ "@eslint-react/dom/no-render-return-value": "error",
109
+ "@eslint-react/dom/no-script-url": "warn",
110
+ "@eslint-react/dom/no-unknown-property": "warn",
111
+ "@eslint-react/dom/no-unsafe-iframe-sandbox": "warn",
112
+ "@eslint-react/dom/no-unsafe-target-blank": "warn"
187
113
  };
188
- var hooksExtraPreset = {
189
- "hooks-extra/no-direct-set-state-in-use-effect": "warn",
190
- "hooks-extra/no-redundant-custom-hook": "warn",
191
- "hooks-extra/prefer-use-state-lazy-initialization": "warn"
114
+ var plugins2 = {
115
+ "@eslint-react/dom": reactDom__default.default
192
116
  };
193
- var recommendedPreset = {
194
- ...corePreset,
195
- ...domPreset,
196
- ...webApiPreset,
197
- ...hooksExtraPreset
117
+ var settings2 = {
118
+ "react-x": reactDom__default.default.DEFAULT_ESLINT_REACT_SETTINGS
198
119
  };
199
- var recommendedTypeScriptPreset = {
200
- ...recommendedPreset,
201
- "dom/no-unknown-property": "off",
202
- "jsx-no-duplicate-props": "off",
203
- "jsx-uses-vars": "off"
120
+
121
+ // src/configs/all.ts
122
+ var name4 = "@eslint-react/all";
123
+ var rules3 = {
124
+ "@eslint-react/avoid-shorthand-boolean": "warn",
125
+ "@eslint-react/avoid-shorthand-fragment": "warn",
126
+ "@eslint-react/ensure-forward-ref-using-ref": "warn",
127
+ "@eslint-react/jsx-no-duplicate-props": "warn",
128
+ "@eslint-react/jsx-uses-vars": "warn",
129
+ "@eslint-react/no-access-state-in-setstate": "error",
130
+ "@eslint-react/no-array-index-key": "warn",
131
+ "@eslint-react/no-children-count": "warn",
132
+ "@eslint-react/no-children-for-each": "warn",
133
+ "@eslint-react/no-children-map": "warn",
134
+ "@eslint-react/no-children-only": "warn",
135
+ "@eslint-react/no-children-prop": "warn",
136
+ "@eslint-react/no-children-to-array": "warn",
137
+ "@eslint-react/no-class-component": "warn",
138
+ "@eslint-react/no-clone-element": "warn",
139
+ "@eslint-react/no-comment-textnodes": "warn",
140
+ "@eslint-react/no-complex-conditional-rendering": "warn",
141
+ "@eslint-react/no-component-will-mount": "error",
142
+ "@eslint-react/no-component-will-receive-props": "error",
143
+ "@eslint-react/no-component-will-update": "error",
144
+ "@eslint-react/no-create-ref": "error",
145
+ "@eslint-react/no-default-props": "error",
146
+ "@eslint-react/no-direct-mutation-state": "error",
147
+ "@eslint-react/no-duplicate-key": "error",
148
+ "@eslint-react/no-implicit-key": "warn",
149
+ "@eslint-react/no-missing-component-display-name": "warn",
150
+ "@eslint-react/no-missing-key": "error",
151
+ "@eslint-react/no-nested-components": "error",
152
+ "@eslint-react/no-prop-types": "error",
153
+ "@eslint-react/no-redundant-should-component-update": "error",
154
+ "@eslint-react/no-set-state-in-component-did-mount": "warn",
155
+ "@eslint-react/no-set-state-in-component-did-update": "warn",
156
+ "@eslint-react/no-set-state-in-component-will-update": "warn",
157
+ "@eslint-react/no-string-refs": "error",
158
+ "@eslint-react/no-unsafe-component-will-mount": "warn",
159
+ "@eslint-react/no-unsafe-component-will-receive-props": "warn",
160
+ "@eslint-react/no-unsafe-component-will-update": "warn",
161
+ "@eslint-react/no-unstable-context-value": "warn",
162
+ "@eslint-react/no-unstable-default-props": "warn",
163
+ "@eslint-react/no-unused-class-component-members": "warn",
164
+ "@eslint-react/no-unused-state": "warn",
165
+ "@eslint-react/no-useless-fragment": "warn",
166
+ "@eslint-react/prefer-destructuring-assignment": "warn",
167
+ "@eslint-react/prefer-shorthand-boolean": "warn",
168
+ "@eslint-react/prefer-shorthand-fragment": "warn",
169
+ // Part: DOM
170
+ "@eslint-react/dom/no-children-in-void-dom-elements": "warn",
171
+ "@eslint-react/dom/no-dangerously-set-innerhtml": "warn",
172
+ "@eslint-react/dom/no-dangerously-set-innerhtml-with-children": "error",
173
+ "@eslint-react/dom/no-find-dom-node": "error",
174
+ "@eslint-react/dom/no-missing-button-type": "warn",
175
+ "@eslint-react/dom/no-missing-iframe-sandbox": "warn",
176
+ "@eslint-react/dom/no-namespace": "error",
177
+ "@eslint-react/dom/no-render-return-value": "error",
178
+ "@eslint-react/dom/no-script-url": "warn",
179
+ "@eslint-react/dom/no-unknown-property": "warn",
180
+ "@eslint-react/dom/no-unsafe-iframe-sandbox": "warn",
181
+ "@eslint-react/dom/no-unsafe-target-blank": "warn",
182
+ // Part: Web API
183
+ "@eslint-react/web-api/no-leaked-event-listener": "warn",
184
+ "@eslint-react/web-api/no-leaked-interval": "warn",
185
+ "@eslint-react/web-api/no-leaked-resize-observer": "warn",
186
+ "@eslint-react/web-api/no-leaked-timeout": "warn",
187
+ // Part: Hooks Extra
188
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "warn",
189
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect": "warn",
190
+ "@eslint-react/hooks-extra/no-redundant-custom-hook": "warn",
191
+ "@eslint-react/hooks-extra/no-unnecessary-use-callback": "warn",
192
+ "@eslint-react/hooks-extra/no-unnecessary-use-memo": "warn",
193
+ "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": "warn",
194
+ "@eslint-react/naming-convention/component-name": "warn",
195
+ "@eslint-react/naming-convention/filename": "warn",
196
+ "@eslint-react/naming-convention/filename-extension": "warn",
197
+ "@eslint-react/naming-convention/use-state": "warn"
204
198
  };
205
- var recommendedTypeCheckedPreset = {
206
- ...recommendedTypeScriptPreset,
207
- "no-leaked-conditional-rendering": "warn"
199
+ var plugins3 = {
200
+ ...plugins,
201
+ ...plugins2,
202
+ "@eslint-react/debug": reactDebug__default.default,
203
+ "@eslint-react/hooks-extra": reactHooksExtra__default.default,
204
+ "@eslint-react/naming-convention": reactNamingConvention__default.default,
205
+ "@eslint-react/web-api": reactWebApi__default.default
208
206
  };
209
- var disableTypeCheckedPreset = {
210
- "no-leaked-conditional-rendering": "off",
211
- "prefer-read-only-props": "off"
207
+ var settings3 = {
208
+ ...settings2
212
209
  };
213
- var debugPreset = {
214
- "debug/class-component": "warn",
215
- "debug/function-component": "warn",
216
- "debug/hook": "warn"
210
+
211
+ // src/configs/debug.ts
212
+ var debug_exports = {};
213
+ __export(debug_exports, {
214
+ name: () => name5,
215
+ plugins: () => plugins4,
216
+ rules: () => rules4
217
+ });
218
+ var name5 = "@eslint-react/debug";
219
+ var rules4 = {
220
+ "@eslint-react/debug/no-unknown-attribute": "warn",
221
+ "@eslint-react/debug/no-unknown-event": "warn",
222
+ "@eslint-react/debug/no-unknown-property": "warn"
217
223
  };
218
- var disableDomPreset = tools.fromEntries(tools.entries(domPreset).map(([key]) => [key, "off"]));
219
- var disableWebApiPreset = tools.fromEntries(tools.entries(webApiPreset).map(([key]) => [key, "off"]));
220
- var allPresetEntries = tools.entries(allPreset);
221
- var offPreset = {
222
- ...tools.fromEntries(allPresetEntries.map(([key]) => [key, "off"])),
223
- ...disableTypeCheckedPreset
224
+ var plugins4 = {
225
+ "@eslint-react/debug": reactDebug__default.default
224
226
  };
225
- var corePresetSettings = {
226
- ...react__default.default.DEFAULT_ESLINT_REACT_SETTINGS
227
+
228
+ // src/configs/disable-debug.ts
229
+ var disable_debug_exports = {};
230
+ __export(disable_debug_exports, {
231
+ name: () => name6,
232
+ rules: () => rules5
233
+ });
234
+ var name6 = "@eslint-react/disable-debug";
235
+ var rules5 = tools.fromEntries(tools.entries(rules4).map(([key]) => [key, "off"]));
236
+
237
+ // src/configs/disable-dom.ts
238
+ var disable_dom_exports = {};
239
+ __export(disable_dom_exports, {
240
+ name: () => name7,
241
+ rules: () => rules6
242
+ });
243
+ var name7 = "@eslint-react/disable-dom";
244
+ var rules6 = tools.fromEntries(tools.entries(rules2).map(([key]) => [key, "off"]));
245
+
246
+ // src/configs/disable-type-checked.ts
247
+ var disable_type_checked_exports = {};
248
+ __export(disable_type_checked_exports, {
249
+ name: () => name8,
250
+ rules: () => rules7
251
+ });
252
+ var name8 = "@eslint-react/disable-type-checked";
253
+ var rules7 = {
254
+ "@eslint-react/no-leaked-conditional-rendering": "off",
255
+ "@eslint-react/prefer-read-only-props": "off"
227
256
  };
228
- var domPresetSettings = {
229
- ...corePresetSettings,
230
- ...reactDom__default.default.DEFAULT_ESLINT_REACT_SETTINGS
257
+
258
+ // src/configs/disable-web-api.ts
259
+ var disable_web_api_exports = {};
260
+ __export(disable_web_api_exports, {
261
+ name: () => name9,
262
+ rules: () => rules9
263
+ });
264
+ var rules8 = {
265
+ "@eslint-react/web-api/no-leaked-event-listener": "warn",
266
+ "@eslint-react/web-api/no-leaked-interval": "warn",
267
+ "@eslint-react/web-api/no-leaked-resize-observer": "warn",
268
+ "@eslint-react/web-api/no-leaked-timeout": "warn"
269
+ };
270
+
271
+ // src/configs/disable-web-api.ts
272
+ var name9 = "@eslint-react/disable-web-api";
273
+ var rules9 = tools.fromEntries(tools.entries(rules8).map(([key]) => [key, "off"]));
274
+
275
+ // src/configs/off.ts
276
+ var off_exports = {};
277
+ __export(off_exports, {
278
+ name: () => name10,
279
+ rules: () => rules10
280
+ });
281
+ var name10 = "@eslint-react/off";
282
+ var rules10 = {
283
+ ...tools.fromEntries(tools.entries(rules3).map(([key]) => [key, "off"])),
284
+ ...rules7
231
285
  };
232
- var legacyConfigPlugins = ["@eslint-react"];
233
- var flatConfigPlugins = {
234
- "@eslint-react": react__default.default,
286
+
287
+ // src/configs/recommended.ts
288
+ var recommended_exports = {};
289
+ __export(recommended_exports, {
290
+ name: () => name11,
291
+ plugins: () => plugins5,
292
+ rules: () => rules11,
293
+ settings: () => settings5
294
+ });
295
+ var name11 = "@eslint-react/recommended";
296
+ var rules11 = {
297
+ ...rules,
298
+ ...rules2,
299
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "warn",
300
+ "@eslint-react/hooks-extra/no-redundant-custom-hook": "warn",
301
+ "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": "warn",
302
+ "@eslint-react/web-api/no-leaked-event-listener": "warn",
303
+ "@eslint-react/web-api/no-leaked-interval": "warn",
304
+ "@eslint-react/web-api/no-leaked-resize-observer": "warn",
305
+ "@eslint-react/web-api/no-leaked-timeout": "warn"
306
+ };
307
+ var plugins5 = {
308
+ ...plugins,
309
+ ...plugins2,
235
310
  "@eslint-react/debug": reactDebug__default.default,
236
- "@eslint-react/dom": reactDom__default.default,
237
311
  "@eslint-react/hooks-extra": reactHooksExtra__default.default,
238
312
  "@eslint-react/naming-convention": reactNamingConvention__default.default,
239
313
  "@eslint-react/web-api": reactWebApi__default.default
240
314
  };
241
- function createLegacyConfig(rules, settings = react__default.default.DEFAULT_ESLINT_REACT_SETTINGS) {
242
- return {
243
- plugins: legacyConfigPlugins,
244
- rules: padKeysLeft(rules, "@eslint-react/"),
245
- settings: {
246
- "react-x": settings
247
- }
248
- };
315
+ var settings5 = {
316
+ ...settings2
317
+ };
318
+
319
+ // src/configs/recommended-type-checked.ts
320
+ var recommended_type_checked_exports = {};
321
+ __export(recommended_type_checked_exports, {
322
+ name: () => name13,
323
+ plugins: () => plugins7,
324
+ rules: () => rules13,
325
+ settings: () => settings7
326
+ });
327
+
328
+ // src/configs/recommended-typescript.ts
329
+ var recommended_typescript_exports = {};
330
+ __export(recommended_typescript_exports, {
331
+ name: () => name12,
332
+ plugins: () => plugins6,
333
+ rules: () => rules12,
334
+ settings: () => settings6
335
+ });
336
+ var name12 = "@eslint-react/recommended-typescript";
337
+ var rules12 = {
338
+ ...rules11,
339
+ "@eslint-react/dom/no-unknown-property": "off",
340
+ "@eslint-react/jsx-no-duplicate-props": "off",
341
+ "@eslint-react/jsx-uses-vars": "off"
342
+ };
343
+ var plugins6 = {
344
+ ...plugins5
345
+ };
346
+ var settings6 = {
347
+ ...settings5
348
+ };
349
+
350
+ // src/configs/recommended-type-checked.ts
351
+ var name13 = "@eslint-react/recommended-type-checked";
352
+ var rules13 = {
353
+ ...rules12,
354
+ "@eslint-react/no-leaked-conditional-rendering": "warn",
355
+ "@eslint-react/prefer-read-only-props": "warn"
356
+ };
357
+ var plugins7 = {
358
+ ...plugins6
359
+ };
360
+ var settings7 = {
361
+ ...settings6
362
+ };
363
+ function transformKeys(obj, transform) {
364
+ if (tools.typeOf(obj) !== "object") return obj;
365
+ const res = {};
366
+ for (const key in obj) {
367
+ res[transform(key)] = obj[key];
368
+ }
369
+ return res;
249
370
  }
250
- function createFlatConfig(rules, settings = react__default.default.DEFAULT_ESLINT_REACT_SETTINGS) {
371
+
372
+ // src/utils/pad-keys-left.ts
373
+ function padKeysLeft(obj, left) {
374
+ return transformKeys(obj, (key) => `${left}${key}`);
375
+ }
376
+
377
+ // src/index.ts
378
+ function makeLegacyConfig(config) {
251
379
  return {
252
- plugins: flatConfigPlugins,
253
- rules: padKeysLeft(rules, "@eslint-react/"),
254
- settings: {
255
- "react-x": settings
256
- }
380
+ ...config,
381
+ name: `${config.name}-legacy`,
382
+ plugins: ["@eslint-react"]
257
383
  };
258
384
  }
259
385
  var src_default = {
@@ -262,37 +388,36 @@ var src_default = {
262
388
  version
263
389
  },
264
390
  configs: {
265
- /* eslint-disable perfectionist/sort-objects */
266
- ["core"]: createFlatConfig(corePreset, corePresetSettings),
267
- ["core-legacy"]: createLegacyConfig(corePreset, corePresetSettings),
268
- ["debug"]: createFlatConfig(debugPreset),
269
- ["debug-legacy"]: createLegacyConfig(debugPreset),
270
- ["dom"]: createFlatConfig(domPreset, domPresetSettings),
271
- ["dom-legacy"]: createLegacyConfig(domPreset),
272
- ["recommended"]: createFlatConfig(recommendedPreset),
273
- ["recommended-legacy"]: createLegacyConfig(recommendedPreset),
274
- ["recommended-typescript"]: createFlatConfig(recommendedTypeScriptPreset),
275
- ["recommended-typescript-legacy"]: createLegacyConfig(recommendedTypeScriptPreset),
276
- ["recommended-type-checked"]: createFlatConfig(recommendedTypeCheckedPreset),
277
- ["recommended-type-checked-legacy"]: createLegacyConfig(recommendedTypeCheckedPreset),
278
- // Part: disable presets
279
- ["disable-dom"]: createFlatConfig(disableDomPreset),
280
- ["disable-dom-legacy"]: createLegacyConfig(disableDomPreset),
281
- ["disable-web-api"]: createFlatConfig(disableWebApiPreset),
282
- ["disable-web-api-legacy"]: createLegacyConfig(disableWebApiPreset),
283
- ["disable-type-checked"]: createFlatConfig(disableTypeCheckedPreset),
284
- ["disable-type-checked-legacy"]: createLegacyConfig(disableTypeCheckedPreset),
285
- // Part: all or off presets
286
- ["all"]: createFlatConfig(allPreset),
287
- ["all-legacy"]: createLegacyConfig(allPreset),
288
- ["off"]: createFlatConfig(offPreset),
289
- ["off-legacy"]: createLegacyConfig(offPreset),
391
+ ["all"]: all_exports,
392
+ ["core"]: core_exports,
393
+ ["debug"]: debug_exports,
394
+ ["disable-debug"]: disable_debug_exports,
395
+ ["disable-dom"]: disable_dom_exports,
396
+ ["disable-type-checked"]: disable_type_checked_exports,
397
+ ["disable-web-api"]: disable_web_api_exports,
398
+ ["dom"]: dom_exports,
399
+ ["off"]: off_exports,
400
+ ["recommended"]: recommended_exports,
401
+ ["recommended-type-checked"]: recommended_type_checked_exports,
402
+ ["recommended-typescript"]: recommended_typescript_exports,
403
+ // Part: legacy presets
404
+ ["all-legacy"]: makeLegacyConfig(all_exports),
405
+ ["core-legacy"]: makeLegacyConfig(core_exports),
406
+ ["debug-legacy"]: makeLegacyConfig(debug_exports),
407
+ ["disable-debug-legacy"]: makeLegacyConfig(disable_debug_exports),
408
+ ["disable-dom-legacy"]: makeLegacyConfig(disable_dom_exports),
409
+ ["disable-type-checked-legacy"]: makeLegacyConfig(disable_type_checked_exports),
410
+ ["disable-web-api-legacy"]: makeLegacyConfig(disable_web_api_exports),
411
+ ["dom-legacy"]: makeLegacyConfig(dom_exports),
412
+ ["off-legacy"]: makeLegacyConfig(off_exports),
413
+ ["recommended-legacy"]: makeLegacyConfig(recommended_exports),
414
+ ["recommended-type-checked-legacy"]: makeLegacyConfig(recommended_type_checked_exports),
415
+ ["recommended-typescript-legacy"]: makeLegacyConfig(recommended_typescript_exports),
290
416
  // Part: deprecated presets
291
417
  /** @deprecated Use `disable-dom` instead */
292
- ["off-dom"]: createFlatConfig(disableDomPreset),
418
+ ["off-dom"]: disable_dom_exports,
293
419
  /** @deprecated Use `disable-dom-legacy` instead */
294
- ["off-dom-legacy"]: createLegacyConfig(disableDomPreset)
295
- /* eslint-enable perfectionist/sort-objects */
420
+ ["off-dom-legacy"]: makeLegacyConfig(disable_dom_exports)
296
421
  },
297
422
  rules: {
298
423
  ...react__default.default.rules,