@fast-china/eslint-config 1.0.25 → 1.0.27

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/README.md CHANGED
@@ -89,15 +89,21 @@ Apache Open Source License
89
89
 
90
90
  Copyright © 2018-Now xiaoFang
91
91
 
92
- The right to deal in the Software is hereby granted free of charge to any person obtaining a copy of this software and its related documentation (the "Software"),
93
- Including but not limited to using, copying, modifying, merging, publishing, distributing, sublicensing, selling copies of the Software,
94
- and permit individuals in possession of a copy of the software to do so, subject to the following conditions:
95
-
96
- The above copyright notice and this license notice must be included on all copies or substantial portions of the Software.
97
-
98
- THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS AND NON-INFRINGEMENT.
99
- In no event shall the author or copyright holder be liable for any claim, damages or other liability,
100
- WHETHER ARISING IN CONTRACT, TORT OR OTHERWISE, IN CONNECTION WITH THE SOFTWARE OR ITS USE OR OTHER DEALINGS.
92
+ License:
93
+ This Agreement grants any individual or organization that obtains a copy of this software and its related documentation (hereinafter referred to as the "Software").
94
+ Subject to the terms of this Agreement, you have the right to use, copy, modify, merge, publish, distribute, sublicense, and sell copies of the Software:
95
+ 1.All copies or major parts of the Software must retain this Copyright Notice and this License Agreement.
96
+ 2.The use, copying, modification, or distribution of the Software shall not violate applicable laws or infringe upon the legitimate rights and interests of others.
97
+ 3.Modified or derivative works must clearly indicate the original author and the source of the original Software.
98
+
99
+ Special Statement:
100
+ - This Software is provided "as is" without any express or implied warranty of any kind, including but not limited to the warranty of merchantability, fitness for purpose, and non-infringement.
101
+ - In no event shall the author or copyright holder be liable for any direct or indirect loss caused by the use or inability to use this Software.
102
+ - Including but not limited to data loss, business interruption, etc.
103
+
104
+ Disclaimer:
105
+ It is prohibited to use this software to engage in illegal activities such as endangering national security, disrupting social order, or infringing on the legitimate rights and interests of others.
106
+ The author does not assume any responsibility for any legal disputes and liabilities caused by the secondary development of this software.
101
107
  ```
102
108
 
103
109
  ## Disclaimer
package/README.zh.md CHANGED
@@ -89,15 +89,21 @@ Apache开源许可证
89
89
 
90
90
  版权所有 © 2018-Now 小方
91
91
 
92
- 特此免费授予获得本软件及其相关文档文件(以下简称“软件”)副本的任何人以处理本软件的权利,
93
- 包括但不限于使用、复制、修改、合并、发布、分发、再许可、销售软件的副本,
94
- 以及允许拥有软件副本的个人进行上述行为,但须遵守以下条件:
95
-
96
- 在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
97
-
98
- 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
99
- 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,
100
- 无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
92
+ 许可授权:
93
+ 本协议授予任何获得本软件及其相关文档(以下简称“软件”)副本的个人或组织。
94
+ 在遵守本协议条款的前提下,享有使用、复制、修改、合并、发布、分发、再许可、销售软件副本的权利:
95
+ 1.所有软件副本或主要部分必须保留本版权声明及本许可协议。
96
+ 2.软件的使用、复制、修改或分发不得违反适用法律或侵犯他人合法权益。
97
+ 3.修改或衍生作品须明确标注原作者及原软件出处。
98
+
99
+ 特别声明:
100
+ - 本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
101
+ - 在任何情况下,作者或版权持有人均不对因使用或无法使用本软件导致的任何直接或间接损失的责任。
102
+ - 包括但不限于数据丢失、业务中断等情况。
103
+
104
+ 免责条款:
105
+ 禁止利用本软件从事危害国家安全、扰乱社会秩序或侵犯他人合法权益等违法活动。
106
+ 对于基于本软件二次开发所引发的任何法律纠纷及责任,作者不承担任何责任。
101
107
  ```
102
108
 
103
109
  ## 免责申明
@@ -45,76 +45,6 @@ var commonRules = {
45
45
  "prefer-exponentiation-operator": "error"
46
46
  };
