@vinicunca/eslint-config 3.16.1 → 3.18.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.
Files changed (3) hide show
  1. package/dist/index.d.ts +210 -88
  2. package/dist/index.js +22 -18
  3. package/package.json +14 -13
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { FlatConfigComposer } from "eslint-flat-config-utils";
2
2
  import pluginComments from "@eslint-community/eslint-plugin-eslint-comments";
3
3
  import pluginAntfu from "eslint-plugin-antfu";
4
+ import pluginImportLite from "eslint-plugin-import-lite";
4
5
  import pluginNode from "eslint-plugin-n";
5
6
  import pluginPerfectionist from "eslint-plugin-perfectionist";
6
7
  import pluginSonar from "eslint-plugin-sonarjs";
@@ -654,6 +655,41 @@ interface RuleOptions {
654
655
  * @deprecated
655
656
  */
656
657
  'implicit-arrow-linebreak'?: Linter.RuleEntry<ImplicitArrowLinebreak>;
658
+ /**
659
+ * Enforce or ban the use of inline type-only markers for named imports.
660
+ * @see https://github.com/9romise/eslint-plugin-import-lite/blob/main/src/rules/consistent-type-specifier-style/README.md
661
+ */
662
+ 'import/consistent-type-specifier-style'?: Linter.RuleEntry<ImportConsistentTypeSpecifierStyle>;
663
+ /**
664
+ * Ensure all imports appear before other statements.
665
+ * @see https://github.com/9romise/eslint-plugin-import-lite/blob/main/src/rules/first/README.md
666
+ */
667
+ 'import/first'?: Linter.RuleEntry<ImportFirst>;
668
+ /**
669
+ * Enforce a newline after import statements.
670
+ * @see https://github.com/9romise/eslint-plugin-import-lite/blob/main/src/rules/newline-after-import/README.md
671
+ */
672
+ 'import/newline-after-import'?: Linter.RuleEntry<ImportNewlineAfterImport>;
673
+ /**
674
+ * Forbid default exports.
675
+ * @see https://github.com/9romise/eslint-plugin-import-lite/blob/main/src/rules/no-default-export/README.md
676
+ */
677
+ 'import/no-default-export'?: Linter.RuleEntry<[]>;
678
+ /**
679
+ * Forbid repeated import of the same module in multiple places.
680
+ * @see https://github.com/9romise/eslint-plugin-import-lite/blob/main/src/rules/no-duplicates/README.md
681
+ */
682
+ 'import/no-duplicates'?: Linter.RuleEntry<ImportNoDuplicates>;
683
+ /**
684
+ * Forbid the use of mutable exports with `var` or `let`.
685
+ * @see https://github.com/9romise/eslint-plugin-import-lite/blob/main/src/rules/no-mutable-exports/README.md
686
+ */
687
+ 'import/no-mutable-exports'?: Linter.RuleEntry<[]>;
688
+ /**
689
+ * Forbid named default exports.
690
+ * @see https://github.com/9romise/eslint-plugin-import-lite/blob/main/src/rules/no-named-default/README.md
691
+ */
692
+ 'import/no-named-default'?: Linter.RuleEntry<[]>;
657
693
  /**
658
694
  * Enforce consistent indentation
659
695
  * @see https://eslint.org/docs/latest/rules/indent
@@ -1239,6 +1275,11 @@ interface RuleOptions {
1239
1275
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/heading-increment.md
1240
1276
  */
1241
1277
  'markdown/heading-increment'?: Linter.RuleEntry<[]>;
1278
+ /**
1279
+ * Disallow bare URLs
1280
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-bare-urls.md
1281
+ */
1282
+ 'markdown/no-bare-urls'?: Linter.RuleEntry<[]>;
1242
1283
  /**
1243
1284
  * Disallow duplicate definitions
1244
1285
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-duplicate-definitions.md
@@ -1248,12 +1289,12 @@ interface RuleOptions {
1248
1289
  * Disallow duplicate headings in the same document
1249
1290
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-duplicate-headings.md
1250
1291
  */
1251
- 'markdown/no-duplicate-headings'?: Linter.RuleEntry<[]>;
1292
+ 'markdown/no-duplicate-headings'?: Linter.RuleEntry<MarkdownNoDuplicateHeadings>;
1252
1293
  /**
1253
1294
  * Disallow empty definitions
1254
1295
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-empty-definitions.md
1255
1296
  */
1256
- 'markdown/no-empty-definitions'?: Linter.RuleEntry<[]>;
1297
+ 'markdown/no-empty-definitions'?: Linter.RuleEntry<MarkdownNoEmptyDefinitions>;
1257
1298
  /**
1258
1299
  * Disallow empty images
1259
1300
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-empty-images.md
@@ -1284,11 +1325,26 @@ interface RuleOptions {
1284
1325
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-missing-label-refs.md
1285
1326
  */
1286
1327
  'markdown/no-missing-label-refs'?: Linter.RuleEntry<[]>;
1328
+ /**
1329
+ * Disallow link fragments that do not reference valid headings
1330
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-missing-link-fragments.md
1331
+ */
1332
+ 'markdown/no-missing-link-fragments'?: Linter.RuleEntry<MarkdownNoMissingLinkFragments>;
1287
1333
  /**
1288
1334
  * Disallow multiple H1 headings in the same document
1289
1335
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-multiple-h1.md
1290
1336
  */
1291
1337
  'markdown/no-multiple-h1'?: Linter.RuleEntry<MarkdownNoMultipleH1>;
1338
+ /**
1339
+ * Disallow reversed link and image syntax
1340
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-reversed-media-syntax.md
1341
+ */
1342
+ 'markdown/no-reversed-media-syntax'?: Linter.RuleEntry<[]>;
1343
+ /**
1344
+ * Disallow unused definitions
1345
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/no-unused-definitions.md
1346
+ */
1347
+ 'markdown/no-unused-definitions'?: Linter.RuleEntry<MarkdownNoUnusedDefinitions>;
1292
1348
  /**
1293
1349
  * Require alternative text for images
1294
1350
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/require-alt-text.md
@@ -1461,7 +1517,7 @@ interface RuleOptions {
1461
1517
  */
1462
1518
  'no-console'?: Linter.RuleEntry<NoConsole>;
1463
1519
  /**
1464
- * Disallow reassigning `const` variables
1520
+ * Disallow reassigning `const`, `using`, and `await using` variables
1465
1521
  * @see https://eslint.org/docs/latest/rules/no-const-assign
1466
1522
  */
1467
1523
  'no-const-assign'?: Linter.RuleEntry<[]>;
@@ -5945,6 +6001,11 @@ interface RuleOptions {
5945
6001
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-it.md
5946
6002
  */
5947
6003
  'test/consistent-test-it'?: Linter.RuleEntry<TestConsistentTestIt>;
6004
+ /**
6005
+ * enforce using vitest or vi but not both
6006
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-vitest-vi.md
6007
+ */
6008
+ 'test/consistent-vitest-vi'?: Linter.RuleEntry<TestConsistentVitestVi>;
5948
6009
  /**
5949
6010
  * enforce having expectation in test body
5950
6011
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/expect-expect.md
@@ -6021,6 +6082,11 @@ interface RuleOptions {
6021
6082
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-import-node-test.md
6022
6083
  */
6023
6084
  'test/no-import-node-test'?: Linter.RuleEntry<[]>;
6085
+ /**
6086
+ * disallow importing Vitest globals
6087
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-importing-vitest-globals.md
6088
+ */
6089
+ 'test/no-importing-vitest-globals'?: Linter.RuleEntry<[]>;
6024
6090
  /**
6025
6091
  * disallow string interpolation in snapshots
6026
6092
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-interpolation-in-snapshots.md
@@ -6057,7 +6123,7 @@ interface RuleOptions {
6057
6123
  */
6058
6124
  'test/no-standalone-expect'?: Linter.RuleEntry<TestNoStandaloneExpect>;
6059
6125
  /**
6060
- * Disallow using the `f` and `x` prefixes in favour of `.only` and `.skip`
6126
+ * disallow using the `f` and `x` prefixes in favour of `.only` and `.skip`
6061
6127
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-test-prefixes.md
6062
6128
  */
6063
6129
  'test/no-test-prefixes'?: Linter.RuleEntry<[]>;
@@ -6151,6 +6217,11 @@ interface RuleOptions {
6151
6217
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-on-top.md
6152
6218
  */
6153
6219
  'test/prefer-hooks-on-top'?: Linter.RuleEntry<[]>;
6220
+ /**
6221
+ * enforce importing Vitest globals
6222
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-importing-vitest-globals.md
6223
+ */
6224
+ 'test/prefer-importing-vitest-globals'?: Linter.RuleEntry<[]>;
6154
6225
  /**
6155
6226
  * enforce lowercase titles
6156
6227
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-lowercase-title.md
@@ -8363,7 +8434,7 @@ interface RuleOptions {
8363
8434
  */
8364
8435
  'vue/no-restricted-custom-event'?: Linter.RuleEntry<VueNoRestrictedCustomEvent>;
8365
8436
  /**
8366
- * disallow specific HTML elements
8437
+ * disallow specific elements
8367
8438
  * @see https://eslint.vuejs.org/rules/no-restricted-html-elements.html
8368
8439
  */
8369
8440
  'vue/no-restricted-html-elements'?: Linter.RuleEntry<VueNoRestrictedHtmlElements>;
@@ -9446,6 +9517,20 @@ type IdMatch = [] | [string] | [string, {
9446
9517
  }];
9447
9518
  // ----- implicit-arrow-linebreak -----
9448
9519
  type ImplicitArrowLinebreak = [] | [("beside" | "below")];
9520
+ // ----- import/consistent-type-specifier-style -----
9521
+ type ImportConsistentTypeSpecifierStyle = [] | [("top-level" | "inline" | "prefer-top-level")];
9522
+ // ----- import/first -----
9523
+ type ImportFirst = [] | [("absolute-first" | "disable-absolute-first")];
9524
+ // ----- import/newline-after-import -----
9525
+ type ImportNewlineAfterImport = [] | [{
9526
+ count?: number;
9527
+ exactCount?: boolean;
9528
+ considerComments?: boolean;
9529
+ }];
9530
+ // ----- import/no-duplicates -----
9531
+ type ImportNoDuplicates = [] | [{
9532
+ "prefer-inline"?: boolean;
9533
+ }];
9449
9534
  // ----- indent -----
9450
9535
  type Indent = [] | [("tab" | number)] | [("tab" | number), {
9451
9536
  SwitchCase?: number;
@@ -9631,6 +9716,7 @@ type JsdocLinesBeforeBlock = [] | [{
9631
9716
  checkBlockStarts?: boolean;
9632
9717
  excludedTags?: string[];
9633
9718
  ignoreSameLine?: boolean;
9719
+ ignoreSingleLines?: boolean;
9634
9720
  lines?: number;
9635
9721
  }];
9636
9722
  // ----- jsdoc/match-description -----
@@ -9674,6 +9760,7 @@ type JsdocMultilineBlocks = [] | [{
9674
9760
  noMultilineBlocks?: boolean;
9675
9761
  noSingleLineBlocks?: boolean;
9676
9762
  noZeroLineText?: boolean;
9763
+ requireSingleLineUnderCount?: number;
9677
9764
  singleLineTags?: string[];
9678
9765
  }];
9679
9766
  // ----- jsdoc/no-bad-blocks -----
@@ -10631,14 +10718,34 @@ type MarkdownNoDuplicateDefinitions = [] | [{
10631
10718
  allowDefinitions?: string[];
10632
10719
  allowFootnoteDefinitions?: string[];
10633
10720
  }];
10721
+ // ----- markdown/no-duplicate-headings -----
10722
+ type MarkdownNoDuplicateHeadings = [] | [{
10723
+ checkSiblingsOnly?: boolean;
10724
+ }];
10725
+ // ----- markdown/no-empty-definitions -----
10726
+ type MarkdownNoEmptyDefinitions = [] | [{
10727
+ allowDefinitions?: string[];
10728
+ allowFootnoteDefinitions?: string[];
10729
+ checkFootnoteDefinitions?: boolean;
10730
+ }];
10634
10731
  // ----- markdown/no-html -----
10635
10732
  type MarkdownNoHtml = [] | [{
10636
10733
  allowed?: string[];
10637
10734
  }];
10735
+ // ----- markdown/no-missing-link-fragments -----
10736
+ type MarkdownNoMissingLinkFragments = [] | [{
10737
+ ignoreCase?: boolean;
10738
+ allowPattern?: string;
10739
+ }];
10638
10740
  // ----- markdown/no-multiple-h1 -----
10639
10741
  type MarkdownNoMultipleH1 = [] | [{
10640
10742
  frontmatterTitle?: string;
10641
10743
  }];
10744
+ // ----- markdown/no-unused-definitions -----
10745
+ type MarkdownNoUnusedDefinitions = [] | [{
10746
+ allowDefinitions?: string[];
10747
+ allowFootnoteDefinitions?: string[];
10748
+ }];
10642
10749
  // ----- max-classes-per-file -----
10643
10750
  type MaxClassesPerFile = [] | [(number | {
10644
10751
  ignoreExpressions?: boolean;
@@ -10802,6 +10909,7 @@ type NoConstantCondition = [] | [{
10802
10909
  // ----- no-duplicate-imports -----
10803
10910
  type NoDuplicateImports = [] | [{
10804
10911
  includeExports?: boolean;
10912
+ allowSeparateTypeImports?: boolean;
10805
10913
  }];
10806
10914
  // ----- no-else-return -----
10807
10915
  type NoElseReturn = [] | [{
@@ -11528,7 +11636,7 @@ type PerfectionistSortArrayIncludes = {
11528
11636
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
11529
11637
  groupKind?: ("mixed" | "literals-first" | "spreads-first");
11530
11638
  customGroups?: ({
11531
- newlinesInside?: ("always" | "never");
11639
+ newlinesInside?: (("always" | "never") | number);
11532
11640
  fallbackSort?: {
11533
11641
  order?: ("asc" | "desc");
11534
11642
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -11547,7 +11655,7 @@ type PerfectionistSortArrayIncludes = {
11547
11655
  } | string));
11548
11656
  }[];
11549
11657
  } | {
11550
- newlinesInside?: ("always" | "never");
11658
+ newlinesInside?: (("always" | "never") | number);
11551
11659
  fallbackSort?: {
11552
11660
  order?: ("asc" | "desc");
11553
11661
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -11596,9 +11704,9 @@ type PerfectionistSortArrayIncludes = {
11596
11704
  } | string)));
11597
11705
  });
11598
11706
  partitionByNewLine?: boolean;
11599
- newlinesBetween?: ("ignore" | "always" | "never");
11707
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
11600
11708
  groups?: (string | string[] | {
11601
- newlinesBetween?: ("ignore" | "always" | "never");
11709
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
11602
11710
  commentAbove?: string;
11603
11711
  })[];
11604
11712
  }[];
@@ -11615,7 +11723,7 @@ type PerfectionistSortClasses = [] | [{
11615
11723
  order?: ("asc" | "desc");
11616
11724
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
11617
11725
  customGroups?: ({
11618
- newlinesInside?: ("always" | "never");
11726
+ newlinesInside?: (("always" | "never") | number);
11619
11727
  fallbackSort?: {
11620
11728
  order?: ("asc" | "desc");
11621
11729
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -11649,7 +11757,7 @@ type PerfectionistSortClasses = [] | [{
11649
11757
  } | string));
11650
11758
  }[];
11651
11759
  } | {
11652
- newlinesInside?: ("always" | "never");
11760
+ newlinesInside?: (("always" | "never") | number);
11653
11761
  fallbackSort?: {
11654
11762
  order?: ("asc" | "desc");
11655
11763
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -11711,9 +11819,9 @@ type PerfectionistSortClasses = [] | [{
11711
11819
  } | string)));
11712
11820
  });
11713
11821
  partitionByNewLine?: boolean;
11714
- newlinesBetween?: ("ignore" | "always" | "never");
11822
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
11715
11823
  groups?: (string | string[] | {
11716
- newlinesBetween?: ("ignore" | "always" | "never");
11824
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
11717
11825
  commentAbove?: string;
11718
11826
  })[];
11719
11827
  }];
@@ -11760,7 +11868,7 @@ type PerfectionistSortDecorators = [] | [{
11760
11868
  [k: string]: (string | string[]) | undefined;
11761
11869
  };
11762
11870
  groups?: (string | string[] | {
11763
- newlinesBetween?: ("ignore" | "always" | "never");
11871
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
11764
11872
  commentAbove?: string;
11765
11873
  })[];
11766
11874
  }];
@@ -11779,7 +11887,7 @@ type PerfectionistSortEnums = [] | [{
11779
11887
  customGroups?: ({
11780
11888
  [k: string]: (string | string[]) | undefined;
11781
11889
  } | ({
11782
- newlinesInside?: ("always" | "never");
11890
+ newlinesInside?: (("always" | "never") | number);
11783
11891
  fallbackSort?: {
11784
11892
  order?: ("asc" | "desc");
11785
11893
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -11804,7 +11912,7 @@ type PerfectionistSortEnums = [] | [{
11804
11912
  } | string));
11805
11913
  }[];
11806
11914
  } | {
11807
- newlinesInside?: ("always" | "never");
11915
+ newlinesInside?: (("always" | "never") | number);
11808
11916
  fallbackSort?: {
11809
11917
  order?: ("asc" | "desc");
11810
11918
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -11852,9 +11960,9 @@ type PerfectionistSortEnums = [] | [{
11852
11960
  } | string)));
11853
11961
  });
11854
11962
  partitionByNewLine?: boolean;
11855
- newlinesBetween?: ("ignore" | "always" | "never");
11963
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
11856
11964
  groups?: (string | string[] | {
11857
- newlinesBetween?: ("ignore" | "always" | "never");
11965
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
11858
11966
  commentAbove?: string;
11859
11967
  })[];
11860
11968
  }];
@@ -11872,7 +11980,7 @@ type PerfectionistSortExports = {
11872
11980
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
11873
11981
  groupKind?: ("mixed" | "values-first" | "types-first");
11874
11982
  customGroups?: ({
11875
- newlinesInside?: ("always" | "never");
11983
+ newlinesInside?: (("always" | "never") | number);
11876
11984
  fallbackSort?: {
11877
11985
  order?: ("asc" | "desc");
11878
11986
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -11892,7 +12000,7 @@ type PerfectionistSortExports = {
11892
12000
  } | string));
11893
12001
  }[];
11894
12002
  } | {
11895
- newlinesInside?: ("always" | "never");
12003
+ newlinesInside?: (("always" | "never") | number);
11896
12004
  fallbackSort?: {
11897
12005
  order?: ("asc" | "desc");
11898
12006
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -11933,9 +12041,9 @@ type PerfectionistSortExports = {
11933
12041
  } | string)));
11934
12042
  });
11935
12043
  partitionByNewLine?: boolean;
11936
- newlinesBetween?: ("ignore" | "always" | "never");
12044
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
11937
12045
  groups?: (string | string[] | {
11938
- newlinesBetween?: ("ignore" | "always" | "never");
12046
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
11939
12047
  commentAbove?: string;
11940
12048
  })[];
11941
12049
  }[];
