@eslint-react/eslint-plugin 1.10.2-next.2 → 1.11.0-next.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
@@ -6,6 +6,7 @@ var reactDebug = require('eslint-plugin-react-debug');
6
6
  var reactDom = require('eslint-plugin-react-dom');
7
7
  var reactHooksExtra = require('eslint-plugin-react-hooks-extra');
8
8
  var reactNamingConvention = require('eslint-plugin-react-naming-convention');
9
+ var reactWebApi = require('eslint-plugin-react-web-api');
9
10
  var react = require('eslint-plugin-react-x');
10
11
 
11
12
  function _interopNamespace(e) {
@@ -30,13 +31,14 @@ var reactDebug__namespace = /*#__PURE__*/_interopNamespace(reactDebug);
30
31
  var reactDom__namespace = /*#__PURE__*/_interopNamespace(reactDom);
31
32
  var reactHooksExtra__namespace = /*#__PURE__*/_interopNamespace(reactHooksExtra);
32
33
  var reactNamingConvention__namespace = /*#__PURE__*/_interopNamespace(reactNamingConvention);
34
+ var reactWebApi__namespace = /*#__PURE__*/_interopNamespace(reactWebApi);
33
35
  var react__namespace = /*#__PURE__*/_interopNamespace(react);
34
36
 
35
37
  // src/index.ts
36
38
 
37
39
  // package.json
38
40
  var name = "@eslint-react/eslint-plugin";
39
- var version = "1.10.2-next.2";
41
+ var version = "1.11.0-next.0";
40
42
  function transformKeys(obj, transform) {
41
43
  if (tools.typeOf(obj) !== "object") return obj;
42
44
  const res = {};
@@ -53,6 +55,7 @@ function padKeysLeft(obj, left) {
53
55
 
54
56
  // src/index.ts
55
57
  var allPreset = {
58
+ // Part: Core
56
59
  "avoid-shorthand-boolean": "warn",
57
60
  "avoid-shorthand-fragment": "warn",
58
61
  "ensure-forward-ref-using-ref": "warn",
@@ -98,7 +101,7 @@ var allPreset = {
98
101
  // "prefer-read-only-props": "warn", // This rule requires type information
99
102
  "prefer-shorthand-boolean": "warn",
100
103
  "prefer-shorthand-fragment": "warn",
101
- // eslint-disable-next-line perfectionist/sort-objects
104
+ // Part: DOM
102
105
  "dom/no-children-in-void-dom-elements": "warn",
103
106
  "dom/no-dangerously-set-innerhtml": "warn",
104
107
  "dom/no-dangerously-set-innerhtml-with-children": "error",
@@ -110,6 +113,9 @@ var allPreset = {
110
113
  "dom/no-script-url": "warn",
111
114
  "dom/no-unsafe-iframe-sandbox": "warn",
112
115
  "dom/no-unsafe-target-blank": "warn",
116
+ // Part: Web API
117
+ "web-api/no-leaked-event-listener": "error",
118
+ // Part: Hooks Extra
113
119
  "hooks-extra/ensure-custom-hooks-using-other-hooks": "warn",
114
120
  "hooks-extra/ensure-use-callback-has-non-empty-deps": "warn",
115
121
  "hooks-extra/ensure-use-memo-has-non-empty-deps": "warn",
@@ -181,9 +187,30 @@ var domPreset = {
181
187
  "dom/no-unsafe-iframe-sandbox": "warn",
182
188
  "dom/no-unsafe-target-blank": "warn"
183
189
  };
190
+ var webApiPreset = {
191
+ "web-api/no-leaked-event-listener": "error"
192
+ // "web-api/no-leaked-timeout": "warn",
193
+ // "web-api/no-leaked-interval": "warn",
194
+ // "web-api/no-leaked-resize-observer": "warn",
195
+ // "web-api/no-leaked-intersection-observer": "warn",
196
+ // "web-api/no-leaked-mutation-observer": "warn",
197
+ // "web-api/no-leaked-performance-observer": "warn",
198
+ // "web-api/no-leaked-websocket": "warn",
199
+ // "web-api/no-leaked-broadcast-channel": "warn",
200
+ // "web-api/no-leaked-geolocation": "warn",
201
+ // "web-api/no-leaked-absolute-orientation-sensor": "warn",
202
+ // "web-api/no-leaked-relative-accelerometer": "warn",
203
+ // "web-api/no-leaked-ambient-light-sensor": "warn",
204
+ // "web-api/no-leaked-gravity-sensor": "warn",
205
+ // "web-api/no-leaked-gyroscope": "warn",
206
+ // "web-api/no-leaked-linear-acceleration-sensor": "warn",
207
+ // "web-api/no-leaked-magnetometer": "warn",
208
+ // "web-api/no-leaked-orientation-sensor": "warn",
209
+ };
184
210
  var recommendedPreset = {
185
211
  ...corePreset,
186
- ...domPreset
212
+ ...domPreset,
213
+ ...webApiPreset
187
214
  };
188
215
  var recommendedTypeCheckedPreset = {
189
216
  ...recommendedPreset,
@@ -198,9 +225,13 @@ var debugPreset = {
198
225
  "debug/function-component": "warn",
199
226
  "debug/react-hooks": "warn"
200
227
  };
228
+ var disableDomPreset = tools.fromEntries(tools.entries(domPreset).map(([key]) => [key, "off"]));
229
+ var disableWebApiPreset = tools.fromEntries(tools.entries(webApiPreset).map(([key]) => [key, "off"]));
201
230
  var allPresetEntries = tools.entries(allPreset);
202
- var offPreset = tools.fromEntries(allPresetEntries.map(([key]) => [key, "off"]));
203
- var offDomPreset = tools.fromEntries(tools.entries(domPreset).map(([key]) => [key, "off"]));
231
+ var offPreset = {
232
+ ...tools.fromEntries(allPresetEntries.map(([key]) => [key, "off"])),
233
+ ...disableTypeCheckedPreset
234
+ };
204
235
  var corePresetSettings = {
205
236
  ...shared.DEFAULT_ESLINT_REACT_SETTINGS
206
237
  };
@@ -225,21 +256,22 @@ var flatConfigPlugins = {
225
256
  "@eslint-react/debug": reactDebug__namespace,
226
257
  "@eslint-react/dom": reactDom__namespace,
227
258
  "@eslint-react/hooks-extra": reactHooksExtra__namespace,
228
- "@eslint-react/naming-convention": reactNamingConvention__namespace
259
+ "@eslint-react/naming-convention": reactNamingConvention__namespace,
260
+ "@eslint-react/web-api": reactWebApi__namespace
229
261
  };
230
- function createLegacyConfig(rules6, settings = shared.DEFAULT_ESLINT_REACT_SETTINGS) {
262
+ function createLegacyConfig(rules7, settings = shared.DEFAULT_ESLINT_REACT_SETTINGS) {
231
263
  return {
232
264
  plugins: legacyConfigPlugins,
233
- rules: padKeysLeft(rules6, "@eslint-react/"),
265
+ rules: padKeysLeft(rules7, "@eslint-react/"),
234
266
  settings: {
235
267
  "react-x": settings
236
268
  }
237
269
  };
238
270
  }
239
- function createFlatConfig(rules6, settings = shared.DEFAULT_ESLINT_REACT_SETTINGS) {
271
+ function createFlatConfig(rules7, settings = shared.DEFAULT_ESLINT_REACT_SETTINGS) {
240
272
  return {
241
273
  plugins: flatConfigPlugins,
242
- rules: padKeysLeft(rules6, "@eslint-react/"),
274
+ rules: padKeysLeft(rules7, "@eslint-react/"),
243
275
  settings: {
244
276
  "react-x": settings
245
277
  }
@@ -251,37 +283,40 @@ var src_default = {
251
283
  version
252
284
  },
253
285
  configs: {
254
- ["all"]: createFlatConfig(allPreset),
255
- ["all-legacy"]: createLegacyConfig(allPreset),
286
+ /* eslint-disable perfectionist/sort-objects */
256
287
  ["core"]: createFlatConfig(corePreset, corePresetSettings),
257
288
  ["core-legacy"]: createLegacyConfig(corePreset, corePresetSettings),
258
289
  ["debug"]: createFlatConfig(debugPreset),
259
290
  ["debug-legacy"]: createLegacyConfig(debugPreset),
260
291
  ["dom"]: createFlatConfig(domPreset, domPresetSettings),
261
292
  ["dom-legacy"]: createLegacyConfig(domPreset),
262
- ["off"]: createFlatConfig(offPreset),
263
- /**
264
- * @deprecated Use `disable-dom` instead
265
- */
266
- ["off-dom"]: createFlatConfig(offDomPreset),
267
- /**
268
- * @deprecated Use `disable-dom-legacy` instead
269
- */
270
- ["off-dom-legacy"]: createLegacyConfig(offDomPreset),
271
- ["off-legacy"]: createLegacyConfig(offPreset),
272
293
  ["recommended"]: createFlatConfig(recommendedPreset),
273
294
  ["recommended-legacy"]: createLegacyConfig(recommendedPreset),
274
295
  ["recommended-type-checked"]: createFlatConfig(recommendedTypeCheckedPreset),
275
296
  ["recommended-type-checked-legacy"]: createLegacyConfig(recommendedTypeCheckedPreset),
276
297
  // Part: disable presets
277
- ["disable-dom"]: createFlatConfig(offDomPreset),
278
- ["disable-dom-legacy"]: createLegacyConfig(offDomPreset),
298
+ ["disable-dom"]: createFlatConfig(disableDomPreset),
299
+ ["disable-dom-legacy"]: createLegacyConfig(disableDomPreset),
300
+ ["disable-web-api"]: createFlatConfig(disableWebApiPreset),
301
+ ["disable-web-api-legacy"]: createLegacyConfig(disableWebApiPreset),
279
302
  ["disable-type-checked"]: createFlatConfig(disableTypeCheckedPreset),
280
- ["disable-type-checked-legacy"]: createLegacyConfig(disableTypeCheckedPreset)
303
+ ["disable-type-checked-legacy"]: createLegacyConfig(disableTypeCheckedPreset),
304
+ // Part: all or off presets
305
+ ["all"]: createFlatConfig(allPreset),
306
+ ["all-legacy"]: createLegacyConfig(allPreset),
307
+ ["off"]: createFlatConfig(offPreset),
308
+ ["off-legacy"]: createLegacyConfig(offPreset),
309
+ // Part: deprecated presets
310
+ /** @deprecated Use `disable-dom` instead */
311
+ ["off-dom"]: createFlatConfig(disableDomPreset),
312
+ /** @deprecated Use `disable-dom-legacy` instead */
313
+ ["off-dom-legacy"]: createLegacyConfig(disableDomPreset)
314
+ /* eslint-enable perfectionist/sort-objects */
281
315
  },
282
316
  rules: {
283
317
  ...react__namespace.rules,
284
318
  ...padKeysLeft(reactDom__namespace.rules, "dom/"),
319
+ ...padKeysLeft(reactWebApi__namespace.rules, "web-api/"),
285
320
  ...padKeysLeft(reactHooksExtra__namespace.rules, "hooks-extra/"),
286
321
  ...padKeysLeft(reactNamingConvention__namespace.rules, "naming-convention/"),
287
322
  ...padKeysLeft(reactDebug__namespace.rules, "debug/")
package/dist/index.mjs CHANGED
@@ -1,16 +1,17 @@
1
1
  import { DEFAULT_ESLINT_REACT_SETTINGS } from '@eslint-react/shared';
2
- import { entries, fromEntries, typeOf } from '@eslint-react/tools';
2
+ import { fromEntries, entries, typeOf } from '@eslint-react/tools';
3
3
  import * as reactDebug from 'eslint-plugin-react-debug';
4
4
  import * as reactDom from 'eslint-plugin-react-dom';
5
5
  import * as reactHooksExtra from 'eslint-plugin-react-hooks-extra';
6
6
  import * as reactNamingConvention from 'eslint-plugin-react-naming-convention';
7
+ import * as reactWebApi from 'eslint-plugin-react-web-api';
7
8
  import * as react from 'eslint-plugin-react-x';
8
9
 
9
10
  // src/index.ts
10
11
 
11
12
  // package.json
12
13
  var name = "@eslint-react/eslint-plugin";
13
- var version = "1.10.2-next.2";
14
+ var version = "1.11.0-next.0";
14
15
  function transformKeys(obj, transform) {
15
16
  if (typeOf(obj) !== "object") return obj;
16
17
  const res = {};
@@ -27,6 +28,7 @@ function padKeysLeft(obj, left) {
27
28
 
28
29
  // src/index.ts
29
30
  var allPreset = {
31
+ // Part: Core
30
32
  "avoid-shorthand-boolean": "warn",
31
33
  "avoid-shorthand-fragment": "warn",
32
34
  "ensure-forward-ref-using-ref": "warn",
@@ -72,7 +74,7 @@ var allPreset = {
72
74
  // "prefer-read-only-props": "warn", // This rule requires type information
73
75
  "prefer-shorthand-boolean": "warn",
74
76
  "prefer-shorthand-fragment": "warn",
75
- // eslint-disable-next-line perfectionist/sort-objects
77
+ // Part: DOM
76
78
  "dom/no-children-in-void-dom-elements": "warn",
77
79
  "dom/no-dangerously-set-innerhtml": "warn",
78
80
  "dom/no-dangerously-set-innerhtml-with-children": "error",
@@ -84,6 +86,9 @@ var allPreset = {
84
86
  "dom/no-script-url": "warn",
85
87
  "dom/no-unsafe-iframe-sandbox": "warn",
86
88
  "dom/no-unsafe-target-blank": "warn",
89
+ // Part: Web API
90
+ "web-api/no-leaked-event-listener": "error",
91
+ // Part: Hooks Extra
87
92
  "hooks-extra/ensure-custom-hooks-using-other-hooks": "warn",
88
93
  "hooks-extra/ensure-use-callback-has-non-empty-deps": "warn",
89
94
  "hooks-extra/ensure-use-memo-has-non-empty-deps": "warn",
@@ -155,9 +160,30 @@ var domPreset = {
155
160
  "dom/no-unsafe-iframe-sandbox": "warn",
156
161
  "dom/no-unsafe-target-blank": "warn"
157
162
  };
163
+ var webApiPreset = {
164
+ "web-api/no-leaked-event-listener": "error"
165
+ // "web-api/no-leaked-timeout": "warn",
166
+ // "web-api/no-leaked-interval": "warn",
167
+ // "web-api/no-leaked-resize-observer": "warn",
168
+ // "web-api/no-leaked-intersection-observer": "warn",
169
+ // "web-api/no-leaked-mutation-observer": "warn",
170
+ // "web-api/no-leaked-performance-observer": "warn",
171
+ // "web-api/no-leaked-websocket": "warn",
172
+ // "web-api/no-leaked-broadcast-channel": "warn",
173
+ // "web-api/no-leaked-geolocation": "warn",
174
+ // "web-api/no-leaked-absolute-orientation-sensor": "warn",
175
+ // "web-api/no-leaked-relative-accelerometer": "warn",
176
+ // "web-api/no-leaked-ambient-light-sensor": "warn",
177
+ // "web-api/no-leaked-gravity-sensor": "warn",
178
+ // "web-api/no-leaked-gyroscope": "warn",
179
+ // "web-api/no-leaked-linear-acceleration-sensor": "warn",
180
+ // "web-api/no-leaked-magnetometer": "warn",
181
+ // "web-api/no-leaked-orientation-sensor": "warn",
182
+ };
158
183
  var recommendedPreset = {
159
184
  ...corePreset,
160
- ...domPreset
185
+ ...domPreset,
186
+ ...webApiPreset
161
187
  };
162
188
  var recommendedTypeCheckedPreset = {
163
189
  ...recommendedPreset,
@@ -172,9 +198,13 @@ var debugPreset = {
172
198
  "debug/function-component": "warn",
173
199
  "debug/react-hooks": "warn"
174
200
  };
201
+ var disableDomPreset = fromEntries(entries(domPreset).map(([key]) => [key, "off"]));
202
+ var disableWebApiPreset = fromEntries(entries(webApiPreset).map(([key]) => [key, "off"]));
175
203
  var allPresetEntries = entries(allPreset);
176
- var offPreset = fromEntries(allPresetEntries.map(([key]) => [key, "off"]));
177
- var offDomPreset = fromEntries(entries(domPreset).map(([key]) => [key, "off"]));
204
+ var offPreset = {
205
+ ...fromEntries(allPresetEntries.map(([key]) => [key, "off"])),
206
+ ...disableTypeCheckedPreset
207
+ };
178
208
  var corePresetSettings = {
179
209
  ...DEFAULT_ESLINT_REACT_SETTINGS
180
210
  };
@@ -199,21 +229,22 @@ var flatConfigPlugins = {
199
229
  "@eslint-react/debug": reactDebug,
200
230
  "@eslint-react/dom": reactDom,
201
231
  "@eslint-react/hooks-extra": reactHooksExtra,
202
- "@eslint-react/naming-convention": reactNamingConvention
232
+ "@eslint-react/naming-convention": reactNamingConvention,
233
+ "@eslint-react/web-api": reactWebApi
203
234
  };
204
- function createLegacyConfig(rules6, settings = DEFAULT_ESLINT_REACT_SETTINGS) {
235
+ function createLegacyConfig(rules7, settings = DEFAULT_ESLINT_REACT_SETTINGS) {
205
236
  return {
206
237
  plugins: legacyConfigPlugins,
207
- rules: padKeysLeft(rules6, "@eslint-react/"),
238
+ rules: padKeysLeft(rules7, "@eslint-react/"),
208
239
  settings: {
209
240
  "react-x": settings
210
241
  }
211
242
  };
212
243
  }
213
- function createFlatConfig(rules6, settings = DEFAULT_ESLINT_REACT_SETTINGS) {
244
+ function createFlatConfig(rules7, settings = DEFAULT_ESLINT_REACT_SETTINGS) {
214
245
  return {
215
246
  plugins: flatConfigPlugins,
216
- rules: padKeysLeft(rules6, "@eslint-react/"),
247
+ rules: padKeysLeft(rules7, "@eslint-react/"),
217
248
  settings: {
218
249
  "react-x": settings
219
250
  }
@@ -225,37 +256,40 @@ var src_default = {
225
256
  version
226
257
  },
227
258
  configs: {
228
- ["all"]: createFlatConfig(allPreset),
229
- ["all-legacy"]: createLegacyConfig(allPreset),
259
+ /* eslint-disable perfectionist/sort-objects */
230
260
  ["core"]: createFlatConfig(corePreset, corePresetSettings),
231
261
  ["core-legacy"]: createLegacyConfig(corePreset, corePresetSettings),
232
262
  ["debug"]: createFlatConfig(debugPreset),
233
263
  ["debug-legacy"]: createLegacyConfig(debugPreset),
234
264
  ["dom"]: createFlatConfig(domPreset, domPresetSettings),
235
265
  ["dom-legacy"]: createLegacyConfig(domPreset),
236
- ["off"]: createFlatConfig(offPreset),
237
- /**
238
- * @deprecated Use `disable-dom` instead
239
- */
240
- ["off-dom"]: createFlatConfig(offDomPreset),
241
- /**
242
- * @deprecated Use `disable-dom-legacy` instead
243
- */
244
- ["off-dom-legacy"]: createLegacyConfig(offDomPreset),
245
- ["off-legacy"]: createLegacyConfig(offPreset),
246
266
  ["recommended"]: createFlatConfig(recommendedPreset),
247
267
  ["recommended-legacy"]: createLegacyConfig(recommendedPreset),
248
268
  ["recommended-type-checked"]: createFlatConfig(recommendedTypeCheckedPreset),
249
269
  ["recommended-type-checked-legacy"]: createLegacyConfig(recommendedTypeCheckedPreset),
250
270
  // Part: disable presets
251
- ["disable-dom"]: createFlatConfig(offDomPreset),
252
- ["disable-dom-legacy"]: createLegacyConfig(offDomPreset),
271
+ ["disable-dom"]: createFlatConfig(disableDomPreset),
272
+ ["disable-dom-legacy"]: createLegacyConfig(disableDomPreset),
273
+ ["disable-web-api"]: createFlatConfig(disableWebApiPreset),
274
+ ["disable-web-api-legacy"]: createLegacyConfig(disableWebApiPreset),
253
275
  ["disable-type-checked"]: createFlatConfig(disableTypeCheckedPreset),
254
- ["disable-type-checked-legacy"]: createLegacyConfig(disableTypeCheckedPreset)
276
+ ["disable-type-checked-legacy"]: createLegacyConfig(disableTypeCheckedPreset),
277
+ // Part: all or off presets
278
+ ["all"]: createFlatConfig(allPreset),
279
+ ["all-legacy"]: createLegacyConfig(allPreset),
280
+ ["off"]: createFlatConfig(offPreset),
281
+ ["off-legacy"]: createLegacyConfig(offPreset),
282
+ // Part: deprecated presets
283
+ /** @deprecated Use `disable-dom` instead */
284
+ ["off-dom"]: createFlatConfig(disableDomPreset),
285
+ /** @deprecated Use `disable-dom-legacy` instead */
286
+ ["off-dom-legacy"]: createLegacyConfig(disableDomPreset)
287
+ /* eslint-enable perfectionist/sort-objects */
255
288
  },
256
289
  rules: {
257
290
  ...react.rules,
258
291
  ...padKeysLeft(reactDom.rules, "dom/"),
292
+ ...padKeysLeft(reactWebApi.rules, "web-api/"),
259
293
  ...padKeysLeft(reactHooksExtra.rules, "hooks-extra/"),
260
294
  ...padKeysLeft(reactNamingConvention.rules, "naming-convention/"),
261
295
  ...padKeysLeft(reactDebug.rules, "debug/")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eslint-react/eslint-plugin",
3
- "version": "1.10.2-next.2",
3
+ "version": "1.11.0-next.0",
4
4
  "description": "The main ESLint plugin of ESLint React. Contains all the rules and presets of ESLint React.",
5
5
  "keywords": [
6
6
  "eslint",
@@ -47,14 +47,15 @@
47
47
  "@typescript-eslint/type-utils": "^8.1.0",
48
48
  "@typescript-eslint/types": "^8.1.0",
49
49
  "@typescript-eslint/utils": "^8.1.0",
50
- "@eslint-react/shared": "1.10.2-next.2",
51
- "@eslint-react/tools": "1.10.2-next.2",
52
- "@eslint-react/types": "1.10.2-next.2",
53
- "eslint-plugin-react-dom": "1.10.2-next.2",
54
- "eslint-plugin-react-hooks-extra": "1.10.2-next.2",
55
- "eslint-plugin-react-naming-convention": "1.10.2-next.2",
56
- "eslint-plugin-react-x": "1.10.2-next.2",
57
- "eslint-plugin-react-debug": "1.10.2-next.2"
50
+ "@eslint-react/types": "1.11.0-next.0",
51
+ "@eslint-react/shared": "1.11.0-next.0",
52
+ "@eslint-react/tools": "1.11.0-next.0",
53
+ "eslint-plugin-react-debug": "1.11.0-next.0",
54
+ "eslint-plugin-react-hooks-extra": "1.11.0-next.0",
55
+ "eslint-plugin-react-naming-convention": "1.11.0-next.0",
56
+ "eslint-plugin-react-dom": "1.11.0-next.0",
57
+ "eslint-plugin-react-web-api": "1.11.0-next.0",
58
+ "eslint-plugin-react-x": "1.11.0-next.0"
58
59
  },
59
60
  "devDependencies": {
60
61
  "tsup": "^8.2.4"