@vinicunca/eslint-config 2.7.0-beta.1 → 2.7.1

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.ts CHANGED
@@ -386,42 +386,42 @@ interface RuleOptions {
386
386
  'implicit-arrow-linebreak'?: Linter.RuleEntry<ImplicitArrowLinebreak>
387
387
  /**
388
388
  * Enforce or ban the use of inline type-only markers for named imports.
389
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/consistent-type-specifier-style.md
389
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/consistent-type-specifier-style.md
390
390
  */
391
391
  'import/consistent-type-specifier-style'?: Linter.RuleEntry<ImportConsistentTypeSpecifierStyle>
392
392
  /**
393
393
  * Ensure a default export is present, given a default import.
394
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/default.md
394
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/default.md
395
395
  */
396
396
  'import/default'?: Linter.RuleEntry<[]>
397
397
  /**
398
398
  * Enforce a leading comment with the webpackChunkName for dynamic imports.
399
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/dynamic-import-chunkname.md
399
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/dynamic-import-chunkname.md
400
400
  */
401
401
  'import/dynamic-import-chunkname'?: Linter.RuleEntry<ImportDynamicImportChunkname>
402
402
  /**
403
403
  * Forbid any invalid exports, i.e. re-export of the same name.
404
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/export.md
404
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/export.md
405
405
  */
406
406
  'import/export'?: Linter.RuleEntry<[]>
407
407
  /**
408
408
  * Ensure all exports appear after other statements.
409
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/exports-last.md
409
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/exports-last.md
410
410
  */
411
411
  'import/exports-last'?: Linter.RuleEntry<[]>
412
412
  /**
413
413
  * Ensure consistent use of file extension within the import path.
414
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/extensions.md
414
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/extensions.md
415
415
  */
416
416
  'import/extensions'?: Linter.RuleEntry<ImportExtensions>
417
417
  /**
418
418
  * Ensure all imports appear before other statements.
419
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/first.md
419
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/first.md
420
420
  */
421
421
  'import/first'?: Linter.RuleEntry<ImportFirst>
422
422
  /**
423
423
  * Prefer named exports to be grouped together in a single export declaration.
424
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/group-exports.md
424
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/group-exports.md
425
425
  */
426
426
  'import/group-exports'?: Linter.RuleEntry<[]>
427
427
  /**
@@ -432,182 +432,182 @@ interface RuleOptions {
432
432
  'import/imports-first'?: Linter.RuleEntry<ImportImportsFirst>
433
433
  /**
434
434
  * Enforce the maximum number of dependencies a module can have.
435
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/max-dependencies.md
435
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/max-dependencies.md
436
436
  */
437
437
  'import/max-dependencies'?: Linter.RuleEntry<ImportMaxDependencies>
438
438
  /**
439
439
  * Ensure named imports correspond to a named export in the remote file.
440
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/named.md
440
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/named.md
441
441
  */
442
442
  'import/named'?: Linter.RuleEntry<ImportNamed>
443
443
  /**
444
444
  * Ensure imported namespaces contain dereferenced properties as they are dereferenced.
445
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/namespace.md
445
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/namespace.md
446
446
  */
447
447
  'import/namespace'?: Linter.RuleEntry<ImportNamespace>
448
448
  /**
449
449
  * Enforce a newline after import statements.
450
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/newline-after-import.md
450
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/newline-after-import.md
451
451
  */
452
452
  'import/newline-after-import'?: Linter.RuleEntry<ImportNewlineAfterImport>
453
453
  /**
454
454
  * Forbid import of modules using absolute paths.
455
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-absolute-path.md
455
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-absolute-path.md
456
456
  */
457
457
  'import/no-absolute-path'?: Linter.RuleEntry<ImportNoAbsolutePath>
458
458
  /**
459
459
  * Forbid AMD `require` and `define` calls.
460
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-amd.md
460
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-amd.md
461
461
  */
462
462
  'import/no-amd'?: Linter.RuleEntry<[]>
463
463
  /**
464
464
  * Forbid anonymous values as default exports.
465
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-anonymous-default-export.md
465
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-anonymous-default-export.md
466
466
  */
467
467
  'import/no-anonymous-default-export'?: Linter.RuleEntry<ImportNoAnonymousDefaultExport>
468
468
  /**
469
469
  * Forbid CommonJS `require` calls and `module.exports` or `exports.*`.
470
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-commonjs.md
470
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-commonjs.md
471
471
  */
472
472
  'import/no-commonjs'?: Linter.RuleEntry<ImportNoCommonjs>
473
473
  /**
474
474
  * Forbid a module from importing a module with a dependency path back to itself.
475
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-cycle.md
475
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-cycle.md
476
476
  */
477
477
  'import/no-cycle'?: Linter.RuleEntry<ImportNoCycle>
478
478
  /**
479
479
  * Forbid default exports.
480
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-default-export.md
480
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-default-export.md
481
481
  */
482
482
  'import/no-default-export'?: Linter.RuleEntry<[]>
483
483
  /**
484
484
  * Forbid imported names marked with `@deprecated` documentation tag.
485
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-deprecated.md
485
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-deprecated.md
486
486
  */
487
487
  'import/no-deprecated'?: Linter.RuleEntry<[]>
488
488
  /**
489
489
  * Forbid repeated import of the same module in multiple places.
490
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-duplicates.md
490
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-duplicates.md
491
491
  */
492
492
  'import/no-duplicates'?: Linter.RuleEntry<ImportNoDuplicates>
493
493
  /**
494
494
  * Forbid `require()` calls with expressions.
495
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-dynamic-require.md
495
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-dynamic-require.md
496
496
  */
497
497
  'import/no-dynamic-require'?: Linter.RuleEntry<ImportNoDynamicRequire>
498
498
  /**
499
499
  * Forbid empty named import blocks.
500
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-empty-named-blocks.md
500
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-empty-named-blocks.md
501
501
  */
502
502
  'import/no-empty-named-blocks'?: Linter.RuleEntry<[]>
503
503
  /**
504
504
  * Forbid the use of extraneous packages.
505
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-extraneous-dependencies.md
505
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-extraneous-dependencies.md
506
506
  */
507
507
  'import/no-extraneous-dependencies'?: Linter.RuleEntry<ImportNoExtraneousDependencies>
508
508
  /**
509
509
  * Forbid import statements with CommonJS module.exports.
510
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-import-module-exports.md
510
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-import-module-exports.md
511
511
  */
512
512
  'import/no-import-module-exports'?: Linter.RuleEntry<ImportNoImportModuleExports>
513
513
  /**
514
514
  * Forbid importing the submodules of other modules.
515
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-internal-modules.md
515
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-internal-modules.md
516
516
  */
517
517
  'import/no-internal-modules'?: Linter.RuleEntry<ImportNoInternalModules>
518
518
  /**
519
519
  * Forbid the use of mutable exports with `var` or `let`.
520
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-mutable-exports.md
520
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-mutable-exports.md
521
521
  */
522
522
  'import/no-mutable-exports'?: Linter.RuleEntry<[]>
523
523
  /**
524
524
  * Forbid use of exported name as identifier of default export.
525
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-named-as-default.md
525
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-named-as-default.md
526
526
  */
527
527
  'import/no-named-as-default'?: Linter.RuleEntry<[]>
528
528
  /**
529
529
  * Forbid use of exported name as property of default export.
530
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-named-as-default-member.md
530
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-named-as-default-member.md
531
531
  */
532
532
  'import/no-named-as-default-member'?: Linter.RuleEntry<[]>
533
533
  /**
534
534
  * Forbid named default exports.
535
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-named-default.md
535
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-named-default.md
536
536
  */
537
537
  'import/no-named-default'?: Linter.RuleEntry<[]>
538
538
  /**
539
539
  * Forbid named exports.
540
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-named-export.md
540
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-named-export.md
541
541
  */
542
542
  'import/no-named-export'?: Linter.RuleEntry<[]>
543
543
  /**
544
544
  * Forbid namespace (a.k.a. "wildcard" `*`) imports.
545
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-namespace.md
545
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-namespace.md
546
546
  */
547
547
  'import/no-namespace'?: Linter.RuleEntry<ImportNoNamespace>
548
548
  /**
549
549
  * Forbid Node.js builtin modules.
550
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-nodejs-modules.md
550
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-nodejs-modules.md
551
551
  */
552
552
  'import/no-nodejs-modules'?: Linter.RuleEntry<ImportNoNodejsModules>
553
553
  /**
554
554
  * Forbid importing packages through relative paths.
555
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-relative-packages.md
555
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-relative-packages.md
556
556
  */
557
557
  'import/no-relative-packages'?: Linter.RuleEntry<ImportNoRelativePackages>
558
558
  /**
559
559
  * Forbid importing modules from parent directories.
560
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-relative-parent-imports.md
560
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-relative-parent-imports.md
561
561
  */
562
562
  'import/no-relative-parent-imports'?: Linter.RuleEntry<ImportNoRelativeParentImports>
563
563
  /**
564
564
  * Enforce which files can be imported in a given folder.
565
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-restricted-paths.md
565
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-restricted-paths.md
566
566
  */
567
567
  'import/no-restricted-paths'?: Linter.RuleEntry<ImportNoRestrictedPaths>
568
568
  /**
569
569
  * Forbid a module from importing itself.
570
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-self-import.md
570
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-self-import.md
571
571
  */
572
572
  'import/no-self-import'?: Linter.RuleEntry<[]>
573
573
  /**
574
574
  * Forbid unassigned imports.
575
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-unassigned-import.md
575
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-unassigned-import.md
576
576
  */
577
577
  'import/no-unassigned-import'?: Linter.RuleEntry<ImportNoUnassignedImport>
578
578
  /**
579
579
  * Ensure imports point to a file/module that can be resolved.
580
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-unresolved.md
580
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-unresolved.md
581
581
  */
582
582
  'import/no-unresolved'?: Linter.RuleEntry<ImportNoUnresolved>
583
583
  /**
584
584
  * Forbid modules without exports, or exports without matching import in another module.
585
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-unused-modules.md
585
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-unused-modules.md
586
586
  */
587
587
  'import/no-unused-modules'?: Linter.RuleEntry<ImportNoUnusedModules>
588
588
  /**
589
589
  * Forbid unnecessary path segments in import and require statements.
590
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-useless-path-segments.md
590
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-useless-path-segments.md
591
591
  */
592
592
  'import/no-useless-path-segments'?: Linter.RuleEntry<ImportNoUselessPathSegments>
593
593
  /**
594
594
  * Forbid webpack loader syntax in imports.
595
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/no-webpack-loader-syntax.md
595
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/no-webpack-loader-syntax.md
596
596
  */
597
597
  'import/no-webpack-loader-syntax'?: Linter.RuleEntry<[]>
598
598
  /**
599
599
  * Enforce a convention in module import order.
600
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/order.md
600
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/order.md
601
601
  */
602
602
  'import/order'?: Linter.RuleEntry<ImportOrder>
603
603
  /**
604
604
  * Prefer a default export if module exports a single name or multiple names.
605
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/prefer-default-export.md
605
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/prefer-default-export.md
606
606
  */
607
607
  'import/prefer-default-export'?: Linter.RuleEntry<ImportPreferDefaultExport>
608
608
  /**
609
609
  * Forbid potentially ambiguous parse goal (`script` vs. `module`).
610
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v0.5.3/docs/rules/unambiguous.md
610
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.0.1/docs/rules/unambiguous.md
611
611
  */
612
612
  'import/unambiguous'?: Linter.RuleEntry<[]>
613
613
  /**
@@ -682,6 +682,11 @@ interface RuleOptions {
682
682
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header
683
683
  */
684
684
  'jsdoc/check-values'?: Linter.RuleEntry<JsdocCheckValues>
685
+ /**
686
+ * Converts non-JSDoc comments preceding or following nodes into JSDoc ones
687
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/convert-to-jsdoc-comments.md#repos-sticky-header
688
+ */
689
+ 'jsdoc/convert-to-jsdoc-comments'?: Linter.RuleEntry<JsdocConvertToJsdocComments>
685
690
  /**
686
691
  * Expects specific tags to be empty of any content.
687
692
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header
@@ -856,6 +861,11 @@ interface RuleOptions {
856
861
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-type.md#repos-sticky-header
857
862
  */
858
863
  'jsdoc/require-returns-type'?: Linter.RuleEntry<JsdocRequireReturnsType>
864
+ /**
865
+ * Requires template tags for each generic type parameter
866
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template.md#repos-sticky-header
867
+ */
868
+ 'jsdoc/require-template'?: Linter.RuleEntry<JsdocRequireTemplate>
859
869
  /**
860
870
  * Requires that throw statements are documented.
861
871
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws.md#repos-sticky-header
@@ -2491,522 +2501,287 @@ interface RuleOptions {
2491
2501
  */
2492
2502
  'radix'?: Linter.RuleEntry<Radix>
2493
2503
  /**
2494
- * verifies the list of dependencies for Hooks like useEffect and similar
2495
- * @see https://github.com/facebook/react/issues/14920
2496
- */
2497
- 'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>
2498
- /**
2499
- * enforces the Rules of Hooks
2500
- * @see https://reactjs.org/docs/hooks-rules.html
2501
- */
2502
- 'react-hooks/rules-of-hooks'?: Linter.RuleEntry<[]>
2503
- /**
2504
- * Enforces consistent naming for boolean props
2505
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/boolean-prop-naming.md
2506
- */
2507
- 'react/boolean-prop-naming'?: Linter.RuleEntry<ReactBooleanPropNaming>
2508
- /**
2509
- * Disallow usage of `button` elements without an explicit `type` attribute
2510
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/button-has-type.md
2511
- */
2512
- 'react/button-has-type'?: Linter.RuleEntry<ReactButtonHasType>
2513
- /**
2514
- * Enforce using `onChange` or `readonly` attribute when `checked` is used
2515
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/checked-requires-onchange-or-readonly.md
2516
- */
2517
- 'react/checked-requires-onchange-or-readonly'?: Linter.RuleEntry<ReactCheckedRequiresOnchangeOrReadonly>
2518
- /**
2519
- * Enforce all defaultProps have a corresponding non-required PropType
2520
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/default-props-match-prop-types.md
2521
- */
2522
- 'react/default-props-match-prop-types'?: Linter.RuleEntry<ReactDefaultPropsMatchPropTypes>
2523
- /**
2524
- * Enforce consistent usage of destructuring assignment of props, state, and context
2525
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/destructuring-assignment.md
2526
- */
2527
- 'react/destructuring-assignment'?: Linter.RuleEntry<ReactDestructuringAssignment>
2528
- /**
2529
- * Disallow missing displayName in a React component definition
2530
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/display-name.md
2531
- */
2532
- 'react/display-name'?: Linter.RuleEntry<ReactDisplayName>
2533
- /**
2534
- * Disallow certain props on components
2535
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-component-props.md
2536
- */
2537
- 'react/forbid-component-props'?: Linter.RuleEntry<ReactForbidComponentProps>
2538
- /**
2539
- * Disallow certain props on DOM Nodes
2540
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-dom-props.md
2541
- */
2542
- 'react/forbid-dom-props'?: Linter.RuleEntry<ReactForbidDomProps>
2543
- /**
2544
- * Disallow certain elements
2545
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-elements.md
2546
- */
2547
- 'react/forbid-elements'?: Linter.RuleEntry<ReactForbidElements>
2548
- /**
2549
- * Disallow using another component's propTypes
2550
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-foreign-prop-types.md
2551
- */
2552
- 'react/forbid-foreign-prop-types'?: Linter.RuleEntry<ReactForbidForeignPropTypes>
2553
- /**
2554
- * Disallow certain propTypes
2555
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-prop-types.md
2556
- */
2557
- 'react/forbid-prop-types'?: Linter.RuleEntry<ReactForbidPropTypes>
2558
- /**
2559
- * Enforce a specific function type for function components
2560
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/function-component-definition.md
2561
- */
2562
- 'react/function-component-definition'?: Linter.RuleEntry<ReactFunctionComponentDefinition>
2563
- /**
2564
- * Ensure destructuring and symmetric naming of useState hook value and setter variables
2565
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/hook-use-state.md
2566
- */
2567
- 'react/hook-use-state'?: Linter.RuleEntry<ReactHookUseState>
2568
- /**
2569
- * Enforce sandbox attribute on iframe elements
2570
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/iframe-missing-sandbox.md
2571
- */
2572
- 'react/iframe-missing-sandbox'?: Linter.RuleEntry<[]>
2573
- /**
2574
- * Enforce boolean attributes notation in JSX
2575
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-boolean-value.md
2576
- */
2577
- 'react/jsx-boolean-value'?: Linter.RuleEntry<ReactJsxBooleanValue>
2578
- /**
2579
- * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
2580
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-child-element-spacing.md
2581
- */
2582
- 'react/jsx-child-element-spacing'?: Linter.RuleEntry<[]>
2583
- /**
2584
- * Enforce closing bracket location in JSX
2585
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-closing-bracket-location.md
2586
- */
2587
- 'react/jsx-closing-bracket-location'?: Linter.RuleEntry<ReactJsxClosingBracketLocation>
2588
- /**
2589
- * Enforce closing tag location for multiline JSX
2590
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-closing-tag-location.md
2591
- */
2592
- 'react/jsx-closing-tag-location'?: Linter.RuleEntry<[]>
2593
- /**
2594
- * Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes
2595
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-brace-presence.md
2504
+ * disallow passing 'children' to void DOM elements
2505
+ * @see https://eslint-react.xyz/docs/rules/dom-no-children-in-void-dom-elements
2596
2506
  */
2597
- 'react/jsx-curly-brace-presence'?: Linter.RuleEntry<ReactJsxCurlyBracePresence>
2507
+ 'react-dom/no-children-in-void-dom-elements'?: Linter.RuleEntry<[]>
2598
2508
  /**
2599
- * Enforce consistent linebreaks in curly braces in JSX attributes and expressions
2600
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-newline.md
2509
+ * disallow when a DOM component is using 'dangerouslySetInnerHTML'
2510
+ * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
2601
2511
  */
2602
- 'react/jsx-curly-newline'?: Linter.RuleEntry<ReactJsxCurlyNewline>
2512
+ 'react-dom/no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>
2603
2513
  /**
2604
- * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
2605
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-spacing.md
2514
+ * disallow when a DOM component is using both 'children' and 'dangerouslySetInnerHTML'
2515
+ * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
2606
2516
  */
2607
- 'react/jsx-curly-spacing'?: Linter.RuleEntry<ReactJsxCurlySpacing>
2517
+ 'react-dom/no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>
2608
2518
  /**
2609
- * Enforce or disallow spaces around equal signs in JSX attributes
2610
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-equals-spacing.md
2519
+ * disallow 'findDOMNode'
2520
+ * @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
2611
2521
  */
2612
- 'react/jsx-equals-spacing'?: Linter.RuleEntry<ReactJsxEqualsSpacing>
2522
+ 'react-dom/no-find-dom-node'?: Linter.RuleEntry<[]>
2613
2523
  /**
2614
- * Disallow file extensions that may contain JSX
2615
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-filename-extension.md
2524
+ * enforce that button component have an explicit 'type' attribute
2525
+ * @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
2616
2526
  */
2617
- 'react/jsx-filename-extension'?: Linter.RuleEntry<ReactJsxFilenameExtension>
2527
+ 'react-dom/no-missing-button-type'?: Linter.RuleEntry<[]>
2618
2528
  /**
2619
- * Enforce proper position of the first property in JSX
2620
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-first-prop-new-line.md
2529
+ * enforce that 'iframe' component have an explicit 'sandbox' attribute
2530
+ * @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
2621
2531
  */
2622
- 'react/jsx-first-prop-new-line'?: Linter.RuleEntry<ReactJsxFirstPropNewLine>
2532
+ 'react-dom/no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>
2623
2533
  /**
2624
- * Enforce shorthand or standard form for React fragments
2625
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-fragments.md
2534
+ * enforce that namespaces are not used in React elements
2535
+ * @see https://eslint-react.xyz/docs/rules/dom-no-namespace
2626
2536
  */
2627
- 'react/jsx-fragments'?: Linter.RuleEntry<ReactJsxFragments>
2537
+ 'react-dom/no-namespace'?: Linter.RuleEntry<[]>
2628
2538
  /**
2629
- * Enforce event handler naming conventions in JSX
2630
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-handler-names.md
2539
+ * disallow usage of the return value of 'ReactDOM.render'
2540
+ * @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
2631
2541
  */
2632
- 'react/jsx-handler-names'?: Linter.RuleEntry<ReactJsxHandlerNames>
2542
+ 'react-dom/no-render-return-value'?: Linter.RuleEntry<[]>
2633
2543
  /**
2634
- * Enforce JSX indentation
2635
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-indent.md
2544
+ * disallow 'javascript:' URLs as JSX event handler prop's value
2545
+ * @see https://eslint-react.xyz/docs/rules/dom-no-script-url
2636
2546
  */
2637
- 'react/jsx-indent'?: Linter.RuleEntry<ReactJsxIndent>
2547
+ 'react-dom/no-script-url'?: Linter.RuleEntry<[]>
2638
2548
  /**
2639
- * Enforce props indentation in JSX
2640
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-indent-props.md
2549
+ * disallow unsafe iframe 'sandbox' attribute combinations
2550
+ * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
2641
2551
  */
2642
- 'react/jsx-indent-props'?: Linter.RuleEntry<ReactJsxIndentProps>
2552
+ 'react-dom/no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>
2643
2553
  /**
2644
- * Disallow missing `key` props in iterators/collection literals
2645
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-key.md
2554
+ * disallow 'target="_blank"' on an external link without 'rel="noreferrer noopener"'
2555
+ * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank
2646
2556
  */
2647
- 'react/jsx-key'?: Linter.RuleEntry<ReactJsxKey>
2557
+ 'react-dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>
2648
2558
  /**
2649
- * Enforce JSX maximum depth
2650
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-max-depth.md
2651
- */
2652
- 'react/jsx-max-depth'?: Linter.RuleEntry<ReactJsxMaxDepth>
2653
- /**
2654
- * Enforce maximum of props on a single line in JSX
2655
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-max-props-per-line.md
2656
- */
2657
- 'react/jsx-max-props-per-line'?: Linter.RuleEntry<ReactJsxMaxPropsPerLine>
2658
- /**
2659
- * Require or prevent a new line after jsx elements and expressions.
2660
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-newline.md
2661
- */
2662
- 'react/jsx-newline'?: Linter.RuleEntry<ReactJsxNewline>
2663
- /**
2664
- * Disallow `.bind()` or arrow functions in JSX props
2665
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-bind.md
2559
+ * verifies the list of dependencies for Hooks like useEffect and similar
2560
+ * @see https://github.com/facebook/react/issues/14920
2666
2561
  */
2667
- 'react/jsx-no-bind'?: Linter.RuleEntry<ReactJsxNoBind>
2562
+ 'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>
2668
2563
  /**
2669
- * Disallow comments from being inserted as text nodes
2670
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-comment-textnodes.md
2564
+ * enforces the Rules of Hooks
2565
+ * @see https://reactjs.org/docs/hooks-rules.html
2671
2566
  */
2672
- 'react/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>
2567
+ 'react-hooks/rules-of-hooks'?: Linter.RuleEntry<[]>
2673
2568
  /**
2674
- * Disallows JSX context provider values from taking values that will cause needless rerenders
2675
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-constructed-context-values.md
2569
+ * enforce boolean attributes notation in JSX
2570
+ * @see https://eslint-react.xyz/docs/rules/avoid-shorthand-boolean
2676
2571
  */
2677
- 'react/jsx-no-constructed-context-values'?: Linter.RuleEntry<[]>
2572
+ 'react/avoid-shorthand-boolean'?: Linter.RuleEntry<[]>
2678
2573
  /**
2679
- * Disallow duplicate properties in JSX
2680
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-duplicate-props.md
2574
+ * enforce using fragment component instead of shorthand fragment syntax
2575
+ * @see https://eslint-react.xyz/docs/rules/avoid-shorthand-fragment
2681
2576
  */
2682
- 'react/jsx-no-duplicate-props'?: Linter.RuleEntry<ReactJsxNoDuplicateProps>
2577
+ 'react/avoid-shorthand-fragment'?: Linter.RuleEntry<[]>
2683
2578
  /**
2684
- * Disallow problematic leaked values from being rendered
2685
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-leaked-render.md
2579
+ * require all 'forwardRef' components include a 'ref' parameter
2580
+ * @see https://eslint-react.xyz/docs/rules/ensure-forward-ref-using-ref
2686
2581
  */
2687
- 'react/jsx-no-leaked-render'?: Linter.RuleEntry<ReactJsxNoLeakedRender>
2582
+ 'react/ensure-forward-ref-using-ref'?: Linter.RuleEntry<[]>
2688
2583
  /**
2689
- * Disallow usage of string literals in JSX
2690
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-literals.md
2584
+ * disallow accessing 'this.state' within 'setState'
2585
+ * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
2691
2586
  */
2692
- 'react/jsx-no-literals'?: Linter.RuleEntry<ReactJsxNoLiterals>
2587
+ 'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>
2693
2588
  /**
2694
- * Disallow usage of `javascript:` URLs
2695
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-script-url.md
2589
+ * disallow using Array index as key
2590
+ * @see https://eslint-react.xyz/docs/rules/no-array-index-key
2696
2591
  */
2697
- 'react/jsx-no-script-url'?: Linter.RuleEntry<ReactJsxNoScriptUrl>
2592
+ 'react/no-array-index-key'?: Linter.RuleEntry<[]>
2698
2593
  /**
2699
- * Disallow `target="_blank"` attribute without `rel="noreferrer"`
2700
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-target-blank.md
2594
+ * disallow 'Children.count'
2595
+ * @see https://eslint-react.xyz/docs/rules/no-children-count
2701
2596
  */
2702
- 'react/jsx-no-target-blank'?: Linter.RuleEntry<ReactJsxNoTargetBlank>
2597
+ 'react/no-children-count'?: Linter.RuleEntry<[]>
2703
2598
  /**
2704
- * Disallow undeclared variables in JSX
2705
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-undef.md
2599
+ * disallow 'Children.forEach'
2600
+ * @see https://eslint-react.xyz/docs/rules/no-children-for-each
2706
2601
  */
2707
- 'react/jsx-no-undef'?: Linter.RuleEntry<ReactJsxNoUndef>
2602
+ 'react/no-children-for-each'?: Linter.RuleEntry<[]>
2708
2603
  /**
2709
- * Disallow unnecessary fragments
2710
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-useless-fragment.md
2604
+ * disallow 'Children.map'
2605
+ * @see https://eslint-react.xyz/docs/rules/no-children-map
2711
2606
  */
2712
- 'react/jsx-no-useless-fragment'?: Linter.RuleEntry<ReactJsxNoUselessFragment>
2607
+ 'react/no-children-map'?: Linter.RuleEntry<[]>
2713
2608
  /**
2714
- * Require one JSX element per line
2715
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-one-expression-per-line.md
2609
+ * disallow 'Children.only'
2610
+ * @see https://eslint-react.xyz/docs/rules/no-children-only
2716
2611
  */
2717
- 'react/jsx-one-expression-per-line'?: Linter.RuleEntry<ReactJsxOneExpressionPerLine>
2612
+ 'react/no-children-only'?: Linter.RuleEntry<[]>
2718
2613
  /**
2719
- * Enforce PascalCase for user-defined JSX components
2720
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-pascal-case.md
2614
+ * disallow passing of 'children' as props
2615
+ * @see https://eslint-react.xyz/docs/rules/no-children-prop
2721
2616
  */
2722
- 'react/jsx-pascal-case'?: Linter.RuleEntry<ReactJsxPascalCase>
2617
+ 'react/no-children-prop'?: Linter.RuleEntry<[]>
2723
2618
  /**
2724
- * Disallow multiple spaces between inline JSX props
2725
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-multi-spaces.md
2619
+ * disallow 'Children.toArray'
2620
+ * @see https://eslint-react.xyz/docs/rules/no-children-to-array
2726
2621
  */
2727
- 'react/jsx-props-no-multi-spaces'?: Linter.RuleEntry<[]>
2622
+ 'react/no-children-to-array'?: Linter.RuleEntry<[]>
2728
2623
  /**
2729
- * Disallow JSX prop spreading
2730
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-spreading.md
2624
+ * disallow class component
2625
+ * @see https://eslint-react.xyz/docs/rules/no-class-component
2731
2626
  */
2732
- 'react/jsx-props-no-spreading'?: Linter.RuleEntry<ReactJsxPropsNoSpreading>
2627
+ 'react/no-class-component'?: Linter.RuleEntry<[]>
2733
2628
  /**
2734
- * Enforce defaultProps declarations alphabetical sorting
2735
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-default-props.md
2736
- * @deprecated
2629
+ * disallow 'cloneElement'
2630
+ * @see https://eslint-react.xyz/docs/rules/no-clone-element
2737
2631
  */
2738
- 'react/jsx-sort-default-props'?: Linter.RuleEntry<ReactJsxSortDefaultProps>
2632
+ 'react/no-clone-element'?: Linter.RuleEntry<[]>
2739
2633
  /**
2740
- * Enforce props alphabetical sorting
2741
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-props.md
2634
+ * disallow comments from being inserted as text nodes
2635
+ * @see https://eslint-react.xyz/docs/rules/no-comment-textnodes
2742
2636
  */
2743
- 'react/jsx-sort-props'?: Linter.RuleEntry<ReactJsxSortProps>
2637
+ 'react/no-comment-textnodes'?: Linter.RuleEntry<[]>
2744
2638
  /**
2745
- * Enforce spacing before closing bracket in JSX
2746
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-space-before-closing.md
2639
+ * disallow complicated conditional rendering
2640
+ * @see https://eslint-react.xyz/docs/rules/no-complicated-conditional-rendering
2747
2641
  * @deprecated
2748
2642
  */
2749
- 'react/jsx-space-before-closing'?: Linter.RuleEntry<ReactJsxSpaceBeforeClosing>
2750
- /**
2751
- * Enforce whitespace in and around the JSX opening and closing brackets
2752
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-tag-spacing.md
2753
- */
2754
- 'react/jsx-tag-spacing'?: Linter.RuleEntry<ReactJsxTagSpacing>
2755
- /**
2756
- * Disallow React to be incorrectly marked as unused
2757
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-uses-react.md
2758
- */
2759
- 'react/jsx-uses-react'?: Linter.RuleEntry<[]>
2760
- /**
2761
- * Disallow variables used in JSX to be incorrectly marked as unused
2762
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-uses-vars.md
2763
- */
2764
- 'react/jsx-uses-vars'?: Linter.RuleEntry<[]>
2765
- /**
2766
- * Disallow missing parentheses around multiline JSX
2767
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-wrap-multilines.md
2768
- */
2769
- 'react/jsx-wrap-multilines'?: Linter.RuleEntry<ReactJsxWrapMultilines>
2770
- /**
2771
- * Disallow when this.state is accessed within setState
2772
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-access-state-in-setstate.md
2773
- */
2774
- 'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>
2775
- /**
2776
- * Disallow adjacent inline elements not separated by whitespace.
2777
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-adjacent-inline-elements.md
2778
- */
2779
- 'react/no-adjacent-inline-elements'?: Linter.RuleEntry<[]>
2780
- /**
2781
- * Disallow usage of Array index in keys
2782
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-array-index-key.md
2783
- */
2784
- 'react/no-array-index-key'?: Linter.RuleEntry<[]>
2643
+ 'react/no-complicated-conditional-rendering'?: Linter.RuleEntry<[]>
2785
2644
  /**
2786
- * Lifecycle methods should be methods on the prototype, not class fields
2787
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-arrow-function-lifecycle.md
2645
+ * disallow usage of 'componentWillMount'
2646
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
2788
2647
  */
2789
- 'react/no-arrow-function-lifecycle'?: Linter.RuleEntry<[]>
2648
+ 'react/no-component-will-mount'?: Linter.RuleEntry<[]>
2790
2649
  /**
2791
- * Disallow passing of children as props
2792
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-children-prop.md
2650
+ * disallow usage of 'componentWillReceiveProps'
2651
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
2793
2652
  */
2794
- 'react/no-children-prop'?: Linter.RuleEntry<ReactNoChildrenProp>
2653
+ 'react/no-component-will-receive-props'?: Linter.RuleEntry<[]>
2795
2654
  /**
2796
- * Disallow usage of dangerous JSX properties
2797
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-danger.md
2655
+ * disallow usage of 'componentWillUpdate'
2656
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-update
2798
2657
  */
2799
- 'react/no-danger'?: Linter.RuleEntry<[]>
2658
+ 'react/no-component-will-update'?: Linter.RuleEntry<[]>
2800
2659
  /**
2801
- * Disallow when a DOM element is using both children and dangerouslySetInnerHTML
2802
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-danger-with-children.md
2660
+ * disallow 'createRef' in function components
2661
+ * @see https://eslint-react.xyz/docs/rules/no-create-ref
2803
2662
  */
2804
- 'react/no-danger-with-children'?: Linter.RuleEntry<[]>
2663
+ 'react/no-create-ref'?: Linter.RuleEntry<[]>
2805
2664
  /**
2806
- * Disallow usage of deprecated methods
2807
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-deprecated.md
2808
- */
2809
- 'react/no-deprecated'?: Linter.RuleEntry<[]>
2810
- /**
2811
- * Disallow usage of setState in componentDidMount
2812
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-did-mount-set-state.md
2813
- */
2814
- 'react/no-did-mount-set-state'?: Linter.RuleEntry<ReactNoDidMountSetState>
2815
- /**
2816
- * Disallow usage of setState in componentDidUpdate
2817
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-did-update-set-state.md
2818
- */
2819
- 'react/no-did-update-set-state'?: Linter.RuleEntry<ReactNoDidUpdateSetState>
2820
- /**
2821
- * Disallow direct mutation of this.state
2822
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-direct-mutation-state.md
2665
+ * disallow direct mutation of state
2666
+ * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
2823
2667
  */
2824
2668
  'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>
2825
2669
  /**
2826
- * Disallow usage of findDOMNode
2827
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-find-dom-node.md
2670
+ * disallow duplicate keys in 'key' prop when rendering list
2671
+ * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
2828
2672
  */
2829
- 'react/no-find-dom-node'?: Linter.RuleEntry<[]>
2673
+ 'react/no-duplicate-key'?: Linter.RuleEntry<[]>
2830
2674
  /**
2831
- * Disallow usage of invalid attributes
2832
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-invalid-html-attribute.md
2675
+ * disallow spreading 'key' from objects.
2676
+ * @see https://eslint-react.xyz/docs/rules/no-implicit-key
2677
+ * @deprecated
2833
2678
  */
2834
- 'react/no-invalid-html-attribute'?: Linter.RuleEntry<ReactNoInvalidHtmlAttribute>
2679
+ 'react/no-implicit-key'?: Linter.RuleEntry<[]>
2835
2680
  /**
2836
- * Disallow usage of isMounted
2837
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-is-mounted.md
2681
+ * disallow problematic leaked values from being rendered
2682
+ * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
2838
2683
  */
2839
- 'react/no-is-mounted'?: Linter.RuleEntry<[]>
2684
+ 'react/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>
2840
2685
  /**
2841
- * Disallow multiple component definition per file
2842
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-multi-comp.md
2686
+ * require 'displayName' for memo and forwardRef components
2687
+ * @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
2843
2688
  */
2844
- 'react/no-multi-comp'?: Linter.RuleEntry<ReactNoMultiComp>
2689
+ 'react/no-missing-component-display-name'?: Linter.RuleEntry<[]>
2845
2690
  /**
2846
- * Enforce that namespaces are not used in React elements
2847
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-namespace.md
2691
+ * require 'key' prop when rendering list
2692
+ * @see https://eslint-react.xyz/docs/rules/no-missing-key
2848
2693
  */
2849
- 'react/no-namespace'?: Linter.RuleEntry<[]>
2694
+ 'react/no-missing-key'?: Linter.RuleEntry<[]>
2850
2695
  /**
2851
- * Disallow usage of referential-type variables as default param in functional component
2852
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-object-type-as-default-prop.md
2696
+ * disallow usage of unstable nested components
2697
+ * @see https://eslint-react.xyz/docs/rules/no-nested-components
2853
2698
  */
2854
- 'react/no-object-type-as-default-prop'?: Linter.RuleEntry<[]>
2699
+ 'react/no-nested-components'?: Linter.RuleEntry<[]>
2855
2700
  /**
2856
- * Disallow usage of shouldComponentUpdate when extending React.PureComponent
2857
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-redundant-should-component-update.md
2701
+ * disallow usage of 'shouldComponentUpdate' in class component extends 'React.PureComponent'
2702
+ * @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
2858
2703
  */
2859
2704
  'react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>
2860
2705
  /**
2861
- * Disallow usage of the return value of ReactDOM.render
2862
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-render-return-value.md
2706
+ * disallow 'setState' in 'componentDidMount'
2707
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
2863
2708
  */
2864
- 'react/no-render-return-value'?: Linter.RuleEntry<[]>
2709
+ 'react/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>
2865
2710
  /**
2866
- * Disallow usage of setState
2867
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-set-state.md
2711
+ * disallow 'setState' in 'componentDidUpdate'
2712
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
2868
2713
  */
2869
- 'react/no-set-state'?: Linter.RuleEntry<[]>
2714
+ 'react/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>
2870
2715
  /**
2871
- * Disallow using string references
2872
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-string-refs.md
2716
+ * disallow 'setState' in 'componentWillUpdate'
2717
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
2873
2718
  */
2874
- 'react/no-string-refs'?: Linter.RuleEntry<ReactNoStringRefs>
2719
+ 'react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>
2875
2720
  /**
2876
- * Disallow `this` from being used in stateless functional components
2877
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-this-in-sfc.md
2721
+ * disallow using deprecated string refs
2722
+ * @see https://eslint-react.xyz/docs/rules/no-string-refs
2878
2723
  */
2879
- 'react/no-this-in-sfc'?: Linter.RuleEntry<[]>
2724
+ 'react/no-string-refs'?: Linter.RuleEntry<[]>
2880
2725
  /**
2881
- * Disallow common typos
2882
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-typos.md
2726
+ * disallow usage of 'UNSAFE_componentWillMount'
2727
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
2883
2728
  */
2884
- 'react/no-typos'?: Linter.RuleEntry<[]>
2729
+ 'react/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>
2885
2730
  /**
2886
- * Disallow unescaped HTML entities from appearing in markup
2887
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unescaped-entities.md
2731
+ * disallow usage of 'UNSAFE_componentWillReceiveProps'
2732
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
2888
2733
  */
2889
- 'react/no-unescaped-entities'?: Linter.RuleEntry<ReactNoUnescapedEntities>
2734
+ 'react/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>
2890
2735
  /**
2891
- * Disallow usage of unknown DOM property
2892
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unknown-property.md
2736
+ * disallow usage of 'UNSAFE_componentWillUpdate'
2737
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
2893
2738
  */
2894
- 'react/no-unknown-property'?: Linter.RuleEntry<ReactNoUnknownProperty>
2739
+ 'react/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>
2895
2740
  /**
2896
- * Disallow usage of unsafe lifecycle methods
2897
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unsafe.md
2741
+ * disallow passing constructed values to context providers
2742
+ * @see https://eslint-react.xyz/docs/rules/no-unstable-context-value
2898
2743
  */
2899
- 'react/no-unsafe'?: Linter.RuleEntry<ReactNoUnsafe>
2744
+ 'react/no-unstable-context-value'?: Linter.RuleEntry<[]>
2900
2745
  /**
2901
- * Disallow creating unstable components inside components
2902
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unstable-nested-components.md
2746
+ * disallow usage of unstable value as default param in function component
2747
+ * @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
2903
2748
  */
2904
- 'react/no-unstable-nested-components'?: Linter.RuleEntry<ReactNoUnstableNestedComponents>
2749
+ 'react/no-unstable-default-props'?: Linter.RuleEntry<[]>
2905
2750
  /**
2906
- * Disallow declaring unused methods of component class
2907
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-class-component-methods.md
2751
+ * disallow unused class component members
2752
+ * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
2908
2753
  */
2909
- 'react/no-unused-class-component-methods'?: Linter.RuleEntry<[]>
2754
+ 'react/no-unused-class-component-members'?: Linter.RuleEntry<[]>
2910
2755
  /**
2911
- * Disallow definitions of unused propTypes
2912
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-prop-types.md
2913
- */
2914
- 'react/no-unused-prop-types'?: Linter.RuleEntry<ReactNoUnusedPropTypes>
2915
- /**
2916
- * Disallow definitions of unused state
2917
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-state.md
2756
+ * Prevents unused state of class component
2757
+ * @see https://eslint-react.xyz/docs/rules/no-unused-state
2918
2758
  */
2919
2759
  'react/no-unused-state'?: Linter.RuleEntry<[]>
2920
2760
  /**
2921
- * Disallow usage of setState in componentWillUpdate
2922
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-will-update-set-state.md
2761
+ * disallow unnecessary fragments
2762
+ * @see https://eslint-react.xyz/docs/rules/no-useless-fragment
2923
2763
  */
2924
- 'react/no-will-update-set-state'?: Linter.RuleEntry<ReactNoWillUpdateSetState>
2764
+ 'react/no-useless-fragment'?: Linter.RuleEntry<[]>
2925
2765
  /**
2926
- * Enforce ES5 or ES6 class for React Components
2927
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-es6-class.md
2766
+ * enforce using destructuring assignment in component props and context
2767
+ * @see https://eslint-react.xyz/docs/rules/prefer-destructuring-assignment
2928
2768
  */
2929
- 'react/prefer-es6-class'?: Linter.RuleEntry<ReactPreferEs6Class>
2769
+ 'react/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>
2930
2770
  /**
2931
- * Prefer exact proptype definitions
2932
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-exact-props.md
2933
- */
2934
- 'react/prefer-exact-props'?: Linter.RuleEntry<[]>
2935
- /**
2936
- * Enforce that props are read-only
2937
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-read-only-props.md
2771
+ * enforce that component props are read-only
2772
+ * @see https://eslint-react.xyz/docs/rules/prefer-read-only-props
2938
2773
  */
2939
2774
  'react/prefer-read-only-props'?: Linter.RuleEntry<[]>
2940
2775
  /**
2941
- * Enforce stateless components to be written as a pure function
2942
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-stateless-function.md
2943
- */
2944
- 'react/prefer-stateless-function'?: Linter.RuleEntry<ReactPreferStatelessFunction>
2945
- /**
2946
- * Disallow missing props validation in a React component definition
2947
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prop-types.md
2948
- */
2949
- 'react/prop-types'?: Linter.RuleEntry<ReactPropTypes>
2950
- /**
2951
- * Disallow missing React when using JSX
2952
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/react-in-jsx-scope.md
2953
- */
2954
- 'react/react-in-jsx-scope'?: Linter.RuleEntry<[]>
2955
- /**
2956
- * Enforce a defaultProps definition for every prop that is not a required prop
2957
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-default-props.md
2958
- */
2959
- 'react/require-default-props'?: Linter.RuleEntry<ReactRequireDefaultProps>
2960
- /**
2961
- * Enforce React components to have a shouldComponentUpdate method
2962
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-optimization.md
2776
+ * enforce boolean attributes notation in JSX
2777
+ * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-boolean
2963
2778
  */
2964
- 'react/require-optimization'?: Linter.RuleEntry<ReactRequireOptimization>
2779
+ 'react/prefer-shorthand-boolean'?: Linter.RuleEntry<[]>
2965
2780
  /**
2966
- * Enforce ES5 or ES6 class for returning value in render function
2967
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-render-return.md
2781
+ * enforce using fragment syntax instead of Fragment component
2782
+ * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-fragment
2968
2783
  */
2969
- 'react/require-render-return'?: Linter.RuleEntry<[]>
2970
- /**
2971
- * Disallow extra closing tags for components without children
2972
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/self-closing-comp.md
2973
- */
2974
- 'react/self-closing-comp'?: Linter.RuleEntry<ReactSelfClosingComp>
2975
- /**
2976
- * Enforce component methods order
2977
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-comp.md
2978
- */
2979
- 'react/sort-comp'?: Linter.RuleEntry<ReactSortComp>
2980
- /**
2981
- * Enforce defaultProps declarations alphabetical sorting
2982
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-default-props.md
2983
- */
2984
- 'react/sort-default-props'?: Linter.RuleEntry<ReactSortDefaultProps>
2985
- /**
2986
- * Enforce propTypes declarations alphabetical sorting
2987
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-prop-types.md
2988
- */
2989
- 'react/sort-prop-types'?: Linter.RuleEntry<ReactSortPropTypes>
2990
- /**
2991
- * Enforce class component state initialization style
2992
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/state-in-constructor.md
2993
- */
2994
- 'react/state-in-constructor'?: Linter.RuleEntry<ReactStateInConstructor>
2995
- /**
2996
- * Enforces where React component static properties should be positioned.
2997
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/static-property-placement.md
2998
- */
2999
- 'react/static-property-placement'?: Linter.RuleEntry<ReactStaticPropertyPlacement>
3000
- /**
3001
- * Enforce style prop value is an object
3002
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/style-prop-object.md
3003
- */
3004
- 'react/style-prop-object'?: Linter.RuleEntry<ReactStylePropObject>
3005
- /**
3006
- * Disallow void DOM elements (e.g. `<img />`, `<br />`) from receiving children
3007
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/void-dom-elements-no-children.md
3008
- */
3009
- 'react/void-dom-elements-no-children'?: Linter.RuleEntry<[]>
2784
+ 'react/prefer-shorthand-fragment'?: Linter.RuleEntry<[]>
3010
2785
  /**
3011
2786
  * disallow confusing quantifiers
3012
2787
  * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/confusing-quantifier.html
@@ -7655,6 +7430,25 @@ type JsdocCheckValues = []|[{
7655
7430
  licensePattern?: string
7656
7431
  numericOnlyVariation?: boolean
7657
7432
  }]
7433
+ // ----- jsdoc/convert-to-jsdoc-comments -----
7434
+ type JsdocConvertToJsdocComments = []|[{
7435
+ allowedPrefixes?: string[]
7436
+ contexts?: (string | {
7437
+ context?: string
7438
+ inlineCommentBlock?: boolean
7439
+ })[]
7440
+ contextsAfter?: (string | {
7441
+ context?: string
7442
+ inlineCommentBlock?: boolean
7443
+ })[]
7444
+ contextsBeforeAndAfter?: (string | {
7445
+ context?: string
7446
+ inlineCommentBlock?: boolean
7447
+ })[]
7448
+ enableFixer?: boolean
7449
+ enforceJsdocLineStyle?: ("multi" | "single")
7450
+ lineOrBlockStyle?: ("block" | "line" | "both")
7451
+ }]
7658
7452
  // ----- jsdoc/empty-tags -----
7659
7453
  type JsdocEmptyTags = []|[{
7660
7454
  tags?: string[]
@@ -7942,6 +7736,10 @@ type JsdocRequireReturnsType = []|[{
7942
7736
  context?: string
7943
7737
  })[]
7944
7738
  }]
7739
+ // ----- jsdoc/require-template -----
7740
+ type JsdocRequireTemplate = []|[{
7741
+ requireSeparateTemplates?: boolean
7742
+ }]
7945
7743
  // ----- jsdoc/require-throws -----
7946
7744
  type JsdocRequireThrows = []|[{
7947
7745
  contexts?: (string | {
@@ -9013,18 +8811,11 @@ type NoRestrictedImports = ((string | {
9013
8811
  importNames?: string[]
9014
8812
  allowImportNames?: string[]
9015
8813
  })[]
9016
- patterns?: (string[] | {
9017
-
9018
- importNames?: [string, ...(string)[]]
9019
-
9020
- allowImportNames?: [string, ...(string)[]]
9021
-
9022
- group: [string, ...(string)[]]
9023
- importNamePattern?: string
9024
- allowImportNamePattern?: string
9025
- message?: string
9026
- caseSensitive?: boolean
9027
- }[])
8814
+ patterns?: (string[] | ({
8815
+ [k: string]: unknown | undefined
8816
+ } | {
8817
+ [k: string]: unknown | undefined
8818
+ })[])
9028
8819
  }])
9029
8820
  // ----- no-restricted-modules -----
9030
8821
  type NoRestrictedModules = ((string | {
@@ -9745,433 +9536,6 @@ type ReactHooksExhaustiveDeps = []|[{
9745
9536
  additionalHooks?: string
9746
9537
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean
9747
9538
  }]
9748
- // ----- react/boolean-prop-naming -----
9749
- type ReactBooleanPropNaming = []|[{
9750
-
9751
- propTypeNames?: [string, ...(string)[]]
9752
- rule?: string
9753
- message?: string
9754
- validateNested?: boolean
9755
- }]
9756
- // ----- react/button-has-type -----
9757
- type ReactButtonHasType = []|[{
9758
- button?: boolean
9759
- submit?: boolean
9760
- reset?: boolean
9761
- }]
9762
- // ----- react/checked-requires-onchange-or-readonly -----
9763
- type ReactCheckedRequiresOnchangeOrReadonly = []|[{
9764
- ignoreMissingProperties?: boolean
9765
- ignoreExclusiveCheckedAttribute?: boolean
9766
- }]
9767
- // ----- react/default-props-match-prop-types -----
9768
- type ReactDefaultPropsMatchPropTypes = []|[{
9769
- allowRequiredDefaults?: boolean
9770
- }]
9771
- // ----- react/destructuring-assignment -----
9772
- type ReactDestructuringAssignment = []|[("always" | "never")]|[("always" | "never"), {
9773
- ignoreClassFields?: boolean
9774
- destructureInSignature?: ("always" | "ignore")
9775
- }]
9776
- // ----- react/display-name -----
9777
- type ReactDisplayName = []|[{
9778
- ignoreTranspilerName?: boolean
9779
- checkContextObjects?: boolean
9780
- }]
9781
- // ----- react/forbid-component-props -----
9782
- type ReactForbidComponentProps = []|[{
9783
- forbid?: (string | {
9784
- propName?: string
9785
- allowedFor?: string[]
9786
- message?: string
9787
- } | {
9788
- propName?: string
9789
-
9790
- disallowedFor: [string, ...(string)[]]
9791
- message?: string
9792
- })[]
9793
- [k: string]: unknown | undefined
9794
- }]
9795
- // ----- react/forbid-dom-props -----
9796
- type ReactForbidDomProps = []|[{
9797
- forbid?: (string | {
9798
- propName?: string
9799
- disallowedFor?: string[]
9800
- message?: string
9801
- [k: string]: unknown | undefined
9802
- })[]
9803
- }]
9804
- // ----- react/forbid-elements -----
9805
- type ReactForbidElements = []|[{
9806
- forbid?: (string | {
9807
- element: string
9808
- message?: string
9809
- })[]
9810
- }]
9811
- // ----- react/forbid-foreign-prop-types -----
9812
- type ReactForbidForeignPropTypes = []|[{
9813
- allowInPropTypes?: boolean
9814
- }]
9815
- // ----- react/forbid-prop-types -----
9816
- type ReactForbidPropTypes = []|[{
9817
- forbid?: string[]
9818
- checkContextTypes?: boolean
9819
- checkChildContextTypes?: boolean
9820
- [k: string]: unknown | undefined
9821
- }]
9822
- // ----- react/function-component-definition -----
9823
- type ReactFunctionComponentDefinition = []|[{
9824
- namedComponents?: (("function-declaration" | "arrow-function" | "function-expression") | ("function-declaration" | "arrow-function" | "function-expression")[])
9825
- unnamedComponents?: (("arrow-function" | "function-expression") | ("arrow-function" | "function-expression")[])
9826
- [k: string]: unknown | undefined
9827
- }]
9828
- // ----- react/hook-use-state -----
9829
- type ReactHookUseState = []|[{
9830
- allowDestructuredState?: boolean
9831
- }]
9832
- // ----- react/jsx-boolean-value -----
9833
- type ReactJsxBooleanValue = ([]|[("always" | "never")] | []|["always"]|["always", {
9834
- never?: string[]
9835
- assumeUndefinedIsFalse?: boolean
9836
- }] | []|["never"]|["never", {
9837
- always?: string[]
9838
- assumeUndefinedIsFalse?: boolean
9839
- }])
9840
- // ----- react/jsx-closing-bracket-location -----
9841
- type ReactJsxClosingBracketLocation = []|[(("after-props" | "props-aligned" | "tag-aligned" | "line-aligned") | {
9842
- location?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned")
9843
- } | {
9844
- nonEmpty?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned" | false)
9845
- selfClosing?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned" | false)
9846
- })]
9847
- // ----- react/jsx-curly-brace-presence -----
9848
- type ReactJsxCurlyBracePresence = []|[({
9849
- props?: ("always" | "never" | "ignore")
9850
- children?: ("always" | "never" | "ignore")
9851
- propElementValues?: ("always" | "never" | "ignore")
9852
- } | ("always" | "never" | "ignore"))]
9853
- // ----- react/jsx-curly-newline -----
9854
- type ReactJsxCurlyNewline = []|[(("consistent" | "never") | {
9855
- singleline?: ("consistent" | "require" | "forbid")
9856
- multiline?: ("consistent" | "require" | "forbid")
9857
- })]
9858
- // ----- react/jsx-curly-spacing -----
9859
- type ReactJsxCurlySpacing = []|[((_ReactJsxCurlySpacing_BasicConfig & {
9860
- attributes?: _ReactJsxCurlySpacingBasicConfigOrBoolean
9861
- children?: _ReactJsxCurlySpacingBasicConfigOrBoolean
9862
- [k: string]: unknown | undefined
9863
- }) | ("always" | "never"))]|[((_ReactJsxCurlySpacing_BasicConfig & {
9864
- attributes?: _ReactJsxCurlySpacingBasicConfigOrBoolean
9865
- children?: _ReactJsxCurlySpacingBasicConfigOrBoolean
9866
- [k: string]: unknown | undefined
9867
- }) | ("always" | "never")), {
9868
- allowMultiline?: boolean
9869
- spacing?: {
9870
- objectLiterals?: ("always" | "never")
9871
- [k: string]: unknown | undefined
9872
- }
9873
- }]
9874
- type _ReactJsxCurlySpacingBasicConfigOrBoolean = (_ReactJsxCurlySpacing_BasicConfig | boolean)
9875
- interface _ReactJsxCurlySpacing_BasicConfig {
9876
- when?: ("always" | "never")
9877
- allowMultiline?: boolean
9878
- spacing?: {
9879
- objectLiterals?: ("always" | "never")
9880
- [k: string]: unknown | undefined
9881
- }
9882
- [k: string]: unknown | undefined
9883
- }
9884
- // ----- react/jsx-equals-spacing -----
9885
- type ReactJsxEqualsSpacing = []|[("always" | "never")]
9886
- // ----- react/jsx-filename-extension -----
9887
- type ReactJsxFilenameExtension = []|[{
9888
- allow?: ("always" | "as-needed")
9889
- extensions?: string[]
9890
- ignoreFilesWithoutCode?: boolean
9891
- }]
9892
- // ----- react/jsx-first-prop-new-line -----
9893
- type ReactJsxFirstPropNewLine = []|[("always" | "never" | "multiline" | "multiline-multiprop" | "multiprop")]
9894
- // ----- react/jsx-fragments -----
9895
- type ReactJsxFragments = []|[("syntax" | "element")]
9896
- // ----- react/jsx-handler-names -----
9897
- type ReactJsxHandlerNames = []|[({
9898
- eventHandlerPrefix?: string
9899
- eventHandlerPropPrefix?: string
9900
- checkLocalVariables?: boolean
9901
- checkInlineFunction?: boolean
9902
- } | {
9903
- eventHandlerPrefix?: string
9904
- eventHandlerPropPrefix?: false
9905
- checkLocalVariables?: boolean
9906
- checkInlineFunction?: boolean
9907
- } | {
9908
- eventHandlerPrefix?: false
9909
- eventHandlerPropPrefix?: string
9910
- checkLocalVariables?: boolean
9911
- checkInlineFunction?: boolean
9912
- } | {
9913
- checkLocalVariables?: boolean
9914
- } | {
9915
- checkInlineFunction?: boolean
9916
- })]
9917
- // ----- react/jsx-indent -----
9918
- type ReactJsxIndent = []|[("tab" | number)]|[("tab" | number), {
9919
- checkAttributes?: boolean
9920
- indentLogicalExpressions?: boolean
9921
- }]
9922
- // ----- react/jsx-indent-props -----
9923
- type ReactJsxIndentProps = []|[(("tab" | "first") | number | {
9924
- indentMode?: (("tab" | "first") | number)
9925
- ignoreTernaryOperator?: boolean
9926
- [k: string]: unknown | undefined
9927
- })]
9928
- // ----- react/jsx-key -----
9929
- type ReactJsxKey = []|[{
9930
- checkFragmentShorthand?: boolean
9931
- checkKeyMustBeforeSpread?: boolean
9932
- warnOnDuplicates?: boolean
9933
- }]
9934
- // ----- react/jsx-max-depth -----
9935
- type ReactJsxMaxDepth = []|[{
9936
- max?: number
9937
- }]
9938
- // ----- react/jsx-max-props-per-line -----
9939
- type ReactJsxMaxPropsPerLine = []|[({
9940
- maximum?: {
9941
- single?: number
9942
- multi?: number
9943
- [k: string]: unknown | undefined
9944
- }
9945
- } | {
9946
- maximum?: number
9947
- when?: ("always" | "multiline")
9948
- })]
9949
- // ----- react/jsx-newline -----
9950
- type ReactJsxNewline = []|[{
9951
- prevent?: boolean
9952
- allowMultilines?: boolean
9953
- }]
9954
- // ----- react/jsx-no-bind -----
9955
- type ReactJsxNoBind = []|[{
9956
- allowArrowFunctions?: boolean
9957
- allowBind?: boolean
9958
- allowFunctions?: boolean
9959
- ignoreRefs?: boolean
9960
- ignoreDOMComponents?: boolean
9961
- }]
9962
- // ----- react/jsx-no-duplicate-props -----
9963
- type ReactJsxNoDuplicateProps = []|[{
9964
- ignoreCase?: boolean
9965
- }]
9966
- // ----- react/jsx-no-leaked-render -----
9967
- type ReactJsxNoLeakedRender = []|[{
9968
- validStrategies?: ("ternary" | "coerce")[]
9969
- }]
9970
- // ----- react/jsx-no-literals -----
9971
- type ReactJsxNoLiterals = []|[{
9972
- noStrings?: boolean
9973
- allowedStrings?: string[]
9974
- ignoreProps?: boolean
9975
- noAttributeStrings?: boolean
9976
- }]
9977
- // ----- react/jsx-no-script-url -----
9978
- type ReactJsxNoScriptUrl = ([]|[{
9979
- name: string
9980
- props: string[]
9981
- }[]]|[{
9982
- name: string
9983
- props: string[]
9984
- }[], {
9985
- includeFromSettings?: boolean
9986
- [k: string]: unknown | undefined
9987
- }] | []|[{
9988
- includeFromSettings?: boolean
9989
- [k: string]: unknown | undefined
9990
- }])
9991
- // ----- react/jsx-no-target-blank -----
9992
- type ReactJsxNoTargetBlank = []|[{
9993
- allowReferrer?: boolean
9994
- enforceDynamicLinks?: ("always" | "never")
9995
- warnOnSpreadAttributes?: boolean
9996
- links?: boolean
9997
- forms?: boolean
9998
- }]
9999
- // ----- react/jsx-no-undef -----
10000
- type ReactJsxNoUndef = []|[{
10001
- allowGlobals?: boolean
10002
- }]
10003
- // ----- react/jsx-no-useless-fragment -----
10004
- type ReactJsxNoUselessFragment = []|[{
10005
- allowExpressions?: boolean
10006
- [k: string]: unknown | undefined
10007
- }]
10008
- // ----- react/jsx-one-expression-per-line -----
10009
- type ReactJsxOneExpressionPerLine = []|[{
10010
- allow?: ("none" | "literal" | "single-child" | "non-jsx")
10011
- }]
10012
- // ----- react/jsx-pascal-case -----
10013
- type ReactJsxPascalCase = []|[{
10014
- allowAllCaps?: boolean
10015
- allowLeadingUnderscore?: boolean
10016
- allowNamespace?: boolean
10017
-
10018
- ignore?: []|[string]
10019
- }]
10020
- // ----- react/jsx-props-no-spreading -----
10021
- type ReactJsxPropsNoSpreading = []|[({
10022
- html?: ("enforce" | "ignore")
10023
- custom?: ("enforce" | "ignore")
10024
- exceptions?: string[]
10025
- [k: string]: unknown | undefined
10026
- } & {
10027
- [k: string]: unknown | undefined
10028
- })]
10029
- // ----- react/jsx-sort-default-props -----
10030
- type ReactJsxSortDefaultProps = []|[{
10031
- ignoreCase?: boolean
10032
- }]
10033
- // ----- react/jsx-sort-props -----
10034
- type ReactJsxSortProps = []|[{
10035
- callbacksLast?: boolean
10036
- shorthandFirst?: boolean
10037
- shorthandLast?: boolean
10038
- multiline?: ("ignore" | "first" | "last")
10039
- ignoreCase?: boolean
10040
- noSortAlphabetically?: boolean
10041
- reservedFirst?: (unknown[] | boolean)
10042
- locale?: string
10043
- }]
10044
- // ----- react/jsx-space-before-closing -----
10045
- type ReactJsxSpaceBeforeClosing = []|[("always" | "never")]
10046
- // ----- react/jsx-tag-spacing -----
10047
- type ReactJsxTagSpacing = []|[{
10048
- closingSlash?: ("always" | "never" | "allow")
10049
- beforeSelfClosing?: ("always" | "proportional-always" | "never" | "allow")
10050
- afterOpening?: ("always" | "allow-multiline" | "never" | "allow")
10051
- beforeClosing?: ("always" | "proportional-always" | "never" | "allow")
10052
- }]
10053
- // ----- react/jsx-wrap-multilines -----
10054
- type ReactJsxWrapMultilines = []|[{
10055
- declaration?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10056
- assignment?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10057
- return?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10058
- arrow?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10059
- condition?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10060
- logical?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10061
- prop?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10062
- }]
10063
- // ----- react/no-children-prop -----
10064
- type ReactNoChildrenProp = []|[{
10065
- allowFunctions?: boolean
10066
- }]
10067
- // ----- react/no-did-mount-set-state -----
10068
- type ReactNoDidMountSetState = []|["disallow-in-func"]
10069
- // ----- react/no-did-update-set-state -----
10070
- type ReactNoDidUpdateSetState = []|["disallow-in-func"]
10071
- // ----- react/no-invalid-html-attribute -----
10072
- type ReactNoInvalidHtmlAttribute = []|[("rel")[]]
10073
- // ----- react/no-multi-comp -----
10074
- type ReactNoMultiComp = []|[{
10075
- ignoreStateless?: boolean
10076
- }]
10077
- // ----- react/no-string-refs -----
10078
- type ReactNoStringRefs = []|[{
10079
- noTemplateLiterals?: boolean
10080
- }]
10081
- // ----- react/no-unescaped-entities -----
10082
- type ReactNoUnescapedEntities = []|[{
10083
- forbid?: (string | {
10084
- char?: string
10085
- alternatives?: string[]
10086
- [k: string]: unknown | undefined
10087
- })[]
10088
- }]
10089
- // ----- react/no-unknown-property -----
10090
- type ReactNoUnknownProperty = []|[{
10091
- ignore?: string[]
10092
- requireDataLowercase?: boolean
10093
- }]
10094
- // ----- react/no-unsafe -----
10095
- type ReactNoUnsafe = []|[{
10096
- checkAliases?: boolean
10097
- }]
10098
- // ----- react/no-unstable-nested-components -----
10099
- type ReactNoUnstableNestedComponents = []|[{
10100
- customValidators?: string[]
10101
- allowAsProps?: boolean
10102
- }]
10103
- // ----- react/no-unused-prop-types -----
10104
- type ReactNoUnusedPropTypes = []|[{
10105
- ignore?: string[]
10106
- customValidators?: string[]
10107
- skipShapeProps?: boolean
10108
- }]
10109
- // ----- react/no-will-update-set-state -----
10110
- type ReactNoWillUpdateSetState = []|["disallow-in-func"]
10111
- // ----- react/prefer-es6-class -----
10112
- type ReactPreferEs6Class = []|[("always" | "never")]
10113
- // ----- react/prefer-stateless-function -----
10114
- type ReactPreferStatelessFunction = []|[{
10115
- ignorePureComponents?: boolean
10116
- }]
10117
- // ----- react/prop-types -----
10118
- type ReactPropTypes = []|[{
10119
- ignore?: string[]
10120
- customValidators?: string[]
10121
- skipUndeclared?: boolean
10122
- }]
10123
- // ----- react/require-default-props -----
10124
- type ReactRequireDefaultProps = []|[{
10125
- forbidDefaultForRequired?: boolean
10126
- classes?: ("defaultProps" | "ignore")
10127
- functions?: ("defaultArguments" | "defaultProps" | "ignore")
10128
- ignoreFunctionalComponents?: boolean
10129
- }]
10130
- // ----- react/require-optimization -----
10131
- type ReactRequireOptimization = []|[{
10132
- allowDecorators?: string[]
10133
- }]
10134
- // ----- react/self-closing-comp -----
10135
- type ReactSelfClosingComp = []|[{
10136
- component?: boolean
10137
- html?: boolean
10138
- }]
10139
- // ----- react/sort-comp -----
10140
- type ReactSortComp = []|[{
10141
- order?: string[]
10142
- groups?: {
10143
- [k: string]: string[]
10144
- }
10145
- }]
10146
- // ----- react/sort-default-props -----
10147
- type ReactSortDefaultProps = []|[{
10148
- ignoreCase?: boolean
10149
- }]
10150
- // ----- react/sort-prop-types -----
10151
- type ReactSortPropTypes = []|[{
10152
- requiredFirst?: boolean
10153
- callbacksLast?: boolean
10154
- ignoreCase?: boolean
10155
- noSortAlphabetically?: boolean
10156
- sortShapeProp?: boolean
10157
- checkTypes?: boolean
10158
- }]
10159
- // ----- react/state-in-constructor -----
10160
- type ReactStateInConstructor = []|[("always" | "never")]
10161
- // ----- react/static-property-placement -----
10162
- type ReactStaticPropertyPlacement = []|[("static public field" | "static getter" | "property assignment")]|[("static public field" | "static getter" | "property assignment"), {
10163
- propTypes?: ("static public field" | "static getter" | "property assignment")
10164
- defaultProps?: ("static public field" | "static getter" | "property assignment")
10165
- childContextTypes?: ("static public field" | "static getter" | "property assignment")
10166
- contextTypes?: ("static public field" | "static getter" | "property assignment")
10167
- contextType?: ("static public field" | "static getter" | "property assignment")
10168
- displayName?: ("static public field" | "static getter" | "property assignment")
10169
- }]
10170
- // ----- react/style-prop-object -----
10171
- type ReactStylePropObject = []|[{
10172
- allow?: string[]
10173
- [k: string]: unknown | undefined
10174
- }]
10175
9539
  // ----- regexp/hexadecimal-escape -----
10176
9540
  type RegexpHexadecimalEscape = []|[("always" | "never")]
10177
9541
  // ----- regexp/letter-case -----
@@ -12116,7 +11480,8 @@ type TsNoRestrictedImports = ((string | {
12116
11480
 
12117
11481
  allowImportNames?: [string, ...(string)[]]
12118
11482
 
12119
- group: [string, ...(string)[]]
11483
+ group?: [string, ...(string)[]]
11484
+ regex?: string
12120
11485
  importNamePattern?: string
12121
11486
  allowImportNamePattern?: string
12122
11487
  message?: string
@@ -14597,6 +13962,5 @@ declare const parserPlain: {
14597
13962
  };
14598
13963
  };
14599
13964
  };
14600
- declare function toArray<T>(value: Array<T> | T): Array<T>;
14601
13965
 
14602
- export { type Awaitable, type ConfigNames, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type OptionsComponentExts, type OptionsConfig, type OptionsFiles, type OptionsFormatters, type OptionsHasTypeScript, type OptionsIsInEditor, type OptionsOverrides, type OptionsRegExp, type OptionsStylistic, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type OptionsTypescript, type OptionsUnoCSS, type OptionsVue, type Rules, STYLISTIC_CONFIG_DEFAULTS, type StylisticConfig, type TypedFlatConfigItem, combineConfigs, comments, defaultPluginRenaming, formatters, ignores, imports, interopDefault, javascript, jsdoc, jsonc, jsx, markdown, node, parserPlain, perfectionist, react, regexp, renamePluginInConfigs, renameRules, sonar, sortPackageJson, sortTsconfig, stylistic, test, toArray, typescript, unicorn, unocss, vinicuncaESLint, vue, yaml };
13966
+ export { type Awaitable, type ConfigNames, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type OptionsComponentExts, type OptionsConfig, type OptionsFiles, type OptionsFormatters, type OptionsHasTypeScript, type OptionsIsInEditor, type OptionsOverrides, type OptionsRegExp, type OptionsStylistic, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type OptionsTypescript, type OptionsUnoCSS, type OptionsVue, type Rules, STYLISTIC_CONFIG_DEFAULTS, type StylisticConfig, type TypedFlatConfigItem, combineConfigs, comments, defaultPluginRenaming, formatters, ignores, imports, interopDefault, javascript, jsdoc, jsonc, jsx, markdown, node, parserPlain, perfectionist, react, regexp, renamePluginInConfigs, renameRules, sonar, sortPackageJson, sortTsconfig, stylistic, test, typescript, unicorn, unocss, vinicuncaESLint, vue, yaml };