@@ -11955,7 +12063,7 @@ type PerfectionistSortHeritageClauses = [] | [{
11955
12063
  [k: string]: (string | string[]) | undefined;
11956
12064
  };
11957
12065
  groups?: (string | string[] | {
11958
- newlinesBetween?: ("ignore" | "always" | "never");
12066
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
11959
12067
  commentAbove?: string;
11960
12068
  })[];
11961
12069
  }];
@@ -11979,7 +12087,7 @@ type PerfectionistSortImports = {
11979
12087
  [k: string]: (string | string[]) | undefined;
11980
12088
  };
11981
12089
  } | ({
11982
- newlinesInside?: ("always" | "never");
12090
+ newlinesInside?: (("always" | "never") | number);
11983
12091
  fallbackSort?: {
11984
12092
  order?: ("asc" | "desc");
11985
12093
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12006,7 +12114,7 @@ type PerfectionistSortImports = {
12006
12114
  } | string));
12007
12115
  }[];
12008
12116
  } | {
12009
- newlinesInside?: ("always" | "never");
12117
+ newlinesInside?: (("always" | "never") | number);
12010
12118
  fallbackSort?: {
12011
12119
  order?: ("asc" | "desc");
12012
12120
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12062,7 +12170,7 @@ type PerfectionistSortImports = {
12062
12170
  } | string)));
