@ntnyq/eslint-config 3.0.0-beta.1 → 3.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,30 +1,44 @@
1
+ import { FlatConfigComposer } from 'eslint-flat-config-utils';
2
+ import { FlatGitignoreOptions } from 'eslint-config-flat-gitignore';
3
+ import { ESLintPluginCommandOptions } from 'eslint-plugin-command/types';
1
4
  import { Linter } from 'eslint';
2
5
  export { default as tseslint } from 'typescript-eslint';
6
+ import * as vueEslintParser from 'vue-eslint-parser';
7
+ export { vueEslintParser as parserVue };
8
+ import * as tomlEslintParser from 'toml-eslint-parser';
9
+ export { tomlEslintParser as parserToml };
10
+ import * as yamlEslintParser from 'yaml-eslint-parser';
11
+ export { yamlEslintParser as parserYaml };
12
+ import * as jsoncEslintParser from 'jsonc-eslint-parser';
13
+ export { jsoncEslintParser as parserJsonc };
3
14
  import * as eslintPluginRegexp from 'eslint-plugin-regexp';
4
15
  export { eslintPluginRegexp as pluginRegexp };
5
16
  export { default as pluginNode } from 'eslint-plugin-n';
6
17
  export { default as pluginVue } from 'eslint-plugin-vue';
7
18
  export { default as pluginYaml } from 'eslint-plugin-yml';
8
19
  export { default as pluginToml } from 'eslint-plugin-toml';
9
- export { default as pluginJsonc } from 'eslint-plugin-jsonc';
20
+ export { default as pluginMarkdown } from '@eslint/markdown';
21
+ export { default as pluginAntfu } from 'eslint-plugin-antfu';
10
22
  export { default as pluginJsdoc } from 'eslint-plugin-jsdoc';
23
+ export { default as pluginJsonc } from 'eslint-plugin-jsonc';
11
24
  export { default as pluginUnoCSS } from '@unocss/eslint-plugin';
12
25
  export { default as pluginVitest } from '@vitest/eslint-plugin';
13
- export { default as pluginUnicorn } from 'eslint-plugin-unicorn';
14
26
  export { default as pluginImport } from 'eslint-plugin-import-x';
27
+ export { default as pluginUnicorn } from 'eslint-plugin-unicorn';
15
28
  export { default as pluginPrettier } from 'eslint-plugin-prettier';
16
- export { default as pluginMarkdown } from 'eslint-plugin-markdown';
17
29
  export { default as pluginPerfectionist } from 'eslint-plugin-perfectionist';
18
30
  export { default as pluginUnusedImports } from 'eslint-plugin-unused-imports';
19
31
  export { default as pluginComments } from '@eslint-community/eslint-plugin-eslint-comments';
20
- import * as tomlEslintParser from 'toml-eslint-parser';
21
- export { tomlEslintParser as parserToml };
22
- import * as yamlEslintParser from 'yaml-eslint-parser';
23
- export { yamlEslintParser as parserYaml };
24
- import * as vueEslintParser from 'vue-eslint-parser';
25
- export { vueEslintParser as parserVue };
26
- import * as jsoncEslintParser from 'jsonc-eslint-parser';
27
- export { jsoncEslintParser as parserJsonc };
32
+
33
+ /**
34
+ * @file Type Utils
35
+ */
36
+ type Arrayable<T> = T | T[];
37
+ type Awaitable<T> = T | Promise<T>;
38
+ type InteropModuleDefault<T> = T extends {
39
+ default: infer U;
40
+ } ? U : T;
41
+ type ResolvedOptions<T> = T extends boolean ? never : NonNullable<T>;
28
42
 