47
47
 
48
- // src/flat/configs/common.ts
49
- var commonConfigs = tseslint.config([
50
- {
51
- name: "@fast-china/common",
52
- rules: commonRules
53
- }
54
- ]);
55
-
56
- // src/flat/configs/ignores.ts
57
- import eslintConfigFlatGitignore from "eslint-config-flat-gitignore";
58
- import tseslint2 from "typescript-eslint";
59
-
60
- // src/constants/index.ts
61
- var CONST_JS = "**/*.?([cm])js";
62
- var CONST_JSX = "**/*.?([cm])jsx";
63
- var CONST_TS = "**/*.?([cm])ts";
64
- var CONST_TSX = "**/*.?([cm])tsx";
65
- var CONST_DTS = "**/*.d.ts";
66
- var CONST_JSON = "**/*.json";
67
- var CONST_JSONC = "**/*.jsonc";
68
- var CONST_JSON5 = "**/*.json5";
69
- var CONST_JSON6 = "**/*.json6";
70
- var CONST_MD = "**/*.md";
71
- var CONST_VUE = "**/*.vue";
72
- var CONST_YAML = "**/*.y?(a)ml";
73
- var CONST_NODE_MODULES = "**/node_modules";
74
- var CONST_DIST = "**/dist";
75
- var CONST_LOCKFILE = ["**/package-lock.json", "**/yarn.lock", "**/pnpm-lock.yaml", "**/bun.lockb"];
76
- var CONST_PUBLIC = "**/public";
77
- var CONST_TSCONFIG = ["**/tsconfig.json", "**/tsconfig.*.json"];
78
-
79
- // src/flat/configs/ignores.ts
80
- var ignoresConfigs = tseslint2.config([
81
- {
82
- name: "@fast-china/ignores/global",
83
- ignores: [
84
- CONST_NODE_MODULES,
85
- CONST_DIST,
86
- CONST_PUBLIC,
87
- ...CONST_LOCKFILE,
88
- "**/output",
89
- "**/coverage",
90
- "**/temp",
91
- "**/fixtures",
92
- "**/.vitepress/cache",
93
- "**/.nuxt",
94
- "**/.vercel",
95
- "**/.changeset",
96
- "**/.idea",
97
- "**/.output",
98
- "**/.vite-inspect",
99
- "**/.nitro",
100
- "**/CHANGELOG*.md",
101
- "**/*.min.*",
102
- "**/LICENSE*",
103
- "**/__snapshots__",
104
- "**/auto-import?(s).d.ts",
105
- "**/components.d.ts"
106
- ]
107
- },
108
- {
109
- name: "@fast-china/ignores/git",
110
- ...eslintConfigFlatGitignore({ strict: false })
111
- }
112
- ]);
113
-
114
- // src/flat/configs/import.ts
115
- import eslintPluginImport from "eslint-plugin-import";
116
- import tseslint3 from "typescript-eslint";
117
-
118
48
  // src/rules/import.ts