12063
12171
  });
12064
12172
  partitionByNewLine?: boolean;
12065
- newlinesBetween?: ("ignore" | "always" | "never");
12173
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12066
12174
  internalPattern?: (({
12067
12175
  pattern: string;
12068
12176
  flags?: string;
@@ -12071,7 +12179,7 @@ type PerfectionistSortImports = {
12071
12179
  flags?: string;
12072
12180
  } | string));
12073
12181
  groups?: (string | string[] | {
12074
- newlinesBetween?: ("ignore" | "always" | "never");
12182
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12075
12183
  commentAbove?: string;
12076
12184
  })[];
12077
12185
  }[];
@@ -12091,7 +12199,7 @@ type PerfectionistSortInterfaces = {
12091
12199
  customGroups?: ({
12092
12200
  [k: string]: (string | string[]) | undefined;
12093
12201
  } | ({
12094
- newlinesInside?: ("always" | "never");
12202
+ newlinesInside?: (("always" | "never") | number);
12095
12203
  fallbackSort?: {
12096
12204
  order?: ("asc" | "desc");
12097
12205
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12120,7 +12228,7 @@ type PerfectionistSortInterfaces = {
12120
12228
  sortBy?: ("name" | "value");
12121
12229
  }[];
12122
12230
  } | {
12123
- newlinesInside?: ("always" | "never");
12231
+ newlinesInside?: (("always" | "never") | number);
12124
12232
  fallbackSort?: {
12125
12233
  order?: ("asc" | "desc");
12126
12234
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12187,7 +12295,7 @@ type PerfectionistSortInterfaces = {
12187
12295
  } | string)));
12188
12296
  });
12189
12297
  partitionByNewLine?: boolean;
12190
- newlinesBetween?: ("ignore" | "always" | "never");
12298
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12191
12299
  ignorePattern?: (({
12192
12300
  pattern: string;
12193
12301
  flags?: string;
@@ -12197,7 +12305,7 @@ type PerfectionistSortInterfaces = {
12197
12305
  } | string));
12198
12306
  sortBy?: ("name" | "value");
12199
12307
  groups?: (string | string[] | {
12200
- newlinesBetween?: ("ignore" | "always" | "never");
12308
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12201
12309
  commentAbove?: string;
12202
12310
  })[];
12203
12311
  }[];
@@ -12214,7 +12322,7 @@ type PerfectionistSortIntersectionTypes = {
12214
12322
  order?: ("asc" | "desc");
12215
12323
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
12216
12324
  customGroups?: ({
12217
- newlinesInside?: ("always" | "never");
12325
+ newlinesInside?: (("always" | "never") | number);
12218
12326
  fallbackSort?: {
12219
12327
  order?: ("asc" | "desc");
12220
12328
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12233,7 +12341,7 @@ type PerfectionistSortIntersectionTypes = {
12233
12341
  } | string));
12234
12342
  }[];
12235
12343
  } | {
12236
- newlinesInside?: ("always" | "never");
12344
+ newlinesInside?: (("always" | "never") | number);
12237
12345
  fallbackSort?: {
12238
12346
  order?: ("asc" | "desc");
12239
12347
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12273,9 +12381,9 @@ type PerfectionistSortIntersectionTypes = {
12273
12381
  } | string)));