29
43
  interface RuleOptions {
30
44
  /**
@@ -217,6 +231,11 @@ interface RuleOptions {
217
231
  * @see https://typescript-eslint.io/rules/no-confusing-void-expression
218
232
  */
219
233
  '@typescript-eslint/no-confusing-void-expression'?: Linter.RuleEntry<TypescriptEslintNoConfusingVoidExpression>;
234
+ /**
235
+ * Disallow using code marked as `@deprecated`
236
+ * @see https://typescript-eslint.io/rules/no-deprecated
237
+ */
238
+ '@typescript-eslint/no-deprecated'?: Linter.RuleEntry<[]>;
220
239
  /**
221
240
  * Disallow duplicate class members
222
241
  * @see https://typescript-eslint.io/rules/no-dupe-class-members
@@ -704,10 +723,60 @@ interface RuleOptions {
704
723
  */
705
724
  '@typescript-eslint/unified-signatures'?: Linter.RuleEntry<TypescriptEslintUnifiedSignatures>;
706
725
  /**
707
- * Enforce typing arguments in `.catch()` callbacks as `unknown`
726
+ * Enforce typing arguments in Promise rejection callbacks as `unknown`
708
727
  * @see https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable
709
728
  */
710
729
  '@typescript-eslint/use-unknown-in-catch-callback-variable'?: Linter.RuleEntry<[]>;
730
+ /**
731
+ * Having line breaks styles to object, array and named imports
732
+ * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/consistent-chaining.md
733
+ */
734
+ 'antfu/consistent-chaining'?: Linter.RuleEntry<AntfuConsistentChaining>;
735
+ /**
736
+ * Having line breaks styles to object, array and named imports
737
+ * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/consistent-list-newline.md
738
+ */
739
+ 'antfu/consistent-list-newline'?: Linter.RuleEntry<AntfuConsistentListNewline>;
740
+ /**
741
+ * Enforce Anthony's style of curly bracket
742
+ * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/curly.md
743
+ */
744
+ 'antfu/curly'?: Linter.RuleEntry<[]>;
745
+ /**
746
+ * Newline after if
747
+ * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/if-newline.md
748
+ */
749
+ 'antfu/if-newline'?: Linter.RuleEntry<[]>;
750
+ /**
751
+ * Fix duplication in imports
752
+ * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/import-dedupe.md
753
+ */
754
+ 'antfu/import-dedupe'?: Linter.RuleEntry<[]>;
755
+ /**
756
+ * Enforce consistent indentation in `unindent` template tag
757
+ * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/indent-unindent.md
758
+ */
759
+ 'antfu/indent-unindent'?: Linter.RuleEntry<AntfuIndentUnindent>;
760
+ /**
761
+ * Prevent importing modules in `dist` folder
762
+ * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-import-dist.test.ts
763
+ */
764
+ 'antfu/no-import-dist'?: Linter.RuleEntry<[]>;
765
+ /**
766
+ * Prevent importing modules in `node_modules` folder by relative or absolute path
767
+ * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-import-node-modules-by-path.test.ts
768
+ */
769
+ 'antfu/no-import-node-modules-by-path'?: Linter.RuleEntry<[]>;
770
+ /**
771
+ * Do not use `exports =`
772
+ * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-ts-export-equal.test.ts
773
+ */
774
+ 'antfu/no-ts-export-equal'?: Linter.RuleEntry<[]>;
775
+ /**
776
+ * Enforce top-level functions to be declared with function keyword
777
+ * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/top-level-function.md
778
+ */
779
+ 'antfu/top-level-function'?: Linter.RuleEntry<[]>;
711
780
  /**
712
781
  * Comment-as-command for one-off codemod with ESLint
713
782
  * @see https://github.com/antfu/eslint-plugin-command
@@ -715,228 +784,233 @@ interface RuleOptions {
715
784
  'command/command'?: Linter.RuleEntry<[]>;
716
785
  /**
717
786
  * Enforce or ban the use of inline type-only markers for named imports.
718
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/consistent-type-specifier-style.md
787
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/consistent-type-specifier-style.md
719
788
  */
720
789
  'import/consistent-type-specifier-style'?: Linter.RuleEntry<ImportConsistentTypeSpecifierStyle>;
721
790
  /**
722
791
  * Ensure a default export is present, given a default import.
723
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/default.md
792
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/default.md
724
793
  */
725
794
  'import/default'?: Linter.RuleEntry<[]>;
726
795
  /**
727
796
  * Enforce a leading comment with the webpackChunkName for dynamic imports.
728
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/dynamic-import-chunkname.md
797
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/dynamic-import-chunkname.md
729
798
  */
730
799
  'import/dynamic-import-chunkname'?: Linter.RuleEntry<ImportDynamicImportChunkname>;
731
800
  /**
732
801
  * Forbid any invalid exports, i.e. re-export of the same name.
733
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/export.md
802
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/export.md
734
803
  */
735
804
  'import/export'?: Linter.RuleEntry<[]>;
736
805
  /**
737
806
  * Ensure all exports appear after other statements.
738
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/exports-last.md
807
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/exports-last.md
739
808
  */
740
809
  'import/exports-last'?: Linter.RuleEntry<[]>;
741
810
  /**
742
811
  * Ensure consistent use of file extension within the import path.
743
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/extensions.md
812
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/extensions.md
744
813
  */
745
814
  'import/extensions'?: Linter.RuleEntry<ImportExtensions>;
746
815
  /**
747
816
  * Ensure all imports appear before other statements.
748
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/first.md
817
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/first.md
749
818
  */
750
819
  'import/first'?: Linter.RuleEntry<ImportFirst>;
751
820
  /**
752
821
  * Prefer named exports to be grouped together in a single export declaration.
753
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/group-exports.md
822
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/group-exports.md
754
823
  */
755
824
  'import/group-exports'?: Linter.RuleEntry<[]>;
756
825
  /**
757
826
  * Replaced by `import-x/first`.
758
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/7b25c1cb95ee18acc1531002fd343e1e6031f9ed/docs/rules/imports-first.md
827
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/imports-first.md
759
828
  * @deprecated
760
829
  */
761
830
  'import/imports-first'?: Linter.RuleEntry<ImportImportsFirst>;
762
831
  /**
763
832
  * Enforce the maximum number of dependencies a module can have.
764
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/max-dependencies.md
833
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/max-dependencies.md
765
834
  */
766
835
  'import/max-dependencies'?: Linter.RuleEntry<ImportMaxDependencies>;
767
836
  /**
768
837
  * Ensure named imports correspond to a named export in the remote file.
769
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/named.md
838
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/named.md
770
839
  */
771
840
  'import/named'?: Linter.RuleEntry<ImportNamed>;
772
841
  /**
773
842
  * Ensure imported namespaces contain dereferenced properties as they are dereferenced.
774
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/namespace.md
843
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/namespace.md
775
844
  */
776
845
  'import/namespace'?: Linter.RuleEntry<ImportNamespace>;
777
846
  /**
778
847
  * Enforce a newline after import statements.
779
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/newline-after-import.md
848
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/newline-after-import.md
780
849
  */
781
850
  'import/newline-after-import'?: Linter.RuleEntry<ImportNewlineAfterImport>;
782
851
  /**
783
852
  * Forbid import of modules using absolute paths.
784
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-absolute-path.md
853
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-absolute-path.md
785
854
  */
786
855
  'import/no-absolute-path'?: Linter.RuleEntry<ImportNoAbsolutePath>;
787
856
  /**
788
857
  * Forbid AMD `require` and `define` calls.
789
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-amd.md
858
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-amd.md
790
859
  */
791
860
  'import/no-amd'?: Linter.RuleEntry<[]>;
792
861
  /**
793
862
  * Forbid anonymous values as default exports.
794
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-anonymous-default-export.md
863
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-anonymous-default-export.md
795
864
  */
796
865
  'import/no-anonymous-default-export'?: Linter.RuleEntry<ImportNoAnonymousDefaultExport>;
797
866
  /**
798
867
  * Forbid CommonJS `require` calls and `module.exports` or `exports.*`.
799
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-commonjs.md
868
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-commonjs.md
800
869
  */
801
870
  'import/no-commonjs'?: Linter.RuleEntry<ImportNoCommonjs>;
802
871
  /**
803
872
  * Forbid a module from importing a module with a dependency path back to itself.
804
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-cycle.md
873
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-cycle.md
805
874
  */
806
875
  'import/no-cycle'?: Linter.RuleEntry<ImportNoCycle>;
807
876
  /**
808
877
  * Forbid default exports.
809
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-default-export.md
878
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-default-export.md
810
879
  */
811
880
  'import/no-default-export'?: Linter.RuleEntry<[]>;
812
881
  /**
813
882
  * Forbid imported names marked with `@deprecated` documentation tag.
814
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-deprecated.md
883
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-deprecated.md
815
884
  */
816
885
  'import/no-deprecated'?: Linter.RuleEntry<[]>;
817
886
  /**
818
887
  * Forbid repeated import of the same module in multiple places.
819
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-duplicates.md
888
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-duplicates.md
820
889
  */
821
890
  'import/no-duplicates'?: Linter.RuleEntry<ImportNoDuplicates>;
822
891
  /**
823
892
  * Forbid `require()` calls with expressions.
824
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-dynamic-require.md
893
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-dynamic-require.md
825
894
  */
826
895
  'import/no-dynamic-require'?: Linter.RuleEntry<ImportNoDynamicRequire>;
827
896
  /**
828
897
  * Forbid empty named import blocks.
829
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-empty-named-blocks.md
898
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-empty-named-blocks.md
830
899
  */
831
900
  'import/no-empty-named-blocks'?: Linter.RuleEntry<[]>;
832
901
  /**
833
902
  * Forbid the use of extraneous packages.
834
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-extraneous-dependencies.md
903
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-extraneous-dependencies.md
835
904
  */
836
905
  'import/no-extraneous-dependencies'?: Linter.RuleEntry<ImportNoExtraneousDependencies>;
837
906
  /**
838
907
  * Forbid import statements with CommonJS module.exports.
839
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-import-module-exports.md
908
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-import-module-exports.md
840
909
  */
841
910
  'import/no-import-module-exports'?: Linter.RuleEntry<ImportNoImportModuleExports>;
842
911
  /**
843
912
  * Forbid importing the submodules of other modules.
844
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-internal-modules.md
913
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-internal-modules.md
845
914
  */
846
915
  'import/no-internal-modules'?: Linter.RuleEntry<ImportNoInternalModules>;
847
916
  /**
848
917
  * Forbid the use of mutable exports with `var` or `let`.
849
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-mutable-exports.md
918
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-mutable-exports.md
850
919
  */
851
920
  'import/no-mutable-exports'?: Linter.RuleEntry<[]>;
852
921
  /**
853
922
  * Forbid use of exported name as identifier of default export.
854
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-named-as-default.md
923
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-named-as-default.md
855
924
  */
856
925
  'import/no-named-as-default'?: Linter.RuleEntry<[]>;
857
926
  /**
858
927
  * Forbid use of exported name as property of default export.
859
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-named-as-default-member.md
928
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-named-as-default-member.md
860
929
  */
861
930
  'import/no-named-as-default-member'?: Linter.RuleEntry<[]>;
862
931
  /**
863
932
  * Forbid named default exports.
864
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-named-default.md
933
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-named-default.md
865
934
  */
866
935
  'import/no-named-default'?: Linter.RuleEntry<[]>;
867
936
  /**
868
937
  * Forbid named exports.
869
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-named-export.md
938
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-named-export.md
870
939
  */
871
940
  'import/no-named-export'?: Linter.RuleEntry<[]>;
872
941
  /**
873
942
  * Forbid namespace (a.k.a. "wildcard" `*`) imports.
874
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-namespace.md
943
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-namespace.md
875
944
  */
876
945
  'import/no-namespace'?: Linter.RuleEntry<ImportNoNamespace>;
877
946
  /**
878
947
  * Forbid Node.js builtin modules.
879
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-nodejs-modules.md
948
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-nodejs-modules.md
880
949
  */
881
950
  'import/no-nodejs-modules'?: Linter.RuleEntry<ImportNoNodejsModules>;
882
951
  /**
883
952
  * Forbid importing packages through relative paths.
884
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-relative-packages.md
953
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-relative-packages.md
885
954
  */
886
955
  'import/no-relative-packages'?: Linter.RuleEntry<ImportNoRelativePackages>;
887
956
  /**
888
957
  * Forbid importing modules from parent directories.
889
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-relative-parent-imports.md
958
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-relative-parent-imports.md
890
959
  */
891
960
  'import/no-relative-parent-imports'?: Linter.RuleEntry<ImportNoRelativeParentImports>;
961
+ /**
962
+ * Forbid importing a default export by a different name.
963
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-rename-default.md
964
+ */
965
+ 'import/no-rename-default'?: Linter.RuleEntry<ImportNoRenameDefault>;
892
966
  /**
893
967
  * Enforce which files can be imported in a given folder.
894
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-restricted-paths.md
968
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-restricted-paths.md
895
969
  */
896
970
  'import/no-restricted-paths'?: Linter.RuleEntry<ImportNoRestrictedPaths>;
897
971
  /**
898
972
  * Forbid a module from importing itself.
899
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-self-import.md
973
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-self-import.md
900
974
  */
901
975
  'import/no-self-import'?: Linter.RuleEntry<[]>;
902
976
  /**
903
977
  * Forbid unassigned imports.
904
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-unassigned-import.md
978
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-unassigned-import.md
905
979
  */
906
980
  'import/no-unassigned-import'?: Linter.RuleEntry<ImportNoUnassignedImport>;
907
981
  /**
908
982
  * Ensure imports point to a file/module that can be resolved.
909
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-unresolved.md
983
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-unresolved.md
910
984
  */
911
985
  'import/no-unresolved'?: Linter.RuleEntry<ImportNoUnresolved>;
912
986
  /**
913
987
  * Forbid modules without exports, or exports without matching import in another module.
914
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-unused-modules.md
988
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-unused-modules.md
915
989
  */
916
990
  'import/no-unused-modules'?: Linter.RuleEntry<ImportNoUnusedModules>;
917
991
  /**
918
992
  * Forbid unnecessary path segments in import and require statements.
919
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-useless-path-segments.md
993
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-useless-path-segments.md
920
994
  */
921
995
  'import/no-useless-path-segments'?: Linter.RuleEntry<ImportNoUselessPathSegments>;
922
996
  /**
923
997
  * Forbid webpack loader syntax in imports.
924
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/no-webpack-loader-syntax.md
998
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/no-webpack-loader-syntax.md
925
999
  */
926
1000
  'import/no-webpack-loader-syntax'?: Linter.RuleEntry<[]>;
927
1001
  /**
928
1002
  * Enforce a convention in module import order.
929
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/order.md
1003
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/order.md
930
1004
  */
931
1005
  'import/order'?: Linter.RuleEntry<ImportOrder>;
932
1006
  /**
933
1007
  * Prefer a default export if module exports a single name or multiple names.
934
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/prefer-default-export.md
1008
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/prefer-default-export.md
935
1009
  */
936
1010
  'import/prefer-default-export'?: Linter.RuleEntry<ImportPreferDefaultExport>;
937
1011
  /**
938
1012
  * Forbid potentially ambiguous parse goal (`script` vs. `module`).
939
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v3.1.0/docs/rules/unambiguous.md
1013
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.2.1/docs/rules/unambiguous.md
940
1014
  */
941
1015
  'import/unambiguous'?: Linter.RuleEntry<[]>;
942
1016
  /**
@@ -1442,6 +1516,34 @@ interface RuleOptions {
1442
1516
  * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/vue-custom-block/no-parsing-error.html
1443
1517
  */
1444
1518
  'jsonc/vue-custom-block/no-parsing-error'?: Linter.RuleEntry<[]>;
1519
+ /**
1520
+ * Require languages for fenced code blocks.
1521
+ */
1522
+ 'markdown/fenced-code-language'?: Linter.RuleEntry<MarkdownFencedCodeLanguage>;
1523
+ /**
1524
+ * Enforce heading levels increment by one.
1525
+ */
1526
+ 'markdown/heading-increment'?: Linter.RuleEntry<[]>;
1527
+ /**
1528
+ * Disallow duplicate headings in the same document.
1529
+ */
1530
+ 'markdown/no-duplicate-headings'?: Linter.RuleEntry<[]>;
1531
+ /**
1532
+ * Disallow empty links.
1533
+ */
1534
+ 'markdown/no-empty-links'?: Linter.RuleEntry<[]>;
1535
+ /**
1536
+ * Disallow HTML tags.
1537
+ */
1538
+ 'markdown/no-html'?: Linter.RuleEntry<MarkdownNoHtml>;
1539
+ /**
1540
+ * Disallow invalid label references.
1541
+ */
1542
+ 'markdown/no-invalid-label-refs'?: Linter.RuleEntry<[]>;
1543
+ /**
1544
+ * Disallow missing label references.
1545
+ */
1546
+ 'markdown/no-missing-label-refs'?: Linter.RuleEntry<[]>;
1445
1547
  /**
1446
1548
  * require `return` statements after callbacks
1447
1549
  * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/callback-return.md
@@ -1714,6 +1816,11 @@ interface RuleOptions {
1714
1816
  * @see https://perfectionist.dev/rules/sort-objects
1715
1817
  */
1716
1818
  'perfectionist/sort-objects'?: Linter.RuleEntry<PerfectionistSortObjects>;
1819
+ /**
1820
+ * Enforce sorted sets.
1821
+ * @see https://perfectionist.dev/rules/sort-sets
1822
+ */
1823
+ 'perfectionist/sort-sets'?: Linter.RuleEntry<PerfectionistSortSets>;
1717
1824
  /**
1718
1825
  * Enforce sorted Svelte attributes.
1719
1826
  * @see https://perfectionist.dev/rules/sort-svelte-attributes
@@ -3086,7 +3193,7 @@ interface RuleOptions {
3086
3193
  */
3087
3194
  'vue/define-emits-declaration'?: Linter.RuleEntry<VueDefineEmitsDeclaration>;
3088
3195
  /**
3089
- * enforce order of `defineEmits` and `defineProps` compiler macros
3196
+ * enforce order of compiler macros (`defineProps`, `defineEmits`, etc.)
3090
3197
  * @see https://eslint.vuejs.org/rules/define-macros-order.html
3091
3198
  */
3092
3199
  'vue/define-macros-order'?: Linter.RuleEntry<VueDefineMacrosOrder>;
@@ -3215,6 +3322,16 @@ interface RuleOptions {
3215
3322
  * @see https://eslint.vuejs.org/rules/max-lines-per-block.html
3216
3323
  */
3217
3324
  'vue/max-lines-per-block'?: Linter.RuleEntry<VueMaxLinesPerBlock>;
3325
+ /**
3326
+ * enforce maximum number of props in Vue component
3327
+ * @see https://eslint.vuejs.org/rules/max-props.html
3328
+ */
3329
+ 'vue/max-props'?: Linter.RuleEntry<VueMaxProps>;
3330
+ /**
3331
+ * enforce maximum depth of template
3332
+ * @see https://eslint.vuejs.org/rules/max-template-depth.html
3333
+ */
3334
+ 'vue/max-template-depth'?: Linter.RuleEntry<VueMaxTemplateDepth>;
3218
3335
  /**
3219
3336
  * require component names to be always multi-word
3220
3337
  * @see https://eslint.vuejs.org/rules/multi-word-component-names.html
@@ -3271,7 +3388,7 @@ interface RuleOptions {
3271
3388
  */
3272
3389
  'vue/no-child-content'?: Linter.RuleEntry<VueNoChildContent>;
3273
3390
  /**
3274
- * disallow accessing computed properties in `data`.
3391
+ * disallow accessing computed properties in `data`
3275
3392
  * @see https://eslint.vuejs.org/rules/no-computed-properties-in-data.html
3276
3393
  */
3277
3394
  'vue/no-computed-properties-in-data'?: Linter.RuleEntry<[]>;
@@ -3819,7 +3936,7 @@ interface RuleOptions {
3819
3936
  */
3820
3937
  'vue/padding-lines-in-component-definition'?: Linter.RuleEntry<VuePaddingLinesInComponentDefinition>;
3821
3938
  /**
3822
- * enforce use of `defineOptions` instead of default export.
3939
+ * enforce use of `defineOptions` instead of default export
3823
3940
  * @see https://eslint.vuejs.org/rules/prefer-define-options.html
3824
3941
  */
3825
3942
  'vue/prefer-define-options'?: Linter.RuleEntry<[]>;
@@ -3863,6 +3980,11 @@ interface RuleOptions {
3863
3980
  * @see https://eslint.vuejs.org/rules/require-component-is.html
3864
3981
  */
3865
3982
  'vue/require-component-is'?: Linter.RuleEntry<[]>;
3983
+ /**
3984
+ * require components to be the default export
3985
+ * @see https://eslint.vuejs.org/rules/require-default-export.html
3986
+ */
3987
+ 'vue/require-default-export'?: Linter.RuleEntry<[]>;
3866
3988
  /**
3867
3989
  * require default value for props
3868
3990
  * @see https://eslint.vuejs.org/rules/require-default-prop.html
@@ -3932,7 +4054,7 @@ interface RuleOptions {
3932
4054
  * require control the display of the content inside `<transition>`
3933
4055
  * @see https://eslint.vuejs.org/rules/require-toggle-inside-transition.html
3934
4056
  */
3935
- 'vue/require-toggle-inside-transition'?: Linter.RuleEntry<[]>;
4057
+ 'vue/require-toggle-inside-transition'?: Linter.RuleEntry<VueRequireToggleInsideTransition>;
3936
4058
  /**
3937
4059
  * enforce adding type declarations to object props
3938
4060
  * @see https://eslint.vuejs.org/rules/require-typed-object-prop.html
@@ -4448,8 +4570,8 @@ type TypescriptEslintInitDeclarations = ([] | ["always"] | [] | ["never"] | [
4448
4570
  ]);
4449
4571
  type TypescriptEslintMaxParams = [] | [
4450
4572
  {
4451
- maximum?: number;
4452
4573
  max?: number;
4574
+ maximum?: number;
4453
4575
  countVoidThis?: boolean;
4454
4576
  }
4455
4577
  ];
@@ -5045,12 +5167,12 @@ type TypescriptEslintNoUnusedVars = [] | [
5045
5167
  vars?: ("all" | "local");
5046
5168
  varsIgnorePattern?: string;
5047
5169
  args?: ("all" | "after-used" | "none");
5048
- ignoreRestSiblings?: boolean;
5049
5170
  argsIgnorePattern?: string;
5050
5171
  caughtErrors?: ("all" | "none");
5051
5172
  caughtErrorsIgnorePattern?: string;
5052
5173
  destructuredArrayIgnorePattern?: string;
5053
5174
  ignoreClassWithStaticInitBlock?: boolean;
5175
+ ignoreRestSiblings?: boolean;
5054
5176
  reportUsedIgnorePattern?: boolean;
5055
5177
  })
5056
5178
  ];
@@ -5218,7 +5340,7 @@ type TypescriptEslintRestrictTemplateExpressions = [] | [
5218
5340
  allowNever?: boolean;
5219
5341
  }
5220
5342
  ];
5221
- type TypescriptEslintReturnAwait = [] | [("in-try-catch" | "always" | "never" | "error-handling-correctness-only")];
5343
+ type TypescriptEslintReturnAwait = [] | [(("always" | "error-handling-correctness-only" | "in-try-catch" | "never") & string)];
5222
5344
  type TypescriptEslintSortTypeConstituents = [] | [
5223
5345
  {
5224
5346
  checkIntersections?: boolean;
@@ -5275,6 +5397,41 @@ type TypescriptEslintUnifiedSignatures = [] | [
5275
5397
  ignoreDifferentlyNamedParameters?: boolean;
5276
5398
  }
5277
5399
  ];
5400
+ type AntfuConsistentChaining = [] | [
5401
+ {
5402
+ allowLeadingPropertyAccess?: boolean;
5403
+ }
5404
+ ];
5405
+ type AntfuConsistentListNewline = [] | [
5406
+ {
5407
+ ArrayExpression?: boolean;
5408
+ ArrayPattern?: boolean;
5409
+ ArrowFunctionExpression?: boolean;
5410
+ CallExpression?: boolean;
5411
+ ExportNamedDeclaration?: boolean;
5412
+ FunctionDeclaration?: boolean;
5413
+ FunctionExpression?: boolean;
5414
+ ImportDeclaration?: boolean;
5415
+ JSONArrayExpression?: boolean;
5416
+ JSONObjectExpression?: boolean;
5417
+ JSXOpeningElement?: boolean;
5418
+ NewExpression?: boolean;
5419
+ ObjectExpression?: boolean;
5420
+ ObjectPattern?: boolean;
5421
+ TSFunctionType?: boolean;
5422
+ TSInterfaceDeclaration?: boolean;
5423
+ TSTupleType?: boolean;
5424
+ TSTypeLiteral?: boolean;
5425
+ TSTypeParameterDeclaration?: boolean;
5426
+ TSTypeParameterInstantiation?: boolean;
5427
+ }
5428
+ ];
5429
+ type AntfuIndentUnindent = [] | [
5430
+ {
5431
+ indent?: number;
5432
+ tags?: string[];
5433
+ }
5434
+ ];
5278
5435
  type ImportConsistentTypeSpecifierStyle = [] | [("prefer-inline" | "prefer-top-level")];
5279
5436
  type ImportDynamicImportChunkname = [] | [
5280
5437
  {
@@ -5394,6 +5551,7 @@ type ImportNoExtraneousDependencies = [] | [
5394
5551
  packageDir?: (string | unknown[]);
5395
5552
  includeInternal?: boolean;
5396
5553
  includeTypes?: boolean;
5554
+ whitelist?: unknown[];
5397
5555
  }
5398
5556
  ];
5399
5557
  type ImportNoImportModuleExports = [] | [
@@ -5435,6 +5593,12 @@ type ImportNoRelativeParentImports = [] | [
5435
5593
  ignore?: [string, ...(string)[]];
5436
5594
  }
5437
5595
  ];
5596
+ type ImportNoRenameDefault = [] | [
5597
+ {
5598
+ commonjs?: boolean;
5599
+ preventRenamingBindings?: boolean;
5600
+ }
5601
+ ];
5438
5602
  type ImportNoRestrictedPaths = [] | [
5439
5603
  {
5440
5604
  zones?: [
@@ -6313,6 +6477,16 @@ type JsoncSpaceUnaryOps = [] | [
6313
6477
  };
6314
6478
  }
6315
6479
  ];
6480
+ type MarkdownFencedCodeLanguage = [] | [
6481
+ {
6482
+ required?: string[];
6483
+ }
6484
+ ];
6485
+ type MarkdownNoHtml = [] | [
6486
+ {
6487
+ allowed?: string[];
6488
+ }
6489
+ ];
6316
6490
  type NodeCallbackReturn = [] | [string[]];
6317
6491
  type NodeExportsStyle = [] | [("module.exports" | "exports")] | [
6318
6492
  ("module.exports" | "exports"),
@@ -6590,9 +6764,27 @@ type PerfectionistSortClasses = [] | [
6590
6764
  ignoreCase?: boolean;
6591
6765
  partitionByComment?: (string[] | boolean | string);
6592
6766
  groups?: (string | string[])[];
6593
- customGroups?: {
6767
+ customGroups?: ({
6594
6768
  [k: string]: (string | string[]) | undefined;
6595
- };
6769
+ } | ({
6770
+ groupName?: string;
6771
+ type?: ("alphabetical" | "line-length" | "natural" | "unsorted");
6772
+ order?: ("desc" | "asc");
6773
+ anyOf?: {
6774
+ selector?: ("accessor-property" | "index-signature" | "constructor" | "static-block" | "get-method" | "set-method" | "function-property" | "property" | "method");
6775
+ modifiers?: ("protected" | "private" | "public" | "static" | "abstract" | "override" | "readonly" | "decorated" | "declare" | "optional")[];
6776
+ elementNamePattern?: string;
6777
+ decoratorNamePattern?: string;
6778
+ }[];
6779
+ } | {
6780
+ groupName?: string;
6781
+ type?: ("alphabetical" | "line-length" | "natural" | "unsorted");
6782
+ order?: ("desc" | "asc");
6783
+ selector?: ("accessor-property" | "index-signature" | "constructor" | "static-block" | "get-method" | "set-method" | "function-property" | "property" | "method");
6784
+ modifiers?: ("protected" | "private" | "public" | "static" | "abstract" | "override" | "readonly" | "decorated" | "declare" | "optional")[];
6785
+ elementNamePattern?: string;
6786
+ decoratorNamePattern?: string;
6787
+ })[]);
6596
6788
  }
6597
6789
  ];
6598
6790
  type PerfectionistSortEnums = [] | [
@@ -6618,6 +6810,7 @@ type _PerfectionistSortImportsSortImports = (_PerfectionistSortImportsMaxLineLen
6618
6810
  order?: ("asc" | "desc");
6619
6811
  ignoreCase?: boolean;
6620
6812
  internalPattern?: string[];
6813
+ sortSideEffects?: boolean;
6621
6814
  newlinesBetween?: ("ignore" | "always" | "never");
6622
6815
  maxLineLength?: number;
6623
6816
  groups?: (string | string[])[];
@@ -6725,6 +6918,14 @@ type PerfectionistSortObjects = [] | [
6725
6918
  };
6726
6919
  }
6727
6920
  ];
6921
+ type PerfectionistSortSets = [] | [
6922
+ {
6923
+ type?: ("alphabetical" | "natural" | "line-length");
6924
+ order?: ("asc" | "desc");
6925
+ ignoreCase?: boolean;
6926
+ groupKind?: ("mixed" | "literals-first" | "spreads-first");
6927
+ }
6928
+ ];
6728
6929
  type PerfectionistSortSvelteAttributes = [] | [
6729
6930
  {
6730
6931
  type?: ("alphabetical" | "natural" | "line-length");
@@ -7440,7 +7641,7 @@ type VueCustomEventNameCasing = ([] | [("kebab-case" | "camelCase")] | [
7440
7641
  type VueDefineEmitsDeclaration = [] | [("type-based" | "type-literal" | "runtime")];
7441
7642
  type VueDefineMacrosOrder = [] | [
7442
7643
  {
7443
- order?: ("defineEmits" | "defineProps" | "defineOptions" | "defineSlots" | "defineModel")[];
7644
+ order?: string[];
7444
7645
  defineExposeLast?: boolean;
7445
7646
  }
7446
7647
  ];
@@ -8002,6 +8203,16 @@ type VueMaxLinesPerBlock = [] | [
8002
8203
  skipBlankLines?: boolean;
8003
8204
  }
8004
8205
  ];
8206
+ type VueMaxProps = [] | [
8207
+ {
8208
+ maxProps?: number;
8209
+ }
8210
+ ];
8211
+ type VueMaxTemplateDepth = [] | [
8212
+ {
8213
+ maxDepth?: number;
8214
+ }
8215
+ ];
8005
8216
  type VueMultiWordComponentNames = [] | [
8006
8217
  {
8007
8218
  ignores?: string[];
@@ -8436,6 +8647,11 @@ type VueRequirePropComment = [] | [
8436
8647
  type?: ("JSDoc" | "line" | "block" | "any");
8437
8648
  }
8438
8649
  ];
8650
+ type VueRequireToggleInsideTransition = [] | [
8651
+ {
8652
+ additionalDirectives?: string[];
8653
+ }
8654
+ ];
8439
8655
  type VueReturnInComputedProperty = [] | [
8440
8656
  {
8441
8657
  treatUndefinedAsUnspecified?: boolean;
@@ -8773,53 +8989,21 @@ type YmlSpacedComment = [] | [("always" | "never")] | [
8773
8989
  markers?: string[];
8774
8990
  }
8775
8991
  ];
8776
- type ConfigName = 'ntnyq/command' | 'ntnyq/eslint-comments' | 'ntnyq/ignores' | 'ntnyq/imports' | 'ntnyq/js/recommended' | 'ntnyq/js/core' | 'ntnyq/js/script' | 'ntnyq/js/test' | 'ntnyq/jsdoc' | 'ntnyq/jsonc' | 'ntnyq/jsx' | 'markdown/recommended/plugin' | 'markdown/recommended/processor' | 'markdown/recommended/code-blocks' | 'ntnyq/markdown/extensions' | 'ntnyq/node' | 'ntnyq/prettier' | 'ntnyq/prettier/disabled' | 'ntnyq/regexp' | 'ntnyq/perfectionist' | 'ntnyq/sort/package-json' | 'ntnyq/sort/tsconfig' | 'typescript-eslint/base' | 'typescript-eslint/eslint-recommended' | 'typescript-eslint/recommended' | 'ntnyq/ts/core' | 'ntnyq/ts/dts' | 'ntnyq/ts/test' | 'ntnyq/ts/cjs' | 'ntnyq/unicorn' | 'ntnyq/unocss' | 'typescript-eslint/base' | 'typescript-eslint/eslint-recommended' | 'typescript-eslint/recommended' | 'ntnyq/ts/core' | 'ntnyq/vue/ts' | 'ntnyq/vue/core' | 'ntnyq/yaml' | 'ntnyq/toml';
8992
+ type ConfigName = 'ntnyq/antfu' | 'ntnyq/command' | 'ntnyq/eslint-comments' | 'ntnyq/ignores' | 'ntnyq/imports' | 'ntnyq/gitignore' | 'ntnyq/js/recommended' | 'ntnyq/js/core' | 'ntnyq/js/scripts' | 'ntnyq/js/test' | 'ntnyq/jsdoc' | 'ntnyq/jsonc' | 'ntnyq/jsx' | 'ntnyq/markdown/recommended/plugin' | 'ntnyq/markdown/recommended/processor' | 'ntnyq/markdown/recommended/code-blocks' | 'ntnyq/markdown/disabled/code-blocks' | 'ntnyq/node' | 'ntnyq/prettier' | 'ntnyq/prettier/disabled' | 'ntnyq/regexp' | 'ntnyq/perfectionist' | 'ntnyq/sort/package-json' | 'ntnyq/sort/tsconfig' | 'typescript-eslint/base' | 'typescript-eslint/eslint-recommended' | 'typescript-eslint/recommended' | 'ntnyq/ts/core' | 'ntnyq/ts/dts' | 'ntnyq/ts/test' | 'ntnyq/ts/cjs' | 'ntnyq/unicorn' | 'ntnyq/unocss' | 'typescript-eslint/base' | 'typescript-eslint/eslint-recommended' | 'typescript-eslint/recommended' | 'ntnyq/ts/core' | 'ntnyq/vue/ts' | 'ntnyq/vue/core' | 'ntnyq/yaml' | 'ntnyq/toml';
8777
8993
 
8778
- /**
8779
- * Parser options
8780
- */
8781
- type ParserOptions = Linter.ParserOptions;
8782
- /**
8783
- * Rules
8784
- */
8785
- type Rules = RuleOptions;
8786
8994
  /**
8787
8995
  * Typed flat config item
8788
8996
  */
8789
- type TypedConfigItem = Omit<Linter.Config<Linter.RulesRecord & Rules>, 'plugins'> & {
8997
+ type TypedConfigItem = Omit<Linter.Config<Linter.RulesRecord & RuleOptions>, 'plugins'> & {
8790
8998
  /**
8791
8999
  * Most plugin are not properly typed
8792
9000
  */
8793
9001
  plugins?: Record<string, any>;
8794
9002
  };
8795
9003
  /**
8796
- * Refined `Linter.Config` type
8797
- */
8798
- type LinterConfig = TypedConfigItem;
8799
- /**
8800
- * ESLint rules
8801
- */
8802
- type RuleRecord = Linter.RulesRecord;
8803
- /**
8804
- * ESLint rules entry
8805
- */
8806
- type RuleRecordEntry = Record<string, RuleRecord>;
8807
-
8808
- /**
8809
- * @file Type Utils
9004
+ * Parser options
8810
9005
  */
8811
-
8812
- type Arrayable<T> = T | T[];
8813
- type Awaitable<T> = T | Promise<T>;
8814
- type InteropModuleDefault<T> = T extends {
8815
- default: infer U;
8816
- } ? U : T;
8817
- interface OverridesOptions<Rules = TypedConfigItem['rules']> {
8818
- files?: TypedConfigItem['files'];
8819
- rules?: Rules;
8820
- parserOptions?: ParserOptions;
8821
- }
8822
- type ResolvedOptions<T> = T extends boolean ? never : NonNullable<T>;
9006
+ type ParserOptions = Linter.ParserOptions;
8823
9007
 
8824
9008
  /**
8825
9009
  * @file Config options
@@ -8838,6 +9022,8 @@ interface OptionsOverrides<Rules extends TypedConfigItem['rules'] = TypedConfigI
8838
9022
  overrides?: Rules;
8839
9023
  }
8840
9024
  type ConfigIgnoresOptions = string[];
9025
+ type ConfigGitIgnoreOptions = FlatGitignoreOptions;
9026
+ type ConfigCommandOptions = ESLintPluginCommandOptions;
8841
9027
  interface ConfigJsdocOptions extends OptionsOverrides {
8842
9028
  }
8843
9029
  interface ConfigUnoCSSOptions extends OptionsOverrides {
@@ -8848,7 +9034,15 @@ interface ConfigImportsOptions extends OptionsOverrides {
8848
9034
  }
8849
9035
  interface ConfigNodeOptions extends OptionsOverrides {
8850
9036
  }
9037
+ interface ConfigAntfuOptions extends OptionsOverrides {
9038
+ }
8851
9039
  interface ConfigPrettierOptions extends OptionsOverrides {
9040
+ /**
9041
+ * Prettier level
9042
+ *
9043
+ * @default 'warn'
9044
+ */
9045
+ level?: 'warn' | 'error';
8852
9046
  }
8853
9047
  interface ConfigPerfectionistOptions extends OptionsOverrides {
8854
9048
  }
@@ -8857,8 +9051,22 @@ interface ConfigCommentsOptions extends OptionsOverrides {
8857
9051
  interface ConfigRegexpOptions extends OptionsOverrides {
8858
9052
  }
8859
9053
  interface ConfigJavaScriptOptions extends OptionsOverrides {
9054
+ /**
9055
+ * Enable strict checking for JavaScript files
9056
+ *
9057
+ * @default false
9058
+ */
9059
+ strict?: boolean;
8860
9060
  }
8861
9061
  interface ConfigTypeScriptOptions extends OptionsOverrides {
9062
+ /**
9063
+ * Enable type aware check for TypeScript files
9064
+ */
9065
+ tsconfigPath?: string;
9066
+ /**
9067
+ * Additional parser options
9068
+ */
9069
+ parserOptions?: Partial<ParserOptions>;
8862
9070
  }
8863
9071
  interface ConfigJsoncOptions extends OptionsOverrides {
8864
9072
  }
@@ -8869,6 +9077,12 @@ interface ConfigMarkdownOptions extends OptionsOverrides {
8869
9077
  interface ConfigTomlOptions extends OptionsOverrides {
8870
9078
  }
8871
9079
  interface ConfigVueOptions extends OptionsOverrides {
9080
+ /**
9081
+ * Vue version
9082
+ *
9083
+ * @default 3
9084
+ */
9085
+ vueVersion?: 2 | 3;
8872
9086
  }
8873
9087
  interface ConfigVitestOptions extends OptionsOverrides {
8874
9088
  }
@@ -8878,24 +9092,27 @@ interface ConfigUnusedImportsOptions extends OptionsOverrides {
8878
9092
  * Config factory options
8879
9093
  */
8880
9094
  interface ConfigOptions {
8881
- command?: boolean;
8882
9095
  sortTsConfig?: boolean;
9096
+ sortI18nLocale?: boolean;
8883
9097
  sortPackageJson?: boolean;
8884
9098
  ignores?: ConfigIgnoresOptions;
9099
+ command?: boolean | ConfigCommandOptions;
9100
+ gitignore?: boolean | ConfigGitIgnoreOptions;
8885
9101
  imports?: ConfigImportsOptions;
8886
- javascript?: ConfigJavaScriptOptions;
8887
- typescript?: ConfigTypeScriptOptions;
8888
9102
  node?: ConfigNodeOptions;
9103
+ javascript?: ConfigJavaScriptOptions;
9104
+ typescript?: boolean | ConfigTypeScriptOptions;
8889
9105
  unicorn?: boolean | ConfigUnicornOptions;
8890
9106
  prettier?: boolean | ConfigPrettierOptions;
9107
+ perfectionist?: boolean | ConfigPerfectionistOptions;
8891
9108
  /**
8892
9109
  * @internal
8893
9110
  */
8894
- perfectionist?: boolean | ConfigPerfectionistOptions;
9111
+ unusedImports?: boolean | ConfigUnusedImportsOptions;
8895
9112
  /**
8896
9113
  * @internal
8897
9114
  */
8898
- unusedImports?: boolean | ConfigUnusedImportsOptions;
9115
+ antfu?: boolean | ConfigAntfuOptions;
8899
9116
  comments?: boolean | ConfigCommentsOptions;
8900
9117
  jsdoc?: boolean | ConfigJsdocOptions;
8901
9118
  unocss?: boolean | ConfigUnoCSSOptions;
@@ -8915,32 +9132,7 @@ interface ConfigOptions {
8915
9132
  /**
8916
9133
  * Config factory
8917
9134
  */
8918
- declare function ntnyq(options?: ConfigOptions, customConfig?: Arrayable<TypedConfigItem>): TypedConfigItem[];
8919
-
8920
- declare const hasTypeScript: boolean;
8921
- declare const hasVitest: boolean;
8922
- declare const hasVue: boolean;
8923
- declare const hasUnoCSS: boolean;
8924
-
8925
- declare function toArray<T>(val?: Arrayable<T>): T[];
8926
-
8927
- /**
8928
- * Load an ESLint plugin by name.
8929
- * @param name - The name of the plugin
8930
- * @returns The plugin module
8931
- */
8932
- declare function loadPlugin<T = unknown>(name: string): Promise<T>;
8933
-
8934
- declare function getOverrides<K extends keyof ConfigOptions>(options: ConfigOptions, key: K): Partial<RuleRecord & RuleOptions>;
8935
-
8936
- /**
8937
- * Interop default export from a module
8938
- * @param mod - The module
8939
- * @returns The default export
8940
- */
8941
- declare function interopDefault<T>(mod: Awaitable<T>): Promise<InteropModuleDefault<T>>;
8942
-
8943
- declare function resolveSubOptions<K extends keyof ConfigOptions>(options: ConfigOptions, key: K): ResolvedOptions<ConfigOptions[K]>;
9135
+ declare function ntnyq(options?: ConfigOptions, userConfigs?: Arrayable<TypedConfigItem>): FlatConfigComposer<TypedConfigItem, ConfigName>;
8944
9136
 
8945
9137
  /**
8946
9138
  * @file globs constants
@@ -8952,7 +9144,7 @@ declare const GLOB_JSX = "**/*.?([cm])jsx";
8952
9144
  declare const GLOB_TS = "**/*.?([cm])ts";
8953
9145
  declare const GLOB_TSX = "**/*.?([cm])tsx";
8954
9146
  declare const GLOB_DTS = "**/*.d.?([cm])ts";
8955
- declare const GLOB_TEST = "**/*.{test,spec}.?([cm])[jt]s?(x)";
9147
+ declare const GLOB_TEST = "**/*.{test,spec,bench,benchmark}.?([cm])[jt]s?(x)";
8956
9148
  declare const GLOB_STYLE = "**/*.{c,le,sc}ss";
8957
9149
  declare const GLOB_CSS = "**/*.css";
8958
9150
  declare const GLOB_LESS = "**/*.less";
@@ -8961,63 +9153,94 @@ declare const GLOB_JSON = "**/*.json";
8961
9153
  declare const GLOB_JSON5 = "**/*.json5";
8962
9154
  declare const GLOB_JSONC = "**/*.jsonc";
8963
9155
  declare const GLOB_VUE = "**/*.vue";
8964
- declare const GLOB_MARKDOWN = "**/*.md";
8965
9156
  declare const GLOB_YAML = "**/*.y?(a)ml";
8966
9157
  declare const GLOB_TOML = "**/*.toml";
8967
9158
  declare const GLOB_HTML = "**/*.htm?(l)";
9159
+ declare const GLOB_MARKDOWN = "**/*.md";
9160
+ declare const GLOB_MARKDOWN_CODE = "**/*.md/**/*.?([cm])[jt]s?(x)";
9161
+ declare const GLOB_MARKDOWN_NESTED = "**/*.md/*.md";
8968
9162
  declare const GLOB_ALL_SRC: string[];
8969
9163
  declare const GLOB_NODE_MODULES = "**/node_modules/**";
8970
9164
  declare const GLOB_DIST = "**/dist/**";
8971
9165
  declare const GLOB_LOCKFILE: string[];
8972
9166
  declare const GLOB_EXCLUDE: string[];
8973
9167
 
9168
+ declare const hasTypeScript: boolean;
9169
+ declare const hasVitest: boolean;
9170
+ declare const hasVue: boolean;
9171
+ declare const hasUnoCSS: boolean;
9172
+
9173
+ declare function toArray<T>(val?: Arrayable<T>): T[];
9174
+
8974
9175
  /**
8975
- * @see https://eslint.org/docs/latest/use/configure/configuration-files-new#globally-ignoring-files-with-ignores
9176
+ * Load an ESLint plugin by name.
9177
+ * @param name - The name of the plugin
9178
+ * @returns The plugin module
8976
9179
  */
8977
- declare const ignores: (customIgnores?: ConfigIgnoresOptions) => LinterConfig[];
9180
+ declare function loadPlugin<T = unknown>(name: string): Promise<T>;
8978
9181
 
8979
- declare const node: (options?: ConfigNodeOptions) => LinterConfig[];
9182
+ declare function getOverrides<K extends keyof ConfigOptions>(options: ConfigOptions, key: K): Partial<TypedConfigItem['rules'] & RuleOptions>;
8980
9183
 
8981
- declare const jsdoc: (options?: ConfigJsdocOptions) => LinterConfig[];
9184
+ /**
9185
+ * Interop default export from a module
9186
+ * @param mod - The module
9187
+ * @returns The default export
9188
+ */
9189
+ declare function interopDefault<T>(mod: Awaitable<T>): Promise<InteropModuleDefault<T>>;
9190
+
9191
+ declare function resolveSubOptions<K extends keyof ConfigOptions>(options: ConfigOptions, key: K): ResolvedOptions<ConfigOptions[K]>;
8982
9192
 
8983
- declare const imports: (options?: ConfigImportsOptions) => LinterConfig[];
9193
+ declare const vue: (options?: ConfigVueOptions) => TypedConfigItem[];
8984
9194
 
8985
- declare const unicorn: (options?: ConfigUnicornOptions) => LinterConfig[];
9195
+ declare const yml: (options?: ConfigYmlOptions) => TypedConfigItem[];
8986
9196
 
8987
- declare const prettier: (options?: ConfigPrettierOptions) => LinterConfig[];
9197
+ declare const node: (options?: ConfigNodeOptions) => TypedConfigItem[];
8988
9198
 
8989
- declare const comments: (options?: ConfigCommentsOptions) => LinterConfig[];
9199
+ declare const sortPackageJson: () => TypedConfigItem[];
9200
+ declare const sortTsConfig: () => TypedConfigItem[];
9201
+ declare const sortI18nLocale: () => TypedConfigItem[];
8990
9202
 
8991
- declare const javascript: (option?: ConfigJavaScriptOptions) => LinterConfig[];
8992
- declare const jsx: () => LinterConfig[];
9203
+ declare const toml: (options?: ConfigTomlOptions) => TypedConfigItem[];
8993
9204
 
8994
- declare const typescriptCore: (options?: ConfigTypeScriptOptions) => TypedConfigItem[];
8995
- declare const typescript: (options?: ConfigTypeScriptOptions) => LinterConfig[];
9205
+ declare const antfu: (options?: ConfigAntfuOptions) => TypedConfigItem[];
8996
9206
 
8997
- declare const unusedImports: (options?: ConfigUnusedImportsOptions) => LinterConfig[];
9207
+ declare const jsdoc: (options?: ConfigJsdocOptions) => TypedConfigItem[];
8998
9208
 
8999
- declare const perfectionist: (options?: ConfigPerfectionistOptions) => LinterConfig[];
9209
+ declare const jsonc: (options?: ConfigJsoncOptions) => TypedConfigItem[];
9000
9210
 
9001
- declare const regexp: (options?: ConfigRegexpOptions) => LinterConfig[];
9211
+ declare const regexp: (options?: ConfigRegexpOptions) => TypedConfigItem[];
9002
9212
 
9003
- declare const unocss: (options?: ConfigUnoCSSOptions) => LinterConfig[];
9213
+ declare const unocss: (options?: ConfigUnoCSSOptions) => TypedConfigItem[];
9004
9214
 
9005
- declare const command: () => LinterConfig[];
9215
+ declare const vitest: (options?: ConfigVitestOptions) => TypedConfigItem[];
9006
9216
 
9007
- declare const vitest: (options?: ConfigVitestOptions) => LinterConfig[];
9217
+ declare const command: (options?: ConfigCommandOptions) => TypedConfigItem[];
9008
9218
 
9009
- declare function getVueVersion(): number;
9010
- declare const vue: (options?: ConfigVueOptions) => LinterConfig[];
9219
+ /**
9220
+ * @see https://eslint.org/docs/latest/use/configure/configuration-files-new#globally-ignoring-files-with-ignores
9221
+ */
9222
+ declare const ignores: (customIgnores?: ConfigIgnoresOptions) => TypedConfigItem[];
9011
9223
 
9012
- declare const yml: (options?: ConfigYmlOptions) => LinterConfig[];
9224
+ declare const imports: (options?: ConfigImportsOptions) => TypedConfigItem[];
9013
9225
 
9014
- declare const toml: (options?: ConfigTomlOptions) => LinterConfig[];
9226
+ declare const unicorn: (options?: ConfigUnicornOptions) => TypedConfigItem[];
9015
9227
 
9016
- declare const sortPackageJson: () => LinterConfig[];
9017
- declare const sortTsConfig: () => LinterConfig[];
9228
+ declare const comments: (options?: ConfigCommentsOptions) => TypedConfigItem[];
9229
+
9230
+ declare const markdown: (options?: ConfigMarkdownOptions) => TypedConfigItem[];
9231
+
9232
+ declare const prettier: (options?: ConfigPrettierOptions) => TypedConfigItem[];
9233
+
9234
+ declare const gitignore: (options?: ConfigGitIgnoreOptions) => TypedConfigItem[];
9235
+
9236
+ declare const javascript: (options?: ConfigJavaScriptOptions) => TypedConfigItem[];
9237
+ declare const jsx: () => TypedConfigItem[];
9238
+
9239
+ declare const typescriptCore: (options?: ConfigTypeScriptOptions) => TypedConfigItem[];
9240
+ declare const typescript: (options?: ConfigTypeScriptOptions) => TypedConfigItem[];
9018
9241
 
9019
- declare const jsonc: (options?: ConfigJsoncOptions) => LinterConfig[];
9242
+ declare const perfectionist: (options?: ConfigPerfectionistOptions) => TypedConfigItem[];
9020
9243
 
9021
- declare const markdown: (options?: ConfigMarkdownOptions) => LinterConfig[];
9244
+ declare const unusedImports: (options?: ConfigUnusedImportsOptions) => TypedConfigItem[];
9022
9245
 
9023
- export { type Arrayable, type Awaitable, type ConfigCommentsOptions, type ConfigIgnoresOptions, type ConfigImportsOptions, type ConfigJavaScriptOptions, type ConfigJsdocOptions, type ConfigJsoncOptions, type ConfigMarkdownOptions, type ConfigName, type ConfigNodeOptions, type ConfigOptions, type ConfigPerfectionistOptions, type ConfigPrettierOptions, type ConfigRegexpOptions, type ConfigTomlOptions, type ConfigTypeScriptOptions, type ConfigUnicornOptions, type ConfigUnoCSSOptions, type ConfigUnusedImportsOptions, type ConfigVitestOptions, type ConfigVueOptions, type ConfigYmlOptions, GLOB_ALL_SRC, GLOB_CSS, GLOB_DIST, GLOB_DTS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LOCKFILE, GLOB_MARKDOWN, GLOB_NODE_MODULES, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TEST, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type InteropModuleDefault, type LinterConfig, type OptionsFiles, type OptionsOverrides, type OverridesOptions, type ParserOptions, type ResolvedOptions, type RuleOptions, type RuleRecord, type RuleRecordEntry, type Rules, type TypedConfigItem, command, comments, getOverrides, getVueVersion, hasTypeScript, hasUnoCSS, hasVitest, hasVue, ignores, imports, interopDefault, javascript, jsdoc, jsonc, jsx, loadPlugin, markdown, node, ntnyq, perfectionist, prettier, regexp, resolveSubOptions, sortPackageJson, sortTsConfig, toArray, toml, typescript, typescriptCore, unicorn, unocss, unusedImports, vitest, vue, yml };
9246
+ export { type Arrayable, type Awaitable, type ConfigAntfuOptions, type ConfigCommandOptions, type ConfigCommentsOptions, type ConfigGitIgnoreOptions, type ConfigIgnoresOptions, type ConfigImportsOptions, type ConfigJavaScriptOptions, type ConfigJsdocOptions, type ConfigJsoncOptions, type ConfigMarkdownOptions, type ConfigName, type ConfigNodeOptions, type ConfigOptions, type ConfigPerfectionistOptions, type ConfigPrettierOptions, type ConfigRegexpOptions, type ConfigTomlOptions, type ConfigTypeScriptOptions, type ConfigUnicornOptions, type ConfigUnoCSSOptions, type ConfigUnusedImportsOptions, type ConfigVitestOptions, type ConfigVueOptions, type ConfigYmlOptions, GLOB_ALL_SRC, GLOB_CSS, GLOB_DIST, GLOB_DTS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LOCKFILE, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_NESTED, GLOB_NODE_MODULES, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TEST, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type InteropModuleDefault, type OptionsFiles, type OptionsOverrides, type ParserOptions, type ResolvedOptions, type RuleOptions, type TypedConfigItem, antfu, command, comments, getOverrides, gitignore, hasTypeScript, hasUnoCSS, hasVitest, hasVue, ignores, imports, interopDefault, javascript, jsdoc, jsonc, jsx, loadPlugin, markdown, node, ntnyq, perfectionist, prettier, regexp, resolveSubOptions, sortI18nLocale, sortPackageJson, sortTsConfig, toArray, toml, typescript, typescriptCore, unicorn, unocss, unusedImports, vitest, vue, yml };