@coderwyd/eslint-config 3.4.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -206,7 +206,7 @@ interface RuleOptions {
206
206
  */
207
207
  'default-case'?: Linter.RuleEntry<DefaultCase>
208
208
  /**
209
- * Enforce `default` clauses in switch statements to be last
209
+ * Enforce `default` clauses in `switch` statements to be last
210
210
  * @see https://eslint.org/docs/latest/rules/default-case-last
211
211
  */
212
212
  'default-case-last'?: Linter.RuleEntry<[]>
@@ -382,233 +382,233 @@ interface RuleOptions {
382
382
  'implicit-arrow-linebreak'?: Linter.RuleEntry<ImplicitArrowLinebreak>
383
383
  /**
384
384
  * Enforce or ban the use of inline type-only markers for named imports.
385
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/consistent-type-specifier-style.md
385
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/consistent-type-specifier-style.md
386
386
  */
387
387
  'import/consistent-type-specifier-style'?: Linter.RuleEntry<ImportConsistentTypeSpecifierStyle>
388
388
  /**
389
389
  * Ensure a default export is present, given a default import.
390
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/default.md
390
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/default.md
391
391
  */
392
392
  'import/default'?: Linter.RuleEntry<[]>
393
393
  /**
394
394
  * Enforce a leading comment with the webpackChunkName for dynamic imports.
395
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/dynamic-import-chunkname.md
395
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/dynamic-import-chunkname.md
396
396
  */
397
397
  'import/dynamic-import-chunkname'?: Linter.RuleEntry<ImportDynamicImportChunkname>
398
398
  /**
399
399
  * Forbid any invalid exports, i.e. re-export of the same name.
400
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/export.md
400
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/export.md
401
401
  */
402
402
  'import/export'?: Linter.RuleEntry<[]>
403
403
  /**
404
404
  * Ensure all exports appear after other statements.
405
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/exports-last.md
405
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/exports-last.md
406
406
  */
407
407
  'import/exports-last'?: Linter.RuleEntry<[]>
408
408
  /**
409
409
  * Ensure consistent use of file extension within the import path.
410
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/extensions.md
410
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/extensions.md
411
411
  */
412
412
  'import/extensions'?: Linter.RuleEntry<ImportExtensions>
413
413
  /**
414
414
  * Ensure all imports appear before other statements.
415
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/first.md
415
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/first.md
416
416
  */
417
417
  'import/first'?: Linter.RuleEntry<ImportFirst>
418
418
  /**
419
419
  * Prefer named exports to be grouped together in a single export declaration.
420
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/group-exports.md
420
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/group-exports.md
421
421
  */
422
422
  'import/group-exports'?: Linter.RuleEntry<[]>
423
423
  /**
424
424
  * Replaced by `import-x/first`.
425
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/imports-first.md
425
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/imports-first.md
426
426
  * @deprecated
427
427
  */
428
428
  'import/imports-first'?: Linter.RuleEntry<ImportImportsFirst>
429
429
  /**
430
430
  * Enforce the maximum number of dependencies a module can have.
431
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/max-dependencies.md
431
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/max-dependencies.md
432
432
  */
433
433
  'import/max-dependencies'?: Linter.RuleEntry<ImportMaxDependencies>
434
434
  /**
435
435
  * Ensure named imports correspond to a named export in the remote file.
436
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/named.md
436
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/named.md
437
437
  */
438
438
  'import/named'?: Linter.RuleEntry<ImportNamed>
439
439
  /**
440
440
  * Ensure imported namespaces contain dereferenced properties as they are dereferenced.
441
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/namespace.md
441
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/namespace.md
442
442
  */
443
443
  'import/namespace'?: Linter.RuleEntry<ImportNamespace>
444
444
  /**
445
445
  * Enforce a newline after import statements.
446
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/newline-after-import.md
446
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/newline-after-import.md
447
447
  */
448
448
  'import/newline-after-import'?: Linter.RuleEntry<ImportNewlineAfterImport>
449
449
  /**
450
450
  * Forbid import of modules using absolute paths.
451
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-absolute-path.md
451
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-absolute-path.md
452
452
  */
453
453
  'import/no-absolute-path'?: Linter.RuleEntry<ImportNoAbsolutePath>
454
454
  /**
455
455
  * Forbid AMD `require` and `define` calls.
456
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-amd.md
456
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-amd.md
457
457
  */
458
458
  'import/no-amd'?: Linter.RuleEntry<[]>
459
459
  /**
460
460
  * Forbid anonymous values as default exports.
461
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-anonymous-default-export.md
461
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-anonymous-default-export.md
462
462
  */
463
463
  'import/no-anonymous-default-export'?: Linter.RuleEntry<ImportNoAnonymousDefaultExport>
464
464
  /**
465
465
  * Forbid CommonJS `require` calls and `module.exports` or `exports.*`.
466
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-commonjs.md
466
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-commonjs.md
467
467
  */
468
468
  'import/no-commonjs'?: Linter.RuleEntry<ImportNoCommonjs>
469
469
  /**
470
470
  * Forbid a module from importing a module with a dependency path back to itself.
471
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-cycle.md
471
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-cycle.md
472
472
  */
473
473
  'import/no-cycle'?: Linter.RuleEntry<ImportNoCycle>
474
474
  /**
475
475
  * Forbid default exports.
476
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-default-export.md
476
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-default-export.md
477
477
  */
478
478
  'import/no-default-export'?: Linter.RuleEntry<[]>
479
479
  /**
480
480
  * Forbid imported names marked with `@deprecated` documentation tag.
481
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-deprecated.md
481
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-deprecated.md
482
482
  */
483
483
  'import/no-deprecated'?: Linter.RuleEntry<[]>
484
484
  /**
485
485
  * Forbid repeated import of the same module in multiple places.
486
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-duplicates.md
486
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-duplicates.md
487
487
  */
488
488
  'import/no-duplicates'?: Linter.RuleEntry<ImportNoDuplicates>
489
489
  /**
490
490
  * Forbid `require()` calls with expressions.
491
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-dynamic-require.md
491
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-dynamic-require.md
492
492
  */
493
493
  'import/no-dynamic-require'?: Linter.RuleEntry<ImportNoDynamicRequire>
494
494
  /**
495
495
  * Forbid empty named import blocks.
496
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-empty-named-blocks.md
496
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-empty-named-blocks.md
497
497
  */
498
498
  'import/no-empty-named-blocks'?: Linter.RuleEntry<[]>
499
499
  /**
500
500
  * Forbid the use of extraneous packages.
501
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-extraneous-dependencies.md
501
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-extraneous-dependencies.md
502
502
  */
503
503
  'import/no-extraneous-dependencies'?: Linter.RuleEntry<ImportNoExtraneousDependencies>
504
504
  /**
505
505
  * Forbid import statements with CommonJS module.exports.
506
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-import-module-exports.md
506
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-import-module-exports.md
507
507
  */
508
508
  'import/no-import-module-exports'?: Linter.RuleEntry<ImportNoImportModuleExports>
509
509
  /**
510
510
  * Forbid importing the submodules of other modules.
511
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-internal-modules.md
511
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-internal-modules.md
512
512
  */
513
513
  'import/no-internal-modules'?: Linter.RuleEntry<ImportNoInternalModules>
514
514
  /**
515
515
  * Forbid the use of mutable exports with `var` or `let`.
516
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-mutable-exports.md
516
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-mutable-exports.md
517
517
  */
518
518
  'import/no-mutable-exports'?: Linter.RuleEntry<[]>
519
519
  /**
520
520
  * Forbid use of exported name as identifier of default export.
521
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-named-as-default.md
521
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-as-default.md
522
522
  */
523
523
  'import/no-named-as-default'?: Linter.RuleEntry<[]>
524
524
  /**
525
525
  * Forbid use of exported name as property of default export.
526
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-named-as-default-member.md
526
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-as-default-member.md
527
527
  */
528
528
  'import/no-named-as-default-member'?: Linter.RuleEntry<[]>
529
529
  /**
530
530
  * Forbid named default exports.
531
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-named-default.md
531
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-default.md
532
532
  */
533
533
  'import/no-named-default'?: Linter.RuleEntry<[]>
534
534
  /**
535
535
  * Forbid named exports.
536
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-named-export.md
536
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-export.md
537
537
  */
538
538
  'import/no-named-export'?: Linter.RuleEntry<[]>
539
539
  /**
540
540
  * Forbid namespace (a.k.a. "wildcard" `*`) imports.
541
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-namespace.md
541
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-namespace.md
542
542
  */
543
543
  'import/no-namespace'?: Linter.RuleEntry<ImportNoNamespace>
544
544
  /**
545
545
  * Forbid Node.js builtin modules.
546
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-nodejs-modules.md
546
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-nodejs-modules.md
547
547
  */
548
548
  'import/no-nodejs-modules'?: Linter.RuleEntry<ImportNoNodejsModules>
549
549
  /**
550
550
  * Forbid importing packages through relative paths.
551
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-relative-packages.md
551
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-relative-packages.md
552
552
  */
553
553
  'import/no-relative-packages'?: Linter.RuleEntry<ImportNoRelativePackages>
554
554
  /**
555
555
  * Forbid importing modules from parent directories.
556
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-relative-parent-imports.md
556
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-relative-parent-imports.md
557
557
  */
558
558
  'import/no-relative-parent-imports'?: Linter.RuleEntry<ImportNoRelativeParentImports>
559
559
  /**
560
560
  * Forbid importing a default export by a different name.
561
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-rename-default.md
561
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-rename-default.md
562
562
  */
563
563
  'import/no-rename-default'?: Linter.RuleEntry<ImportNoRenameDefault>
564
564
  /**
565
565
  * Enforce which files can be imported in a given folder.
566
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-restricted-paths.md
566
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-restricted-paths.md
567
567
  */
568
568
  'import/no-restricted-paths'?: Linter.RuleEntry<ImportNoRestrictedPaths>
569
569
  /**
570
570
  * Forbid a module from importing itself.
571
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-self-import.md
571
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-self-import.md
572
572
  */
573
573
  'import/no-self-import'?: Linter.RuleEntry<[]>
574
574
  /**
575
575
  * Forbid unassigned imports.
576
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-unassigned-import.md
576
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unassigned-import.md
577
577
  */
578
578
  'import/no-unassigned-import'?: Linter.RuleEntry<ImportNoUnassignedImport>
579
579
  /**
580
580
  * Ensure imports point to a file/module that can be resolved.
581
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-unresolved.md
581
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unresolved.md
582
582
  */
583
583
  'import/no-unresolved'?: Linter.RuleEntry<ImportNoUnresolved>
584
584
  /**
585
585
  * Forbid modules without exports, or exports without matching import in another module.
586
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-unused-modules.md
586
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unused-modules.md
587
587
  */
588
588
  'import/no-unused-modules'?: Linter.RuleEntry<ImportNoUnusedModules>
589
589
  /**
590
590
  * Forbid unnecessary path segments in import and require statements.
591
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-useless-path-segments.md
591
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-useless-path-segments.md
592
592
  */
593
593
  'import/no-useless-path-segments'?: Linter.RuleEntry<ImportNoUselessPathSegments>
594
594
  /**
595
595
  * Forbid webpack loader syntax in imports.
596
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/no-webpack-loader-syntax.md
596
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-webpack-loader-syntax.md
597
597
  */
598
598
  'import/no-webpack-loader-syntax'?: Linter.RuleEntry<[]>
599
599
  /**
600
600
  * Enforce a convention in module import order.
601
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/order.md
601
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/order.md
602
602
  */
603
603
  'import/order'?: Linter.RuleEntry<ImportOrder>
604
604
  /**
605
605
  * Prefer a default export if module exports a single name or multiple names.
606
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/prefer-default-export.md
606
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/prefer-default-export.md
607
607
  */
608
608
  'import/prefer-default-export'?: Linter.RuleEntry<ImportPreferDefaultExport>
609
609
  /**
610
610
  * Forbid potentially ambiguous parse goal (`script` vs. `module`).
611
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.5.0/docs/rules/unambiguous.md
611
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/unambiguous.md
612
612
  */
613
613
  'import/unambiguous'?: Linter.RuleEntry<[]>
614
614
  /**
@@ -2529,8 +2529,8 @@ interface RuleOptions {
2529
2529
  */
2530
2530
  'radix'?: Linter.RuleEntry<Radix>
2531
2531
  /**
2532
- * disallow passing 'children' to void DOM elements
2533
- * @see https://eslint-react.xyz/docs/rules/dom-no-children-in-void-dom-elements
2532
+ * disallow void elements (AKA self-closing elements) from having children
2533
+ * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
2534
2534
  */
2535
2535
  'react-dom/no-children-in-void-dom-elements'?: Linter.RuleEntry<[]>
2536
2536
  /**
@@ -2589,10 +2589,20 @@ interface RuleOptions {
2589
2589
  */
2590
2590
  'react-dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>
2591
2591
  /**
2592
- * enforce custom hooks to use at least one other hook inside
2593
- * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-redundant-custom-hook
2592
+ * disallow void elements (AKA self-closing elements) from having children
2593
+ * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
2594
+ */
2595
+ 'react-dom/no-void-elements-with-children'?: Linter.RuleEntry<[]>
2596
+ /**
2597
+ * enforce custom Hooks to use at least one other hook inside
2598
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-useless-custom-hooks
2594
2599
  */
2595
2600
  'react-hooks-extra/ensure-custom-hooks-using-other-hooks'?: Linter.RuleEntry<[]>
2601
+ /**
2602
+ * disallow unnecessary usage of 'useCallback'
2603
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
2604
+ */
2605
+ 'react-hooks-extra/ensure-use-callback-has-non-empty-deps'?: Linter.RuleEntry<[]>
2596
2606
  /**
2597
2607
  * disallow unnecessary usage of 'useMemo'
2598
2608
  * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
@@ -2609,8 +2619,8 @@ interface RuleOptions {
2609
2619
  */
2610
2620
  'react-hooks-extra/no-direct-set-state-in-use-layout-effect'?: Linter.RuleEntry<[]>
2611
2621
  /**
2612
- * enforce custom hooks to use at least one other hook inside
2613
- * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-redundant-custom-hook
2622
+ * enforce custom Hooks to use at least one other hook inside
2623
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-useless-custom-hooks
2614
2624
  */
2615
2625
  'react-hooks-extra/no-redundant-custom-hook'?: Linter.RuleEntry<[]>
2616
2626
  /**
@@ -2623,6 +2633,11 @@ interface RuleOptions {
2623
2633
  * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
2624
2634
  */
2625
2635
  'react-hooks-extra/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>
2636
+ /**
2637
+ * enforce custom Hooks to use at least one other hook inside
2638
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-useless-custom-hooks
2639
+ */
2640
+ 'react-hooks-extra/no-useless-custom-hooks'?: Linter.RuleEntry<[]>
2626
2641
  /**
2627
2642
  * disallow function calls in 'useState' that aren't wrapped in an initializer function
2628
2643
  * @see https://eslint-react.xyz/docs/rules/hooks-extra-prefer-use-state-lazy-initialization
@@ -2676,12 +2691,12 @@ interface RuleOptions {
2676
2691
  'react/ensure-forward-ref-using-ref'?: Linter.RuleEntry<[]>
2677
2692
  /**
2678
2693
  * disallow duplicate props
2679
- * @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
2694
+ * @see https://eslint-react.xyz/docs/rules/no-duplicate-jsx-props
2680
2695
  */
2681
2696
  'react/jsx-no-duplicate-props'?: Linter.RuleEntry<[]>
2682
2697
  /**
2683
- * a helper rule to mark variables as used
2684
- * @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
2698
+ * helpes `eslint/no-unused-vars` to correctly mark JSX variables as used.
2699
+ * @see https://eslint-react.xyz/docs/rules/use-jsx-vars
2685
2700
  */
2686
2701
  'react/jsx-uses-vars'?: Linter.RuleEntry<[]>
2687
2702
  /**
@@ -2784,6 +2799,11 @@ interface RuleOptions {
2784
2799
  * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
2785
2800
  */
2786
2801
  'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>
2802
+ /**
2803
+ * disallow duplicate props
2804
+ * @see https://eslint-react.xyz/docs/rules/no-duplicate-jsx-props
2805
+ */
2806
+ 'react/no-duplicate-jsx-props'?: Linter.RuleEntry<[]>
2787
2807
  /**
2788
2808
  * disallow duplicate keys when rendering list
2789
2809
  * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
@@ -2914,6 +2934,11 @@ interface RuleOptions {
2914
2934
  * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-fragment
2915
2935
  */
2916
2936
  'react/prefer-shorthand-fragment'?: Linter.RuleEntry<[]>
2937
+ /**
2938
+ * helpes `eslint/no-unused-vars` to correctly mark JSX variables as used.
2939
+ * @see https://eslint-react.xyz/docs/rules/use-jsx-vars
2940
+ */
2941
+ 'react/use-jsx-vars'?: Linter.RuleEntry<[]>
2917
2942
  /**
2918
2943
  * disallow confusing quantifiers
2919
2944
  * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/confusing-quantifier.html
@@ -3369,7 +3394,7 @@ interface RuleOptions {
3369
3394
  */
3370
3395
  'semi-style'?: Linter.RuleEntry<SemiStyle>
3371
3396
  /**
3372
- * Enforce sorted import declarations within modules
3397
+ * Enforce sorted `import` declarations within modules
3373
3398
  * @see https://eslint.org/docs/latest/rules/sort-imports
3374
3399
  */
3375
3400
  'sort-imports'?: Linter.RuleEntry<SortImports>
@@ -3980,7 +4005,7 @@ interface RuleOptions {
3980
4005
  */
3981
4006
  'test/padding-around-expect-groups'?: Linter.RuleEntry<[]>
3982
4007
  /**
3983
- * Enforce padding around afterAll blocks
4008
+ * Enforce padding around `test` blocks
3984
4009
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-test-blocks.md
3985
4010
  */
3986
4011
  'test/padding-around-test-blocks'?: Linter.RuleEntry<[]>
@@ -4085,7 +4110,7 @@ interface RuleOptions {
4085
4110
  */
4086
4111
  'test/prefer-todo'?: Linter.RuleEntry<[]>
4087
4112
  /**
4088
- * Prefer `vi.mocked()` over `fn as Mock`
4113
+ * require `vi.mocked()` over `fn as Mock`
4089
4114
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-vi-mocked.md
4090
4115
  */
4091
4116
  'test/prefer-vi-mocked'?: Linter.RuleEntry<[]>
@@ -4120,7 +4145,7 @@ interface RuleOptions {
4120
4145
  */
4121
4146
  'test/valid-expect'?: Linter.RuleEntry<TestValidExpect>
4122
4147
  /**
4123
- * Require promises that have expectations in their chain to be valid
4148
+ * require promises that have expectations in their chain to be valid
4124
4149
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect-in-promise.md
4125
4150
  */
4126
4151
  'test/valid-expect-in-promise'?: Linter.RuleEntry<[]>
@@ -4278,7 +4303,7 @@ interface RuleOptions {
4278
4303
  * Disallow using code marked as `@deprecated`
4279
4304
  * @see https://typescript-eslint.io/rules/no-deprecated
4280
4305
  */
4281
- 'ts/no-deprecated'?: Linter.RuleEntry<[]>
4306
+ 'ts/no-deprecated'?: Linter.RuleEntry<TsNoDeprecated>
4282
4307
  /**
4283
4308
  * Disallow duplicate class members
4284
4309
  * @see https://typescript-eslint.io/rules/no-dupe-class-members
@@ -4396,6 +4421,11 @@ interface RuleOptions {
4396
4421
  * @see https://typescript-eslint.io/rules/no-misused-promises
4397
4422
  */
4398
4423
  'ts/no-misused-promises'?: Linter.RuleEntry<TsNoMisusedPromises>
4424
+ /**
4425
+ * Disallow using the spread operator when it might cause unexpected behavior
4426
+ * @see https://typescript-eslint.io/rules/no-misused-spread
4427
+ */
4428
+ 'ts/no-misused-spread'?: Linter.RuleEntry<TsNoMisusedSpread>
4399
4429
  /**
4400
4430
  * Disallow enums from having both number and string members
4401
4431
  * @see https://typescript-eslint.io/rules/no-mixed-enums
@@ -4594,7 +4624,7 @@ interface RuleOptions {
4594
4624
  */
4595
4625
  'ts/no-wrapper-object-types'?: Linter.RuleEntry<[]>
4596
4626
  /**
4597
- * Enforce non-null assertions over explicit type casts
4627
+ * Enforce non-null assertions over explicit type assertions
4598
4628
  * @see https://typescript-eslint.io/rules/non-nullable-type-assertion-style
4599
4629
  */
4600
4630
  'ts/non-nullable-type-assertion-style'?: Linter.RuleEntry<[]>
@@ -4679,7 +4709,7 @@ interface RuleOptions {
4679
4709
  */
4680
4710
  'ts/prefer-readonly-parameter-types'?: Linter.RuleEntry<TsPreferReadonlyParameterTypes>
4681
4711
  /**
4682
- * Enforce using type parameter when calling `Array#reduce` instead of casting
4712
+ * Enforce using type parameter when calling `Array#reduce` instead of using a type assertion
4683
4713
  * @see https://typescript-eslint.io/rules/prefer-reduce-type-parameter
4684
4714
  */
4685
4715
  'ts/prefer-reduce-type-parameter'?: Linter.RuleEntry<[]>
@@ -9342,12 +9372,51 @@ type PaddingLineBetweenStatements = {
9342
9372
  next: _PaddingLineBetweenStatementsStatementType
9343
9373
  }[]
9344
9374
  // ----- perfectionist/sort-array-includes -----
9345
- type PerfectionistSortArrayIncludes = []|[{
9375
+ type PerfectionistSortArrayIncludes = {
9346
9376
 
9347
- partitionByComment?: (string[] | boolean | string)
9377
+ partitionByComment?: (string[] | boolean | string | {
9378
+ block?: (string[] | boolean | string)
9379
+ line?: (string[] | boolean | string)
9380
+ [k: string]: unknown | undefined
9381
+ })
9348
9382
 
9349
9383
  groupKind?: ("mixed" | "literals-first" | "spreads-first")
9350
9384
 
9385
+ customGroups?: ({
9386
+
9387
+ groupName?: string
9388
+
9389
+ type?: ("alphabetical" | "line-length" | "natural" | "unsorted")
9390
+
9391
+ order?: ("desc" | "asc")
9392
+
9393
+ newlinesInside?: ("always" | "never")
9394
+ anyOf?: {
9395
+
9396
+ selector?: ("literal" | "spread")
9397
+
9398
+ elementNamePattern?: string
9399
+ }[]
9400
+ } | {
9401
+
9402
+ groupName?: string
9403
+
9404
+ type?: ("alphabetical" | "line-length" | "natural" | "unsorted")
9405
+
9406
+ order?: ("desc" | "asc")
9407
+
9408
+ newlinesInside?: ("always" | "never")
9409
+
9410
+ selector?: ("literal" | "spread")
9411
+
9412
+ elementNamePattern?: string
9413
+ })[]
9414
+ useConfigurationIf?: {
9415
+ allNamesMatchPattern?: string
9416
+ }
9417
+
9418
+ type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
9419
+
9351
9420
  partitionByNewLine?: boolean
9352
9421
 
9353
9422
  specialCharacters?: ("remove" | "trim" | "keep")
@@ -9358,16 +9427,24 @@ type PerfectionistSortArrayIncludes = []|[{
9358
9427
 
9359
9428
  locales?: (string | string[])
9360
9429
 
9361
- order?: ("asc" | "desc")
9430
+ groups?: (string | string[] | {
9431
+
9432
+ newlinesBetween?: ("ignore" | "always" | "never")
9433
+ [k: string]: unknown | undefined
9434
+ })[]
9362
9435
 
9363
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9364
- }]
9436
+ order?: ("asc" | "desc")
9437
+ }[]
9365
9438
  // ----- perfectionist/sort-classes -----
9366
9439
  type PerfectionistSortClasses = []|[{
9367
9440
 
9368
9441
  ignoreCallbackDependenciesPatterns?: string[]
9369
9442
 
9370
- partitionByComment?: (string[] | boolean | string)
9443
+ partitionByComment?: (string[] | boolean | string | {
9444
+ block?: (string[] | boolean | string)
9445
+ line?: (string[] | boolean | string)
9446
+ [k: string]: unknown | undefined
9447
+ })
9371
9448
 
9372
9449
  customGroups?: ({
9373
9450
 
@@ -9376,6 +9453,8 @@ type PerfectionistSortClasses = []|[{
9376
9453
  type?: ("alphabetical" | "line-length" | "natural" | "unsorted")
9377
9454
 
9378
9455
  order?: ("desc" | "asc")
9456
+
9457
+ newlinesInside?: ("always" | "never")
9379
9458
  anyOf?: {
9380
9459
 
9381
9460
  elementValuePattern?: string
@@ -9396,6 +9475,8 @@ type PerfectionistSortClasses = []|[{
9396
9475
 
9397
9476
  order?: ("desc" | "asc")
9398
9477
 
9478
+ newlinesInside?: ("always" | "never")
9479
+
9399
9480
  elementValuePattern?: string
9400
9481
 
9401
9482
  decoratorNamePattern?: string
@@ -9417,18 +9498,26 @@ type PerfectionistSortClasses = []|[{
9417
9498
 
9418
9499
  alphabet?: string
9419
9500
 
9501
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9502
+
9420
9503
  locales?: (string | string[])
9421
9504
 
9422
- groups?: (string | string[])[]
9505
+ groups?: (string | string[] | {
9506
+
9507
+ newlinesBetween?: ("ignore" | "always" | "never")
9508
+ [k: string]: unknown | undefined
9509
+ })[]
9423
9510
 
9424
9511
  order?: ("asc" | "desc")
9425
-
9426
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9427
9512
  }]
9428
9513
  // ----- perfectionist/sort-decorators -----
9429
9514
  type PerfectionistSortDecorators = []|[{
9430
9515
 
9431
- partitionByComment?: (string[] | boolean | string)
9516
+ partitionByComment?: (string[] | boolean | string | {
9517
+ block?: (string[] | boolean | string)
9518
+ line?: (string[] | boolean | string)
9519
+ [k: string]: unknown | undefined
9520
+ })
9432
9521
 
9433
9522
  sortOnParameters?: boolean
9434
9523
 
@@ -9450,18 +9539,26 @@ type PerfectionistSortDecorators = []|[{
9450
9539
 
9451
9540
  alphabet?: string
9452
9541
 
9542
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9543
+
9453
9544
  locales?: (string | string[])
9454
9545
 
9455
- groups?: (string | string[])[]
9546
+ groups?: (string | string[] | {
9547
+
9548
+ newlinesBetween?: ("ignore" | "always" | "never")
9549
+ [k: string]: unknown | undefined
9550
+ })[]
9456
9551
 
9457
9552
  order?: ("asc" | "desc")
9458
-
9459
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9460
9553
  }]
9461
9554
  // ----- perfectionist/sort-enums -----
9462
9555
  type PerfectionistSortEnums = []|[{
9463
9556
 
9464
- partitionByComment?: (string[] | boolean | string)
9557
+ partitionByComment?: (string[] | boolean | string | {
9558
+ block?: (string[] | boolean | string)
9559
+ line?: (string[] | boolean | string)
9560
+ [k: string]: unknown | undefined
9561
+ })
9465
9562
 
9466
9563
  forceNumericSort?: boolean
9467
9564
 
@@ -9475,16 +9572,20 @@ type PerfectionistSortEnums = []|[{
9475
9572
 
9476
9573
  alphabet?: string
9477
9574
 
9575
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9576
+
9478
9577
  locales?: (string | string[])
9479
9578
 
9480
9579
  order?: ("asc" | "desc")
9481
-
9482
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9483
9580
  }]
9484
9581
  // ----- perfectionist/sort-exports -----
9485
9582
  type PerfectionistSortExports = []|[{
9486
9583
 
9487
- partitionByComment?: (string[] | boolean | string)
9584
+ partitionByComment?: (string[] | boolean | string | {
9585
+ block?: (string[] | boolean | string)
9586
+ line?: (string[] | boolean | string)
9587
+ [k: string]: unknown | undefined
9588
+ })
9488
9589
 
9489
9590
  groupKind?: ("mixed" | "values-first" | "types-first")
9490
9591
 
@@ -9496,11 +9597,11 @@ type PerfectionistSortExports = []|[{
9496
9597
 
9497
9598
  alphabet?: string
9498
9599
 
9600
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9601
+
9499
9602
  locales?: (string | string[])
9500
9603
 
9501
9604
  order?: ("asc" | "desc")
9502
-
9503
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9504
9605
  }]
9505
9606
  // ----- perfectionist/sort-heritage-clauses -----
9506
9607
  type PerfectionistSortHeritageClauses = []|[{
@@ -9515,13 +9616,17 @@ type PerfectionistSortHeritageClauses = []|[{
9515
9616
 
9516
9617
  alphabet?: string
9517
9618
 
9619
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9620
+
9518
9621
  locales?: (string | string[])
9519
9622
 
9520
- groups?: (string | string[])[]
9623
+ groups?: (string | string[] | {
9624
+
9625
+ newlinesBetween?: ("ignore" | "always" | "never")
9626
+ [k: string]: unknown | undefined
9627
+ })[]
9521
9628
 
9522
9629
  order?: ("asc" | "desc")
9523
-
9524
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9525
9630
  }]
9526
9631
  // ----- perfectionist/sort-imports -----
9527
9632
  type PerfectionistSortImports = []|[_PerfectionistSortImportsSortImports]
@@ -9538,7 +9643,11 @@ type _PerfectionistSortImportsSortImports = (_PerfectionistSortImportsMaxLineLen
9538
9643
  }
9539
9644
  }
9540
9645
 
9541
- partitionByComment?: (string[] | boolean | string)
9646
+ partitionByComment?: (string[] | boolean | string | {
9647
+ block?: (string[] | boolean | string)
9648
+ line?: (string[] | boolean | string)
9649
+ [k: string]: unknown | undefined
9650
+ })
9542
9651
 
9543
9652
  internalPattern?: string[]
9544
9653
 
@@ -9560,13 +9669,17 @@ type _PerfectionistSortImportsSortImports = (_PerfectionistSortImportsMaxLineLen
9560
9669
 
9561
9670
  alphabet?: string
9562
9671
 
9672
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9673
+
9563
9674
  locales?: (string | string[])
9564
9675
 
9565
- groups?: (string | string[])[]
9676
+ groups?: (string | string[] | {
9677
+
9678
+ newlinesBetween?: ("ignore" | "always" | "never")
9679
+ [k: string]: unknown | undefined
9680
+ })[]
9566
9681
 
9567
9682
  order?: ("asc" | "desc")
9568
-
9569
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9570
9683
  })
9571
9684
  type _PerfectionistSortImportsMaxLineLengthRequiresLineLengthType = ({
9572
9685
  [k: string]: unknown | undefined
@@ -9576,11 +9689,19 @@ interface _PerfectionistSortImports_IsLineLength {
9576
9689
  [k: string]: unknown | undefined
9577
9690
  }
9578
9691
  // ----- perfectionist/sort-interfaces -----
9579
- type PerfectionistSortInterfaces = []|[{
9692
+ type PerfectionistSortInterfaces = {
9580
9693
 
9581
9694
  ignorePattern?: string[]
9695
+ useConfigurationIf?: {
9696
+ allNamesMatchPattern?: string
9697
+ declarationMatchesPattern?: string
9698
+ }
9582
9699
 
9583
- partitionByComment?: (string[] | boolean | string)
9700
+ partitionByComment?: (string[] | boolean | string | {
9701
+ block?: (string[] | boolean | string)
9702
+ line?: (string[] | boolean | string)
9703
+ [k: string]: unknown | undefined
9704
+ })
9584
9705
  customGroups?: ({
9585
9706
  [k: string]: (string | string[]) | undefined
9586
9707
  } | ({
@@ -9590,6 +9711,8 @@ type PerfectionistSortInterfaces = []|[{
9590
9711
  type?: ("alphabetical" | "line-length" | "natural" | "unsorted")
9591
9712
 
9592
9713
  order?: ("desc" | "asc")
9714
+
9715
+ newlinesInside?: ("always" | "never")
9593
9716
  anyOf?: {
9594
9717
 
9595
9718
  modifiers?: ("optional" | "required" | "multiline")[]
@@ -9606,6 +9729,8 @@ type PerfectionistSortInterfaces = []|[{
9606
9729
 
9607
9730
  order?: ("desc" | "asc")
9608
9731
 
9732
+ newlinesInside?: ("always" | "never")
9733
+
9609
9734
  modifiers?: ("optional" | "required" | "multiline")[]
9610
9735
 
9611
9736
  selector?: ("index-signature" | "member" | "method" | "multiline" | "property")
@@ -9615,6 +9740,8 @@ type PerfectionistSortInterfaces = []|[{
9615
9740
 
9616
9741
  groupKind?: ("mixed" | "required-first" | "optional-first")
9617
9742
 
9743
+ type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
9744
+
9618
9745
  partitionByNewLine?: boolean
9619
9746
 
9620
9747
  specialCharacters?: ("remove" | "trim" | "keep")
@@ -9627,16 +9754,22 @@ type PerfectionistSortInterfaces = []|[{
9627
9754
 
9628
9755
  locales?: (string | string[])
9629
9756
 
9630
- groups?: (string | string[])[]
9757
+ groups?: (string | string[] | {
9758
+
9759
+ newlinesBetween?: ("ignore" | "always" | "never")
9760
+ [k: string]: unknown | undefined
9761
+ })[]
9631
9762
 
9632
9763
  order?: ("asc" | "desc")
9633
-
9634
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9635
- }]
9764
+ }[]
9636
9765
  // ----- perfectionist/sort-intersection-types -----
9637
9766
  type PerfectionistSortIntersectionTypes = []|[{
9638
9767
 
9639
- partitionByComment?: (string[] | boolean | string)
9768
+ partitionByComment?: (string[] | boolean | string | {
9769
+ block?: (string[] | boolean | string)
9770
+ line?: (string[] | boolean | string)
9771
+ [k: string]: unknown | undefined
9772
+ })
9640
9773
 
9641
9774
  partitionByNewLine?: boolean
9642
9775
 
@@ -9648,13 +9781,17 @@ type PerfectionistSortIntersectionTypes = []|[{
9648
9781
 
9649
9782
  alphabet?: string
9650
9783
 
9784
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9785
+
9651
9786
  locales?: (string | string[])
9652
9787
 
9653
- groups?: (string | string[])[]
9788
+ groups?: (string | string[] | {
9789
+
9790
+ newlinesBetween?: ("ignore" | "always" | "never")
9791
+ [k: string]: unknown | undefined
9792
+ })[]
9654
9793
 
9655
9794
  order?: ("asc" | "desc")
9656
-
9657
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9658
9795
  }]
9659
9796
  // ----- perfectionist/sort-jsx-props -----
9660
9797
  type PerfectionistSortJsxProps = []|[{
@@ -9671,18 +9808,26 @@ type PerfectionistSortJsxProps = []|[{
9671
9808
 
9672
9809
  alphabet?: string
9673
9810
 
9811
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9812
+
9674
9813
  locales?: (string | string[])
9675
9814
 
9676
- groups?: (string | string[])[]
9815
+ groups?: (string | string[] | {
9816
+
9817
+ newlinesBetween?: ("ignore" | "always" | "never")
9818
+ [k: string]: unknown | undefined
9819
+ })[]
9677
9820
 
9678
9821
  order?: ("asc" | "desc")
9679
-
9680
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9681
9822
  }]
9682
9823
  // ----- perfectionist/sort-maps -----
9683
9824
  type PerfectionistSortMaps = []|[{
9684
9825
 
9685
- partitionByComment?: (string[] | boolean | string)
9826
+ partitionByComment?: (string[] | boolean | string | {
9827
+ block?: (string[] | boolean | string)
9828
+ line?: (string[] | boolean | string)
9829
+ [k: string]: unknown | undefined
9830
+ })
9686
9831
 
9687
9832
  partitionByNewLine?: boolean
9688
9833
 
@@ -9692,16 +9837,20 @@ type PerfectionistSortMaps = []|[{
9692
9837
 
9693
9838
  alphabet?: string
9694
9839
 
9840
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9841
+
9695
9842
  locales?: (string | string[])
9696
9843
 
9697
9844
  order?: ("asc" | "desc")
9698
-
9699
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9700
9845
  }]
9701
9846
  // ----- perfectionist/sort-modules -----
9702
9847
  type PerfectionistSortModules = []|[{
9703
9848
 
9704
- partitionByComment?: (string[] | boolean | string)
9849
+ partitionByComment?: (string[] | boolean | string | {
9850
+ block?: (string[] | boolean | string)
9851
+ line?: (string[] | boolean | string)
9852
+ [k: string]: unknown | undefined
9853
+ })
9705
9854
 
9706
9855
  customGroups?: ({
9707
9856
 
@@ -9710,6 +9859,8 @@ type PerfectionistSortModules = []|[{
9710
9859
  type?: ("alphabetical" | "line-length" | "natural" | "unsorted")
9711
9860
 
9712
9861
  order?: ("desc" | "asc")
9862
+
9863
+ newlinesInside?: ("always" | "never")
9713
9864
  anyOf?: {
9714
9865
 
9715
9866
  decoratorNamePattern?: string
@@ -9728,6 +9879,8 @@ type PerfectionistSortModules = []|[{
9728
9879
 
9729
9880
  order?: ("desc" | "asc")
9730
9881
 
9882
+ newlinesInside?: ("always" | "never")
9883
+
9731
9884
  decoratorNamePattern?: string
9732
9885
 
9733
9886
  modifiers?: ("async" | "declare" | "decorated" | "default" | "export")[]
@@ -9747,18 +9900,26 @@ type PerfectionistSortModules = []|[{
9747
9900
 
9748
9901
  alphabet?: string
9749
9902
 
9903
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9904
+
9750
9905
  locales?: (string | string[])
9751
9906
 
9752
- groups?: (string | string[])[]
9907
+ groups?: (string | string[] | {
9908
+
9909
+ newlinesBetween?: ("ignore" | "always" | "never")
9910
+ [k: string]: unknown | undefined
9911
+ })[]
9753
9912
 
9754
9913
  order?: ("asc" | "desc")
9755
-
9756
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9757
9914
  }]
9758
9915
  // ----- perfectionist/sort-named-exports -----
9759
9916
  type PerfectionistSortNamedExports = []|[{
9760
9917
 
9761
- partitionByComment?: (string[] | boolean | string)
9918
+ partitionByComment?: (string[] | boolean | string | {
9919
+ block?: (string[] | boolean | string)
9920
+ line?: (string[] | boolean | string)
9921
+ [k: string]: unknown | undefined
9922
+ })
9762
9923
 
9763
9924
  groupKind?: ("mixed" | "values-first" | "types-first")
9764
9925
 
@@ -9770,16 +9931,20 @@ type PerfectionistSortNamedExports = []|[{
9770
9931
 
9771
9932
  alphabet?: string
9772
9933
 
9934
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9935
+
9773
9936
  locales?: (string | string[])
9774
9937
 
9775
9938
  order?: ("asc" | "desc")
9776
-
9777
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9778
9939
  }]
9779
9940
  // ----- perfectionist/sort-named-imports -----
9780
9941
  type PerfectionistSortNamedImports = []|[{
9781
9942
 
9782
- partitionByComment?: (string[] | boolean | string)
9943
+ partitionByComment?: (string[] | boolean | string | {
9944
+ block?: (string[] | boolean | string)
9945
+ line?: (string[] | boolean | string)
9946
+ [k: string]: unknown | undefined
9947
+ })
9783
9948
 
9784
9949
  groupKind?: ("mixed" | "values-first" | "types-first")
9785
9950
 
@@ -9793,18 +9958,26 @@ type PerfectionistSortNamedImports = []|[{
9793
9958
 
9794
9959
  alphabet?: string
9795
9960
 
9961
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
9962
+
9796
9963
  locales?: (string | string[])
9797
9964
 
9798
9965
  order?: ("asc" | "desc")
9799
-
9800
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9801
9966
  }]
9802
9967
  // ----- perfectionist/sort-object-types -----
9803
- type PerfectionistSortObjectTypes = []|[{
9968
+ type PerfectionistSortObjectTypes = {
9804
9969
 
9805
9970
  ignorePattern?: string[]
9971
+ useConfigurationIf?: {
9972
+ allNamesMatchPattern?: string
9973
+ declarationMatchesPattern?: string
9974
+ }
9806
9975
 
9807
- partitionByComment?: (string[] | boolean | string)
9976
+ partitionByComment?: (string[] | boolean | string | {
9977
+ block?: (string[] | boolean | string)
9978
+ line?: (string[] | boolean | string)
9979
+ [k: string]: unknown | undefined
9980
+ })
9808
9981
  customGroups?: ({
9809
9982
  [k: string]: (string | string[]) | undefined
9810
9983
  } | ({
@@ -9814,6 +9987,8 @@ type PerfectionistSortObjectTypes = []|[{
9814
9987
  type?: ("alphabetical" | "line-length" | "natural" | "unsorted")
9815
9988
 
9816
9989
  order?: ("desc" | "asc")
9990
+
9991
+ newlinesInside?: ("always" | "never")
9817
9992
  anyOf?: {
9818
9993
 
9819
9994
  modifiers?: ("optional" | "required" | "multiline")[]
@@ -9830,6 +10005,8 @@ type PerfectionistSortObjectTypes = []|[{
9830
10005
 
9831
10006
  order?: ("desc" | "asc")
9832
10007
 
10008
+ newlinesInside?: ("always" | "never")
10009
+
9833
10010
  modifiers?: ("optional" | "required" | "multiline")[]
9834
10011
 
9835
10012
  selector?: ("index-signature" | "member" | "method" | "multiline" | "property")
@@ -9839,6 +10016,8 @@ type PerfectionistSortObjectTypes = []|[{
9839
10016
 
9840
10017
  groupKind?: ("mixed" | "required-first" | "optional-first")
9841
10018
 
10019
+ type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
10020
+
9842
10021
  partitionByNewLine?: boolean
9843
10022
 
9844
10023
  specialCharacters?: ("remove" | "trim" | "keep")
@@ -9851,12 +10030,14 @@ type PerfectionistSortObjectTypes = []|[{
9851
10030
 
9852
10031
  locales?: (string | string[])
9853
10032
 
9854
- groups?: (string | string[])[]
10033
+ groups?: (string | string[] | {
10034
+
10035
+ newlinesBetween?: ("ignore" | "always" | "never")
10036
+ [k: string]: unknown | undefined
10037
+ })[]
9855
10038
 
9856
10039
  order?: ("asc" | "desc")
9857
-
9858
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9859
- }]
10040
+ }[]
9860
10041
  // ----- perfectionist/sort-objects -----
9861
10042
  type PerfectionistSortObjects = {
9862
10043
 
@@ -9866,8 +10047,16 @@ type PerfectionistSortObjects = {
9866
10047
  })
9867
10048
 
9868
10049
  ignorePattern?: string[]
10050
+ useConfigurationIf?: {
10051
+ allNamesMatchPattern?: string
10052
+ callingFunctionNamePattern?: string
10053
+ }
9869
10054
 
9870
- partitionByComment?: (string[] | boolean | string)
10055
+ partitionByComment?: (string[] | boolean | string | {
10056
+ block?: (string[] | boolean | string)
10057
+ line?: (string[] | boolean | string)
10058
+ [k: string]: unknown | undefined
10059
+ })
9871
10060
 
9872
10061
  destructureOnly?: boolean
9873
10062
 
@@ -9875,10 +10064,9 @@ type PerfectionistSortObjects = {
9875
10064
 
9876
10065
  styledComponents?: boolean
9877
10066
 
10067
+ type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
10068
+
9878
10069
  partitionByNewLine?: boolean
9879
- useConfigurationIf?: {
9880
- allNamesMatchPattern?: string
9881
- }
9882
10070
 
9883
10071
  specialCharacters?: ("remove" | "trim" | "keep")
9884
10072
 
@@ -9894,19 +10082,60 @@ type PerfectionistSortObjects = {
9894
10082
 
9895
10083
  locales?: (string | string[])
9896
10084
 
9897
- groups?: (string | string[])[]
10085
+ groups?: (string | string[] | {
10086
+
10087
+ newlinesBetween?: ("ignore" | "always" | "never")
10088
+ [k: string]: unknown | undefined
10089
+ })[]
9898
10090
 
9899
10091
  order?: ("asc" | "desc")
9900
-
9901
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9902
10092
  }[]
9903
10093
  // ----- perfectionist/sort-sets -----
9904
- type PerfectionistSortSets = []|[{
10094
+ type PerfectionistSortSets = {
9905
10095
 
9906
- partitionByComment?: (string[] | boolean | string)
10096
+ partitionByComment?: (string[] | boolean | string | {
10097
+ block?: (string[] | boolean | string)
10098
+ line?: (string[] | boolean | string)
10099
+ [k: string]: unknown | undefined
10100
+ })
9907
10101
 
9908
10102
  groupKind?: ("mixed" | "literals-first" | "spreads-first")
9909
10103
 
10104
+ customGroups?: ({
10105
+
10106
+ groupName?: string
10107
+
10108
+ type?: ("alphabetical" | "line-length" | "natural" | "unsorted")
10109
+
10110
+ order?: ("desc" | "asc")
10111
+
10112
+ newlinesInside?: ("always" | "never")
10113
+ anyOf?: {
10114
+
10115
+ selector?: ("literal" | "spread")
10116
+
10117
+ elementNamePattern?: string
10118
+ }[]
10119
+ } | {
10120
+
10121
+ groupName?: string
10122
+
10123
+ type?: ("alphabetical" | "line-length" | "natural" | "unsorted")
10124
+
10125
+ order?: ("desc" | "asc")
10126
+
10127
+ newlinesInside?: ("always" | "never")
10128
+
10129
+ selector?: ("literal" | "spread")
10130
+
10131
+ elementNamePattern?: string
10132
+ })[]
10133
+ useConfigurationIf?: {
10134
+ allNamesMatchPattern?: string
10135
+ }
10136
+
10137
+ type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted")
10138
+
9910
10139
  partitionByNewLine?: boolean
9911
10140
 
9912
10141
  specialCharacters?: ("remove" | "trim" | "keep")
@@ -9917,10 +10146,14 @@ type PerfectionistSortSets = []|[{
9917
10146
 
9918
10147
  locales?: (string | string[])
9919
10148
 
9920
- order?: ("asc" | "desc")
10149
+ groups?: (string | string[] | {
10150
+
10151
+ newlinesBetween?: ("ignore" | "always" | "never")
10152
+ [k: string]: unknown | undefined
10153
+ })[]
9921
10154
 
9922
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9923
- }]
10155
+ order?: ("asc" | "desc")
10156
+ }[]
9924
10157
  // ----- perfectionist/sort-switch-case -----
9925
10158
  type PerfectionistSortSwitchCase = []|[{
9926
10159
 
@@ -9930,16 +10163,20 @@ type PerfectionistSortSwitchCase = []|[{
9930
10163
 
9931
10164
  alphabet?: string
9932
10165
 
10166
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
10167
+
9933
10168
  locales?: (string | string[])
9934
10169
 
9935
10170
  order?: ("asc" | "desc")
9936
-
9937
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9938
10171
  }]
9939
10172
  // ----- perfectionist/sort-union-types -----
9940
10173
  type PerfectionistSortUnionTypes = []|[{
9941
10174
 
9942
- partitionByComment?: (string[] | boolean | string)
10175
+ partitionByComment?: (string[] | boolean | string | {
10176
+ block?: (string[] | boolean | string)
10177
+ line?: (string[] | boolean | string)
10178
+ [k: string]: unknown | undefined
10179
+ })
9943
10180
 
9944
10181
  partitionByNewLine?: boolean
9945
10182
 
@@ -9951,18 +10188,26 @@ type PerfectionistSortUnionTypes = []|[{
9951
10188
 
9952
10189
  alphabet?: string
9953
10190
 
10191
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
10192
+
9954
10193
  locales?: (string | string[])
9955
10194
 
9956
- groups?: (string | string[])[]
10195
+ groups?: (string | string[] | {
10196
+
10197
+ newlinesBetween?: ("ignore" | "always" | "never")
10198
+ [k: string]: unknown | undefined
10199
+ })[]
9957
10200
 
9958
10201
  order?: ("asc" | "desc")
9959
-
9960
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9961
10202
  }]
9962
10203
  // ----- perfectionist/sort-variable-declarations -----
9963
10204
  type PerfectionistSortVariableDeclarations = []|[{
9964
10205
 
9965
- partitionByComment?: (string[] | boolean | string)
10206
+ partitionByComment?: (string[] | boolean | string | {
10207
+ block?: (string[] | boolean | string)
10208
+ line?: (string[] | boolean | string)
10209
+ [k: string]: unknown | undefined
10210
+ })
9966
10211
 
9967
10212
  partitionByNewLine?: boolean
9968
10213
 
@@ -9972,11 +10217,11 @@ type PerfectionistSortVariableDeclarations = []|[{
9972
10217
 
9973
10218
  alphabet?: string
9974
10219
 
10220
+ type?: ("alphabetical" | "natural" | "line-length" | "custom")
10221
+
9975
10222
  locales?: (string | string[])
9976
10223
 
9977
10224
  order?: ("asc" | "desc")
9978
-
9979
- type?: ("alphabetical" | "natural" | "line-length" | "custom")
9980
10225
  }]
9981
10226
  // ----- prefer-arrow-callback -----
9982
10227
  type PreferArrowCallback = []|[{
@@ -10599,8 +10844,7 @@ type TestNoRestrictedViMethods = []|[{
10599
10844
  }]
10600
10845
  // ----- test/no-standalone-expect -----
10601
10846
  type TestNoStandaloneExpect = []|[{
10602
- additionaltestblockfunctions?: string[]
10603
- [k: string]: unknown | undefined
10847
+ additionalTestBlockFunctions?: string[]
10604
10848
  }]
10605
10849
  // ----- test/prefer-expect-assertions -----
10606
10850
  type TestPreferExpectAssertions = []|[{
@@ -10692,7 +10936,9 @@ type TsConsistentTypeAssertions = []|[({
10692
10936
  assertionStyle: "never"
10693
10937
  } | {
10694
10938
 
10695
- assertionStyle: ("as" | "angle-bracket")
10939
+ arrayLiteralTypeAssertions?: ("allow" | "allow-as-parameter" | "never")
10940
+
10941
+ assertionStyle?: ("as" | "angle-bracket")
10696
10942
 
10697
10943
  objectLiteralTypeAssertions?: ("allow" | "allow-as-parameter" | "never")
10698
10944
  })]
@@ -11148,6 +11394,22 @@ type TsNoConfusingVoidExpression = []|[{
11148
11394
 
11149
11395
  ignoreVoidReturningFunctions?: boolean
11150
11396
  }]
11397
+ // ----- ts/no-deprecated -----
11398
+ type TsNoDeprecated = []|[{
11399
+
11400
+ allow?: (string | {
11401
+ from: "file"
11402
+ name: (string | [string, ...(string)[]])
11403
+ path?: string
11404
+ } | {
11405
+ from: "lib"
11406
+ name: (string | [string, ...(string)[]])
11407
+ } | {
11408
+ from: "package"
11409
+ name: (string | [string, ...(string)[]])
11410
+ package: string
11411
+ })[]
11412
+ }]
11151
11413
  // ----- ts/no-duplicate-type-constituents -----
11152
11414
  type TsNoDuplicateTypeConstituents = []|[{
11153
11415
 
@@ -11289,6 +11551,22 @@ type TsNoMisusedPromises = []|[{
11289
11551
  variables?: boolean
11290
11552
  })
11291
11553
  }]
11554
+ // ----- ts/no-misused-spread -----
11555
+ type TsNoMisusedSpread = []|[{
11556
+
11557
+ allow?: (string | {
11558
+ from: "file"
11559
+ name: (string | [string, ...(string)[]])
11560
+ path?: string
11561
+ } | {
11562
+ from: "lib"
11563
+ name: (string | [string, ...(string)[]])
11564
+ } | {
11565
+ from: "package"
11566
+ name: (string | [string, ...(string)[]])
11567
+ package: string
11568
+ })[]
11569
+ }]
11292
11570
  // ----- ts/no-namespace -----
11293
11571
  type TsNoNamespace = []|[{
11294
11572
 
@@ -11364,7 +11642,7 @@ type TsNoShadow = []|[{
11364
11642
 
11365
11643
  builtinGlobals?: boolean
11366
11644
 
11367
- hoist?: ("all" | "functions" | "never")
11645
+ hoist?: ("all" | "functions" | "functions-and-types" | "never" | "types")
11368
11646
 
11369
11647
  ignoreFunctionTypeParameterNameValueShadow?: boolean
11370
11648
 
@@ -14147,13 +14425,16 @@ declare function getOverrides<K extends keyof OptionsConfig>(options: OptionsCon
14147
14425
  'react-dom/no-unknown-property'?: eslint.Linter.RuleEntry<undefined> | undefined;
14148
14426
  'react-dom/no-unsafe-iframe-sandbox'?: eslint.Linter.RuleEntry<[]> | undefined;
14149
14427
  'react-dom/no-unsafe-target-blank'?: eslint.Linter.RuleEntry<[]> | undefined;
14428
+ 'react-dom/no-void-elements-with-children'?: eslint.Linter.RuleEntry<[]> | undefined;
14150
14429
  'react-hooks-extra/ensure-custom-hooks-using-other-hooks'?: eslint.Linter.RuleEntry<[]> | undefined;
14430
+ 'react-hooks-extra/ensure-use-callback-has-non-empty-deps'?: eslint.Linter.RuleEntry<[]> | undefined;
14151
14431
  'react-hooks-extra/ensure-use-memo-has-non-empty-deps'?: eslint.Linter.RuleEntry<[]> | undefined;
14152
14432
  'react-hooks-extra/no-direct-set-state-in-use-effect'?: eslint.Linter.RuleEntry<[]> | undefined;
14153
14433
  'react-hooks-extra/no-direct-set-state-in-use-layout-effect'?: eslint.Linter.RuleEntry<[]> | undefined;
14154
14434
  'react-hooks-extra/no-redundant-custom-hook'?: eslint.Linter.RuleEntry<[]> | undefined;
14155
14435
  'react-hooks-extra/no-unnecessary-use-callback'?: eslint.Linter.RuleEntry<[]> | undefined;
14156
14436
  'react-hooks-extra/no-unnecessary-use-memo'?: eslint.Linter.RuleEntry<[]> | undefined;
14437
+ 'react-hooks-extra/no-useless-custom-hooks'?: eslint.Linter.RuleEntry<[]> | undefined;
14157
14438
  'react-hooks-extra/prefer-use-state-lazy-initialization'?: eslint.Linter.RuleEntry<[]> | undefined;
14158
14439
  'react-hooks/exhaustive-deps'?: eslint.Linter.RuleEntry<undefined> | undefined;
14159
14440
  'react-hooks/rules-of-hooks'?: eslint.Linter.RuleEntry<[]> | undefined;
@@ -14187,6 +14468,7 @@ declare function getOverrides<K extends keyof OptionsConfig>(options: OptionsCon
14187
14468
  'react/no-create-ref'?: eslint.Linter.RuleEntry<[]> | undefined;
14188
14469
  'react/no-default-props'?: eslint.Linter.RuleEntry<[]> | undefined;
14189
14470
  'react/no-direct-mutation-state'?: eslint.Linter.RuleEntry<[]> | undefined;
14471
+ 'react/no-duplicate-jsx-props'?: eslint.Linter.RuleEntry<[]> | undefined;
14190
14472
  'react/no-duplicate-key'?: eslint.Linter.RuleEntry<[]> | undefined;
14191
14473
  'react/no-forward-ref'?: eslint.Linter.RuleEntry<[]> | undefined;
14192
14474
  'react/no-implicit-key'?: eslint.Linter.RuleEntry<[]> | undefined;
@@ -14213,6 +14495,7 @@ declare function getOverrides<K extends keyof OptionsConfig>(options: OptionsCon
14213
14495
  'react/prefer-read-only-props'?: eslint.Linter.RuleEntry<[]> | undefined;
14214
14496
  'react/prefer-shorthand-boolean'?: eslint.Linter.RuleEntry<[]> | undefined;
14215
14497
  'react/prefer-shorthand-fragment'?: eslint.Linter.RuleEntry<[]> | undefined;
14498
+ 'react/use-jsx-vars'?: eslint.Linter.RuleEntry<[]> | undefined;
14216
14499
  'regexp/confusing-quantifier'?: eslint.Linter.RuleEntry<[]> | undefined;
14217
14500
  'regexp/control-character-escape'?: eslint.Linter.RuleEntry<[]> | undefined;
14218
14501
  'regexp/grapheme-string-literal'?: eslint.Linter.RuleEntry<[]> | undefined;
@@ -14417,7 +14700,7 @@ declare function getOverrides<K extends keyof OptionsConfig>(options: OptionsCon
14417
14700
  'ts/no-base-to-string'?: eslint.Linter.RuleEntry<undefined> | undefined;
14418
14701
  'ts/no-confusing-non-null-assertion'?: eslint.Linter.RuleEntry<[]> | undefined;
14419
14702
  'ts/no-confusing-void-expression'?: eslint.Linter.RuleEntry<undefined> | undefined;
14420
- 'ts/no-deprecated'?: eslint.Linter.RuleEntry<[]> | undefined;
14703
+ 'ts/no-deprecated'?: eslint.Linter.RuleEntry<undefined> | undefined;
14421
14704
  'ts/no-dupe-class-members'?: eslint.Linter.RuleEntry<[]> | undefined;
14422
14705
  'ts/no-duplicate-enum-values'?: eslint.Linter.RuleEntry<[]> | undefined;
14423
14706
  'ts/no-duplicate-type-constituents'?: eslint.Linter.RuleEntry<undefined> | undefined;
@@ -14441,6 +14724,7 @@ declare function getOverrides<K extends keyof OptionsConfig>(options: OptionsCon
14441
14724
  'ts/no-meaningless-void-operator'?: eslint.Linter.RuleEntry<undefined> | undefined;
14442
14725
  'ts/no-misused-new'?: eslint.Linter.RuleEntry<[]> | undefined;
14443
14726
  'ts/no-misused-promises'?: eslint.Linter.RuleEntry<undefined> | undefined;
14727
+ 'ts/no-misused-spread'?: eslint.Linter.RuleEntry<undefined> | undefined;
14444
14728
  'ts/no-mixed-enums'?: eslint.Linter.RuleEntry<[]> | undefined;
14445
14729
  'ts/no-namespace'?: eslint.Linter.RuleEntry<undefined> | undefined;
14446
14730
  'ts/no-non-null-asserted-nullish-coalescing'?: eslint.Linter.RuleEntry<[]> | undefined;