eslint-plugin-react-web-api 1.26.3-next.2 → 1.26.3-next.20

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.d.mts CHANGED
@@ -1,23 +1,48 @@
1
1
  import * as _typescript_eslint_utils_ts_eslint from '@typescript-eslint/utils/ts-eslint';
2
+ import { RulePreset } from '@eslint-react/shared';
2
3
 
3
- type MessageID$3 = "noLeakedTimeoutInEffect" | "noLeakedTimeoutInLifecycle" | "noLeakedTimeoutNoTimeoutId";
4
+ type MessageID$3 = "expectedClearTimeoutInCleanup" | "expectedClearTimeoutInUnmount" | "expectedTimeoutId";
4
5
 
5
- type MessageID$2 = "noLeakedResizeObserver" | "noLeakedResizeObserverInControlFlow" | "noLeakedResizeObserverNoFloatingInstance";
6
+ type MessageID$2 = "expectedDisconnectInControlFlow" | "expectedDisconnectOrUnobserveInCleanup" | "unexpectedFloatingInstance";
6
7
 
7
- type MessageID$1 = "noLeakedIntervalInEffect" | "noLeakedIntervalInLifecycle" | "noLeakedIntervalNoIntervalId";
8
+ type MessageID$1 = "expectedClearIntervalInCleanup" | "expectedClearIntervalInUnmount" | "expectedIntervalId";
8
9
 
9
- type MessageID = "noLeakedEventListenerInEffect" | "noLeakedEventListenerInLifecycle" | "noLeakedEventListenerOfInlineFunction";
10
+ type MessageID = "expectedRemoveEventListenerInCleanup" | "expectedRemoveEventListenerInUnmount" | "unexpectedInlineFunction";
10
11
 
11
12
  declare const _default: {
13
+ configs: {
14
+ recommended: {
15
+ plugins: {
16
+ "react-web-api": {
17
+ readonly meta: {
18
+ readonly name: string;
19
+ readonly version: string;
20
+ };
21
+ readonly rules: {
22
+ readonly "no-leaked-event-listener": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
23
+ readonly "no-leaked-interval": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$1, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
24
+ readonly "no-leaked-resize-observer": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$2, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
25
+ readonly "no-leaked-timeout": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$3, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
26
+ };
27
+ };
28
+ };
29
+ name: string;
30
+ rules: RulePreset;
31
+ };
32
+ "recommended-legacy": {
33
+ plugins: string[];
34
+ rules: RulePreset;
35
+ };
36
+ };
12
37
  meta: {
13
- name: string;
14
- version: string;
38
+ readonly name: string;
39
+ readonly version: string;
15
40
  };
16
41
  rules: {
17
- "no-leaked-event-listener": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
18
- "no-leaked-interval": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$1, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
19
- "no-leaked-resize-observer": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$2, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
20
- "no-leaked-timeout": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$3, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
42
+ readonly "no-leaked-event-listener": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
43
+ readonly "no-leaked-interval": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$1, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
44
+ readonly "no-leaked-resize-observer": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$2, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
45
+ readonly "no-leaked-timeout": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$3, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
21
46
  };
22
47
  };
23
48
 
package/dist/index.d.ts CHANGED
@@ -1,23 +1,48 @@
1
1
  import * as _typescript_eslint_utils_ts_eslint from '@typescript-eslint/utils/ts-eslint';
2
+ import { RulePreset } from '@eslint-react/shared';
2
3
 
3
- type MessageID$3 = "noLeakedTimeoutInEffect" | "noLeakedTimeoutInLifecycle" | "noLeakedTimeoutNoTimeoutId";
4
+ type MessageID$3 = "expectedClearTimeoutInCleanup" | "expectedClearTimeoutInUnmount" | "expectedTimeoutId";
4
5
 
5
- type MessageID$2 = "noLeakedResizeObserver" | "noLeakedResizeObserverInControlFlow" | "noLeakedResizeObserverNoFloatingInstance";
6
+ type MessageID$2 = "expectedDisconnectInControlFlow" | "expectedDisconnectOrUnobserveInCleanup" | "unexpectedFloatingInstance";
6
7
 
7
- type MessageID$1 = "noLeakedIntervalInEffect" | "noLeakedIntervalInLifecycle" | "noLeakedIntervalNoIntervalId";
8
+ type MessageID$1 = "expectedClearIntervalInCleanup" | "expectedClearIntervalInUnmount" | "expectedIntervalId";
8
9
 
