@favorodera/eslint-config 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -335,6 +335,381 @@ interface RuleOptions {
335
335
  * @see https://eslint.org/docs/latest/rules/init-declarations
336
336
  */
337
337
  'init-declarations'?: Linter.RuleEntry<InitDeclarations>;
338
+ /**
339
+ * Checks that `@access` tags have a valid value.
340
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-access.md#repos-sticky-header
341
+ */
342
+ 'jsdoc/check-access'?: Linter.RuleEntry<[]>;
343
+ /**
344
+ * Reports invalid alignment of JSDoc block asterisks.
345
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header
346
+ */
347
+ 'jsdoc/check-alignment'?: Linter.RuleEntry<JsdocCheckAlignment>;
348
+ /**
349
+ * @deprecated - Use `getJsdocProcessorPlugin` processor; ensures that (JavaScript) samples within `@example` tags adhere to ESLint rules.
350
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-examples.md#repos-sticky-header
351
+ */
352
+ 'jsdoc/check-examples'?: Linter.RuleEntry<JsdocCheckExamples>;
353
+ /**
354
+ * Reports invalid padding inside JSDoc blocks.
355
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-indentation.md#repos-sticky-header
356
+ */
357
+ 'jsdoc/check-indentation'?: Linter.RuleEntry<JsdocCheckIndentation>;
358
+ /**
359
+ * Reports invalid alignment of JSDoc block lines.
360
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-line-alignment.md#repos-sticky-header
361
+ */
362
+ 'jsdoc/check-line-alignment'?: Linter.RuleEntry<JsdocCheckLineAlignment>;
363
+ /**
364
+ * Checks for dupe `@param` names, that nested param names have roots, and that parameter names in function declarations match JSDoc param names.
365
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-param-names.md#repos-sticky-header
366
+ */
367
+ 'jsdoc/check-param-names'?: Linter.RuleEntry<JsdocCheckParamNames>;
368
+ /**
369
+ * Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots.
370
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-property-names.md#repos-sticky-header
371
+ */
372
+ 'jsdoc/check-property-names'?: Linter.RuleEntry<JsdocCheckPropertyNames>;
373
+ /**
374
+ * Reports against syntax not valid for the mode (e.g., Google Closure Compiler in non-Closure mode).
375
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-syntax.md#repos-sticky-header
376
+ */
377
+ 'jsdoc/check-syntax'?: Linter.RuleEntry<[]>;
378
+ /**
379
+ * Reports invalid block tag names.
380
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-tag-names.md#repos-sticky-header
381
+ */
382
+ 'jsdoc/check-tag-names'?: Linter.RuleEntry<JsdocCheckTagNames>;
383
+ /**
384
+ * Checks that any `@template` names are actually used in the connected `@typedef` or type alias.
385
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-template-names.md#repos-sticky-header
386
+ */
387
+ 'jsdoc/check-template-names'?: Linter.RuleEntry<[]>;
388
+ /**
389
+ * Reports types deemed invalid (customizable and with defaults, for preventing and/or recommending replacements).
390
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-types.md#repos-sticky-header
391
+ */
392
+ 'jsdoc/check-types'?: Linter.RuleEntry<JsdocCheckTypes>;
393
+ /**
394
+ * This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author`.
395
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header
396
+ */
397
+ 'jsdoc/check-values'?: Linter.RuleEntry<JsdocCheckValues>;
398
+ /**
399
+ * Converts non-JSDoc comments preceding or following nodes into JSDoc ones
400
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/convert-to-jsdoc-comments.md#repos-sticky-header
401
+ */
402
+ 'jsdoc/convert-to-jsdoc-comments'?: Linter.RuleEntry<JsdocConvertToJsdocComments>;
403
+ /**
404
+ * Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content
405
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header
406
+ */
407
+ 'jsdoc/empty-tags'?: Linter.RuleEntry<JsdocEmptyTags>;
408
+ /**
409
+ * Reports use of JSDoc tags in non-tag positions (in the default "typescript" mode).
410
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/escape-inline-tags.md#repos-sticky-header
411
+ */
412
+ 'jsdoc/escape-inline-tags'?: Linter.RuleEntry<JsdocEscapeInlineTags>;
413
+ /**
414
+ * Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors).
415
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/implements-on-classes.md#repos-sticky-header
416
+ */
417
+ 'jsdoc/implements-on-classes'?: Linter.RuleEntry<JsdocImplementsOnClasses>;
418
+ /**
419
+ * Reports if JSDoc `import()` statements point to a package which is not listed in `dependencies` or `devDependencies`
420
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/imports-as-dependencies.md#repos-sticky-header
421
+ */
422
+ 'jsdoc/imports-as-dependencies'?: Linter.RuleEntry<[]>;
423
+ /**
424
+ * This rule reports doc comments that only restate their attached name.
425
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/informative-docs.md#repos-sticky-header
426
+ */
427
+ 'jsdoc/informative-docs'?: Linter.RuleEntry<JsdocInformativeDocs>;
428
+ /**
429
+ * Enforces minimum number of newlines before JSDoc comment blocks
430
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/lines-before-block.md#repos-sticky-header
431
+ */
432
+ 'jsdoc/lines-before-block'?: Linter.RuleEntry<JsdocLinesBeforeBlock>;
433
+ /**
434
+ * Enforces a regular expression pattern on descriptions.
435
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-description.md#repos-sticky-header
436
+ */
437
+ 'jsdoc/match-description'?: Linter.RuleEntry<JsdocMatchDescription>;
438
+ /**
439
+ * Reports the name portion of a JSDoc tag if matching or not matching a given regular expression.
440
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-name.md#repos-sticky-header
441
+ */
442
+ 'jsdoc/match-name'?: Linter.RuleEntry<JsdocMatchName>;
443
+ /**
444
+ * Controls how and whether JSDoc blocks can be expressed as single or multiple line blocks.
445
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/multiline-blocks.md#repos-sticky-header
446
+ */
447
+ 'jsdoc/multiline-blocks'?: Linter.RuleEntry<JsdocMultilineBlocks>;
448
+ /**
449
+ * This rule checks for multi-line-style comments which fail to meet the criteria of a JSDoc block.
450
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-bad-blocks.md#repos-sticky-header
451
+ */
452
+ 'jsdoc/no-bad-blocks'?: Linter.RuleEntry<JsdocNoBadBlocks>;
453
+ /**
454
+ * If tags are present, this rule will prevent empty lines in the block description. If no tags are present, this rule will prevent extra empty lines in the block description.
455
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-block-descriptions.md#repos-sticky-header
456
+ */
457
+ 'jsdoc/no-blank-block-descriptions'?: Linter.RuleEntry<[]>;
458
+ /**
459
+ * Removes empty blocks with nothing but possibly line breaks
460
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-blocks.md#repos-sticky-header
461
+ */
462
+ 'jsdoc/no-blank-blocks'?: Linter.RuleEntry<JsdocNoBlankBlocks>;
463
+ /**
464
+ * This rule reports defaults being used on the relevant portion of `@param` or `@default`.
465
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-defaults.md#repos-sticky-header
466
+ */
467
+ 'jsdoc/no-defaults'?: Linter.RuleEntry<JsdocNoDefaults>;
468
+ /**
469
+ * Reports when certain comment structures are always expected.
470
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-missing-syntax.md#repos-sticky-header
471
+ */
472
+ 'jsdoc/no-missing-syntax'?: Linter.RuleEntry<JsdocNoMissingSyntax>;
473
+ /**
474
+ * Prevents use of multiple asterisks at the beginning of lines.
475
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header
476
+ */
477
+ 'jsdoc/no-multi-asterisks'?: Linter.RuleEntry<JsdocNoMultiAsterisks>;
478
+ /**
479
+ * Reports when certain comment structures are present.
480
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-restricted-syntax.md#repos-sticky-header
481
+ */
482
+ 'jsdoc/no-restricted-syntax'?: Linter.RuleEntry<JsdocNoRestrictedSyntax>;
483
+ /**
484
+ * This rule reports types being used on `@param` or `@returns` (redundant with TypeScript).
485
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md#repos-sticky-header
486
+ */
487
+ 'jsdoc/no-types'?: Linter.RuleEntry<JsdocNoTypes>;
488
+ /**
489
+ * Besides some expected built-in types, prohibits any types not specified as globals or within `@typedef`.
490
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header
491
+ */
492
+ 'jsdoc/no-undefined-types'?: Linter.RuleEntry<JsdocNoUndefinedTypes>;
493
+ /**
494
+ * Prefer `@import` tags to inline `import()` statements.
495
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/prefer-import-tag.md#repos-sticky-header
496
+ */
497
+ 'jsdoc/prefer-import-tag'?: Linter.RuleEntry<JsdocPreferImportTag>;
498
+ /**
499
+ * Reports use of `any` or `*` type
500
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header
501
+ */
502
+ 'jsdoc/reject-any-type'?: Linter.RuleEntry<[]>;
503
+ /**
504
+ * Reports use of `Function` type
505
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header
506
+ */
507
+ 'jsdoc/reject-function-type'?: Linter.RuleEntry<[]>;
508
+ /**
509
+ * Requires that each JSDoc line starts with an `*`.
510
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-asterisk-prefix.md#repos-sticky-header
511
+ */
512
+ 'jsdoc/require-asterisk-prefix'?: Linter.RuleEntry<JsdocRequireAsteriskPrefix>;
513
+ /**
514
+ * Requires that all functions (and potentially other contexts) have a description.
515
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description.md#repos-sticky-header
516
+ */
517
+ 'jsdoc/require-description'?: Linter.RuleEntry<JsdocRequireDescription>;
518
+ /**
519
+ * Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences.
520
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description-complete-sentence.md#repos-sticky-header
521
+ */
522
+ 'jsdoc/require-description-complete-sentence'?: Linter.RuleEntry<JsdocRequireDescriptionCompleteSentence>;
523
+ /**
524
+ * Requires that all functions (and potentially other contexts) have examples.
525
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-example.md#repos-sticky-header
526
+ */
527
+ 'jsdoc/require-example'?: Linter.RuleEntry<JsdocRequireExample>;
528
+ /**
529
+ * Checks that all files have one `@file`, `@fileoverview`, or `@overview` tag at the beginning of the file.
530
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-file-overview.md#repos-sticky-header
531
+ */
532
+ 'jsdoc/require-file-overview'?: Linter.RuleEntry<JsdocRequireFileOverview>;
533
+ /**
534
+ * Requires a hyphen before the `@param` description (and optionally before `@property` descriptions).
535
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-hyphen-before-param-description.md#repos-sticky-header
536
+ */
537
+ 'jsdoc/require-hyphen-before-param-description'?: Linter.RuleEntry<JsdocRequireHyphenBeforeParamDescription>;
538
+ /**
539
+ * Checks for presence of JSDoc comments, on functions and potentially other contexts (optionally limited to exports).
540
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-jsdoc.md#repos-sticky-header
541
+ */
542
+ 'jsdoc/require-jsdoc'?: Linter.RuleEntry<JsdocRequireJsdoc>;
543
+ /**
544
+ * Requires a description for `@next` tags
545
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header
546
+ */
547
+ 'jsdoc/require-next-description'?: Linter.RuleEntry<[]>;
548
+ /**
549
+ * Requires a type for `@next` tags
550
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header
551
+ */
552
+ 'jsdoc/require-next-type'?: Linter.RuleEntry<[]>;
553
+ /**
554
+ * Requires that all function parameters are documented with a `@param` tag.
555
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param.md#repos-sticky-header
556
+ */
557
+ 'jsdoc/require-param'?: Linter.RuleEntry<JsdocRequireParam>;
558
+ /**
559
+ * Requires that each `@param` tag has a `description` value.
560
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-description.md#repos-sticky-header
561
+ */
562
+ 'jsdoc/require-param-description'?: Linter.RuleEntry<JsdocRequireParamDescription>;
563
+ /**
564
+ * Requires that all `@param` tags have names.
565
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-name.md#repos-sticky-header
566
+ */
567
+ 'jsdoc/require-param-name'?: Linter.RuleEntry<JsdocRequireParamName>;
568
+ /**
569
+ * Requires that each `@param` tag has a type value (in curly brackets).
570
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-type.md#repos-sticky-header
571
+ */
572
+ 'jsdoc/require-param-type'?: Linter.RuleEntry<JsdocRequireParamType>;
573
+ /**
574
+ * Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`.
575
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property.md#repos-sticky-header
576
+ */
577
+ 'jsdoc/require-property'?: Linter.RuleEntry<[]>;
578
+ /**
579
+ * Requires that each `@property` tag has a `description` value.
580
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-description.md#repos-sticky-header
581
+ */
582
+ 'jsdoc/require-property-description'?: Linter.RuleEntry<[]>;
583
+ /**
584
+ * Requires that all `@property` tags have names.
585
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-name.md#repos-sticky-header
586
+ */
587
+ 'jsdoc/require-property-name'?: Linter.RuleEntry<[]>;
588
+ /**
589
+ * Requires that each `@property` tag has a type value (in curly brackets).
590
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-type.md#repos-sticky-header
591
+ */
592
+ 'jsdoc/require-property-type'?: Linter.RuleEntry<[]>;
593
+ /**
594
+ * Requires that Promise rejections are documented with `@rejects` tags.
595
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-rejects.md#repos-sticky-header
596
+ */
597
+ 'jsdoc/require-rejects'?: Linter.RuleEntry<JsdocRequireRejects>;
598
+ /**
599
+ * Requires that returns are documented with `@returns`.
600
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header
601
+ */
602
+ 'jsdoc/require-returns'?: Linter.RuleEntry<JsdocRequireReturns>;
603
+ /**
604
+ * Requires a return statement in function body if a `@returns` tag is specified in JSDoc comment(and reports if multiple `@returns` tags are present).
605
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-check.md#repos-sticky-header
606
+ */
607
+ 'jsdoc/require-returns-check'?: Linter.RuleEntry<JsdocRequireReturnsCheck>;
608
+ /**
609
+ * Requires that the `@returns` tag has a `description` value (not including `void`/`undefined` type returns).
610
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md#repos-sticky-header
611
+ */
612
+ 'jsdoc/require-returns-description'?: Linter.RuleEntry<JsdocRequireReturnsDescription>;
613
+ /**
614
+ * Requires that `@returns` tag has type value (in curly brackets).
615
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-type.md#repos-sticky-header
616
+ */
617
+ 'jsdoc/require-returns-type'?: Linter.RuleEntry<JsdocRequireReturnsType>;
618
+ /**
619
+ * Requires tags be present, optionally for specific contexts
620
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-tags.md#repos-sticky-header
621
+ */
622
+ 'jsdoc/require-tags'?: Linter.RuleEntry<JsdocRequireTags>;
623
+ /**
624
+ * Requires `@template` tags be present when type parameters are used.
625
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template.md#repos-sticky-header
626
+ */
627
+ 'jsdoc/require-template'?: Linter.RuleEntry<JsdocRequireTemplate>;
628
+ /**
629
+ * Requires a description for `@template` tags
630
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header
631
+ */
632
+ 'jsdoc/require-template-description'?: Linter.RuleEntry<[]>;
633
+ /**
634
+ * Requires that throw statements are documented with `@throws` tags.
635
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws.md#repos-sticky-header
636
+ */
637
+ 'jsdoc/require-throws'?: Linter.RuleEntry<JsdocRequireThrows>;
638
+ /**
639
+ * Requires a description for `@throws` tags
640
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header
641
+ */
642
+ 'jsdoc/require-throws-description'?: Linter.RuleEntry<[]>;
643
+ /**
644
+ * Requires a type for `@throws` tags
645
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header
646
+ */
647
+ 'jsdoc/require-throws-type'?: Linter.RuleEntry<[]>;
648
+ /**
649
+ * Requires yields are documented with `@yields` tags.
650
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields.md#repos-sticky-header
651
+ */
652
+ 'jsdoc/require-yields'?: Linter.RuleEntry<JsdocRequireYields>;
653
+ /**
654
+ * Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that there is a yield with a return value present).
655
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-check.md#repos-sticky-header
656
+ */
657
+ 'jsdoc/require-yields-check'?: Linter.RuleEntry<JsdocRequireYieldsCheck>;
658
+ /**
659
+ * Requires a description for `@yields` tags
660
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header
661
+ */
662
+ 'jsdoc/require-yields-description'?: Linter.RuleEntry<[]>;
663
+ /**
664
+ * Requires a type for `@yields` tags
665
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header
666
+ */
667
+ 'jsdoc/require-yields-type'?: Linter.RuleEntry<[]>;
668
+ /**
669
+ * Sorts tags by a specified sequence according to tag name, optionally adding line breaks between tag groups.
670
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/sort-tags.md#repos-sticky-header
671
+ */
672
+ 'jsdoc/sort-tags'?: Linter.RuleEntry<JsdocSortTags>;
673
+ /**
674
+ * Enforces lines (or no lines) before, after, or between tags.
675
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/tag-lines.md#repos-sticky-header
676
+ */
677
+ 'jsdoc/tag-lines'?: Linter.RuleEntry<JsdocTagLines>;
678
+ /**
679
+ * Auto-escape certain characters that are input within block and tag descriptions.
680
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header
681
+ */
682
+ 'jsdoc/text-escaping'?: Linter.RuleEntry<JsdocTextEscaping>;
683
+ /**
684
+ * Prefers either function properties or method signatures
685
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-method-signature-style.md#repos-sticky-header
686
+ */
687
+ 'jsdoc/ts-method-signature-style'?: Linter.RuleEntry<JsdocTsMethodSignatureStyle>;
688
+ /**
689
+ * Warns against use of the empty object type
690
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-empty-object-type.md#repos-sticky-header
691
+ */
692
+ 'jsdoc/ts-no-empty-object-type'?: Linter.RuleEntry<[]>;
693
+ /**
694
+ * Catches unnecessary template expressions such as string expressions within a template literal.
695
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-unnecessary-template-expression.md#repos-sticky-header
696
+ */
697
+ 'jsdoc/ts-no-unnecessary-template-expression'?: Linter.RuleEntry<JsdocTsNoUnnecessaryTemplateExpression>;
698
+ /**
699
+ * Prefers function types over call signatures when there are no other properties.
700
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-prefer-function-type.md#repos-sticky-header
701
+ */
702
+ 'jsdoc/ts-prefer-function-type'?: Linter.RuleEntry<JsdocTsPreferFunctionType>;
703
+ /**
704
+ * Formats JSDoc type values.
705
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/type-formatting.md#repos-sticky-header
706
+ */
707
+ 'jsdoc/type-formatting'?: Linter.RuleEntry<JsdocTypeFormatting>;
708
+ /**
709
+ * Requires all types/namepaths to be valid JSDoc, Closure compiler, or TypeScript types (configurable in settings).
710
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header
711
+ */
712
+ 'jsdoc/valid-types'?: Linter.RuleEntry<JsdocValidTypes>;
338
713
  /**
339
714
  * enforce line breaks after opening and before closing array brackets
340
715
  * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-newline.html
@@ -4693,7 +5068,501 @@ type IndentLegacy = [] | [("tab" | number)] | [("tab" | number), {
4693
5068
  }]; // ----- init-declarations -----
4694
5069
  type InitDeclarations = ([] | ["always"] | [] | ["never"] | ["never", {
4695
5070
  ignoreForLoopInit?: boolean;
4696
- }]); // ----- jsonc/array-bracket-newline -----
5071
+ }]); // ----- jsdoc/check-alignment -----
5072
+ type JsdocCheckAlignment = [] | [{
5073
+ innerIndent?: number;
5074
+ }]; // ----- jsdoc/check-examples -----
5075
+ type JsdocCheckExamples = [] | [{
5076
+ allowInlineConfig?: boolean;
5077
+ baseConfig?: {
5078
+ [k: string]: unknown | undefined;
5079
+ };
5080
+ captionRequired?: boolean;
5081
+ checkDefaults?: boolean;
5082
+ checkEslintrc?: boolean;
5083
+ checkParams?: boolean;
5084
+ checkProperties?: boolean;
5085
+ configFile?: string;
5086
+ exampleCodeRegex?: string;
5087
+ matchingFileName?: string;
5088
+ matchingFileNameDefaults?: string;
5089
+ matchingFileNameParams?: string;
5090
+ matchingFileNameProperties?: string;
5091
+ noDefaultExampleRules?: boolean;
5092
+ paddedIndent?: number;
5093
+ rejectExampleCodeRegex?: string;
5094
+ reportUnusedDisableDirectives?: boolean;
5095
+ }]; // ----- jsdoc/check-indentation -----
5096
+ type JsdocCheckIndentation = [] | [{
5097
+ allowIndentedSections?: boolean;
5098
+ excludeTags?: string[];
5099
+ }]; // ----- jsdoc/check-line-alignment -----
5100
+ type JsdocCheckLineAlignment = [] | [("always" | "never" | "any")] | [("always" | "never" | "any"), {
5101
+ customSpacings?: {
5102
+ postDelimiter?: number;
5103
+ postHyphen?: number;
5104
+ postName?: number;
5105
+ postTag?: number;
5106
+ postType?: number;
5107
+ };
5108
+ disableWrapIndent?: boolean;
5109
+ preserveMainDescriptionPostDelimiter?: boolean;
5110
+ tags?: string[];
5111
+ wrapIndent?: string;
5112
+ }]; // ----- jsdoc/check-param-names -----
5113
+ type JsdocCheckParamNames = [] | [{
5114
+ allowExtraTrailingParamDocs?: boolean;
5115
+ checkDestructured?: boolean;
5116
+ checkRestProperty?: boolean;
5117
+ checkTypesPattern?: string;
5118
+ disableExtraPropertyReporting?: boolean;
5119
+ disableMissingParamChecks?: boolean;
5120
+ enableFixer?: boolean;
5121
+ useDefaultObjectProperties?: boolean;
5122
+ }]; // ----- jsdoc/check-property-names -----
5123
+ type JsdocCheckPropertyNames = [] | [{
5124
+ enableFixer?: boolean;
5125
+ }]; // ----- jsdoc/check-tag-names -----
5126
+ type JsdocCheckTagNames = [] | [{
5127
+ definedTags?: string[];
5128
+ enableFixer?: boolean;
5129
+ inlineTags?: string[];
5130
+ jsxTags?: boolean;
5131
+ typed?: boolean;
5132
+ }]; // ----- jsdoc/check-types -----
5133
+ type JsdocCheckTypes = [] | [{
5134
+ exemptTagContexts?: {
5135
+ tag?: string;
5136
+ types?: (boolean | string[]);
5137
+ }[];
5138
+ noDefaults?: boolean;
5139
+ unifyParentAndChildTypeChecks?: boolean;
5140
+ }]; // ----- jsdoc/check-values -----
5141
+ type JsdocCheckValues = [] | [{
5142
+ allowedAuthors?: string[];
5143
+ allowedLicenses?: (string[] | boolean);
5144
+ licensePattern?: string;
5145
+ numericOnlyVariation?: boolean;
5146
+ }]; // ----- jsdoc/convert-to-jsdoc-comments -----
5147
+ type JsdocConvertToJsdocComments = [] | [{
5148
+ allowedPrefixes?: string[];
5149
+ contexts?: (string | {
5150
+ context?: string;
5151
+ inlineCommentBlock?: boolean;
5152
+ })[];
5153
+ contextsAfter?: (string | {
5154
+ context?: string;
5155
+ inlineCommentBlock?: boolean;
5156
+ })[];
5157
+ contextsBeforeAndAfter?: (string | {
5158
+ context?: string;
5159
+ inlineCommentBlock?: boolean;
5160
+ })[];
5161
+ enableFixer?: boolean;
5162
+ enforceJsdocLineStyle?: ("multi" | "single");
5163
+ lineOrBlockStyle?: ("block" | "line" | "both");
5164
+ }]; // ----- jsdoc/empty-tags -----
5165
+ type JsdocEmptyTags = [] | [{
5166
+ tags?: string[];
5167
+ }]; // ----- jsdoc/escape-inline-tags -----
5168
+ type JsdocEscapeInlineTags = [] | [{
5169
+ allowedInlineTags?: string[];
5170
+ enableFixer?: boolean;
5171
+ fixType?: ("backticks" | "backslash");
5172
+ }]; // ----- jsdoc/implements-on-classes -----
5173
+ type JsdocImplementsOnClasses = [] | [{
5174
+ contexts?: (string | {
5175
+ comment?: string;
5176
+ context?: string;
5177
+ })[];
5178
+ }]; // ----- jsdoc/informative-docs -----
5179
+ type JsdocInformativeDocs = [] | [{
5180
+ aliases?: {
5181
+ [k: string]: string[];
5182
+ };
5183
+ excludedTags?: string[];
5184
+ uselessWords?: string[];
5185
+ }]; // ----- jsdoc/lines-before-block -----
5186
+ type JsdocLinesBeforeBlock = [] | [{
5187
+ checkBlockStarts?: boolean;
5188
+ excludedTags?: string[];
5189
+ ignoreSameLine?: boolean;
5190
+ ignoreSingleLines?: boolean;
5191
+ lines?: number;
5192
+ }]; // ----- jsdoc/match-description -----
5193
+ type JsdocMatchDescription = [] | [{
5194
+ contexts?: (string | {
5195
+ comment?: string;
5196
+ context?: string;
5197
+ })[];
5198
+ mainDescription?: (string | boolean | {
5199
+ match?: (string | boolean);
5200
+ message?: string;
5201
+ });
5202
+ matchDescription?: string;
5203
+ message?: string;
5204
+ nonemptyTags?: boolean;
5205
+ tags?: {
5206
+ [k: string]: (string | true | {
5207
+ match?: (string | true);
5208
+ message?: string;
5209
+ });
5210
+ };
5211
+ }]; // ----- jsdoc/match-name -----
5212
+ type JsdocMatchName = [] | [{
5213
+ match: {
5214
+ allowName?: string;
5215
+ comment?: string;
5216
+ context?: string;
5217
+ disallowName?: string;
5218
+ message?: string;
5219
+ replacement?: string;
5220
+ tags?: string[];
5221
+ }[];
5222
+ }]; // ----- jsdoc/multiline-blocks -----
5223
+ type JsdocMultilineBlocks = [] | [{
5224
+ allowMultipleTags?: boolean;
5225
+ minimumLengthForMultiline?: number;
5226
+ multilineTags?: ("*" | string[]);
5227
+ noFinalLineText?: boolean;
5228
+ noMultilineBlocks?: boolean;
5229
+ noSingleLineBlocks?: boolean;
5230
+ noZeroLineText?: boolean;
5231
+ requireSingleLineUnderCount?: number;
5232
+ singleLineTags?: string[];
5233
+ }]; // ----- jsdoc/no-bad-blocks -----
5234
+ type JsdocNoBadBlocks = [] | [{
5235
+ ignore?: string[];
5236
+ preventAllMultiAsteriskBlocks?: boolean;
5237
+ }]; // ----- jsdoc/no-blank-blocks -----
5238
+ type JsdocNoBlankBlocks = [] | [{
5239
+ enableFixer?: boolean;
5240
+ }]; // ----- jsdoc/no-defaults -----
5241
+ type JsdocNoDefaults = [] | [{
5242
+ contexts?: (string | {
5243
+ comment?: string;
5244
+ context?: string;
5245
+ })[];
5246
+ noOptionalParamNames?: boolean;
5247
+ }]; // ----- jsdoc/no-missing-syntax -----
5248
+ type JsdocNoMissingSyntax = [] | [{
5249
+ contexts?: (string | {
5250
+ comment?: string;
5251
+ context?: string;
5252
+ message?: string;
5253
+ minimum?: number;
5254
+ })[];
5255
+ }]; // ----- jsdoc/no-multi-asterisks -----
5256
+ type JsdocNoMultiAsterisks = [] | [{
5257
+ allowWhitespace?: boolean;
5258
+ preventAtEnd?: boolean;
5259
+ preventAtMiddleLines?: boolean;
5260
+ }]; // ----- jsdoc/no-restricted-syntax -----
5261
+ type JsdocNoRestrictedSyntax = [] | [{
5262
+ contexts: (string | {
5263
+ comment?: string;
5264
+ context?: string;
5265
+ message?: string;
5266
+ })[];
5267
+ }]; // ----- jsdoc/no-types -----
5268
+ type JsdocNoTypes = [] | [{
5269
+ contexts?: (string | {
5270
+ comment?: string;
5271
+ context?: string;
5272
+ })[];
5273
+ }]; // ----- jsdoc/no-undefined-types -----
5274
+ type JsdocNoUndefinedTypes = [] | [{
5275
+ checkUsedTypedefs?: boolean;
5276
+ definedTypes?: string[];
5277
+ disableReporting?: boolean;
5278
+ markVariablesAsUsed?: boolean;
5279
+ }]; // ----- jsdoc/prefer-import-tag -----
5280
+ type JsdocPreferImportTag = [] | [{
5281
+ enableFixer?: boolean;
5282
+ exemptTypedefs?: boolean;
5283
+ outputType?: ("named-import" | "namespaced-import");
5284
+ }]; // ----- jsdoc/require-asterisk-prefix -----
5285
+ type JsdocRequireAsteriskPrefix = [] | [("always" | "never" | "any")] | [("always" | "never" | "any"), {
5286
+ tags?: {
5287
+ always?: string[];
5288
+ any?: string[];
5289
+ never?: string[];
5290
+ };
5291
+ }]; // ----- jsdoc/require-description -----
5292
+ type JsdocRequireDescription = [] | [{
5293
+ checkConstructors?: boolean;
5294
+ checkGetters?: boolean;
5295
+ checkSetters?: boolean;
5296
+ contexts?: (string | {
5297
+ comment?: string;
5298
+ context?: string;
5299
+ })[];
5300
+ descriptionStyle?: ("body" | "tag" | "any");
5301
+ exemptedBy?: string[];
5302
+ }]; // ----- jsdoc/require-description-complete-sentence -----
5303
+ type JsdocRequireDescriptionCompleteSentence = [] | [{
5304
+ abbreviations?: string[];
5305
+ newlineBeforeCapsAssumesBadSentenceEnd?: boolean;
5306
+ tags?: string[];
5307
+ }]; // ----- jsdoc/require-example -----
5308
+ type JsdocRequireExample = [] | [{
5309
+ checkConstructors?: boolean;
5310
+ checkGetters?: boolean;
5311
+ checkSetters?: boolean;
5312
+ contexts?: (string | {
5313
+ comment?: string;
5314
+ context?: string;
5315
+ })[];
5316
+ enableFixer?: boolean;
5317
+ exemptedBy?: string[];
5318
+ exemptNoArguments?: boolean;
5319
+ }]; // ----- jsdoc/require-file-overview -----
5320
+ type JsdocRequireFileOverview = [] | [{
5321
+ tags?: {
5322
+ [k: string]: {
5323
+ initialCommentsOnly?: boolean;
5324
+ mustExist?: boolean;
5325
+ preventDuplicates?: boolean;
5326
+ };
5327
+ };
5328
+ }]; // ----- jsdoc/require-hyphen-before-param-description -----
5329
+ type JsdocRequireHyphenBeforeParamDescription = [] | [("always" | "never")] | [("always" | "never"), {
5330
+ tags?: ({
5331
+ [k: string]: ("always" | "never");
5332
+ } | "any");
5333
+ }]; // ----- jsdoc/require-jsdoc -----
5334
+ type JsdocRequireJsdoc = [] | [{
5335
+ checkAllFunctionExpressions?: boolean;
5336
+ checkConstructors?: boolean;
5337
+ checkGetters?: (boolean | "no-setter");
5338
+ checkSetters?: (boolean | "no-getter");
5339
+ contexts?: (string | {
5340
+ context?: string;
5341
+ inlineCommentBlock?: boolean;
5342
+ minLineCount?: number;
5343
+ })[];
5344
+ enableFixer?: boolean;
5345
+ exemptEmptyConstructors?: boolean;
5346
+ exemptEmptyFunctions?: boolean;
5347
+ exemptOverloadedImplementations?: boolean;
5348
+ fixerMessage?: string;
5349
+ minLineCount?: number;
5350
+ publicOnly?: (boolean | {
5351
+ ancestorsOnly?: boolean;
5352
+ cjs?: boolean;
5353
+ esm?: boolean;
5354
+ window?: boolean;
5355
+ });
5356
+ require?: {
5357
+ ArrowFunctionExpression?: boolean;
5358
+ ClassDeclaration?: boolean;
5359
+ ClassExpression?: boolean;
5360
+ FunctionDeclaration?: boolean;
5361
+ FunctionExpression?: boolean;
5362
+ MethodDefinition?: boolean;
5363
+ };
5364
+ skipInterveningOverloadedDeclarations?: boolean;
5365
+ }]; // ----- jsdoc/require-param -----
5366
+ type JsdocRequireParam = [] | [{
5367
+ autoIncrementBase?: number;
5368
+ checkConstructors?: boolean;
5369
+ checkDestructured?: boolean;
5370
+ checkDestructuredRoots?: boolean;
5371
+ checkGetters?: boolean;
5372
+ checkRestProperty?: boolean;
5373
+ checkSetters?: boolean;
5374
+ checkTypesPattern?: string;
5375
+ contexts?: (string | {
5376
+ comment?: string;
5377
+ context?: string;
5378
+ })[];
5379
+ enableFixer?: boolean;
5380
+ enableRestElementFixer?: boolean;
5381
+ enableRootFixer?: boolean;
5382
+ exemptedBy?: string[];
5383
+ ignoreWhenAllParamsMissing?: boolean;
5384
+ interfaceExemptsParamsCheck?: boolean;
5385
+ unnamedRootBase?: string[];
5386
+ useDefaultObjectProperties?: boolean;
5387
+ }]; // ----- jsdoc/require-param-description -----
5388
+ type JsdocRequireParamDescription = [] | [{
5389
+ contexts?: (string | {
5390
+ comment?: string;
5391
+ context?: string;
5392
+ })[];
5393
+ defaultDestructuredRootDescription?: string;
5394
+ setDefaultDestructuredRootDescription?: boolean;
5395
+ }]; // ----- jsdoc/require-param-name -----
5396
+ type JsdocRequireParamName = [] | [{
5397
+ contexts?: (string | {
5398
+ comment?: string;
5399
+ context?: string;
5400
+ })[];
5401
+ }]; // ----- jsdoc/require-param-type -----
5402
+ type JsdocRequireParamType = [] | [{
5403
+ contexts?: (string | {
5404
+ comment?: string;
5405
+ context?: string;
5406
+ })[];
5407
+ defaultDestructuredRootType?: string;
5408
+ setDefaultDestructuredRootType?: boolean;
5409
+ }]; // ----- jsdoc/require-rejects -----
5410
+ type JsdocRequireRejects = [] | [{
5411
+ contexts?: (string | {
5412
+ comment?: string;
5413
+ context?: string;
5414
+ })[];
5415
+ exemptedBy?: string[];
5416
+ }]; // ----- jsdoc/require-returns -----
5417
+ type JsdocRequireReturns = [] | [{
5418
+ checkConstructors?: boolean;
5419
+ checkGetters?: boolean;
5420
+ contexts?: (string | {
5421
+ comment?: string;
5422
+ context?: string;
5423
+ forceRequireReturn?: boolean;
5424
+ })[];
5425
+ enableFixer?: boolean;
5426
+ exemptedBy?: string[];
5427
+ forceRequireReturn?: boolean;
5428
+ forceReturnsWithAsync?: boolean;
5429
+ publicOnly?: (boolean | {
5430
+ ancestorsOnly?: boolean;
5431
+ cjs?: boolean;
5432
+ esm?: boolean;
5433
+ window?: boolean;
5434
+ });
5435
+ }]; // ----- jsdoc/require-returns-check -----
5436
+ type JsdocRequireReturnsCheck = [] | [{
5437
+ exemptAsync?: boolean;
5438
+ exemptGenerators?: boolean;
5439
+ noNativeTypes?: boolean;
5440
+ reportMissingReturnForUndefinedTypes?: boolean;
5441
+ }]; // ----- jsdoc/require-returns-description -----
5442
+ type JsdocRequireReturnsDescription = [] | [{
5443
+ contexts?: (string | {
5444
+ comment?: string;
5445
+ context?: string;
5446
+ })[];
5447
+ }]; // ----- jsdoc/require-returns-type -----
5448
+ type JsdocRequireReturnsType = [] | [{
5449
+ contexts?: (string | {
5450
+ comment?: string;
5451
+ context?: string;
5452
+ })[];
5453
+ }]; // ----- jsdoc/require-tags -----
5454
+ type JsdocRequireTags = [] | [{
5455
+ tags?: (string | {
5456
+ context?: string;
5457
+ tag?: string;
5458
+ [k: string]: unknown | undefined;
5459
+ })[];
5460
+ }]; // ----- jsdoc/require-template -----
5461
+ type JsdocRequireTemplate = [] | [{
5462
+ exemptedBy?: string[];
5463
+ requireSeparateTemplates?: boolean;
5464
+ }]; // ----- jsdoc/require-throws -----
5465
+ type JsdocRequireThrows = [] | [{
5466
+ contexts?: (string | {
5467
+ comment?: string;
5468
+ context?: string;
5469
+ })[];
5470
+ exemptedBy?: string[];
5471
+ }]; // ----- jsdoc/require-yields -----
5472
+ type JsdocRequireYields = [] | [{
5473
+ contexts?: (string | {
5474
+ comment?: string;
5475
+ context?: string;
5476
+ })[];
5477
+ exemptedBy?: string[];
5478
+ forceRequireNext?: boolean;
5479
+ forceRequireYields?: boolean;
5480
+ next?: boolean;
5481
+ nextWithGeneratorTag?: boolean;
5482
+ withGeneratorTag?: boolean;
5483
+ }]; // ----- jsdoc/require-yields-check -----
5484
+ type JsdocRequireYieldsCheck = [] | [{
5485
+ checkGeneratorsOnly?: boolean;
5486
+ contexts?: (string | {
5487
+ comment?: string;
5488
+ context?: string;
5489
+ })[];
5490
+ next?: boolean;
5491
+ }]; // ----- jsdoc/sort-tags -----
5492
+ type JsdocSortTags = [] | [{
5493
+ alphabetizeExtras?: boolean;
5494
+ linesBetween?: number;
5495
+ reportIntraTagGroupSpacing?: boolean;
5496
+ reportTagGroupSpacing?: boolean;
5497
+ tagExceptions?: {
5498
+ [k: string]: number;
5499
+ };
5500
+ tagSequence?: {
5501
+ tags?: string[];
5502
+ }[];
5503
+ }]; // ----- jsdoc/tag-lines -----
5504
+ type JsdocTagLines = [] | [("always" | "any" | "never")] | [("always" | "any" | "never"), {
5505
+ applyToEndTag?: boolean;
5506
+ count?: number;
5507
+ endLines?: (number | null);
5508
+ maxBlockLines?: (number | null);
5509
+ startLines?: (number | null);
5510
+ startLinesWithNoTags?: number;
5511
+ tags?: {
5512
+ [k: string]: {
5513
+ count?: number;
5514
+ lines?: ("always" | "never" | "any");
5515
+ };
5516
+ };
5517
+ }]; // ----- jsdoc/text-escaping -----
5518
+ type JsdocTextEscaping = [] | [{
5519
+ escapeHTML?: boolean;
5520
+ escapeMarkdown?: boolean;
5521
+ }]; // ----- jsdoc/ts-method-signature-style -----
5522
+ type JsdocTsMethodSignatureStyle = [] | [("method" | "property")] | [("method" | "property"), {
5523
+ enableFixer?: boolean;
5524
+ }]; // ----- jsdoc/ts-no-unnecessary-template-expression -----
5525
+ type JsdocTsNoUnnecessaryTemplateExpression = [] | [{
5526
+ enableFixer?: boolean;
5527
+ }]; // ----- jsdoc/ts-prefer-function-type -----
5528
+ type JsdocTsPreferFunctionType = [] | [{
5529
+ enableFixer?: boolean;
5530
+ }]; // ----- jsdoc/type-formatting -----
5531
+ type JsdocTypeFormatting = [] | [{
5532
+ arrayBrackets?: ("angle" | "square");
5533
+ arrowFunctionPostReturnMarkerSpacing?: string;
5534
+ arrowFunctionPreReturnMarkerSpacing?: string;
5535
+ enableFixer?: boolean;
5536
+ functionOrClassParameterSpacing?: string;
5537
+ functionOrClassPostGenericSpacing?: string;
5538
+ functionOrClassPostReturnMarkerSpacing?: string;
5539
+ functionOrClassPreReturnMarkerSpacing?: string;
5540
+ functionOrClassTypeParameterSpacing?: string;
5541
+ genericAndTupleElementSpacing?: string;
5542
+ genericDot?: boolean;
5543
+ keyValuePostColonSpacing?: string;
5544
+ keyValuePostKeySpacing?: string;
5545
+ keyValuePostOptionalSpacing?: string;
5546
+ keyValuePostVariadicSpacing?: string;
5547
+ methodQuotes?: ("double" | "single");
5548
+ objectFieldIndent?: string;
5549
+ objectFieldQuote?: ("double" | "single" | null);
5550
+ objectFieldSeparator?: ("comma" | "comma-and-linebreak" | "linebreak" | "semicolon" | "semicolon-and-linebreak");
5551
+ objectFieldSeparatorOptionalLinebreak?: boolean;
5552
+ objectFieldSeparatorTrailingPunctuation?: boolean;
5553
+ objectTypeBracketSpacing?: string;
5554
+ parameterDefaultValueSpacing?: string;
5555
+ postMethodNameSpacing?: string;
5556
+ postNewSpacing?: string;
5557
+ separatorForSingleObjectField?: boolean;
5558
+ stringQuotes?: ("double" | "single");
5559
+ trailingPunctuationMultilineOnly?: boolean;
5560
+ typeBracketSpacing?: string;
5561
+ unionSpacing?: string;
5562
+ }]; // ----- jsdoc/valid-types -----
5563
+ type JsdocValidTypes = [] | [{
5564
+ allowEmptyNamepaths?: boolean;
5565
+ }]; // ----- jsonc/array-bracket-newline -----
4697
5566
  type JsoncArrayBracketNewline = [] | [(("always" | "never" | "consistent") | {
4698
5567
  multiline?: boolean;
4699
5568
  minItems?: (number | null);
@@ -12017,7 +12886,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
12017
12886
  exceptRange?: boolean;
12018
12887
  onlyEquality?: boolean;
12019
12888
  }]; // Names of all the configs
12020
- type ConfigNames = 'favorodera/ignores' | 'favorodera/vue/setup' | 'favorodera/vue/rules' | 'favorodera/typescript/setup' | 'favorodera/typescript/rules' | 'favorodera/stylistic/setup' | 'favorodera/stylistic/rules' | 'favorodera/tailwind/setup' | 'favorodera/tailwind/rules' | 'favorodera/imports/setup' | 'favorodera/imports/rules' | 'favorodera/markdown/setup' | 'favorodera/markdown/rules' | 'favorodera/markdown/disables/code' | 'favorodera/javascript/setup' | 'favorodera/javascript/rules' | 'favorodera/jsonc/setup' | 'favorodera/jsonc/rules' | 'favorodera/jsonc/sort/package-json' | 'favorodera/jsonc/sort/tsconfig-json';
12889
+ type ConfigNames = 'favorodera/ignores' | 'favorodera/vue/setup' | 'favorodera/vue/rules' | 'favorodera/typescript/setup' | 'favorodera/typescript/rules' | 'favorodera/stylistic/setup' | 'favorodera/stylistic/rules' | 'favorodera/tailwind/setup' | 'favorodera/tailwind/rules' | 'favorodera/imports/setup' | 'favorodera/imports/rules' | 'favorodera/markdown/setup' | 'favorodera/markdown/rules' | 'favorodera/markdown/disables/code' | 'favorodera/javascript/setup' | 'favorodera/javascript/rules' | 'favorodera/jsonc/setup' | 'favorodera/jsonc/rules' | 'favorodera/jsonc/sort/package-json' | 'favorodera/jsonc/sort/tsconfig-json' | 'favorodera/jsdoc/setup' | 'favorodera/tailwind/rules';
12021
12890
  //#endregion
12022
12891
  //#region src/types/utils.d.ts
12023
12892
  /** ESLint rules configuration with type-safe autocompletion */
@@ -12031,7 +12900,6 @@ type TypedFlatConfigItem = Omit<ConfigWithExtends, 'plugins' | 'rules'> & {
12031
12900
  /**
12032
12901
  * An object containing a name-value mapping of plugin names to plugin objects.
12033
12902
  * When `files` is specified, these plugins are only available to the matching files.
12034
- *
12035
12903
  * @see [Using plugins in your configuration](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration)
12036
12904
  */
12037
12905
  plugins?: Record<string, any>;
@@ -12050,6 +12918,7 @@ interface SharedOptions {
12050
12918
  }
12051
12919
  //#endregion
12052
12920
  //#region src/configs/vue.d.ts
12921
+ /** Options for configuring Vue single-file component linting rules. */
12053
12922
  type VueConfigOptions = SharedOptions & {
12054
12923
  sfcBlocks?: boolean | Options;
12055
12924
  };
@@ -12062,22 +12931,27 @@ type VueConfigOptions = SharedOptions & {
12062
12931
  type IgnoresPatterns = Array<string> | ((defaults: Array<string>) => Array<string>);
12063
12932
  //#endregion
12064
12933
  //#region src/configs/imports.d.ts
12934
+ /** Options for configuring imports linting rules. */
12065
12935
  type ImportsConfigOptions = SharedOptions;
12066
12936
  //#endregion
12067
12937
  //#region src/configs/javascript.d.ts
12938
+ /** Options for configuring JavaScript linting rules. */
12068
12939
  type JavascriptConfigOptions = SharedOptions;
12069
12940
  //#endregion
12070
12941
  //#region src/configs/markdown.d.ts
12942
+ /** Options for configuring Markdown linting rules. */
12071
12943
  type MarkdownConfigOptions = SharedOptions & {
12072
12944
  /** github flavoured markdown */gfm?: boolean;
12073
12945
  };
12074
12946
  //#endregion
12075
12947
  //#region src/configs/stylistic.d.ts
12948
+ /** Options for configuring Stylistic formatting rules. */
12076
12949
  type StylisticConfigOptions = SharedOptions & {
12077
12950
  settings?: Omit<StylisticCustomizeOptions, 'pluginName'>;
12078
12951
  };
12079
12952
  //#endregion
12080
12953
  //#region src/configs/tailwind.d.ts
12954
+ /** Options for configuring Tailwind CSS linting rules. */
12081
12955
  type TailwindConfigOptions = SharedOptions & {
12082
12956
  settings?: {
12083
12957
  /**
@@ -12120,64 +12994,52 @@ type TailwindConfigOptions = SharedOptions & {
12120
12994
  };
12121
12995
  //#endregion
12122
12996
  //#region src/configs/typescript.d.ts
12997
+ /** Options for configuring TypeScript linting rules. */
12123
12998
  type TypescriptConfigOptions = SharedOptions;
12124
12999
  //#endregion
12125
13000
  //#region src/configs/jsonc.d.ts
13001
+ /** Options for configuring JSON and JSONC linting rules. */
12126
13002
  type JSONCConfigOptions = SharedOptions;
12127
13003
  //#endregion
13004
+ //#region src/configs/jsdoc.d.ts
13005
+ /** Options for configuring JSDoc linting rules. */
13006
+ type JSDocConfigOptions = SharedOptions;
13007
+ //#endregion
12128
13008
  //#region src/factory.d.ts
12129
- /** Configuration options for the ESLint flat config */
13009
+ /**
13010
+ * Configuration options for the ESLint flat config.
13011
+ *
13012
+ * By default, all feature configurations are enabled (`true`).
13013
+ * You can disable any feature by setting it to `false`, or customize it by passing its options object.
13014
+ * Note: `ignores` is not a boolean toggle, but accepts patterns or a function.
13015
+ */
12130
13016
  interface ConfigOptions {
12131
- /**
12132
- * Enable Vue linting with optional configuration
12133
- * @default true
12134
- */
13017
+ /** Vue single-file components linting (via `eslint-plugin-vue`). */
12135
13018
  vue?: boolean | VueConfigOptions;
12136
- /**
12137
- * Enable TypeScript linting with optional configuration
12138
- * @default true
12139
- */
13019
+ /** TypeScript language linting (via `typescript-eslint`). */
12140
13020
  typescript?: boolean | TypescriptConfigOptions;
12141
- /**
12142
- * Patterns and files to ignore
12143
- * @default ignoresGlob
12144
- */
13021
+ /** Glob patterns to exclude from linting. */
12145
13022
  ignores?: IgnoresPatterns;
12146
- /**
12147
- * Enable stylistic rules with optional configuration
12148
- * @default true
12149
- */
13023
+ /** Stylistic code formatting rules (via `@stylistic/eslint-plugin`). */
12150
13024
  stylistic?: boolean | StylisticConfigOptions;
12151
- /**
12152
- * Enable Tailwind CSS linting with optional configuration
12153
- * @default true
12154
- */
13025
+ /** Tailwind CSS class sorting and best practices (via `eslint-plugin-better-tailwindcss`). */
12155
13026
  tailwind?: boolean | TailwindConfigOptions;
12156
- /**
12157
- * Enable Imports linting with optional configuration
12158
- * @default true
12159
- */
13027
+ /** Imports sorting and unused imports cleanup (via `eslint-plugin-import-lite` and `eslint-plugin-unused-imports`). */
12160
13028
  imports?: boolean | ImportsConfigOptions;
12161
- /**
12162
- * Enable Markdown linting with optional configuration
12163
- * @default true
12164
- */
13029
+ /** Markdown files and embedded code blocks linting (via `@eslint/markdown`). */
12165
13030
  markdown?: boolean | MarkdownConfigOptions;
12166
- /**
12167
- * Enable Javascript linting with optional configuration
12168
- * @default true
12169
- */
13031
+ /** Core JavaScript language rules (via `@eslint/js`). */
12170
13032
  javascript?: boolean | JavascriptConfigOptions;
12171
- /**
12172
- * Enable JSONC/JSON/JSON5 linting with optional configuration
12173
- * @default true
12174
- */
13033
+ /** JSON, JSON5, and JSONC files linting and sorting (via `eslint-plugin-jsonc`). */
12175
13034
  jsonc?: boolean | JSONCConfigOptions;
13035
+ /** JSDoc comments formatting and validation (via `eslint-plugin-jsdoc`). */
13036
+ jsdoc?: boolean | JSDocConfigOptions;
12176
13037
  }
12177
13038
  /**
12178
- * Factory to create a flat ESLint config
12179
- * @param options - Configuration options for the ESLint config
12180
- * @returns Flat ESLint config composer
13039
+ * Factory to create a flat ESLint config.
13040
+ * It builds an ESLint config by sequentially adding sub-configs based on the provided options.
13041
+ * @param options Configuration options for enabling/disabling or configuring specific rule sets.
13042
+ * @returns A flat config composer instance that can be exported directly or further modified.
12181
13043
  */
12182
13044
  declare function factory(options?: ConfigOptions): FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
12183
13045
  //#endregion
@@ -12188,9 +13050,9 @@ declare function factory(options?: ConfigOptions): FlatConfigComposer<TypedFlatC
12188
13050
  *
12189
13051
  * Handles both ESM modules (which wrap exports under `.default`) and
12190
13052
  * CJS / plain-object modules uniformly.
12191
- *
12192
- * @param module - A module or a promise that resolves to one
12193
- * @returns The `.default` export if it exists, otherwise the module itself
13053
+ * @template TModule The type of the module being imported.
13054
+ * @param module A module or a promise that resolves to one.
13055
+ * @returns The `.default` export if it exists, otherwise the module itself.
12194
13056
  */
12195
13057
  declare function importModule<TModule>(module: Awaitable<TModule>): Promise<TModule extends {
12196
13058
  default: infer TModuleDefault;