@ntnyq/eslint-config 3.0.0-beta.2 → 3.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -44,6 +44,8 @@ __export(src_exports, {
44
44
  GLOB_LESS: () => GLOB_LESS,
45
45
  GLOB_LOCKFILE: () => GLOB_LOCKFILE,
46
46
  GLOB_MARKDOWN: () => GLOB_MARKDOWN,
47
+ GLOB_MARKDOWN_CODE: () => GLOB_MARKDOWN_CODE,
48
+ GLOB_MARKDOWN_NESTED: () => GLOB_MARKDOWN_NESTED,
47
49
  GLOB_NODE_MODULES: () => GLOB_NODE_MODULES,
48
50
  GLOB_SCSS: () => GLOB_SCSS,
49
51
  GLOB_SRC: () => GLOB_SRC,
@@ -58,7 +60,6 @@ __export(src_exports, {
58
60
  command: () => command,
59
61
  comments: () => comments,
60
62
  getOverrides: () => getOverrides,
61
- getVueVersion: () => getVueVersion,
62
63
  hasTypeScript: () => hasTypeScript,
63
64
  hasUnoCSS: () => hasUnoCSS,
64
65
  hasVitest: () => hasVitest,
@@ -98,6 +99,7 @@ __export(src_exports, {
98
99
  prettier: () => prettier,
99
100
  regexp: () => regexp,
100
101
  resolveSubOptions: () => resolveSubOptions,
102
+ sortI18nLocale: () => sortI18nLocale,
101
103
  sortPackageJson: () => sortPackageJson,
102
104
  sortTsConfig: () => sortTsConfig,
103
105
  toArray: () => toArray,
@@ -159,13 +161,13 @@ function getOverrides(options, key) {
159
161
 
160
162
  // src/globs.ts
161
163
  var GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
162
- var GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
164
+ var GLOB_SRC = `**/*.${GLOB_SRC_EXT}`;
163
165
  var GLOB_JS = "**/*.?([cm])js";
164
166
  var GLOB_JSX = "**/*.?([cm])jsx";
165
167
  var GLOB_TS = "**/*.?([cm])ts";
166
168
  var GLOB_TSX = "**/*.?([cm])tsx";
167
169
  var GLOB_DTS = "**/*.d.?([cm])ts";
168
- var GLOB_TEST = "**/*.{test,spec}.?([cm])[jt]s?(x)";
170
+ var GLOB_TEST = `**/*.{test,spec,bench,benchmark}.${GLOB_SRC_EXT}`;
169
171
  var GLOB_STYLE = "**/*.{c,le,sc}ss";
170
172
  var GLOB_CSS = "**/*.css";
171
173
  var GLOB_LESS = "**/*.less";
@@ -174,20 +176,22 @@ var GLOB_JSON = "**/*.json";
174
176
  var GLOB_JSON5 = "**/*.json5";
175
177
  var GLOB_JSONC = "**/*.jsonc";
176
178
  var GLOB_VUE = "**/*.vue";
177
- var GLOB_MARKDOWN = "**/*.md";
178
179
  var GLOB_YAML = "**/*.y?(a)ml";
179
180
  var GLOB_TOML = "**/*.toml";
180
181
  var GLOB_HTML = "**/*.htm?(l)";
182
+ var GLOB_MARKDOWN = "**/*.md";
183
+ var GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;
184
+ var GLOB_MARKDOWN_NESTED = `${GLOB_MARKDOWN}/*.md`;
181
185
  var GLOB_ALL_SRC = [
182
186
  GLOB_SRC,
183
187
  GLOB_STYLE,
184
188
  GLOB_JSON,
185
189
  GLOB_JSON5,
186
- GLOB_MARKDOWN,
187
190
  GLOB_VUE,
188
191
  GLOB_YAML,
189
192
  GLOB_TOML,
190
- GLOB_HTML
193
+ GLOB_HTML,
194
+ GLOB_MARKDOWN
191
195
  ];
192
196
  var GLOB_NODE_MODULES = "**/node_modules/**";
193
197
  var GLOB_DIST = "**/dist/**";
@@ -349,6 +353,8 @@ var imports = (options = {}) => [
349
353
  "import/no-named-as-default-member": "off",
350
354
  "import/first": "error",
351
355
  "import/export": "error",
356
+ // 'import/no-named-default': 'error',
357
+ "import/no-self-import": "error",
352
358
  "import/no-duplicates": "error",
353
359
  "import/no-mutable-exports": "error",
354
360
  "import/newline-after-import": "error",
@@ -500,7 +506,7 @@ var prettier = (options = {}) => [
500
506
  "vue/space-unary-ops": "off",
501
507
  "vue/template-curly-spacing": "off",
502
508
  ...import_eslint_plugin_prettier.default.configs.recommended.rules,
503
- "prettier/prettier": "warn",
509
+ "prettier/prettier": options.level || "warn",
504
510
  // Overrides built-in rules
505
511
  ...options.overrides
506
512
  }
@@ -539,320 +545,337 @@ var comments = (options = {}) => [
539
545
  // src/configs/javascript.ts
540
546
  var import_globals = __toESM(require("globals"), 1);
541
547
  var import_js = __toESM(require("@eslint/js"), 1);
542
- var javascript = (option = {}) => [
543
- {
544
- name: "ntnyq/js/recommended",
545
- ...import_js.default.configs.recommended
546
- },
548
+ var javascript = (options = {}) => {
549
+ const strictRules = {
550
+ complexity: ["error", { max: 30 }],
551
+ "max-params": ["error", { max: 5 }],
552
+ "max-depth": ["error", { max: 5 }],
553
+ "max-nested-callbacks": ["error", { max: 10 }],
554
+ "max-lines": [
555
+ "error",
556
+ {
557
+ max: 1e3,
558
+ skipComments: true,
559
+ skipBlankLines: true
560
+ }
561
+ ],
562
+ "max-lines-per-function": [
563
+ "error",
564
+ {
565
+ max: 200,
566
+ skipComments: true,
567
+ skipBlankLines: true
568
+ }
569
+ ]
570
+ };
571
+ return [
572
+ {
573
+ ...import_js.default.configs.recommended,
574
+ name: "ntnyq/js/recommended"
575
+ },
576
+ {
577
+ name: "ntnyq/js/core",
578
+ languageOptions: {
579
+ globals: {
580
+ ...import_globals.default.browser,
581
+ ...import_globals.default.es2021,
582
+ ...import_globals.default.node
583
+ },
584
+ sourceType: "module"
585
+ },
586
+ rules: {
587
+ // standard v17.0.0
588
+ "accessor-pairs": ["error", { setWithoutGet: true, enforceForClassMembers: true }],
589
+ camelcase: [
590
+ "error",
591
+ {
592
+ allow: ["^UNSAFE_"],
593
+ properties: "never",
594
+ ignoreGlobals: true
595
+ }
596
+ ],
597
+ "constructor-super": "error",
598
+ curly: ["error", "multi-line"],
599
+ "default-case-last": "error",
600
+ "dot-notation": ["error", { allowKeywords: true }],
601
+ "new-cap": ["error", { newIsCap: true, capIsNew: false, properties: true }],
602
+ "no-array-constructor": "error",
603
+ "no-async-promise-executor": "error",
604
+ "no-caller": "error",
605
+ "no-class-assign": "error",
606
+ "no-compare-neg-zero": "error",
607
+ "no-cond-assign": "error",
608
+ "no-const-assign": "error",
609
+ "no-constant-condition": ["error", { checkLoops: false }],
610
+ "no-control-regex": "error",
611
+ "no-debugger": "error",
612
+ "no-delete-var": "error",
613
+ "no-dupe-args": "error",
614
+ "no-dupe-class-members": "error",
615
+ "no-dupe-keys": "error",
616
+ "no-duplicate-case": "error",
617
+ "no-useless-backreference": "error",
618
+ "no-empty": ["error", { allowEmptyCatch: true }],
619
+ "no-empty-character-class": "error",
620
+ "no-empty-pattern": "error",
621
+ "no-eval": "error",
622
+ "no-ex-assign": "error",
623
+ "no-extend-native": "error",
624
+ "no-extra-bind": "error",
625
+ "no-extra-boolean-cast": "error",
626
+ "no-fallthrough": "error",
627
+ "no-func-assign": "error",
628
+ "no-global-assign": "error",
629
+ "no-implied-eval": "error",
630
+ "no-import-assign": "error",
631
+ "no-invalid-regexp": "error",
632
+ "no-irregular-whitespace": "error",
633
+ "no-iterator": "error",
634
+ "no-labels": ["error", { allowLoop: false, allowSwitch: false }],
635
+ "no-lone-blocks": "error",
636
+ "no-loss-of-precision": "error",
637
+ "no-misleading-character-class": "error",
638
+ "no-prototype-builtins": "error",
639
+ "no-useless-catch": "error",
640
+ "no-new": "error",
641
+ "no-new-func": "error",
642
+ "no-new-wrappers": "error",
643
+ "no-obj-calls": "error",
644
+ "no-octal": "error",
645
+ "no-octal-escape": "error",
646
+ "no-proto": "error",
647
+ "no-redeclare": ["error", { builtinGlobals: false }],
648
+ "no-regex-spaces": "error",
649
+ "no-self-assign": ["error", { props: true }],
650
+ "no-self-compare": "error",
651
+ "no-sequences": "error",
652
+ "no-shadow-restricted-names": "error",
653
+ "no-sparse-arrays": "error",
654
+ "no-template-curly-in-string": "error",
655
+ "no-this-before-super": "error",
656
+ "no-throw-literal": "error",
657
+ "no-undef": "error",
658
+ "no-undef-init": "error",
659
+ "no-unexpected-multiline": "error",
660
+ "no-unmodified-loop-condition": "error",
661
+ "no-unneeded-ternary": ["error", { defaultAssignment: false }],
662
+ "no-unreachable": "error",
663
+ "no-unreachable-loop": "error",
664
+ "no-unsafe-finally": "error",
665
+ "no-unsafe-negation": "error",
666
+ "no-unused-expressions": [
667
+ "error",
668
+ {
669
+ allowShortCircuit: true,
670
+ allowTernary: true,
671
+ allowTaggedTemplates: true
672
+ }
673
+ ],
674
+ "no-unused-vars": [
675
+ "error",
676
+ {
677
+ args: "none",
678
+ caughtErrors: "none",
679
+ ignoreRestSiblings: true,
680
+ vars: "all"
681
+ }
682
+ ],
683
+ "no-useless-call": "error",
684
+ "no-useless-computed-key": "error",
685
+ "no-useless-constructor": "error",
686
+ "no-useless-rename": "error",
687
+ "no-useless-return": "error",
688
+ "prefer-promise-reject-errors": "error",
689
+ "prefer-regex-literals": ["error", { disallowRedundantWrapping: true }],
690
+ "symbol-description": "error",
691
+ "unicode-bom": ["error", "never"],
692
+ "use-isnan": [
693
+ "error",
694
+ {
695
+ enforceForSwitchCase: true,
696
+ enforceForIndexOf: true
697
+ }
698
+ ],
699
+ "valid-typeof": ["error", { requireStringLiterals: true }],
700
+ yoda: ["error", "never"],
701
+ // es6+
702
+ "no-var": "error",
703
+ "prefer-rest-params": "error",
704
+ "prefer-spread": "error",
705
+ "prefer-template": "error",
706
+ "no-empty-static-block": "error",
707
+ "no-new-native-nonconstructor": "error",
708
+ "prefer-const": [
709
+ "error",
710
+ {
711
+ destructuring: "all",
712
+ ignoreReadBeforeAssign: true
713
+ }
714
+ ],
715
+ "prefer-arrow-callback": [
716
+ "error",
717
+ {
718
+ allowNamedFunctions: false,
719
+ allowUnboundThis: true
720
+ }
721
+ ],
722
+ "object-shorthand": [
723
+ "error",
724
+ "always",
725
+ {
726
+ ignoreConstructors: false,
727
+ avoidQuotes: true
728
+ }
729
+ ],
730
+ // best-practice
731
+ eqeqeq: ["error", "smart"],
732
+ "array-callback-return": "error",
733
+ "block-scoped-var": "error",
734
+ "consistent-return": "off",
735
+ "no-alert": "error",
736
+ "no-case-declarations": "error",
737
+ "no-multi-str": "error",
738
+ "no-with": "error",
739
+ "no-void": "error",
740
+ "no-useless-escape": "off",
741
+ "vars-on-top": "error",
742
+ "require-await": "off",
743
+ "no-return-assign": "off",
744
+ "one-var": ["error", "never"],
745
+ "no-use-before-define": [
746
+ "error",
747
+ {
748
+ functions: false,
749
+ classes: false,
750
+ variables: true
751
+ }
752
+ ],
753
+ "sort-imports": [
754
+ "error",
755
+ {
756
+ ignoreCase: false,
757
+ ignoreDeclarationSort: true,
758
+ ignoreMemberSort: false,
759
+ memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
760
+ allowSeparatedGroups: false
761
+ }
762
+ ],
763
+ // Strict rules
764
+ ...options.strict ? strictRules : {},
765
+ // Overrides built-in rules
766
+ ...options.overrides
767
+ }
768
+ },
769
+ {
770
+ name: "ntnyq/js/scripts",
771
+ files: ["**/scripts/*", "**/cli.*"],
772
+ rules: {
773
+ "no-console": "off"
774
+ }
775
+ },
776
+ {
777
+ name: "ntnyq/js/test",
778
+ files: ["**/*.{test,spec}.js?(x)"],
779
+ rules: {
780
+ "no-unused-expressions": "off",
781
+ "max-lines-per-function": "off"
782
+ }
783
+ }
784
+ ];
785
+ };
786
+ var jsx = () => [
547
787
  {
548
- name: "ntnyq/js/core",
788
+ name: "ntnyq/jsx",
789
+ files: ["**/*.jsx"],
549
790
  languageOptions: {
550
- globals: {
551
- ...import_globals.default.browser,
552
- ...import_globals.default.es2021,
553
- ...import_globals.default.node
554
- },
555
- sourceType: "module"
791
+ parserOptions: {
792
+ ecmaFeatures: {
793
+ jsx: true
794
+ }
795
+ }
796
+ }
797
+ }
798
+ ];
799
+
800
+ // src/configs/typescript.ts
801
+ var import_node_process2 = __toESM(require("process"), 1);
802
+ var typescriptCore = (options = {}) => {
803
+ const isTypeAware = !!options.tsconfigPath;
804
+ const configs = import_typescript_eslint.default.config({
805
+ name: "ntnyq/ts/core",
806
+ extends: [...import_typescript_eslint.default.configs.recommended],
807
+ files: [GLOB_TS, GLOB_TSX],
808
+ languageOptions: {
809
+ parser: import_typescript_eslint.default.parser,
810
+ parserOptions: {
811
+ sourceType: "module",
812
+ ...isTypeAware ? {
813
+ projectService: {
814
+ defaultProject: options.tsconfigPath
815
+ },
816
+ tsconfigRootDir: import_node_process2.default.cwd()
817
+ } : {}
818
+ }
556
819
  },
557
820
  rules: {
558
- // standard v17.0.0
559
- "accessor-pairs": ["error", { setWithoutGet: true, enforceForClassMembers: true }],
560
- camelcase: [
821
+ "@typescript-eslint/no-unused-vars": [
561
822
  "error",
562
823
  {
563
- allow: ["^UNSAFE_"],
564
- properties: "never",
565
- ignoreGlobals: true
566
- }
567
- ],
568
- "constructor-super": "error",
569
- curly: ["error", "multi-line"],
570
- "default-case-last": "error",
571
- "dot-notation": ["error", { allowKeywords: true }],
572
- "new-cap": ["error", { newIsCap: true, capIsNew: false, properties: true }],
573
- "no-array-constructor": "error",
574
- "no-async-promise-executor": "error",
575
- "no-caller": "error",
576
- "no-class-assign": "error",
577
- "no-compare-neg-zero": "error",
578
- "no-cond-assign": "error",
579
- "no-const-assign": "error",
580
- "no-constant-condition": ["error", { checkLoops: false }],
581
- "no-control-regex": "error",
582
- "no-debugger": "error",
583
- "no-delete-var": "error",
584
- "no-dupe-args": "error",
585
- "no-dupe-class-members": "error",
586
- "no-dupe-keys": "error",
587
- "no-duplicate-case": "error",
588
- "no-useless-backreference": "error",
589
- "no-empty": ["error", { allowEmptyCatch: true }],
590
- "no-empty-character-class": "error",
591
- "no-empty-pattern": "error",
592
- "no-eval": "error",
593
- "no-ex-assign": "error",
594
- "no-extend-native": "error",
595
- "no-extra-bind": "error",
596
- "no-extra-boolean-cast": "error",
597
- "no-fallthrough": "error",
598
- "no-func-assign": "error",
599
- "no-global-assign": "error",
600
- "no-implied-eval": "error",
601
- "no-import-assign": "error",
602
- "no-invalid-regexp": "error",
603
- "no-irregular-whitespace": "error",
604
- "no-iterator": "error",
605
- "no-labels": ["error", { allowLoop: false, allowSwitch: false }],
606
- "no-lone-blocks": "error",
607
- "no-loss-of-precision": "error",
608
- "no-misleading-character-class": "error",
609
- "no-prototype-builtins": "error",
610
- "no-useless-catch": "error",
611
- "no-new": "error",
612
- "no-new-func": "error",
613
- "no-new-wrappers": "error",
614
- "no-obj-calls": "error",
615
- "no-octal": "error",
616
- "no-octal-escape": "error",
617
- "no-proto": "error",
618
- "no-redeclare": ["error", { builtinGlobals: false }],
619
- "no-regex-spaces": "error",
620
- "no-self-assign": ["error", { props: true }],
621
- "no-self-compare": "error",
622
- "no-sequences": "error",
623
- "no-shadow-restricted-names": "error",
624
- "no-sparse-arrays": "error",
625
- "no-template-curly-in-string": "error",
626
- "no-this-before-super": "error",
627
- "no-throw-literal": "error",
628
- "no-undef": "error",
629
- "no-undef-init": "error",
630
- "no-unexpected-multiline": "error",
631
- "no-unmodified-loop-condition": "error",
632
- "no-unneeded-ternary": ["error", { defaultAssignment: false }],
633
- "no-unreachable": "error",
634
- "no-unreachable-loop": "error",
635
- "no-unsafe-finally": "error",
636
- "no-unsafe-negation": "error",
637
- "no-unused-expressions": [
638
- "error",
639
- {
640
- allowShortCircuit: true,
641
- allowTernary: true,
642
- allowTaggedTemplates: true
643
- }
644
- ],
645
- "no-unused-vars": [
646
- "error",
647
- {
648
- args: "none",
649
- caughtErrors: "none",
650
- ignoreRestSiblings: true,
651
- vars: "all"
652
- }
653
- ],
654
- "no-useless-call": "error",
655
- "no-useless-computed-key": "error",
656
- "no-useless-constructor": "error",
657
- "no-useless-rename": "error",
658
- "no-useless-return": "error",
659
- "prefer-promise-reject-errors": "error",
660
- "prefer-regex-literals": ["error", { disallowRedundantWrapping: true }],
661
- "symbol-description": "error",
662
- "unicode-bom": ["error", "never"],
663
- "use-isnan": [
664
- "error",
665
- {
666
- enforceForSwitchCase: true,
667
- enforceForIndexOf: true
668
- }
669
- ],
670
- "valid-typeof": ["error", { requireStringLiterals: true }],
671
- yoda: ["error", "never"],
672
- // es6+
673
- "no-var": "error",
674
- "prefer-rest-params": "error",
675
- "prefer-spread": "error",
676
- "prefer-template": "error",
677
- "no-empty-static-block": "error",
678
- "no-new-native-nonconstructor": "error",
679
- "prefer-const": [
680
- "error",
681
- {
682
- destructuring: "all",
683
- ignoreReadBeforeAssign: true
684
- }
685
- ],
686
- "prefer-arrow-callback": [
687
- "error",
688
- {
689
- allowNamedFunctions: false,
690
- allowUnboundThis: true
691
- }
692
- ],
693
- "object-shorthand": [
694
- "error",
695
- "always",
696
- {
697
- ignoreConstructors: false,
698
- avoidQuotes: true
699
- }
700
- ],
701
- // best-practice
702
- eqeqeq: ["error", "smart"],
703
- complexity: ["error", { max: 30 }],
704
- "array-callback-return": "error",
705
- "block-scoped-var": "error",
706
- "consistent-return": "off",
707
- "no-alert": "error",
708
- "no-case-declarations": "error",
709
- "no-multi-str": "error",
710
- "no-with": "error",
711
- "no-void": "error",
712
- "no-useless-escape": "off",
713
- "vars-on-top": "error",
714
- "require-await": "off",
715
- "no-return-assign": "off",
716
- "one-var": ["error", "never"],
717
- "max-params": ["error", { max: 5 }],
718
- "max-depth": ["error", { max: 5 }],
719
- "max-nested-callbacks": ["error", { max: 10 }],
720
- "max-lines": [
721
- "error",
722
- {
723
- max: 1e3,
724
- skipComments: true,
725
- skipBlankLines: true
824
+ // Args after the last used will be reported
825
+ args: "after-used",
826
+ argsIgnorePattern: "^_",
827
+ caughtErrors: "all",
828
+ caughtErrorsIgnorePattern: "^_",
829
+ destructuredArrayIgnorePattern: "^_",
830
+ varsIgnorePattern: "^_",
831
+ ignoreRestSiblings: true
726
832
  }
727
833
  ],
728
- "max-lines-per-function": [
834
+ "@typescript-eslint/no-redeclare": "error",
835
+ "@typescript-eslint/consistent-type-imports": [
729
836
  "error",
730
837
  {
731
- max: 200,
732
- skipComments: true,
733
- skipBlankLines: true
838
+ prefer: "type-imports",
839
+ fixStyle: "separate-type-imports",
840
+ disallowTypeAnnotations: false
734
841
  }
735
842
  ],
736
- "no-use-before-define": [
843
+ "@typescript-eslint/no-empty-object-type": [
737
844
  "error",
738
845
  {
739
- functions: false,
740
- classes: false,
741
- variables: true
846
+ allowInterfaces: "always",
847
+ allowObjectTypes: "always"
742
848
  }
743
849
  ],
744
- "sort-imports": [
850
+ "@typescript-eslint/consistent-type-assertions": [
745
851
  "error",
746
852
  {
747
- ignoreCase: false,
748
- ignoreDeclarationSort: true,
749
- ignoreMemberSort: false,
750
- memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
751
- allowSeparatedGroups: false
853
+ assertionStyle: "as",
854
+ objectLiteralTypeAssertions: "allow-as-parameter"
752
855
  }
753
856
  ],
754
- // Overrides built-in rules
755
- ...option.overrides
756
- }
757
- },
758
- {
759
- name: "ntnyq/js/script",
760
- files: ["**/scripts/*", "**/cli.*"],
761
- rules: {
762
- "no-console": "off"
763
- }
764
- },
765
- {
766
- name: "ntnyq/js/test",
767
- files: ["**/*.{test,spec}.js?(x)"],
768
- rules: {
769
- "no-unused-expressions": "off",
770
- "max-lines-per-function": "off"
771
- }
772
- }
773
- ];
774
- var jsx = () => [
775
- {
776
- name: "ntnyq/jsx",
777
- files: ["**/*.jsx"],
778
- languageOptions: {
779
- parserOptions: {
780
- ecmaFeatures: {
781
- jsx: true
782
- }
783
- }
784
- }
785
- }
786
- ];
787
-
788
- // src/configs/typescript.ts
789
- var typescriptCore = (options = {}) => import_typescript_eslint.default.config({
790
- name: "ntnyq/ts/core",
791
- extends: [...import_typescript_eslint.default.configs.recommended],
792
- files: [GLOB_TS, GLOB_TSX],
793
- languageOptions: {
794
- parser: import_typescript_eslint.default.parser,
795
- parserOptions: {
796
- sourceType: "module"
797
- }
798
- },
799
- rules: {
800
- "@typescript-eslint/no-unused-vars": [
801
- "error",
802
- {
803
- // Args after the last used will be reported
804
- args: "after-used",
805
- argsIgnorePattern: "^_",
806
- caughtErrors: "all",
807
- caughtErrorsIgnorePattern: "^_",
808
- destructuredArrayIgnorePattern: "^_",
809
- varsIgnorePattern: "^_",
810
- ignoreRestSiblings: true
811
- }
812
- ],
813
- "@typescript-eslint/no-redeclare": "error",
814
- "@typescript-eslint/consistent-type-imports": [
815
- "error",
816
- {
817
- prefer: "type-imports",
818
- fixStyle: "separate-type-imports",
819
- disallowTypeAnnotations: false
820
- }
821
- ],
822
- "@typescript-eslint/no-empty-object-type": [
823
- "error",
824
- {
825
- allowInterfaces: "always",
826
- allowObjectTypes: "always"
827
- }
828
- ],
829
- "@typescript-eslint/consistent-type-assertions": [
830
- "error",
831
- {
832
- assertionStyle: "as",
833
- objectLiteralTypeAssertions: "allow-as-parameter"
834
- }
835
- ],
836
- "@typescript-eslint/prefer-as-const": "warn",
837
- "@typescript-eslint/ban-types": "off",
838
- "@typescript-eslint/camelcase": "off",
839
- "@typescript-eslint/no-namespace": "off",
840
- "@typescript-eslint/ban-ts-ignore": "off",
841
- "@typescript-eslint/ban-ts-comment": "off",
842
- "@typescript-eslint/no-explicit-any": "off",
843
- "@typescript-eslint/no-empty-function": "off",
844
- "@typescript-eslint/naming-convention": "off",
845
- "@typescript-eslint/no-non-null-assertion": "off",
846
- "@typescript-eslint/triple-slash-reference": "off",
847
- "@typescript-eslint/no-parameter-properties": "off",
848
- "@typescript-eslint/explicit-member-accessibility": "off",
849
- "@typescript-eslint/explicit-function-return-type": "off",
850
- "@typescript-eslint/explicit-module-boundary-types": "off",
851
- "@typescript-eslint/consistent-indexed-object-style": "off"
852
- },
853
- // Overrides built-in rules
854
- ...options.overrides
855
- });
857
+ "@typescript-eslint/prefer-as-const": "warn",
858
+ "@typescript-eslint/ban-types": "off",
859
+ "@typescript-eslint/camelcase": "off",
860
+ "@typescript-eslint/no-namespace": "off",
861
+ "@typescript-eslint/ban-ts-ignore": "off",
862
+ "@typescript-eslint/ban-ts-comment": "off",
863
+ "@typescript-eslint/no-explicit-any": "off",
864
+ "@typescript-eslint/no-empty-function": "off",
865
+ "@typescript-eslint/naming-convention": "off",
866
+ "@typescript-eslint/no-non-null-assertion": "off",
867
+ "@typescript-eslint/triple-slash-reference": "off",
868
+ "@typescript-eslint/no-parameter-properties": "off",
869
+ "@typescript-eslint/explicit-member-accessibility": "off",
870
+ "@typescript-eslint/explicit-function-return-type": "off",
871
+ "@typescript-eslint/explicit-module-boundary-types": "off",
872
+ "@typescript-eslint/consistent-indexed-object-style": "off"
873
+ },
874
+ // Overrides built-in rules
875
+ ...options.overrides
876
+ });
877
+ return configs;
878
+ };
856
879
  var typescript = (options = {}) => [
857
880
  ...typescriptCore(options),
858
881
  {
@@ -986,7 +1009,7 @@ var command = () => [
986
1009
  // src/configs/vitest.ts
987
1010
  var vitest = (options = {}) => [
988
1011
  {
989
- name: "ntnyq/test",
1012
+ name: "ntnyq/vitest",
990
1013
  plugins: {
991
1014
  vitest: import_eslint_plugin2.default
992
1015
  },
@@ -1000,16 +1023,6 @@ var vitest = (options = {}) => [
1000
1023
  ];
1001
1024
 
1002
1025
  // src/configs/vue.ts
1003
- var import_node_process2 = __toESM(require("process"), 1);
1004
- var import_local_pkg2 = require("local-pkg");
1005
- function getVueVersion() {
1006
- const pkg = (0, import_local_pkg2.getPackageInfoSync)("vue", { paths: [import_node_process2.default.cwd()] });
1007
- if (pkg && typeof pkg.version === "string" && !Number.isNaN(+pkg.version[0])) {
1008
- return +pkg.version[0];
1009
- }
1010
- return 3;
1011
- }
1012
- var isVue3 = getVueVersion() === 3;
1013
1026
  var vue2Rules = {
1014
1027
  ...import_eslint_plugin_vue.default.configs.base.rules,
1015
1028
  ...import_eslint_plugin_vue.default.configs.essential.rules,
@@ -1022,250 +1035,253 @@ var vue3Rules = {
1022
1035
  ...import_eslint_plugin_vue.default.configs["vue3-strongly-recommended"].rules,
1023
1036
  ...import_eslint_plugin_vue.default.configs["vue3-recommended"].rules
1024
1037
  };
1025
- var vue = (options = {}) => [
1026
- ...import_typescript_eslint.default.config({
1027
- name: "ntnyq/vue/ts",
1028
- files: [GLOB_VUE],
1029
- extends: typescriptCore()
1030
- }),
1031
- {
1032
- name: "ntnyq/vue/core",
1033
- files: [GLOB_VUE],
1034
- plugins: {
1035
- vue: import_eslint_plugin_vue.default,
1036
- "@typescript-eslint": import_typescript_eslint.default.plugin
1037
- },
1038
- languageOptions: {
1039
- parser: parserVue,
1040
- parserOptions: {
1041
- parser: "@typescript-eslint/parser",
1042
- sourceType: "module",
1043
- extraFileExtensions: [".vue"],
1044
- ecmaFeatures: {
1045
- jsx: true
1038
+ var vue = (options = {}) => {
1039
+ const isVue3 = options.vueVersion !== 2;
1040
+ return [
1041
+ ...import_typescript_eslint.default.config({
1042
+ name: "ntnyq/vue/ts",
1043
+ files: [GLOB_VUE],
1044
+ extends: typescriptCore()
1045
+ }),
1046
+ {
1047
+ name: "ntnyq/vue/core",
1048
+ files: [GLOB_VUE],
1049
+ plugins: {
1050
+ vue: import_eslint_plugin_vue.default,
1051
+ "@typescript-eslint": import_typescript_eslint.default.plugin
1052
+ },
1053
+ languageOptions: {
1054
+ parser: parserVue,
1055
+ parserOptions: {
1056
+ parser: "@typescript-eslint/parser",
1057
+ sourceType: "module",
1058
+ extraFileExtensions: [".vue"],
1059
+ ecmaFeatures: {
1060
+ jsx: true
1061
+ }
1046
1062
  }
1063
+ },
1064
+ processor: import_eslint_plugin_vue.default.processors[".vue"],
1065
+ rules: {
1066
+ ...isVue3 ? vue3Rules : vue2Rules,
1067
+ // OFF
1068
+ "vue/no-v-html": "off",
1069
+ "vue/require-prop-types": "off",
1070
+ "vue/require-default-prop": "off",
1071
+ "vue/multi-word-component-names": "off",
1072
+ "vue/no-setup-props-reactivity-loss": "off",
1073
+ "vue/html-self-closing": [
1074
+ "error",
1075
+ {
1076
+ html: {
1077
+ void: "always",
1078
+ normal: "always",
1079
+ component: "always"
1080
+ },
1081
+ svg: "always",
1082
+ math: "always"
1083
+ }
1084
+ ],
1085
+ "vue/block-tag-newline": [
1086
+ "error",
1087
+ {
1088
+ singleline: "always",
1089
+ multiline: "always"
1090
+ }
1091
+ ],
1092
+ "vue/component-name-in-template-casing": [
1093
+ "error",
1094
+ "PascalCase",
1095
+ {
1096
+ // Force auto-import components to be PascalCase
1097
+ registeredComponentsOnly: false,
1098
+ ignores: ["slot", "component"]
1099
+ }
1100
+ ],
1101
+ "vue/component-options-name-casing": ["error", "PascalCase"],
1102
+ "vue/custom-event-name-casing": ["error", "camelCase"],
1103
+ "vue/define-macros-order": [
1104
+ "error",
1105
+ {
1106
+ order: ["defineProps", "defineEmits", "defineOptions", "defineSlots"]
1107
+ }
1108
+ ],
1109
+ "vue/html-comment-content-spacing": [
1110
+ "error",
1111
+ "always",
1112
+ {
1113
+ exceptions: ["-"]
1114
+ }
1115
+ ],
1116
+ "vue/array-bracket-spacing": ["error", "never"],
1117
+ "vue/arrow-spacing": ["error", { before: true, after: true }],
1118
+ "vue/block-spacing": ["error", "always"],
1119
+ "vue/brace-style": ["error", "stroustrup", { allowSingleLine: true }],
1120
+ "vue/comma-dangle": ["error", "always-multiline"],
1121
+ "vue/comma-spacing": ["error", { before: false, after: true }],
1122
+ "vue/comma-style": ["error", "last"],
1123
+ "vue/dot-location": ["error", "property"],
1124
+ "vue/dot-notation": ["error", { allowKeywords: true }],
1125
+ "vue/eqeqeq": ["error", "smart"],
1126
+ "vue/key-spacing": ["error", { beforeColon: false, afterColon: true }],
1127
+ "vue/keyword-spacing": ["error", { before: true, after: true }],
1128
+ "vue/no-empty-pattern": "error",
1129
+ "vue/no-loss-of-precision": "error",
1130
+ "vue/no-irregular-whitespace": "error",
1131
+ "vue/no-use-v-else-with-v-for": "error",
1132
+ "vue/require-typed-object-prop": "error",
1133
+ "vue/no-extra-parens": ["error", "functions"],
1134
+ "vue/no-restricted-syntax": [
1135
+ "error",
1136
+ "DebuggerStatement",
1137
+ "LabeledStatement",
1138
+ "WithStatement"
1139
+ ],
1140
+ "vue/no-sparse-arrays": "error",
1141
+ "vue/no-deprecated-model-definition": [
1142
+ "error",
1143
+ {
1144
+ allowVue3Compat: true
1145
+ }
1146
+ ],
1147
+ "vue/object-curly-newline": [
1148
+ "error",
1149
+ {
1150
+ multiline: true,
1151
+ consistent: true
1152
+ }
1153
+ ],
1154
+ "vue/no-static-inline-styles": [
1155
+ "error",
1156
+ {
1157
+ allowBinding: true
1158
+ }
1159
+ ],
1160
+ "vue/object-curly-spacing": ["error", "always"],
1161
+ "vue/object-property-newline": [
1162
+ "error",
1163
+ {
1164
+ allowMultiplePropertiesPerLine: true
1165
+ }
1166
+ ],
1167
+ "vue/object-shorthand": [
1168
+ "error",
1169
+ "always",
1170
+ {
1171
+ ignoreConstructors: false,
1172
+ avoidQuotes: true
1173
+ }
1174
+ ],
1175
+ "vue/operator-linebreak": ["error", "before"],
1176
+ "vue/prefer-template": "error",
1177
+ "vue/prop-name-casing": ["error", "camelCase"],
1178
+ "vue/quote-props": ["error", "consistent-as-needed"],
1179
+ "vue/space-in-parens": ["error", "never"],
1180
+ "vue/space-infix-ops": "error",
1181
+ "vue/space-unary-ops": [
1182
+ "error",
1183
+ {
1184
+ words: true,
1185
+ nonwords: false
1186
+ }
1187
+ ],
1188
+ "vue/template-curly-spacing": "error",
1189
+ "vue/block-order": [
1190
+ "error",
1191
+ {
1192
+ order: ["script", "template", "style"]
1193
+ }
1194
+ ],
1195
+ "vue/attributes-order": [
1196
+ "error",
1197
+ {
1198
+ order: [
1199
+ "EVENTS",
1200
+ // `@click="functionCall"`, `v-on="event"`
1201
+ "TWO_WAY_BINDING",
1202
+ // `v-model`
1203
+ "OTHER_DIRECTIVES",
1204
+ // `v-custom-directive`
1205
+ "LIST_RENDERING",
1206
+ // `v-for item in items`
1207
+ "CONDITIONALS",
1208
+ // `v-if`, `v-show`, `v-cloak`
1209
+ "CONTENT",
1210
+ // `v-text`, `v-html`
1211
+ "SLOT",
1212
+ // `v-slot`, `slot`
1213
+ "UNIQUE",
1214
+ // `ref`, `key`
1215
+ "DEFINITION",
1216
+ // `is`, `v-is`
1217
+ "ATTR_DYNAMIC",
1218
+ // `v-bind:prop="foo"`, `:prop="foo"`
1219
+ // `OTHER_ATTR`, // `custom-prop="foo"`, `:prop="foo"`, `disabled`
1220
+ "RENDER_MODIFIERS",
1221
+ // `v-once`, `v-pre`
1222
+ "GLOBAL",
1223
+ // `id`
1224
+ "ATTR_STATIC",
1225
+ // `prop="foo", `static attributes
1226
+ "ATTR_SHORTHAND_BOOL"
1227
+ // `disabled`, prop shorthand
1228
+ ],
1229
+ alphabetical: false
1230
+ }
1231
+ ],
1232
+ "vue/order-in-components": [
1233
+ "error",
1234
+ {
1235
+ order: [
1236
+ "el",
1237
+ "name",
1238
+ "key",
1239
+ "parent",
1240
+ "functional",
1241
+ ["provide", "inject"],
1242
+ ["delimiters", "comments"],
1243
+ ["components", "directives", "filters"],
1244
+ "extends",
1245
+ "mixins",
1246
+ "layout",
1247
+ "middleware",
1248
+ "validate",
1249
+ "scrollToTop",
1250
+ "transition",
1251
+ "loading",
1252
+ "inheritAttrs",
1253
+ "model",
1254
+ ["props", "propsData"],
1255
+ "emits",
1256
+ "setup",
1257
+ "asyncData",
1258
+ "computed",
1259
+ "data",
1260
+ "fetch",
1261
+ "head",
1262
+ "methods",
1263
+ ["template", "render"],
1264
+ "watch",
1265
+ "watchQuery",
1266
+ "LIFECYCLE_HOOKS",
1267
+ "renderError",
1268
+ "ROUTER_GUARDS"
1269
+ ]
1270
+ }
1271
+ ],
1272
+ "vue/max-attributes-per-line": [
1273
+ "error",
1274
+ {
1275
+ singleline: 1,
1276
+ multiline: 1
1277
+ }
1278
+ ],
1279
+ // Overrides built-in rules
1280
+ ...options.overrides
1047
1281
  }
1048
- },
1049
- processor: import_eslint_plugin_vue.default.processors[".vue"],
1050
- rules: {
1051
- ...isVue3 ? vue3Rules : vue2Rules,
1052
- // OFF
1053
- "vue/no-v-html": "off",
1054
- "vue/require-prop-types": "off",
1055
- "vue/require-default-prop": "off",
1056
- "vue/multi-word-component-names": "off",
1057
- "vue/no-setup-props-reactivity-loss": "off",
1058
- "vue/html-self-closing": [
1059
- "error",
1060
- {
1061
- html: {
1062
- void: "always",
1063
- normal: "always",
1064
- component: "always"
1065
- },
1066
- svg: "always",
1067
- math: "always"
1068
- }
1069
- ],
1070
- "vue/block-tag-newline": [
1071
- "error",
1072
- {
1073
- singleline: "always",
1074
- multiline: "always"
1075
- }
1076
- ],
1077
- "vue/component-name-in-template-casing": [
1078
- "error",
1079
- "PascalCase",
1080
- {
1081
- // Force auto-import components to be PascalCase
1082
- registeredComponentsOnly: false,
1083
- ignores: ["slot", "component"]
1084
- }
1085
- ],
1086
- "vue/component-options-name-casing": ["error", "PascalCase"],
1087
- "vue/custom-event-name-casing": ["error", "camelCase"],
1088
- "vue/define-macros-order": [
1089
- "error",
1090
- {
1091
- order: ["defineProps", "defineEmits", "defineOptions", "defineSlots"]
1092
- }
1093
- ],
1094
- "vue/html-comment-content-spacing": [
1095
- "error",
1096
- "always",
1097
- {
1098
- exceptions: ["-"]
1099
- }
1100
- ],
1101
- "vue/array-bracket-spacing": ["error", "never"],
1102
- "vue/arrow-spacing": ["error", { before: true, after: true }],
1103
- "vue/block-spacing": ["error", "always"],
1104
- "vue/brace-style": ["error", "stroustrup", { allowSingleLine: true }],
1105
- "vue/comma-dangle": ["error", "always-multiline"],
1106
- "vue/comma-spacing": ["error", { before: false, after: true }],
1107
- "vue/comma-style": ["error", "last"],
1108
- "vue/dot-location": ["error", "property"],
1109
- "vue/dot-notation": ["error", { allowKeywords: true }],
1110
- "vue/eqeqeq": ["error", "smart"],
1111
- "vue/key-spacing": ["error", { beforeColon: false, afterColon: true }],
1112
- "vue/keyword-spacing": ["error", { before: true, after: true }],
1113
- "vue/no-empty-pattern": "error",
1114
- "vue/no-loss-of-precision": "error",
1115
- "vue/no-irregular-whitespace": "error",
1116
- "vue/no-use-v-else-with-v-for": "error",
1117
- "vue/require-typed-object-prop": "error",
1118
- "vue/no-extra-parens": ["error", "functions"],
1119
- "vue/no-restricted-syntax": [
1120
- "error",
1121
- "DebuggerStatement",
1122
- "LabeledStatement",
1123
- "WithStatement"
1124
- ],
1125
- "vue/no-sparse-arrays": "error",
1126
- "vue/no-deprecated-model-definition": [
1127
- "error",
1128
- {
1129
- allowVue3Compat: true
1130
- }
1131
- ],
1132
- "vue/object-curly-newline": [
1133
- "error",
1134
- {
1135
- multiline: true,
1136
- consistent: true
1137
- }
1138
- ],
1139
- "vue/no-static-inline-styles": [
1140
- "error",
1141
- {
1142
- allowBinding: true
1143
- }
1144
- ],
1145
- "vue/object-curly-spacing": ["error", "always"],
1146
- "vue/object-property-newline": [
1147
- "error",
1148
- {
1149
- allowMultiplePropertiesPerLine: true
1150
- }
1151
- ],
1152
- "vue/object-shorthand": [
1153
- "error",
1154
- "always",
1155
- {
1156
- ignoreConstructors: false,
1157
- avoidQuotes: true
1158
- }
1159
- ],
1160
- "vue/operator-linebreak": ["error", "before"],
1161
- "vue/prefer-template": "error",
1162
- "vue/prop-name-casing": ["error", "camelCase"],
1163
- "vue/quote-props": ["error", "consistent-as-needed"],
1164
- "vue/space-in-parens": ["error", "never"],
1165
- "vue/space-infix-ops": "error",
1166
- "vue/space-unary-ops": [
1167
- "error",
1168
- {
1169
- words: true,
1170
- nonwords: false
1171
- }
1172
- ],
1173
- "vue/template-curly-spacing": "error",
1174
- "vue/block-order": [
1175
- "error",
1176
- {
1177
- order: ["script", "template", "style"]
1178
- }
1179
- ],
1180
- "vue/attributes-order": [
1181
- "error",
1182
- {
1183
- order: [
1184
- "EVENTS",
1185
- // `@click="functionCall"`, `v-on="event"`
1186
- "TWO_WAY_BINDING",
1187
- // `v-model`
1188
- "OTHER_DIRECTIVES",
1189
- // `v-custom-directive`
1190
- "LIST_RENDERING",
1191
- // `v-for item in items`
1192
- "CONDITIONALS",
1193
- // `v-if`, `v-show`, `v-cloak`
1194
- "CONTENT",
1195
- // `v-text`, `v-html`
1196
- "SLOT",
1197
- // `v-slot`, `slot`
1198
- "UNIQUE",
1199
- // `ref`, `key`
1200
- "DEFINITION",
1201
- // `is`, `v-is`
1202
- "ATTR_DYNAMIC",
1203
- // `v-bind:prop="foo"`, `:prop="foo"`
1204
- // `OTHER_ATTR`, // `custom-prop="foo"`, `:prop="foo"`, `disabled`
1205
- "RENDER_MODIFIERS",
1206
- // `v-once`, `v-pre`
1207
- "GLOBAL",
1208
- // `id`
1209
- "ATTR_STATIC",
1210
- // `prop="foo", `static attributes
1211
- "ATTR_SHORTHAND_BOOL"
1212
- // `disabled`, prop shorthand
1213
- ],
1214
- alphabetical: false
1215
- }
1216
- ],
1217
- "vue/order-in-components": [
1218
- "error",
1219
- {
1220
- order: [
1221
- "el",
1222
- "name",
1223
- "key",
1224
- "parent",
1225
- "functional",
1226
- ["provide", "inject"],
1227
- ["delimiters", "comments"],
1228
- ["components", "directives", "filters"],
1229
- "extends",
1230
- "mixins",
1231
- "layout",
1232
- "middleware",
1233
- "validate",
1234
- "scrollToTop",
1235
- "transition",
1236
- "loading",
1237
- "inheritAttrs",
1238
- "model",
1239
- ["props", "propsData"],
1240
- "emits",
1241
- "setup",
1242
- "asyncData",
1243
- "computed",
1244
- "data",
1245
- "fetch",
1246
- "head",
1247
- "methods",
1248
- ["template", "render"],
1249
- "watch",
1250
- "watchQuery",
1251
- "LIFECYCLE_HOOKS",
1252
- "renderError",
1253
- "ROUTER_GUARDS"
1254
- ]
1255
- }
1256
- ],
1257
- "vue/max-attributes-per-line": [
1258
- "error",
1259
- {
1260
- singleline: 1,
1261
- multiline: 1
1262
- }
1263
- ],
1264
- // Overrides built-in rules
1265
- ...options.overrides
1266
1282
  }
1267
- }
1268
- ];
1283
+ ];
1284
+ };
1269
1285
 
1270
1286
  // src/configs/yml.ts
1271
1287
  var yml = (options = {}) => [
@@ -1542,6 +1558,20 @@ var sortTsConfig = () => [
1542
1558
  }
1543
1559
  }
1544
1560
  ];
1561
+ var sortI18nLocale = () => [
1562
+ {
1563
+ files: ["**/{locales,i18n}/*.json", "**/{locales,i18n}/*.y?(a)ml"],
1564
+ rules: {
1565
+ "jsonc/sort-keys": [
1566
+ "error",
1567
+ {
1568
+ pathPattern: ".*",
1569
+ order: { type: "asc" }
1570
+ }
1571
+ ]
1572
+ }
1573
+ }
1574
+ ];
1545
1575
 
1546
1576
  // src/configs/jsonc.ts
1547
1577
  var jsonc = (options = {}) => [
@@ -1633,6 +1663,7 @@ function ntnyq(options = {}, customConfig = []) {
1633
1663
  overrides: getOverrides(options, "imports")
1634
1664
  }),
1635
1665
  ...javascript({
1666
+ ...resolveSubOptions(options, "javascript"),
1636
1667
  overrides: getOverrides(options, "javascript")
1637
1668
  })
1638
1669
  ];
@@ -1667,10 +1698,14 @@ function ntnyq(options = {}, customConfig = []) {
1667
1698
  if (options.typescript ?? hasTypeScript) {
1668
1699
  configs.push(
1669
1700
  ...typescript({
1701
+ ...resolveSubOptions(options, "typescript"),
1670
1702
  overrides: getOverrides(options, "typescript")
1671
1703
  })
1672
1704
  );
1673
1705
  }
1706
+ if (options.sortI18nLocale ?? true) {
1707
+ configs.push(...sortI18nLocale());
1708
+ }
1674
1709
  if (options.sortTsConfig ?? true) {
1675
1710
  configs.push(...sortTsConfig());
1676
1711
  }
@@ -1701,6 +1736,7 @@ function ntnyq(options = {}, customConfig = []) {
1701
1736
  if (options.vue ?? hasVue) {
1702
1737
  configs.push(
1703
1738
  ...vue({
1739
+ ...resolveSubOptions(options, "vue"),
1704
1740
  overrides: getOverrides(options, "vue")
1705
1741
  })
1706
1742
  );
@@ -1733,6 +1769,7 @@ function ntnyq(options = {}, customConfig = []) {
1733
1769
  if (options.prettier ?? true) {
1734
1770
  configs.push(
1735
1771
  ...prettier({
1772
+ ...resolveSubOptions(options, "prettier"),
1736
1773
  overrides: getOverrides(options, "prettier")
1737
1774
  })
1738
1775
  );
@@ -1755,6 +1792,8 @@ function ntnyq(options = {}, customConfig = []) {
1755
1792
  GLOB_LESS,
1756
1793
  GLOB_LOCKFILE,
1757
1794
  GLOB_MARKDOWN,
1795
+ GLOB_MARKDOWN_CODE,
1796
+ GLOB_MARKDOWN_NESTED,
1758
1797
  GLOB_NODE_MODULES,
1759
1798
  GLOB_SCSS,
1760
1799
  GLOB_SRC,
@@ -1769,7 +1808,6 @@ function ntnyq(options = {}, customConfig = []) {
1769
1808
  command,
1770
1809
  comments,
1771
1810
  getOverrides,
1772
- getVueVersion,
1773
1811
  hasTypeScript,
1774
1812
  hasUnoCSS,
1775
1813
  hasVitest,
@@ -1809,6 +1847,7 @@ function ntnyq(options = {}, customConfig = []) {
1809
1847
  prettier,
1810
1848
  regexp,
1811
1849
  resolveSubOptions,
1850
+ sortI18nLocale,
1812
1851
  sortPackageJson,
1813
1852
  sortTsConfig,
1814
1853
  toArray,