9
- type MessageID = "noLeakedEventListenerInEffect" | "noLeakedEventListenerInLifecycle" | "noLeakedEventListenerOfInlineFunction";
10
+ type MessageID = "expectedRemoveEventListenerInCleanup" | "expectedRemoveEventListenerInUnmount" | "unexpectedInlineFunction";
10
11
 
11
12
  declare const _default: {
13
+ configs: {
14
+ recommended: {
15
+ plugins: {
16
+ "react-web-api": {
17
+ readonly meta: {
18
+ readonly name: string;
19
+ readonly version: string;
20
+ };
21
+ readonly rules: {
22
+ readonly "no-leaked-event-listener": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
23
+ readonly "no-leaked-interval": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$1, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
24
+ readonly "no-leaked-resize-observer": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$2, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
25
+ readonly "no-leaked-timeout": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$3, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
26
+ };
27
+ };
28
+ };
29
+ name: string;
30
+ rules: RulePreset;
31
+ };
32
+ "recommended-legacy": {
33
+ plugins: string[];
34
+ rules: RulePreset;
35
+ };
36
+ };
12
37
  meta: {
13
- name: string;
14
- version: string;
38
+ readonly name: string;
39
+ readonly version: string;
15
40
  };
16
41
  rules: {
17
- "no-leaked-event-listener": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
18
- "no-leaked-interval": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$1, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
19
- "no-leaked-resize-observer": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$2, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
20
- "no-leaked-timeout": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$3, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
42
+ readonly "no-leaked-event-listener": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
43
+ readonly "no-leaked-interval": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$1, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
44
+ readonly "no-leaked-resize-observer": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$2, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
45
+ readonly "no-leaked-timeout": _typescript_eslint_utils_ts_eslint.RuleModule<MessageID$3, [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener>;
21
46
  };
22
47
  };
23
48
 
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
+ var shared = require('@eslint-react/shared');
3
4
  var AST2 = require('@eslint-react/ast');
4
5
  var core = require('@eslint-react/core');
5
6
  var eff = require('@eslint-react/eff');
6
7
  var VAR2 = require('@eslint-react/var');
7
8
  var utils = require('@typescript-eslint/utils');
8
9
  var tsPattern = require('ts-pattern');
9
- var shared = require('@eslint-react/shared');
10
10
  var types = require('@typescript-eslint/types');
11
11
 
12
12
  function _interopNamespace(e) {
@@ -30,9 +30,33 @@ function _interopNamespace(e) {
30
30
  var AST2__namespace = /*#__PURE__*/_interopNamespace(AST2);
31
31
  var VAR2__namespace = /*#__PURE__*/_interopNamespace(VAR2);
32
32
 
33
+ var __defProp = Object.defineProperty;
34
+ var __export = (target, all) => {
35
+ for (var name3 in all)
36
+ __defProp(target, name3, { get: all[name3], enumerable: true });
37
+ };
38
+
39
+ // src/configs/recommended.ts
40
+ var recommended_exports = {};
41
+ __export(recommended_exports, {
42
+ name: () => name,
43
+ rules: () => rules,
44
+ settings: () => settings
45
+ });
46
+ var name = "react-web-api/recommended";
47
+ var rules = {
48
+ "react-web-api/no-leaked-event-listener": "warn",
49
+ "react-web-api/no-leaked-interval": "warn",
50
+ "react-web-api/no-leaked-resize-observer": "warn",
51
+ "react-web-api/no-leaked-timeout": "warn"
52
+ };
53
+ var settings = {
54
+ "react-x": shared.DEFAULT_ESLINT_REACT_SETTINGS
55
+ };
56
+
33
57
  // package.json
34
- var name = "eslint-plugin-react-web-api";
35
- var version = "1.26.3-next.2";
58
+ var name2 = "eslint-plugin-react-web-api";
59
+ var version = "1.26.3-next.20";
36
60
  var createRule = shared.createRuleForPlugin("web-api");
37
61
  function getInstanceID(node, prev) {
38
62
  switch (true) {
@@ -148,9 +172,9 @@ var no_leaked_event_listener_default = createRule({
148
172
  [Symbol.for("rule_features")]: RULE_FEATURES
149
173
  },
150
174
  messages: {
151
- noLeakedEventListenerInEffect: "An 'addEventListener' in '{{effectMethodKind}}' should have a corresponding 'removeEventListener' in its cleanup function.",
152
- noLeakedEventListenerInLifecycle: "An 'addEventListener' in 'componentDidMount' should have a corresponding 'removeEventListener' in 'componentWillUnmount' method.",
153
- noLeakedEventListenerOfInlineFunction: "A/an '{{eventMethodKind}}' should not have an inline listener function."
175
+ expectedRemoveEventListenerInCleanup: "An 'addEventListener' in '{{effectMethodKind}}' should have a corresponding 'removeEventListener' in its cleanup function.",
176
+ expectedRemoveEventListenerInUnmount: "An 'addEventListener' in 'componentDidMount' should have a corresponding 'removeEventListener' in 'componentWillUnmount' method.",
177
+ unexpectedInlineFunction: "A/an '{{eventMethodKind}}' should not have an inline listener function."
154
178
  },
155
179
  schema: []
156
180
  },
@@ -195,7 +219,7 @@ var no_leaked_event_listener_default = createRule({
195
219
  return;
196
220
  }
197
221
  context.report({
198
- messageId: "noLeakedEventListenerOfInlineFunction",
222
+ messageId: "unexpectedInlineFunction",
199
223
  node: listener,
200
224
  data: { eventMethodKind: callKind }
201
225
  });
@@ -267,7 +291,7 @@ var no_leaked_event_listener_default = createRule({
267
291
  case "setup":
268
292
  case "cleanup":
269
293
  context.report({
270
- messageId: "noLeakedEventListenerInEffect",
294
+ messageId: "expectedRemoveEventListenerInCleanup",
271
295
  node: aEntry.node,
272
296
  data: {
273
297
  effectMethodKind: "useEffect"
@@ -277,7 +301,7 @@ var no_leaked_event_listener_default = createRule({
277
301
  case "mount":
278
302
  case "unmount":
279
303
  context.report({
280
- messageId: "noLeakedEventListenerInLifecycle",
304
+ messageId: "expectedRemoveEventListenerInUnmount",
281
305
  node: aEntry.node
282
306
  });
283
307
  continue;
@@ -310,9 +334,9 @@ var no_leaked_interval_default = createRule({
310
334
  [Symbol.for("rule_features")]: RULE_FEATURES2
311
335
  },
312
336
  messages: {
313
- noLeakedIntervalInEffect: "A 'setInterval' created in '{{ kind }}' must be cleared with 'clearInterval' in the cleanup function.",
314
- noLeakedIntervalInLifecycle: "A 'setInterval' created in '{{ kind }}' must be cleared with 'clearInterval' in the 'componentWillUnmount' method.",
315
- noLeakedIntervalNoIntervalId: "A 'setInterval' must be assigned to a variable for proper cleanup."
337
+ expectedClearIntervalInCleanup: "A 'setInterval' created in '{{ kind }}' must be cleared with 'clearInterval' in the cleanup function.",
338
+ expectedClearIntervalInUnmount: "A 'setInterval' created in '{{ kind }}' must be cleared with 'clearInterval' in the 'componentWillUnmount' method.",
339
+ expectedIntervalId: "A 'setInterval' must be assigned to a variable for proper cleanup."
316
340
  },
317
341
  schema: []
318
342
  },
@@ -348,7 +372,7 @@ var no_leaked_interval_default = createRule({
348
372
  const intervalIdNode = VAR2__namespace.getVariableDeclaratorId(node);
349
373
  if (intervalIdNode == null) {
350
374
  context.report({
351
- messageId: "noLeakedIntervalNoIntervalId",
375
+ messageId: "expectedIntervalId",
352
376
  node
353
377
  });
354
378
  break;
@@ -394,7 +418,7 @@ var no_leaked_interval_default = createRule({
394
418
  case "setup":
395
419
  case "cleanup":
396
420
  context.report({
397
- messageId: "noLeakedIntervalInEffect",
421
+ messageId: "expectedClearIntervalInCleanup",
398
422
  node: sEntry.node,
399
423
  data: {
400
424
  kind: "useEffect"
@@ -404,7 +428,7 @@ var no_leaked_interval_default = createRule({
404
428
  case "mount":
405
429
  case "unmount":
406
430
  context.report({
407
- messageId: "noLeakedIntervalInLifecycle",
431
+ messageId: "expectedClearIntervalInUnmount",
408
432
  node: sEntry.node,
409
433
  data: {
410
434
  kind: "componentDidMount"
@@ -459,9 +483,9 @@ var no_leaked_resize_observer_default = createRule({
459
483
  [Symbol.for("rule_features")]: RULE_FEATURES3
460
484
  },
461
485
  messages: {
462
- noLeakedResizeObserver: "A 'ResizeObserver' instance created in 'useEffect' must be disconnected in the cleanup function.",
463
- noLeakedResizeObserverInControlFlow: "Dynamically added 'ResizeObserver.observe' should be cleared all at once using 'ResizeObserver.disconnect' in the cleanup function.",
464
- noLeakedResizeObserverNoFloatingInstance: "A 'ResizeObserver' instance created in component or custom Hook must be assigned to a variable for proper cleanup."
486
+ expectedDisconnectInControlFlow: "Dynamically added 'ResizeObserver.observe' should be cleared all at once using 'ResizeObserver.disconnect' in the cleanup function.",
487
+ expectedDisconnectOrUnobserveInCleanup: "A 'ResizeObserver' instance created in 'useEffect' must be disconnected in the cleanup function.",
488
+ unexpectedFloatingInstance: "A 'ResizeObserver' instance created in component or custom Hook must be assigned to a variable for proper cleanup."
465
489
  },
466
490
  schema: []
467
491
  },
@@ -543,7 +567,7 @@ var no_leaked_resize_observer_default = createRule({
543
567
  const id = getInstanceID(node);
544
568
  if (id == null) {
545
569
  context.report({
546
- messageId: "noLeakedResizeObserverNoFloatingInstance",
570
+ messageId: "unexpectedFloatingInstance",
547
571
  node
548
572
  });
549
573
  return;
@@ -566,14 +590,14 @@ var no_leaked_resize_observer_default = createRule({
566
590
  const isPhaseNode = (node2) => node2 === phaseNode;
567
591
  const hasDynamicallyAdded = oentries.some((e) => !isPhaseNode(AST2__namespace.findParentNode(e.node, eff.or(isDynamic, isPhaseNode))));
568
592
  if (hasDynamicallyAdded) {
569
- context.report({ messageId: "noLeakedResizeObserverInControlFlow", node });
593
+ context.report({ messageId: "expectedDisconnectInControlFlow", node });
570
594
  continue;
571
595
  }
572
596
  for (const oEntry of oentries) {
573
597
  if (uentries.some((uEntry) => isInstanceIDEqual(uEntry.element, oEntry.element, context))) {
574
598
  continue;
575
599
  }
576
- context.report({ messageId: "noLeakedResizeObserver", node: oEntry.node });
600
+ context.report({ messageId: "expectedDisconnectOrUnobserveInCleanup", node: oEntry.node });
577
601
  }
578
602
  }
579
603
  }
@@ -603,9 +627,9 @@ var no_leaked_timeout_default = createRule({
603
627
  [Symbol.for("rule_features")]: RULE_FEATURES4
604
628
  },
605
629
  messages: {
606
- noLeakedTimeoutInEffect: "A 'setTimeout' created in '{{ kind }}' must be cleared with 'clearTimeout' in the cleanup function.",
607
- noLeakedTimeoutInLifecycle: "A 'setTimeout' created in '{{ kind }}' must be cleared with 'clearTimeout' in the 'componentWillUnmount' method.",
608
- noLeakedTimeoutNoTimeoutId: "A 'setTimeout' must be assigned to a variable for proper cleanup."
630
+ expectedClearTimeoutInCleanup: "A 'setTimeout' created in '{{ kind }}' must be cleared with 'clearTimeout' in the cleanup function.",
631
+ expectedClearTimeoutInUnmount: "A 'setTimeout' created in '{{ kind }}' must be cleared with 'clearTimeout' in the 'componentWillUnmount' method.",
632
+ expectedTimeoutId: "A 'setTimeout' must be assigned to a variable for proper cleanup."
609
633
  },
610
634
  schema: []
611
635
  },
@@ -638,7 +662,7 @@ var no_leaked_timeout_default = createRule({
638
662
  const timeoutIdNode = VAR2__namespace.getVariableDeclaratorId(node);
639
663
  if (timeoutIdNode == null) {
640
664
  context.report({
641
- messageId: "noLeakedTimeoutNoTimeoutId",
665
+ messageId: "expectedTimeoutId",
642
666
  node
643
667
  });
644
668
  break;
@@ -677,7 +701,7 @@ var no_leaked_timeout_default = createRule({
677
701
  case "setup":
678
702
  case "cleanup":
679
703
  context.report({
680
- messageId: "noLeakedTimeoutInEffect",
704
+ messageId: "expectedClearTimeoutInCleanup",
681
705
  node: sEntry.node,
682
706
  data: {
683
707
  kind: "useEffect"
@@ -687,7 +711,7 @@ var no_leaked_timeout_default = createRule({
687
711
  case "mount":
688
712
  case "unmount":
689
713
  context.report({
690
- messageId: "noLeakedTimeoutInLifecycle",
714
+ messageId: "expectedClearTimeoutInUnmount",
691
715
  node: sEntry.node,
692
716
  data: {
693
717
  kind: "componentDidMount"
@@ -702,10 +726,10 @@ var no_leaked_timeout_default = createRule({
702
726
  defaultOptions: []
703
727
  });
704
728
 
705
- // src/index.ts
706
- var index_default = {
729
+ // src/plugin.ts
730
+ var plugin = {
707
731
  meta: {
708
- name,
732
+ name: name2,
709
733
  version
710
734
  },
711
735
  rules: {
@@ -716,4 +740,27 @@ var index_default = {
716
740
  }
717
741
  };
718
742
 
743
+ // src/index.ts
744
+ function makeConfig(config) {
745
+ return {
746
+ ...config,
747
+ plugins: {
748
+ "react-web-api": plugin
749
+ }
750
+ };
751
+ }
752
+ function makeLegacyConfig({ rules: rules2 }) {
753
+ return {
754
+ plugins: ["react-web-api"],
755
+ rules: rules2
756
+ };
757
+ }
758
+ var index_default = {
759
+ ...plugin,
760
+ configs: {
761
+ ["recommended"]: makeConfig(recommended_exports),
762
+ ["recommended-legacy"]: makeLegacyConfig(recommended_exports)
763
+ }
764
+ };
765
+
719
766
  module.exports = index_default;
package/dist/index.mjs CHANGED
@@ -1,15 +1,39 @@
1
+ import { createRuleForPlugin, DEFAULT_ESLINT_REACT_SETTINGS } from '@eslint-react/shared';
1
2
  import * as AST2 from '@eslint-react/ast';
2
3
  import { ERPhaseRelevance, isInversePhase, isFunctionOfUseEffectSetup, isFunctionOfUseEffectCleanup, isFunctionOfComponentDidMount, isFunctionOfComponentWillUnmount } from '@eslint-react/core';
3
4
  import { _, or } from '@eslint-react/eff';
4
5
  import * as VAR2 from '@eslint-react/var';
5
6
  import { AST_NODE_TYPES } from '@typescript-eslint/utils';
6
7
  import { match, isMatching, P } from 'ts-pattern';
7
- import { createRuleForPlugin } from '@eslint-react/shared';
8
8
  import { AST_NODE_TYPES as AST_NODE_TYPES$1 } from '@typescript-eslint/types';
9
9
 
10
+ var __defProp = Object.defineProperty;
11
+ var __export = (target, all) => {
12
+ for (var name3 in all)
13
+ __defProp(target, name3, { get: all[name3], enumerable: true });
14
+ };
15
+
16
+ // src/configs/recommended.ts
17
+ var recommended_exports = {};
18
+ __export(recommended_exports, {
19
+ name: () => name,
20
+ rules: () => rules,
21
+ settings: () => settings
22
+ });
23
+ var name = "react-web-api/recommended";
24
+ var rules = {
25
+ "react-web-api/no-leaked-event-listener": "warn",
26
+ "react-web-api/no-leaked-interval": "warn",
27
+ "react-web-api/no-leaked-resize-observer": "warn",
28
+ "react-web-api/no-leaked-timeout": "warn"
29
+ };
30
+ var settings = {
31
+ "react-x": DEFAULT_ESLINT_REACT_SETTINGS
32
+ };
33
+
10
34
  // package.json
11
- var name = "eslint-plugin-react-web-api";
12
- var version = "1.26.3-next.2";
35
+ var name2 = "eslint-plugin-react-web-api";
36
+ var version = "1.26.3-next.20";
13
37
  var createRule = createRuleForPlugin("web-api");
14
38
  function getInstanceID(node, prev) {
15
39
  switch (true) {
@@ -125,9 +149,9 @@ var no_leaked_event_listener_default = createRule({
125
149
  [Symbol.for("rule_features")]: RULE_FEATURES
126
150
  },
127
151
  messages: {
128
- noLeakedEventListenerInEffect: "An 'addEventListener' in '{{effectMethodKind}}' should have a corresponding 'removeEventListener' in its cleanup function.",
129
- noLeakedEventListenerInLifecycle: "An 'addEventListener' in 'componentDidMount' should have a corresponding 'removeEventListener' in 'componentWillUnmount' method.",
130
- noLeakedEventListenerOfInlineFunction: "A/an '{{eventMethodKind}}' should not have an inline listener function."
152
+ expectedRemoveEventListenerInCleanup: "An 'addEventListener' in '{{effectMethodKind}}' should have a corresponding 'removeEventListener' in its cleanup function.",
153
+ expectedRemoveEventListenerInUnmount: "An 'addEventListener' in 'componentDidMount' should have a corresponding 'removeEventListener' in 'componentWillUnmount' method.",
154
+ unexpectedInlineFunction: "A/an '{{eventMethodKind}}' should not have an inline listener function."
131
155
  },
132
156
  schema: []
133
157
  },
@@ -172,7 +196,7 @@ var no_leaked_event_listener_default = createRule({
172
196
  return;
173
197
  }
174
198
  context.report({
175
- messageId: "noLeakedEventListenerOfInlineFunction",
199
+ messageId: "unexpectedInlineFunction",
176
200
  node: listener,
177
201
  data: { eventMethodKind: callKind }
178
202
  });
@@ -244,7 +268,7 @@ var no_leaked_event_listener_default = createRule({
244
268
  case "setup":
245
269
  case "cleanup":
246
270
  context.report({
247
- messageId: "noLeakedEventListenerInEffect",
271
+ messageId: "expectedRemoveEventListenerInCleanup",
248
272
  node: aEntry.node,
249
273
  data: {
250
274
  effectMethodKind: "useEffect"
@@ -254,7 +278,7 @@ var no_leaked_event_listener_default = createRule({
254
278
  case "mount":
255
279
  case "unmount":
256
280
  context.report({
257
- messageId: "noLeakedEventListenerInLifecycle",
281
+ messageId: "expectedRemoveEventListenerInUnmount",
258
282
  node: aEntry.node
259
283
  });
260
284
  continue;
@@ -287,9 +311,9 @@ var no_leaked_interval_default = createRule({
287
311
  [Symbol.for("rule_features")]: RULE_FEATURES2
288
312
  },
289
313
  messages: {
290
- noLeakedIntervalInEffect: "A 'setInterval' created in '{{ kind }}' must be cleared with 'clearInterval' in the cleanup function.",
291
- noLeakedIntervalInLifecycle: "A 'setInterval' created in '{{ kind }}' must be cleared with 'clearInterval' in the 'componentWillUnmount' method.",
292
- noLeakedIntervalNoIntervalId: "A 'setInterval' must be assigned to a variable for proper cleanup."
314
+ expectedClearIntervalInCleanup: "A 'setInterval' created in '{{ kind }}' must be cleared with 'clearInterval' in the cleanup function.",
315
+ expectedClearIntervalInUnmount: "A 'setInterval' created in '{{ kind }}' must be cleared with 'clearInterval' in the 'componentWillUnmount' method.",
316
+ expectedIntervalId: "A 'setInterval' must be assigned to a variable for proper cleanup."
293
317
  },
294
318
  schema: []
295
319
  },
@@ -325,7 +349,7 @@ var no_leaked_interval_default = createRule({
325
349
  const intervalIdNode = VAR2.getVariableDeclaratorId(node);
326
350
  if (intervalIdNode == null) {
327
351
  context.report({
328
- messageId: "noLeakedIntervalNoIntervalId",
352
+ messageId: "expectedIntervalId",
329
353
  node
330
354
  });
331
355
  break;
@@ -371,7 +395,7 @@ var no_leaked_interval_default = createRule({
371
395
  case "setup":
372
396
  case "cleanup":
373
397
  context.report({
374
- messageId: "noLeakedIntervalInEffect",
398
+ messageId: "expectedClearIntervalInCleanup",
375
399
  node: sEntry.node,
376
400
  data: {
377
401
  kind: "useEffect"
@@ -381,7 +405,7 @@ var no_leaked_interval_default = createRule({
381
405
  case "mount":
382
406
  case "unmount":
383
407
  context.report({
384
- messageId: "noLeakedIntervalInLifecycle",
408
+ messageId: "expectedClearIntervalInUnmount",
385
409
  node: sEntry.node,
386
410
  data: {
387
411
  kind: "componentDidMount"
@@ -436,9 +460,9 @@ var no_leaked_resize_observer_default = createRule({
436
460
  [Symbol.for("rule_features")]: RULE_FEATURES3
437
461
  },
438
462
  messages: {
439
- noLeakedResizeObserver: "A 'ResizeObserver' instance created in 'useEffect' must be disconnected in the cleanup function.",
440
- noLeakedResizeObserverInControlFlow: "Dynamically added 'ResizeObserver.observe' should be cleared all at once using 'ResizeObserver.disconnect' in the cleanup function.",
441
- noLeakedResizeObserverNoFloatingInstance: "A 'ResizeObserver' instance created in component or custom Hook must be assigned to a variable for proper cleanup."
463
+ expectedDisconnectInControlFlow: "Dynamically added 'ResizeObserver.observe' should be cleared all at once using 'ResizeObserver.disconnect' in the cleanup function.",
464
+ expectedDisconnectOrUnobserveInCleanup: "A 'ResizeObserver' instance created in 'useEffect' must be disconnected in the cleanup function.",
465
+ unexpectedFloatingInstance: "A 'ResizeObserver' instance created in component or custom Hook must be assigned to a variable for proper cleanup."
442
466
  },
443
467
  schema: []
444
468
  },
@@ -520,7 +544,7 @@ var no_leaked_resize_observer_default = createRule({
520
544
  const id = getInstanceID(node);
521
545
  if (id == null) {
522
546
  context.report({
523
- messageId: "noLeakedResizeObserverNoFloatingInstance",
547
+ messageId: "unexpectedFloatingInstance",
524
548
  node
525
549
  });
526
550
  return;
@@ -543,14 +567,14 @@ var no_leaked_resize_observer_default = createRule({
543
567
  const isPhaseNode = (node2) => node2 === phaseNode;
544
568
  const hasDynamicallyAdded = oentries.some((e) => !isPhaseNode(AST2.findParentNode(e.node, or(isDynamic, isPhaseNode))));
545
569
  if (hasDynamicallyAdded) {
546
- context.report({ messageId: "noLeakedResizeObserverInControlFlow", node });
570
+ context.report({ messageId: "expectedDisconnectInControlFlow", node });
547
571
  continue;
548
572
  }
549
573
  for (const oEntry of oentries) {
550
574
  if (uentries.some((uEntry) => isInstanceIDEqual(uEntry.element, oEntry.element, context))) {
551
575
  continue;
552
576
  }
553
- context.report({ messageId: "noLeakedResizeObserver", node: oEntry.node });
577
+ context.report({ messageId: "expectedDisconnectOrUnobserveInCleanup", node: oEntry.node });
554
578
  }
555
579
  }
556
580
  }
@@ -580,9 +604,9 @@ var no_leaked_timeout_default = createRule({
580
604
  [Symbol.for("rule_features")]: RULE_FEATURES4
581
605
  },
582
606
  messages: {
583
- noLeakedTimeoutInEffect: "A 'setTimeout' created in '{{ kind }}' must be cleared with 'clearTimeout' in the cleanup function.",
584
- noLeakedTimeoutInLifecycle: "A 'setTimeout' created in '{{ kind }}' must be cleared with 'clearTimeout' in the 'componentWillUnmount' method.",
585
- noLeakedTimeoutNoTimeoutId: "A 'setTimeout' must be assigned to a variable for proper cleanup."
607
+ expectedClearTimeoutInCleanup: "A 'setTimeout' created in '{{ kind }}' must be cleared with 'clearTimeout' in the cleanup function.",
608
+ expectedClearTimeoutInUnmount: "A 'setTimeout' created in '{{ kind }}' must be cleared with 'clearTimeout' in the 'componentWillUnmount' method.",
609
+ expectedTimeoutId: "A 'setTimeout' must be assigned to a variable for proper cleanup."
586
610
  },
587
611
  schema: []
588
612
  },
@@ -615,7 +639,7 @@ var no_leaked_timeout_default = createRule({
615
639
  const timeoutIdNode = VAR2.getVariableDeclaratorId(node);
616
640
  if (timeoutIdNode == null) {
617
641
  context.report({
618
- messageId: "noLeakedTimeoutNoTimeoutId",
642
+ messageId: "expectedTimeoutId",
619
643
  node
620
644
  });
621
645
  break;
@@ -654,7 +678,7 @@ var no_leaked_timeout_default = createRule({
654
678
  case "setup":
655
679
  case "cleanup":
656
680
  context.report({
657
- messageId: "noLeakedTimeoutInEffect",
681
+ messageId: "expectedClearTimeoutInCleanup",
658
682
  node: sEntry.node,
659
683
  data: {
660
684
  kind: "useEffect"
@@ -664,7 +688,7 @@ var no_leaked_timeout_default = createRule({
664
688
  case "mount":
665
689
  case "unmount":
666
690
  context.report({
667
- messageId: "noLeakedTimeoutInLifecycle",
691
+ messageId: "expectedClearTimeoutInUnmount",
668
692
  node: sEntry.node,
669
693
  data: {
670
694
  kind: "componentDidMount"
@@ -679,10 +703,10 @@ var no_leaked_timeout_default = createRule({
679
703
  defaultOptions: []
680
704
  });
681
705
 
682
- // src/index.ts
683
- var index_default = {
706
+ // src/plugin.ts
707
+ var plugin = {
684
708
  meta: {
685
- name,
709
+ name: name2,
686
710
  version
687
711
  },
688
712
  rules: {
@@ -693,4 +717,27 @@ var index_default = {
693
717
  }
694
718
  };
695
719
 
720
+ // src/index.ts
721
+ function makeConfig(config) {
722
+ return {
723
+ ...config,
724
+ plugins: {
725
+ "react-web-api": plugin
726
+ }
727
+ };
728
+ }
729
+ function makeLegacyConfig({ rules: rules2 }) {
730
+ return {
731
+ plugins: ["react-web-api"],
732
+ rules: rules2
733
+ };
734
+ }
735
+ var index_default = {
736
+ ...plugin,
737
+ configs: {
738
+ ["recommended"]: makeConfig(recommended_exports),
739
+ ["recommended-legacy"]: makeLegacyConfig(recommended_exports)
740
+ }
741
+ };
742
+
696
743
  export { index_default as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-react-web-api",
3
- "version": "1.26.3-next.2",
3
+ "version": "1.26.3-next.20",
4
4
  "description": "ESLint React's ESLint plugin for interacting with Web APIs",
5
5
  "keywords": [
6
6
  "react",
@@ -43,23 +43,23 @@
43
43
  "./package.json"
44
44
  ],
45
45
  "dependencies": {
46
- "@typescript-eslint/scope-manager": "^8.23.0",
47
- "@typescript-eslint/types": "^8.23.0",
48
- "@typescript-eslint/utils": "^8.23.0",
46
+ "@typescript-eslint/scope-manager": "^8.24.1",
47
+ "@typescript-eslint/types": "^8.24.1",
48
+ "@typescript-eslint/utils": "^8.24.1",
49
49
  "string-ts": "^2.2.1",
50
50
  "ts-pattern": "^5.6.2",
51
- "@eslint-react/ast": "1.26.3-next.2",
52
- "@eslint-react/core": "1.26.3-next.2",
53
- "@eslint-react/eff": "1.26.3-next.2",
54
- "@eslint-react/jsx": "1.26.3-next.2",
55
- "@eslint-react/var": "1.26.3-next.2",
56
- "@eslint-react/shared": "1.26.3-next.2"
51
+ "@eslint-react/ast": "1.26.3-next.20",
52
+ "@eslint-react/core": "1.26.3-next.20",
53
+ "@eslint-react/eff": "1.26.3-next.20",
54
+ "@eslint-react/shared": "1.26.3-next.20",
55
+ "@eslint-react/var": "1.26.3-next.20",
56
+ "@eslint-react/jsx": "1.26.3-next.20"
57
57
  },
58
58
  "devDependencies": {
59
- "@types/react": "^19.0.8",
60
- "@types/react-dom": "^19.0.3",
59
+ "@types/react": "^19.0.10",
60
+ "@types/react-dom": "^19.0.4",
61
61
  "tsup": "^8.3.6",
62
- "@workspace/configs": "0.0.0"
62
+ "@local/configs": "0.0.0"
63
63
  },
64
64
  "peerDependencies": {
65
65
  "eslint": "^8.57.0 || ^9.0.0",
@@ -83,6 +83,6 @@
83
83
  "scripts": {
84
84
  "build": "tsup --dts-resolve",
85
85
  "lint:publish": "publint",
86
- "lint:type": "tsc --noEmit"
86
+ "lint:ts": "tsc --noEmit"
87
87
  }
88
88
  }