12274
12382
  });
12275
12383
  partitionByNewLine?: boolean;
12276
- newlinesBetween?: ("ignore" | "always" | "never");
12384
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12277
12385
  groups?: (string | string[] | {
12278
- newlinesBetween?: ("ignore" | "always" | "never");
12386
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12279
12387
  commentAbove?: string;
12280
12388
  })[];
12281
12389
  }[];
@@ -12294,7 +12402,7 @@ type PerfectionistSortJsxProps = {
12294
12402
  customGroups?: ({
12295
12403
  [k: string]: (string | string[]) | undefined;
12296
12404
  } | ({
12297
- newlinesInside?: ("always" | "never");
12405
+ newlinesInside?: (("always" | "never") | number);
12298
12406
  fallbackSort?: {
12299
12407
  order?: ("asc" | "desc");
12300
12408
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12321,7 +12429,7 @@ type PerfectionistSortJsxProps = {
12321
12429
  } | string));
12322
12430
  }[];
12323
12431
  } | {
12324
- newlinesInside?: ("always" | "never");
12432
+ newlinesInside?: (("always" | "never") | number);
12325
12433
  fallbackSort?: {
12326
12434
  order?: ("asc" | "desc");
12327
12435
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12363,7 +12471,7 @@ type PerfectionistSortJsxProps = {
12363
12471
  } | string));
12364
12472
  };
12365
12473
  partitionByNewLine?: boolean;
12366
- newlinesBetween?: ("ignore" | "always" | "never");
12474
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12367
12475
  ignorePattern?: (({
12368
12476
  pattern: string;
12369
12477
  flags?: string;
@@ -12372,7 +12480,7 @@ type PerfectionistSortJsxProps = {
12372
12480
  flags?: string;
12373
12481
  } | string));
12374
12482
  groups?: (string | string[] | {
12375
- newlinesBetween?: ("ignore" | "always" | "never");
12483
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12376
12484
  commentAbove?: string;
12377
12485
  })[];
12378
12486
  }[];
@@ -12389,7 +12497,7 @@ type PerfectionistSortMaps = {
12389
12497
  order?: ("asc" | "desc");
12390
12498
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
12391
12499
  customGroups?: ({
12392
- newlinesInside?: ("always" | "never");
12500
+ newlinesInside?: (("always" | "never") | number);
12393
12501
  fallbackSort?: {
12394
12502
  order?: ("asc" | "desc");
12395
12503
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12407,7 +12515,7 @@ type PerfectionistSortMaps = {
12407
12515
  } | string));
12408
12516
  }[];
12409
12517
  } | {
12410
- newlinesInside?: ("always" | "never");
12518
+ newlinesInside?: (("always" | "never") | number);
12411
12519
  fallbackSort?: {
12412
12520
  order?: ("asc" | "desc");
12413
12521
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12455,9 +12563,9 @@ type PerfectionistSortMaps = {
12455
12563
  } | string)));
12456
12564
  });
12457
12565
  partitionByNewLine?: boolean;
12458
- newlinesBetween?: ("ignore" | "always" | "never");
12566
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12459
12567
  groups?: (string | string[] | {
12460
- newlinesBetween?: ("ignore" | "always" | "never");
12568
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12461
12569
  commentAbove?: string;
12462
12570
  })[];
12463
12571
  }[];
@@ -12474,7 +12582,7 @@ type PerfectionistSortModules = [] | [{
12474
12582
  order?: ("asc" | "desc");
12475
12583
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
12476
12584
  customGroups?: ({
12477
- newlinesInside?: ("always" | "never");
12585
+ newlinesInside?: (("always" | "never") | number);
12478
12586
  fallbackSort?: {
12479
12587
  order?: ("asc" | "desc");
12480
12588
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12501,7 +12609,7 @@ type PerfectionistSortModules = [] | [{
12501
12609
  } | string));
12502
12610
  }[];
12503
12611
  } | {
12504
- newlinesInside?: ("always" | "never");
12612
+ newlinesInside?: (("always" | "never") | number);
12505
12613
  fallbackSort?: {
12506
12614
  order?: ("asc" | "desc");
12507
12615
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12549,9 +12657,9 @@ type PerfectionistSortModules = [] | [{
12549
12657
  } | string)));
12550
12658
  });