119
49
  var importUseLodashUnifiedRules = {
120
50
  // 限制某些模块导入
@@ -222,32 +152,6 @@ var importRules = {
222
152
  "import/named": "off"
223
153
  };
224
154
 
225
- // src/flat/configs/import.ts
226
- var importConfigs = tseslint3.config([
227
- {
228
- name: "@fast-china/import",
229
- // 继承某些已有的规则
230
- extends: [eslintPluginImport.flatConfigs.recommended],
231
- settings: {
232
- // 确保 ESLint 和 eslint-plugin-import 能够正确解析项目中的所有相关文件类型
233
- "import/resolver": {
234
- node: {
235
- extensions: [CONST_JS, CONST_JSX, CONST_TS, CONST_TSX, CONST_DTS]
236
- }
237
- }
238
- },
239
- rules: {
240
- ...importRules,
241
- ...importUseLodashUnifiedRules
242
- }
243
- }
244
- ]);
245
-
246
- // src/flat/configs/javascript.ts
247
- import eslint from "@eslint/js";
248
- import globals from "globals";
249
- import tseslint4 from "typescript-eslint";
250
-
251
155
  // src/rules/javascript.ts
252
156
  var javascriptRules = {
253
157
  // JS/TS (http://eslint.cn/docs/rules)
@@ -342,120 +246,6 @@ var javascriptRules = {
342
246
  "no-redeclare": "error"
343
247
  };
344
248
 
345
- // src/flat/configs/javascript.ts
346
- var javascriptConfigs = tseslint4.config([
347
- {
348
- name: "@fast-china/javascript",
349
- // 继承某些已有的规则
350
- extends: [eslint.configs.recommended],
351
- languageOptions: {
352
- // 允许使用最新的 ECMAScript 语法特性
353
- ecmaVersion: "latest",
354
- globals: {
355
- ...globals.browser,
356
- ...globals.es2022,
357
- ...globals.node
358
- },
359
- parserOptions: {
360
- ecmaFeatures: {
361
- // 允许使用 JSX 语法,适用于 Vue 组件中的 JSX 代码。
362
- jsx: true
363
- },
364
- sourceType: "module"
365
- }
366
- },
367
- rules: javascriptRules
368
- },
369
- {
370
- name: "@fast-china/javascript/md/js",
371
- files: ["**/*.md/*.js"],
372
- rules: {
373
- // 使用使用控制台
374
- "no-console": "off",
375
- // 关闭 - 禁止使用未声明的变量,除非/*global *\/注释中提到
376
- "no-undef": "off",
377
- // 关闭 - 禁用对无法解析的模块导入的检查
378
- "import/no-unresolved": "off",
379
- // 关闭 - 禁止在文件中重复导入相同的模块
380
- "import/no-duplicates": "off"
381
- }
382
- },
383
- {
384
- name: "@fast-china/javascript/script",
385
- files: ["**/scripts/*", "**/cli.*"],
386
- rules: {
387
- // 使用使用控制台
388
- "no-console": "off"
389
- }
390
- }
391
- ]);
392
-
393
- // src/flat/configs/json.ts
394
- import eslintPluginJsonc from "eslint-plugin-jsonc";
395
- import jsoncEslintParser from "jsonc-eslint-parser";
396
- import tseslint5 from "typescript-eslint";
397
- var jsonConfigs = tseslint5.config([
398
- {
399
- name: "@fast-china/json",
400
- files: [CONST_JSON, CONST_JSONC, CONST_JSON5, CONST_JSON6],
401
- // 继承某些已有的规则
402
- extends: [...eslintPluginJsonc.configs["flat/recommended-with-jsonc"]],
403
- languageOptions: {
404
- parser: jsoncEslintParser
405
- },
406
- plugins: {
407
- jsonc: eslintPluginJsonc
408
- }
409
- }
410
- ]);
411
-
412
- // src/flat/configs/markdown.ts
413
- import eslintPluginMarkdown from "eslint-plugin-markdown";
414
- import tseslint6 from "typescript-eslint";
415
- var markdownConfigs = tseslint6.config([
416
- {
417
- name: "@fast-china/markdown",
418
- files: [CONST_MD]
419
- },
420
- ...eslintPluginMarkdown.configs.recommended.map((config) => ({
421
- ...config,
422
- name: `@fast-china/${config.name || "markdown/anonymous"}`
423
- }))
424
- ]);
425
-
426
- // src/flat/configs/prettier.ts
427
- import eslintConfigPrettierFlat from "eslint-config-prettier/flat";
428
- import eslintPluginPrettier from "eslint-plugin-prettier";
429
- import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
430
- import tseslint7 from "typescript-eslint";
431
- var prettierConfigs = tseslint7.config([
432
- {
433
- name: "@fast-china/prettier",
434
- // 继承某些已有的规则
435
- extends: [eslintConfigPrettierFlat, eslintPluginPrettierRecommended],
436
- plugins: {
437
- prettier: eslintPluginPrettier
438
- },
439
- rules: {
440
- // 确保 Prettier 错误被 ESLint 捕获
441
- "prettier/prettier": "error"
442
- }
443
- }
444
- ]);
445
-
446
- // src/flat/configs/regexp.ts
447
- import eslintPluginRegexp from "eslint-plugin-regexp";
448
- import tseslint8 from "typescript-eslint";
449
- var regexpConfigs = tseslint8.config([
450
- {
451
- name: "@fast-china/regexp",
452
- ...eslintPluginRegexp.configs["flat/recommended"]
453
- }
454
- ]);
455
-
456
- // src/flat/configs/sort-package.ts
457
- import tseslint9 from "typescript-eslint";
458
-
459
249
  // src/rules/sort-package.ts
460
250
  var packageJsonSortRules = {
461
251
  "jsonc/sort-array-values": [
@@ -529,18 +319,6 @@ var packageJsonSortRules = {
529
319
  ]
530
320
  };
531
321
 
532
- // src/flat/configs/sort-package.ts
533
- var packageJsonSortConfigs = tseslint9.config([
534
- {
535
- name: "@fast-china/sort/package",
536
- files: ["**/package.json"],
537
- rules: packageJsonSortRules
538
- }
539
- ]);
540
-
541
- // src/flat/configs/sort-tsconfig.ts
542
- import tseslint10 from "typescript-eslint";
543
-
544
322
  // src/rules/sort-tsconfig.ts
545
323
  var tsconfigJsonSortRules = {
546
324
  "jsonc/sort-keys": [
@@ -654,18 +432,6 @@ var tsconfigJsonSortRules = {
654
432
  ]
655
433
  };
656
434
 
657
- // src/flat/configs/sort-tsconfig.ts
658
- var tsconfigJsonSortConfigs = tseslint10.config([
659
- {
660
- name: "@fast-china/sort/tsconfig",
661
- files: CONST_TSCONFIG,
662
- rules: tsconfigJsonSortRules
663
- }
664
- ]);
665
-
666
- // src/flat/configs/typescript.ts
667
- import tseslint11 from "typescript-eslint";
668
-
669
435
  // src/rules/typescript.ts
670
436
  var typescriptRules = {
671
437
  // TS (https://typescript-eslint.io/rules)
@@ -718,72 +484,6 @@ var typescriptRules = {
718
484
  ]
719
485
  };
720
486
 
721
- // src/flat/configs/typescript.ts
722
- var typescriptCoreConfigs = tseslint11.config([
723
- {
724
- name: "@fast-china/typescript",
725
- files: [CONST_TS, CONST_TSX],
726
- // 继承某些已有的规则
727
- extends: [tseslint11.configs.recommended],
728
- languageOptions: {
729
- // 允许使用最新的 ECMAScript 语法特性
730
- ecmaVersion: "latest",
731
- parser: tseslint11.parser,
732
- parserOptions: {
733
- ecmaFeatures: {
734
- // 允许使用 TSX 语法,适用于 Vue 组件中的 TSX 代码。
735
- tsx: true
736
- },
737
- sourceType: "module"
738
- }
739
- },
740
- rules: typescriptRules
741
- }
742
- ]);
743
- var typescriptConfigs = tseslint11.config([
744
- ...typescriptCoreConfigs,
745
- {
746
- name: "@fast-china/typescript/dts",
747
- files: [CONST_DTS],
748
- rules: {
749
- // 关闭 - 一致地使用 TypeScript 类型导入
750
- "@typescript-eslint/consistent-type-imports": "off"
751
- }
752
- },
753
- {
754
- name: "@fast-china/typescript/vite",
755
- files: ["**/vite.config.*"],
756
- rules: {
757
- // 关闭 - 要求在 TypeScript 函数和方法中显式地指定返回类型
758
- "@typescript-eslint/explicit-function-return-type": "off"
759
- }
760
- },
761
- {
762
- name: "@fast-china/typescript/md/js",
763
- files: ["**/*.md/*.ts"],
764
- rules: {
765
- // 允许定义未使用的变量
766
- "@typescript-eslint/no-unused-vars": "off"
767
- }
768
- }
769
- ]);
770
-
771
- // src/flat/configs/vue.ts
772
- import eslintPluginVue from "eslint-plugin-vue";
773
- import tseslint12 from "typescript-eslint";
774
- import vueEslintParser from "vue-eslint-parser";
775
-
776
- // src/env/index.ts
777
- import { getPackageInfoSync } from "local-pkg";
778
- var getVueVersion = () => {
779
- const pkg = getPackageInfoSync("vue", { paths: [process.cwd()] });
780
- if (pkg && typeof pkg.version === "string" && !Number.isNaN(+pkg.version[0])) {
781
- return +pkg.version[0];
782
- }
783
- return 3;
784
- };
785
- var isVue3 = getVueVersion() === 3;
786
-
787
487
  // src/rules/vue.ts
788
488
  var vueRules = {
789
489
  // vue (https://eslint.vuejs.org/rules)
@@ -841,6 +541,296 @@ var vueRules = {
841
541
  ]
842
542
  };
843
543
 
544
+ // src/flat/configs/common.ts
545
+ var commonConfigs = tseslint.config([
546
+ {
547
+ name: "@fast-china/common",
548
+ rules: commonRules
549
+ }
550
+ ]);
551
+
552
+ // src/flat/configs/ignores.ts
553
+ import eslintConfigFlatGitignore from "eslint-config-flat-gitignore";
554
+ import tseslint2 from "typescript-eslint";
555
+
556
+ // src/constants/index.ts
557
+ var CONST_JS = "**/*.?([cm])js";
558
+ var CONST_JSX = "**/*.?([cm])jsx";
559
+ var CONST_TS = "**/*.?([cm])ts";
560
+ var CONST_TSX = "**/*.?([cm])tsx";
561
+ var CONST_DTS = "**/*.d.ts";
562
+ var CONST_JSON = "**/*.json";
563
+ var CONST_JSONC = "**/*.jsonc";
564
+ var CONST_JSON5 = "**/*.json5";
565
+ var CONST_JSON6 = "**/*.json6";
566
+ var CONST_MD = "**/*.md";
567
+ var CONST_VUE = "**/*.vue";
568
+ var CONST_YAML = "**/*.y?(a)ml";
569
+ var CONST_NODE_MODULES = "**/node_modules";
570
+ var CONST_DIST = "**/dist";
571
+ var CONST_LOCKFILE = ["**/package-lock.json", "**/yarn.lock", "**/pnpm-lock.yaml", "**/bun.lockb"];
572
+ var CONST_PUBLIC = "**/public";
573
+ var CONST_TSCONFIG = ["**/tsconfig.json", "**/tsconfig.*.json"];
574
+
575
+ // src/flat/configs/ignores.ts
576
+ var ignoresConfigs = tseslint2.config([
577
+ {
578
+ name: "@fast-china/ignores/global",
579
+ ignores: [
580
+ CONST_NODE_MODULES,
581
+ CONST_DIST,
582
+ CONST_PUBLIC,
583
+ ...CONST_LOCKFILE,
584
+ "**/output",
585
+ "**/coverage",
586
+ "**/temp",
587
+ "**/fixtures",
588
+ "**/.vitepress/cache",
589
+ "**/.nuxt",
590
+ "**/.vercel",
591
+ "**/.changeset",
592
+ "**/.idea",
593
+ "**/.output",
594
+ "**/.vite-inspect",
595
+ "**/.nitro",
596
+ "**/CHANGELOG*.md",
597
+ "**/*.min.*",
598
+ "**/LICENSE*",
599
+ "**/__snapshots__",
600
+ "**/auto-import?(s).d.ts",
601
+ "**/components.d.ts"
602
+ ]
603
+ },
604
+ {
605
+ name: "@fast-china/ignores/git",
606
+ ...eslintConfigFlatGitignore({ strict: false })
607
+ }
608
+ ]);
609
+
610
+ // src/flat/configs/import.ts
611
+ import eslintPluginImport from "eslint-plugin-import";
612
+ import tseslint3 from "typescript-eslint";
613
+ var importConfigs = tseslint3.config([
614
+ {
615
+ name: "@fast-china/import",
616
+ // 继承某些已有的规则
617
+ extends: [eslintPluginImport.flatConfigs.recommended],
618
+ settings: {
619
+ // 确保 ESLint 和 eslint-plugin-import 能够正确解析项目中的所有相关文件类型
620
+ "import/resolver": {
621
+ node: {
622
+ extensions: [CONST_JS, CONST_JSX, CONST_TS, CONST_TSX, CONST_DTS]
623
+ }
624
+ }
625
+ },
626
+ rules: {
627
+ ...importRules,
628
+ ...importUseLodashUnifiedRules
629
+ }
630
+ }
631
+ ]);
632
+
633
+ // src/flat/configs/javascript.ts
634
+ import eslint from "@eslint/js";
635
+ import globals from "globals";
636
+ import tseslint4 from "typescript-eslint";
637
+ var javascriptConfigs = tseslint4.config([
638
+ {
639
+ name: "@fast-china/javascript",
640
+ // 继承某些已有的规则
641
+ extends: [eslint.configs.recommended],
642
+ languageOptions: {
643
+ // 允许使用最新的 ECMAScript 语法特性
644
+ ecmaVersion: "latest",
645
+ globals: {
646
+ ...globals.browser,
647
+ ...globals.es2022,
648
+ ...globals.node
649
+ },
650
+ parserOptions: {
651
+ ecmaFeatures: {
652
+ // 允许使用 JSX 语法,适用于 Vue 组件中的 JSX 代码。
653
+ jsx: true
654
+ },
655
+ sourceType: "module"
656
+ }
657
+ },
658
+ rules: javascriptRules
659
+ },
660
+ {
661
+ name: "@fast-china/javascript/md/js",
662
+ files: ["**/*.md/*.js"],
663
+ rules: {
664
+ // 使用使用控制台
665
+ "no-console": "off",
666
+ // 关闭 - 禁止使用未声明的变量,除非/*global *\/注释中提到
667
+ "no-undef": "off",
668
+ // 关闭 - 禁用对无法解析的模块导入的检查
669
+ "import/no-unresolved": "off",
670
+ // 关闭 - 禁止在文件中重复导入相同的模块
671
+ "import/no-duplicates": "off"
672
+ }
673
+ },
674
+ {
675
+ name: "@fast-china/javascript/script",
676
+ files: ["**/scripts/*", "**/cli.*"],
677
+ rules: {
678
+ // 使用使用控制台
679
+ "no-console": "off"
680
+ }
681
+ }
682
+ ]);
683
+
684
+ // src/flat/configs/json.ts
685
+ import eslintPluginJsonc from "eslint-plugin-jsonc";
686
+ import jsoncEslintParser from "jsonc-eslint-parser";
687
+ import tseslint5 from "typescript-eslint";
688
+ var jsonConfigs = tseslint5.config([
689
+ {
690
+ name: "@fast-china/json",
691
+ files: [CONST_JSON, CONST_JSONC, CONST_JSON5, CONST_JSON6],
692
+ // 继承某些已有的规则
693
+ extends: [...eslintPluginJsonc.configs["flat/recommended-with-jsonc"]],
694
+ languageOptions: {
695
+ parser: jsoncEslintParser
696
+ },
697
+ plugins: {
698
+ jsonc: eslintPluginJsonc
699
+ }
700
+ }
701
+ ]);
702
+
703
+ // src/flat/configs/markdown.ts
704
+ import eslintPluginMarkdown from "eslint-plugin-markdown";
705
+ import tseslint6 from "typescript-eslint";
706
+ var markdownConfigs = tseslint6.config([
707
+ {
708
+ name: "@fast-china/markdown",
709
+ files: [CONST_MD]
710
+ },
711
+ ...eslintPluginMarkdown.configs.recommended.map((config) => ({
712
+ ...config,
713
+ name: `@fast-china/${config.name || "markdown/anonymous"}`
714
+ }))
715
+ ]);
716
+
717
+ // src/flat/configs/prettier.ts
718
+ import eslintConfigPrettierFlat from "eslint-config-prettier/flat";
719
+ import eslintPluginPrettier from "eslint-plugin-prettier";
720
+ import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
721
+ import tseslint7 from "typescript-eslint";
722
+ var prettierConfigs = tseslint7.config([
723
+ {
724
+ name: "@fast-china/prettier",
725
+ // 继承某些已有的规则
726
+ extends: [eslintConfigPrettierFlat, eslintPluginPrettierRecommended],
727
+ plugins: {
728
+ prettier: eslintPluginPrettier
729
+ },
730
+ rules: {
731
+ // 确保 Prettier 错误被 ESLint 捕获
732
+ "prettier/prettier": "error"
733
+ }
734
+ }
735
+ ]);
736
+
737
+ // src/flat/configs/regexp.ts
738
+ import eslintPluginRegexp from "eslint-plugin-regexp";
739
+ import tseslint8 from "typescript-eslint";
740
+ var regexpConfigs = tseslint8.config([
741
+ {
742
+ name: "@fast-china/regexp",
743
+ ...eslintPluginRegexp.configs["flat/recommended"]
744
+ }
745
+ ]);
746
+
747
+ // src/flat/configs/sort-package.ts
748
+ import tseslint9 from "typescript-eslint";
749
+ var packageJsonSortConfigs = tseslint9.config([
750
+ {
751
+ name: "@fast-china/sort/package",
752
+ files: ["**/package.json"],
753
+ rules: packageJsonSortRules
754
+ }
755
+ ]);
756
+
757
+ // src/flat/configs/sort-tsconfig.ts
758
+ import tseslint10 from "typescript-eslint";
759
+ var tsconfigJsonSortConfigs = tseslint10.config([
760
+ {
761
+ name: "@fast-china/sort/tsconfig",
762
+ files: CONST_TSCONFIG,
763
+ rules: tsconfigJsonSortRules
764
+ }
765
+ ]);
766
+
767
+ // src/flat/configs/typescript.ts
768
+ import tseslint11 from "typescript-eslint";
769
+ var typescriptCoreConfigs = tseslint11.config([
770
+ {
771
+ name: "@fast-china/typescript",
772
+ files: [CONST_TS, CONST_TSX],
773
+ // 继承某些已有的规则
774
+ extends: [tseslint11.configs.recommended],
775
+ languageOptions: {
776
+ // 允许使用最新的 ECMAScript 语法特性
777
+ ecmaVersion: "latest",
778
+ parser: tseslint11.parser,
779
+ parserOptions: {
780
+ ecmaFeatures: {
781
+ // 允许使用 TSX 语法,适用于 Vue 组件中的 TSX 代码。
782
+ tsx: true
783
+ },
784
+ sourceType: "module"
785
+ }
786
+ },
787
+ rules: typescriptRules
788
+ }
789
+ ]);
790
+ var typescriptConfigs = tseslint11.config([
791
+ ...typescriptCoreConfigs,
792
+ {
793
+ name: "@fast-china/typescript/dts",
794
+ files: [CONST_DTS],
795
+ rules: {
796
+ // 关闭 - 一致地使用 TypeScript 类型导入
797
+ "@typescript-eslint/consistent-type-imports": "off"
798
+ }
799
+ },
800
+ {
801
+ name: "@fast-china/typescript/vite",
802
+ files: ["**/vite.config.*"],
803
+ rules: {
804
+ // 关闭 - 要求在 TypeScript 函数和方法中显式地指定返回类型
805
+ "@typescript-eslint/explicit-function-return-type": "off"
806
+ }
807
+ },
808
+ {
809
+ name: "@fast-china/typescript/md/js",
810
+ files: ["**/*.md/*.ts"],
811
+ rules: {
812
+ // 允许定义未使用的变量
813
+ "@typescript-eslint/no-unused-vars": "off"
814
+ }
815
+ }
816
+ ]);
817
+
818
+ // src/flat/configs/vue.ts
819
+ import eslintPluginVue from "eslint-plugin-vue";
820
+ import tseslint12 from "typescript-eslint";
821
+ import vueEslintParser from "vue-eslint-parser";
822
+
823
+ // src/env/index.ts
824
+ import { getPackageInfoSync } from "local-pkg";
825
+ var getVueVersion = () => {
826
+ const pkg = getPackageInfoSync("vue", { paths: [process.cwd()] });
827
+ if (pkg && typeof pkg.version === "string" && !Number.isNaN(+pkg.version[0])) {
828
+ return +pkg.version[0];
829
+ }
830
+ return 3;
831
+ };
832
+ var isVue3 = getVueVersion() === 3;
833
+
844
834
  // src/flat/configs/vue.ts
845
835
  var vueConfigs = tseslint12.config([
846
836
  {