12551
12659
  partitionByNewLine?: boolean;
12552
- newlinesBetween?: ("ignore" | "always" | "never");
12660
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12553
12661
  groups?: (string | string[] | {
12554
- newlinesBetween?: ("ignore" | "always" | "never");
12662
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12555
12663
  commentAbove?: string;
12556
12664
  })[];
12557
12665
  }];
@@ -12570,7 +12678,7 @@ type PerfectionistSortNamedExports = {
12570
12678
  groupKind?: ("mixed" | "values-first" | "types-first");
12571
12679
  ignoreAlias?: boolean;
12572
12680
  customGroups?: ({
12573
- newlinesInside?: ("always" | "never");
12681
+ newlinesInside?: (("always" | "never") | number);
12574
12682
  fallbackSort?: {
12575
12683
  order?: ("asc" | "desc");
12576
12684
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12590,7 +12698,7 @@ type PerfectionistSortNamedExports = {
12590
12698
  } | string));
12591
12699
  }[];
12592
12700
  } | {
12593
- newlinesInside?: ("always" | "never");
12701
+ newlinesInside?: (("always" | "never") | number);
12594
12702
  fallbackSort?: {
12595
12703
  order?: ("asc" | "desc");
12596
12704
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12631,9 +12739,9 @@ type PerfectionistSortNamedExports = {
12631
12739
  } | string)));
12632
12740
  });
12633
12741
  partitionByNewLine?: boolean;
12634
- newlinesBetween?: ("ignore" | "always" | "never");
12742
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12635
12743
  groups?: (string | string[] | {
12636
- newlinesBetween?: ("ignore" | "always" | "never");
12744
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12637
12745
  commentAbove?: string;
12638
12746
  })[];
12639
12747
  }[];
@@ -12652,7 +12760,7 @@ type PerfectionistSortNamedImports = {
12652
12760
  groupKind?: ("mixed" | "values-first" | "types-first");
12653
12761
  ignoreAlias?: boolean;
12654
12762
  customGroups?: ({
12655
- newlinesInside?: ("always" | "never");
12763
+ newlinesInside?: (("always" | "never") | number);
12656
12764
  fallbackSort?: {
12657
12765
  order?: ("asc" | "desc");
12658
12766
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12672,7 +12780,7 @@ type PerfectionistSortNamedImports = {
12672
12780
  } | string));
12673
12781
  }[];
12674
12782
  } | {
12675
- newlinesInside?: ("always" | "never");
12783
+ newlinesInside?: (("always" | "never") | number);
12676
12784
  fallbackSort?: {
12677
12785
  order?: ("asc" | "desc");
12678
12786
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12713,9 +12821,9 @@ type PerfectionistSortNamedImports = {
12713
12821
  } | string)));
12714
12822
  });
12715
12823
  partitionByNewLine?: boolean;
12716
- newlinesBetween?: ("ignore" | "always" | "never");
12824
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12717
12825
  groups?: (string | string[] | {
12718
- newlinesBetween?: ("ignore" | "always" | "never");
12826
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12719
12827
  commentAbove?: string;
12720
12828
  })[];
12721
12829
  }[];
@@ -12735,7 +12843,7 @@ type PerfectionistSortObjectTypes = {
12735
12843
  customGroups?: ({
12736
12844
  [k: string]: (string | string[]) | undefined;
12737
12845
  } | ({
12738
- newlinesInside?: ("always" | "never");
12846
+ newlinesInside?: (("always" | "never") | number);
12739
12847
  fallbackSort?: {
12740
12848
  order?: ("asc" | "desc");
12741
12849
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12764,7 +12872,7 @@ type PerfectionistSortObjectTypes = {
12764
12872
  sortBy?: ("name" | "value");
12765
12873
  }[];
12766
12874
  } | {
12767
- newlinesInside?: ("always" | "never");
12875
+ newlinesInside?: (("always" | "never") | number);
12768
12876
  fallbackSort?: {
12769
12877
  order?: ("asc" | "desc");
12770
12878
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12831,7 +12939,7 @@ type PerfectionistSortObjectTypes = {
12831
12939
  } | string)));
12832
12940
  });
12833
12941
  partitionByNewLine?: boolean;
12834
- newlinesBetween?: ("ignore" | "always" | "never");
12942
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12835
12943
  ignorePattern?: (({
12836
12944
  pattern: string;
12837
12945
  flags?: string;
@@ -12841,7 +12949,7 @@ type PerfectionistSortObjectTypes = {
12841
12949
  } | string));
12842
12950
  sortBy?: ("name" | "value");
12843
12951
  groups?: (string | string[] | {
12844
- newlinesBetween?: ("ignore" | "always" | "never");
12952
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12845
12953
  commentAbove?: string;
12846
12954
  })[];
12847
12955
  }[];
@@ -12863,7 +12971,7 @@ type PerfectionistSortObjects = {
12863
12971
  customGroups?: ({
12864
12972
  [k: string]: (string | string[]) | undefined;
12865
12973
  } | ({
12866
- newlinesInside?: ("always" | "never");
12974
+ newlinesInside?: (("always" | "never") | number);
12867
12975
  fallbackSort?: {
12868
12976
  order?: ("asc" | "desc");
12869
12977
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12890,7 +12998,7 @@ type PerfectionistSortObjects = {
12890
12998
  } | string));
12891
12999
  }[];
12892
13000
  } | {
12893
- newlinesInside?: ("always" | "never");
13001
+ newlinesInside?: (("always" | "never") | number);
12894
13002
  fallbackSort?: {
12895
13003
  order?: ("asc" | "desc");
12896
13004
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -12957,7 +13065,7 @@ type PerfectionistSortObjects = {
12957
13065
  } | string)));
12958
13066
  });
12959
13067
  partitionByNewLine?: boolean;
12960
- newlinesBetween?: ("ignore" | "always" | "never");
13068
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12961
13069
  ignorePattern?: (({
12962
13070
  pattern: string;
12963
13071
  flags?: string;
@@ -12966,7 +13074,7 @@ type PerfectionistSortObjects = {
12966
13074
  flags?: string;
12967
13075
  } | string));
12968
13076
  groups?: (string | string[] | {
12969
- newlinesBetween?: ("ignore" | "always" | "never");
13077
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
12970
13078
  commentAbove?: string;
12971
13079
  })[];
12972
13080
  }[];
@@ -12984,7 +13092,7 @@ type PerfectionistSortSets = {
12984
13092
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
12985
13093
  groupKind?: ("mixed" | "literals-first" | "spreads-first");
12986
13094
  customGroups?: ({
12987
- newlinesInside?: ("always" | "never");
13095
+ newlinesInside?: (("always" | "never") | number);
12988
13096
  fallbackSort?: {
12989
13097
  order?: ("asc" | "desc");
12990
13098
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -13003,7 +13111,7 @@ type PerfectionistSortSets = {
13003
13111
  } | string));
13004
13112
  }[];
13005
13113
  } | {
13006
- newlinesInside?: ("always" | "never");
13114
+ newlinesInside?: (("always" | "never") | number);
13007
13115
  fallbackSort?: {
13008
13116
  order?: ("asc" | "desc");
13009
13117
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -13052,9 +13160,9 @@ type PerfectionistSortSets = {
13052
13160
  } | string)));
13053
13161
  });
13054
13162
  partitionByNewLine?: boolean;
13055
- newlinesBetween?: ("ignore" | "always" | "never");
13163
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
13056
13164
  groups?: (string | string[] | {
13057
- newlinesBetween?: ("ignore" | "always" | "never");
13165
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
13058
13166
  commentAbove?: string;
13059
13167
  })[];
13060
13168
  }[];
@@ -13084,7 +13192,7 @@ type PerfectionistSortUnionTypes = {
13084
13192
  order?: ("asc" | "desc");
13085
13193
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
13086
13194
  customGroups?: ({
13087
- newlinesInside?: ("always" | "never");
13195
+ newlinesInside?: (("always" | "never") | number);
13088
13196
  fallbackSort?: {
13089
13197
  order?: ("asc" | "desc");
13090
13198
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -13103,7 +13211,7 @@ type PerfectionistSortUnionTypes = {
13103
13211
  } | string));
13104
13212
  }[];
13105
13213
  } | {
13106
- newlinesInside?: ("always" | "never");
13214
+ newlinesInside?: (("always" | "never") | number);
13107
13215
  fallbackSort?: {
13108
13216
  order?: ("asc" | "desc");
13109
13217
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -13143,9 +13251,9 @@ type PerfectionistSortUnionTypes = {
13143
13251
  } | string)));
13144
13252
  });
13145
13253
  partitionByNewLine?: boolean;
13146
- newlinesBetween?: ("ignore" | "always" | "never");
13254
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
13147
13255
  groups?: (string | string[] | {
13148
- newlinesBetween?: ("ignore" | "always" | "never");
13256
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
13149
13257
  commentAbove?: string;
13150
13258
  })[];
13151
13259
  }[];
@@ -13162,7 +13270,7 @@ type PerfectionistSortVariableDeclarations = [] | [{
13162
13270
  order?: ("asc" | "desc");
13163
13271
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
13164
13272
  customGroups?: ({
13165
- newlinesInside?: ("always" | "never");
13273
+ newlinesInside?: (("always" | "never") | number);
13166
13274
  fallbackSort?: {
13167
13275
  order?: ("asc" | "desc");
13168
13276
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -13181,7 +13289,7 @@ type PerfectionistSortVariableDeclarations = [] | [{
13181
13289
  } | string));
13182
13290
  }[];
13183
13291
  } | {
13184
- newlinesInside?: ("always" | "never");
13292
+ newlinesInside?: (("always" | "never") | number);
13185
13293
  fallbackSort?: {
13186
13294
  order?: ("asc" | "desc");
13187
13295
  type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted");
@@ -13221,9 +13329,9 @@ type PerfectionistSortVariableDeclarations = [] | [{
13221
13329
  } | string)));
13222
13330
  });
13223
13331
  partitionByNewLine?: boolean;
13224
- newlinesBetween?: ("ignore" | "always" | "never");
13332
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
13225
13333
  groups?: (string | string[] | {
13226
- newlinesBetween?: ("ignore" | "always" | "never");
13334
+ newlinesBetween?: (("ignore" | "always" | "never") | number);
13227
13335
  commentAbove?: string;
13228
13336
  })[];
13229
13337
  }];
@@ -14014,16 +14122,6 @@ type StyleCurlyNewline = [] | [(("always" | "never") | {
14014
14122
  minElements?: number;
14015
14123
  consistent?: boolean;
14016
14124
  });
14017
- TSEnumBody?: (("always" | "never") | {
14018
- multiline?: boolean;
14019
- minElements?: number;
14020
- consistent?: boolean;
14021
- });
14022
- TSInterfaceBody?: (("always" | "never") | {
14023
- multiline?: boolean;
14024
- minElements?: number;
14025
- consistent?: boolean;
14026
- });
14027
14125
  TSModuleBlock?: (("always" | "never") | {
14028
14126
  multiline?: boolean;
14029
14127
  minElements?: number;
@@ -14759,6 +14857,11 @@ type StyleNoExtraParens = ([] | ["functions"] | [] | ["all"] | ["all", {
14759
14857
  enforceForFunctionPrototypeMethods?: boolean;
14760
14858
  allowParensAfterCommentPattern?: string;
14761
14859
  nestedConditionalExpressions?: boolean;
14860
+ allowNodesInSpreadElement?: {
14861
+ ConditionalExpression?: boolean;
14862
+ LogicalExpression?: boolean;
14863
+ AwaitExpression?: boolean;
14864
+ };
14762
14865
  }]);
14763
14866
  // ----- style/no-mixed-operators -----
14764
14867
  type StyleNoMixedOperators = [] | [{
@@ -14836,6 +14939,11 @@ type StyleObjectCurlyNewline = [] | [((("always" | "never") | {
14836
14939
  minProperties?: number;
14837
14940
  consistent?: boolean;
14838
14941
  });
14942
+ TSEnumBody?: (("always" | "never") | {
14943
+ multiline?: boolean;
14944
+ minProperties?: number;
14945
+ consistent?: boolean;
14946
+ });
14839
14947
  })];
14840
14948
  // ----- style/object-curly-spacing -----
14841
14949
  type StyleObjectCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
@@ -14907,12 +15015,14 @@ type StyleSpaceBeforeBlocks = [] | [(("always" | "never") | {
14907
15015
  keywords?: ("always" | "never" | "off");
14908
15016
  functions?: ("always" | "never" | "off");
14909
15017
  classes?: ("always" | "never" | "off");
15018
+ modules?: ("always" | "never" | "off");
14910
15019
  })];
14911
15020
  // ----- style/space-before-function-paren -----
14912
15021
  type StyleSpaceBeforeFunctionParen = [] | [(("always" | "never") | {
14913
15022
  anonymous?: ("always" | "never" | "ignore");
14914
15023
  named?: ("always" | "never" | "ignore");
14915
15024
  asyncArrow?: ("always" | "never" | "ignore");
15025
+ catch?: ("always" | "never" | "ignore");
14916
15026
  })];
14917
15027
  // ----- style/space-in-parens -----
14918
15028
  type StyleSpaceInParens = [] | [("always" | "never")] | [("always" | "never"), {
@@ -15154,6 +15264,10 @@ type TestConsistentTestIt = [] | [{
15154
15264
  fn?: ("test" | "it");
15155
15265
  withinDescribe?: ("test" | "it");
15156
15266
  }];
15267
+ // ----- test/consistent-vitest-vi -----
15268
+ type TestConsistentVitestVi = [] | [{
15269
+ fn?: ("vi" | "vitest");
15270
+ }];
15157
15271
  // ----- test/expect-expect -----
15158
15272
  type TestExpectExpect = [] | [{
15159
15273
  assertFunctionNames?: string[];
@@ -15828,6 +15942,7 @@ interface _TsNamingConvention_MatchRegexConfig {
15828
15942
  }
15829
15943
  // ----- ts/no-base-to-string -----
15830
15944
  type TsNoBaseToString = [] | [{
15945
+ checkUnknown?: boolean;
15831
15946
  ignoredTypeNames?: string[];
15832
15947
  }];
15833
15948
  // ----- ts/no-confusing-void-expression -----
@@ -18123,7 +18238,7 @@ interface OptionsVue extends OptionsOverrides {
18123
18238
  */
18124
18239
  a11y?: boolean;
18125
18240
  }
18126
- type OptionsTypescript = (OptionsOverrides & OptionsTypeScriptParserOptions) | (OptionsOverrides & OptionsTypeScriptWithTypes);
18241
+ type OptionsTypescript = (OptionsTypeScriptWithTypes & OptionsOverrides) | (OptionsTypeScriptParserOptions & OptionsOverrides);
18127
18242
  interface OptionsFormatters {
18128
18243
  /**
18129
18244
  * Enable formatting support for CSS, Less, Sass, and SCSS.
@@ -18307,6 +18422,12 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
18307
18422
  * @default true
18308
18423
  */
18309
18424
  unicorn?: boolean | OptionsUnicorn;
18425
+ /**
18426
+ * Options for eslint-plugin-import-lite.
18427
+ *
18428
+ * @default true
18429
+ */
18430
+ imports?: boolean | OptionsOverrides;
18310
18431
  /**
18311
18432
  * Enable test support.
18312
18433
  *
@@ -18429,6 +18550,7 @@ declare const defaultPluginRenaming: {
18429
18550
  '@eslint-react/naming-convention': string;
18430
18551
  '@stylistic': string;
18431
18552
  '@typescript-eslint': string;
18553
+ 'import-lite': string;
18432
18554
  n: string;
18433
18555
  sonarjs: string;
18434
18556
  vitest: string;
@@ -18463,7 +18585,7 @@ declare function formatters(options?: OptionsFormatters | true, stylistic?: Styl
18463
18585
  declare function ignores(userIgnores?: Array<string>): Promise<Array<TypedFlatConfigItem>>;
18464
18586
  //#endregion
18465
18587
  //#region src/configs/imports.d.ts
18466
- declare function imports(_options?: OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
18588
+ declare function imports(options?: OptionsOverrides & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
18467
18589
  //#endregion
18468
18590
  //#region src/configs/javascript.d.ts
18469
18591
  declare function javascript(options?: OptionsIsInEditor & OptionsOverrides): Promise<Array<TypedFlatConfigItem>>;
@@ -18656,4 +18778,4 @@ declare function ensurePackages(packages: Array<string | undefined>): Promise<vo
18656
18778
  declare function isInEditorEnv(): boolean;
18657
18779
  declare function isInGitHooksOrLintStaged(): boolean;
18658
18780
  //#endregion
18659
- export { Awaitable, ConfigNames, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsOverrides, OptionsProjectType, OptionsRegExp, OptionsStylistic, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, OptionsVue, ResolvedOptions, Rules, STYLISTIC_CONFIG_DEFAULTS, StylisticConfig, StylisticOptions, TypedFlatConfigItem, astro, combineConfigs, command, comments, defaultPluginRenaming, ensurePackages, formatters, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, node, parserPlain, perfectionist, pluginAntfu, pluginComments, pluginNode, pluginPerfectionist, pluginSonar, pluginUnicorn, pluginUnusedImports, pnpm, react, regexp, renamePluginInConfigs, renameRules, solid, sonar, sortPackageJson, sortTsconfig, stylistic, svelte, test, toArray, toml, typescript, unicorn, unocss, vinicuncaESLint, vue, yaml };
18781
+ export { Awaitable, ConfigNames, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsOverrides, OptionsProjectType, OptionsRegExp, OptionsStylistic, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, OptionsVue, ResolvedOptions, Rules, STYLISTIC_CONFIG_DEFAULTS, StylisticConfig, StylisticOptions, TypedFlatConfigItem, astro, combineConfigs, command, comments, defaultPluginRenaming, ensurePackages, formatters, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, node, parserPlain, perfectionist, pluginAntfu, pluginComments, pluginImportLite, pluginNode, pluginPerfectionist, pluginSonar, pluginUnicorn, pluginUnusedImports, pnpm, react, regexp, renamePluginInConfigs, renameRules, solid, sonar, sortPackageJson, sortTsconfig, stylistic, svelte, test, toArray, toml, typescript, unicorn, unocss, vinicuncaESLint, vue, yaml };
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ import { fileURLToPath } from "node:url";
5
5
  import createCommand from "eslint-plugin-command/config";
6
6
  import pluginComments from "@eslint-community/eslint-plugin-eslint-comments";
7
7
  import pluginAntfu from "eslint-plugin-antfu";
8
+ import pluginImportLite from "eslint-plugin-import-lite";
8
9
  import pluginNode from "eslint-plugin-n";
9
10
  import pluginPerfectionist from "eslint-plugin-perfectionist";
10
11
  import pluginSonar from "eslint-plugin-sonarjs";
@@ -365,19 +366,6 @@ async function stylistic(options = {}) {
365
366
  after: true,
366
367
  before: false
367
368
  }],
368
- "style/padding-line-between-statements": [
369
- "error",
370
- {
371
- blankLine: "always",
372
- next: "*",
373
- prev: "import"
374
- },
375
- {
376
- blankLine: "any",
377
- next: "import",
378
- prev: "import"
379
- }
380
- ],
381
369
  "style/yield-star-spacing": ["error", {
382
370
  after: true,
383
371
  before: false
@@ -563,14 +551,25 @@ async function ignores(userIgnores = []) {
563
551
 
564
552
  //#endregion
565
553
  //#region src/configs/imports.ts
566
- async function imports(_options = {}) {
554
+ async function imports(options = {}) {
555
+ const { overrides = {}, stylistic: stylistic$1 = true } = options;
567
556
  return [{
568
557
  name: "vinicunca/imports/rules",
569
- plugins: { antfu: pluginAntfu },
558
+ plugins: {
559
+ antfu: pluginAntfu,
560
+ import: pluginImportLite
561
+ },
570
562
  rules: {
571
563
  "antfu/import-dedupe": ERROR,
572
564
  "antfu/no-import-dist": ERROR,
573
- "antfu/no-import-node-modules-by-path": ERROR
565
+ "antfu/no-import-node-modules-by-path": ERROR,
566
+ "import/consistent-type-specifier-style": ["error", "top-level"],
567
+ "import/first": "error",
568
+ "import/no-duplicates": "error",
569
+ "import/no-mutable-exports": "error",
570
+ "import/no-named-default": "error",
571
+ ...stylistic$1 ? { "import/newline-after-import": ["error", { count: 1 }] } : {},
572
+ ...overrides
574
573
  }
575
574
  }];
576
575
  }
@@ -2214,6 +2213,7 @@ const defaultPluginRenaming = {
2214
2213
  "@eslint-react/naming-convention": "react-naming-convention",
2215
2214
  "@stylistic": "style",
2216
2215
  "@typescript-eslint": "ts",
2216
+ "import-lite": "import",
2217
2217
  "n": "node",
2218
2218
  "sonarjs": "sonar",
2219
2219
  "vitest": "test",
@@ -2230,7 +2230,7 @@ const defaultPluginRenaming = {
2230
2230
  * The merged ESLint configurations.
2231
2231
  */
2232
2232
  function vinicuncaESLint(options = {}, ...userConfigs) {
2233
- const { astro: enableAstro = false, autoRenamePlugins = true, componentExts = [], gitignore: enableGitignore = true, jsx: enableJsx = true, react: enableReact = false, regexp: enableRegexp = true, solid: enableSolid = false, svelte: enableSvelte = false, pnpm: enableCatalogs = false, typescript: enableTypeScript = isPackageExists("typescript"), unicorn: enableUnicorn = true, unocss: enableUnoCSS = false, vue: enableVue = VuePackages.some((i) => isPackageExists(i)) } = options;
2233
+ const { astro: enableAstro = false, autoRenamePlugins = true, componentExts = [], gitignore: enableGitignore = true, imports: enableImports = true, jsx: enableJsx = true, react: enableReact = false, regexp: enableRegexp = true, solid: enableSolid = false, svelte: enableSvelte = false, pnpm: enableCatalogs = false, typescript: enableTypeScript = isPackageExists("typescript"), unicorn: enableUnicorn = true, unocss: enableUnoCSS = false, vue: enableVue = VuePackages.some((i) => isPackageExists(i)) } = options;
2234
2234
  let isInEditor = options.isInEditor;
2235
2235
  if (isInEditor == null) {
2236
2236
  isInEditor = isInEditorEnv();
@@ -2256,6 +2256,10 @@ function vinicuncaESLint(options = {}, ...userConfigs) {
2256
2256
  isInEditor,
2257
2257
  overrides: getOverrides(options, "javascript")
2258
2258
  }), comments(), node(), jsdoc({ stylistic: stylisticOptions }), imports({ stylistic: stylisticOptions }), command(), perfectionist(), sonar());
2259
+ if (enableImports) configs$1.push(imports(enableImports === true ? { stylistic: stylisticOptions } : {
2260
+ stylistic: stylisticOptions,
2261
+ ...enableImports
2262
+ }));
2259
2263
  if (enableUnicorn) configs$1.push(unicorn(enableUnicorn === true ? {} : enableUnicorn));
2260
2264
  if (enableVue) componentExts.push("vue");
2261
2265
  if (enableJsx) configs$1.push(jsx());
@@ -2345,4 +2349,4 @@ function resolveSubOptions(options, key) {
2345
2349
  }
2346
2350
 
2347
2351
  //#endregion
2348
- export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, STYLISTIC_CONFIG_DEFAULTS, astro, combineConfigs, command, comments, defaultPluginRenaming, ensurePackages, formatters, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, node, parserPlain, perfectionist, pluginAntfu, pluginComments, pluginNode, pluginPerfectionist, pluginSonar, pluginUnicorn, pluginUnusedImports, pnpm, react, regexp, renamePluginInConfigs, renameRules, solid, sonar, sortPackageJson, sortTsconfig, stylistic, svelte, test, toArray, toml, typescript, unicorn, unocss, vinicuncaESLint, vue, yaml };
2352
+ export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, STYLISTIC_CONFIG_DEFAULTS, astro, combineConfigs, command, comments, defaultPluginRenaming, ensurePackages, formatters, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, node, parserPlain, perfectionist, pluginAntfu, pluginComments, pluginImportLite, pluginNode, pluginPerfectionist, pluginSonar, pluginUnicorn, pluginUnusedImports, pnpm, react, regexp, renamePluginInConfigs, renameRules, solid, sonar, sortPackageJson, sortTsconfig, stylistic, svelte, test, toArray, toml, typescript, unicorn, unocss, vinicuncaESLint, vue, yaml };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vinicunca/eslint-config",
3
3
  "type": "module",
4
- "version": "3.16.1",
4
+ "version": "3.18.0",
5
5
  "description": "Vinicunca ESLint config",
6
6
  "author": {
7
7
  "name": "praburangki",
@@ -112,30 +112,31 @@
112
112
  "@antfu/install-pkg": "^1.1.0",
113
113
  "@clack/prompts": "^0.11.0",
114
114
  "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
115
- "@eslint/markdown": "^6.5.0",
116
- "@stylistic/eslint-plugin": "^5.0.0-beta.1",
117
- "@typescript-eslint/eslint-plugin": "^8.33.1",
118
- "@typescript-eslint/parser": "^8.33.1",
119
- "@unocss/eslint-plugin": "66.0.0",
120
- "@vitest/eslint-plugin": "^1.2.1",
115
+ "@eslint/markdown": "^7.0.0",
116
+ "@stylistic/eslint-plugin": "^5.0.0-beta.4",
117
+ "@typescript-eslint/eslint-plugin": "^8.37.0",
118
+ "@typescript-eslint/parser": "^8.37.0",
119
+ "@unocss/eslint-plugin": "^66.3.3",
120
+ "@vitest/eslint-plugin": "^1.2.7",
121
121
  "eslint-config-flat-gitignore": "^2.1.0",
122
122
  "eslint-flat-config-utils": "^2.0.1",
123
123
  "eslint-merge-processors": "^2.0.0",
124
124
  "eslint-plugin-antfu": "^3.1.1",
125
125
  "eslint-plugin-command": "^3.2.1",
126
126
  "eslint-plugin-format": "^1.0.1",
127
- "eslint-plugin-jsdoc": "^50.7.1",
127
+ "eslint-plugin-import-lite": "^0.3.0",
128
+ "eslint-plugin-jsdoc": "^51.3.4",
128
129
  "eslint-plugin-jsonc": "^2.20.1",
129
- "eslint-plugin-n": "^17.19.0",
130
+ "eslint-plugin-n": "^17.21.0",
130
131
  "eslint-plugin-no-only-tests": "^3.3.0",
131
- "eslint-plugin-perfectionist": "^4.14.0",
132
- "eslint-plugin-pnpm": "^0.3.1",
133
- "eslint-plugin-regexp": "^2.8.0",
132
+ "eslint-plugin-perfectionist": "^4.15.0",
133
+ "eslint-plugin-pnpm": "^1.0.0",
134
+ "eslint-plugin-regexp": "^2.9.0",
134
135
  "eslint-plugin-sonarjs": "^3.0.2",
135
136
  "eslint-plugin-toml": "^0.12.0",
136
137
  "eslint-plugin-unicorn": "^59.0.1",
137
138
  "eslint-plugin-unused-imports": "^4.1.4",
138
- "eslint-plugin-vue": "^10.2.0",
139
+ "eslint-plugin-vue": "^10.3.0",
139
140
  "eslint-plugin-yml": "^1.18.0",
140
141
  "eslint-processor-vue-blocks": "^2.0.0",
141
142
  "globals": "^16.2.0",