@so1ve/eslint-config 3.14.0 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -15952,6 +15952,9 @@ declare function astro({
15952
15952
  overrides
15953
15953
  }?: OptionsOverrides): Promise<TypedFlatConfigItem[]>;
15954
15954
  //#endregion
15955
+ //#region src/configs/command.d.ts
15956
+ declare const command: () => Promise<TypedFlatConfigItem[]>;
15957
+ //#endregion
15955
15958
  //#region src/configs/comments.d.ts
15956
15959
  declare const comments: () => TypedFlatConfigItem[];
15957
15960
  //#endregion
@@ -16111,4 +16114,4 @@ declare function interopDefault<T>(m: MaybePromise<T>): Promise<T extends {
16111
16114
  default: infer U;
16112
16115
  } ? U : T>;
16113
16116
  //#endregion
16114
- export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_DTS, GLOB_ESLINTRC, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_PACKAGEJSON, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_VUE, GLOB_YAML, MaybeArray, MaybePromise, Options, OptionsComponentExts, OptionsHasTypeScript, OptionsOverrides, OptionsTypeScriptParserOptions, ResolvedOptions, Rules, TypedFlatConfigItem, astro, comments, defaultPluginRenaming, formatting, getOverrides, html, ignores, imports, interopDefault, javascript, jsonc, mdx, node, onlyError, perfectionist, pnpm, promise, renameRules, resolveSubOptions, so1ve, solid, sortImports, test, toml, typescript$1 as typescript, unicorn, vue, yaml };
16117
+ export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_DTS, GLOB_ESLINTRC, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_PACKAGEJSON, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_VUE, GLOB_YAML, MaybeArray, MaybePromise, Options, OptionsComponentExts, OptionsHasTypeScript, OptionsOverrides, OptionsTypeScriptParserOptions, ResolvedOptions, Rules, TypedFlatConfigItem, astro, command, comments, defaultPluginRenaming, formatting, getOverrides, html, ignores, imports, interopDefault, javascript, jsonc, mdx, node, onlyError, perfectionist, pnpm, promise, renameRules, resolveSubOptions, so1ve, solid, sortImports, test, toml, typescript$1 as typescript, unicorn, vue, yaml };
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import createCommand from "eslint-plugin-command/config";
1
2
  import pluginComments from "@eslint-community/eslint-plugin-eslint-comments";
2
3
  import pluginSo1ve from "@so1ve/eslint-plugin";
3
4
  import pluginSortImports from "@so1ve/eslint-plugin-sort-imports";
@@ -166,6 +167,13 @@ async function astro({ overrides = {} } = {}) {
166
167
  }];
167
168
  }
168
169
 
170
+ //#endregion
171
+ //#region src/configs/command.ts
172
+ const command = async () => [{
173
+ ...createCommand(),
174
+ name: "so1ve/command/rules"
175
+ }];
176
+
169
177
  //#endregion
170
178
  //#region src/configs/comments.ts
171
179
  const comments = () => [{
@@ -174,11 +182,11 @@ const comments = () => [{
174
182
  }, {
175
183
  name: "so1ve/comments/rules",
176
184
  rules: {
185
+ "eslint-comments/disable-enable-pair": "off",
177
186
  "eslint-comments/no-aggregating-enable": "error",
178
187
  "eslint-comments/no-duplicate-disable": "error",
179
- "eslint-comments/no-unused-enable": "error",
180
- "eslint-comments/disable-enable-pair": "off",
181
- "eslint-comments/no-unlimited-disable": "off"
188
+ "eslint-comments/no-unlimited-disable": "off",
189
+ "eslint-comments/no-unused-enable": "error"
182
190
  }
183
191
  }];
184
192
 
@@ -194,23 +202,23 @@ async function formatting(options) {
194
202
  name: "so1ve/formatting/rules",
195
203
  rules: {
196
204
  "curly": ["error", "all"],
197
- "so1ve/no-useless-template-string": "error",
198
- "so1ve/no-negated-comparison": "error",
205
+ "so1ve/function-style": "error",
199
206
  "so1ve/no-import-promises-as": "error",
207
+ "so1ve/no-negated-comparison": "error",
208
+ "so1ve/no-useless-template-string": "error",
200
209
  "so1ve/pad-after-last-import": "error",
201
- "so1ve/function-style": "error",
202
- "style/quote-props": ["error", "consistent-as-needed"],
210
+ "style/lines-between-class-members": [
211
+ "error",
212
+ "always",
213
+ { exceptAfterSingleLine: true }
214
+ ],
203
215
  "style/no-extra-parens": ["error", "functions"],
204
216
  "style/padding-line-between-statements": ["error", {
205
217
  blankLine: "always",
206
218
  prev: "*",
207
219
  next: "return"
208
220
  }],
209
- "style/lines-between-class-members": [
210
- "error",
211
- "always",
212
- { exceptAfterSingleLine: true }
213
- ],
221
+ "style/quote-props": ["error", "consistent-as-needed"],
214
222
  "style/spaced-comment": [
215
223
  "error",
216
224
  "always",
@@ -387,12 +395,12 @@ async function html() {
387
395
  files: [GLOB_HTML],
388
396
  rules: {
389
397
  ...renameRules(pluginHtml.configs.recommended.rules, { "@html-eslint": "html" }),
398
+ "html/attrs-newline": "off",
390
399
  "html/indent": "off",
391
- "html/no-trailing-spaces": "off",
392
- "html/require-closing-tags": "off",
393
400
  "html/no-extra-spacing-attrs": "off",
401
+ "html/no-trailing-spaces": "off",
394
402
  "html/quotes": "off",
395
- "html/attrs-newline": "off"
403
+ "html/require-closing-tags": "off"
396
404
  }
397
405
  }];
398
406
  }
@@ -453,16 +461,16 @@ const imports = (options = {}) => [
453
461
  } : { node: { extensions: [".js", ".mjs"] } } }
454
462
  },
455
463
  rules: {
456
- "import/named": "error",
457
464
  "import/default": "error",
458
465
  "import/export": "error",
459
466
  "import/first": "error",
467
+ "import/named": "error",
460
468
  "import/namespace": "off",
469
+ "import/no-duplicates": "error",
461
470
  "import/no-mutable-exports": "error",
462
- "import/no-useless-path-segments": ["error", { noUselessIndex: true }],
463
471
  "import/no-named-as-default": "error",
464
- "import/no-duplicates": "error",
465
472
  "import/no-named-default": "error",
473
+ "import/no-useless-path-segments": ["error", { noUselessIndex: true }],
466
474
  "import/no-webpack-loader-syntax": "error"
467
475
  }
468
476
  },
@@ -481,11 +489,11 @@ async function javascript({ overrides } = {}) {
481
489
  {
482
490
  name: "so1ve/javascript/setup",
483
491
  plugins: {
492
+ "array-func": pluginArrayFunc,
493
+ "no-await-in-promise": pluginNoAwaitInPromise,
484
494
  "so1ve": await interopDefault(pluginSo1ve),
485
- "unused-imports": pluginUnusedImports,
486
495
  "sort-imports": pluginSortImports,
487
- "array-func": pluginArrayFunc,
488
- "no-await-in-promise": pluginNoAwaitInPromise
496
+ "unused-imports": pluginUnusedImports
489
497
  }
490
498
  },
491
499
  {
@@ -509,85 +517,85 @@ async function javascript({ overrides } = {}) {
509
517
  },
510
518
  linterOptions: { reportUnusedDisableDirectives: true },
511
519
  rules: {
520
+ "accessor-pairs": ["error", {
521
+ setWithoutGet: true,
522
+ enforceForClassMembers: true
523
+ }],
512
524
  "array-bracket-newline": "off",
525
+ "array-callback-return": "error",
513
526
  "array-element-newline": "off",
527
+ "array-func/avoid-reverse": "error",
528
+ "array-func/from-map": "off",
529
+ "array-func/no-unnecessary-this-arg": "off",
530
+ "array-func/prefer-array-from": "off",
531
+ "array-func/prefer-flat-map": "error",
532
+ "array-func/prefer-flat": "off",
514
533
  "arrow-body-style": "off",
515
534
  "arrow-parens": "off",
535
+ "block-scoped-var": "error",
536
+ "complexity": ["off", 11],
537
+ "consistent-return": "off",
538
+ "constructor-super": "error",
539
+ "default-case-last": "error",
516
540
  "dot-notation": ["error", { allowKeywords: true }],
541
+ "eqeqeq": ["error", "smart"],
517
542
  "function-call-argument-newline": "off",
518
543
  "function-paren-newline": "off",
519
544
  "generator-star": "off",
520
545
  "implicit-arrow-linebreak": "off",
521
- "indent": "off",
522
546
  "indent-legacy": "off",
547
+ "indent": "off",
523
548
  "jsx-quotes": "off",
524
549
  "linebreak-style": "off",
525
- "newline-per-chained-call": "off",
526
- "no-arrow-condition": "off",
527
- "no-comma-dangle": "off",
528
- "no-confusing-arrow": "off",
529
- "no-extra-semi": "off",
530
- "no-reserved-keys": "off",
531
- "no-spaced-func": "off",
532
- "no-space-before-semi": "off",
533
- "no-wrap-func": "off",
534
- "nonblock-statement-body-position": "off",
535
- "one-var-declaration-per-line": "off",
536
- "switch-colon-spacing": "off",
537
- "symbol-description": "off",
538
- "wrap-regex": "off",
539
- "unused-imports/no-unused-imports": "error",
540
- "unused-imports/no-unused-vars": ["error", {
541
- vars: "all",
542
- varsIgnorePattern: "^_",
543
- args: "after-used",
544
- argsIgnorePattern: "^_",
545
- ignoreRestSiblings: true
546
- }],
547
- "accessor-pairs": ["error", {
548
- setWithoutGet: true,
549
- enforceForClassMembers: true
550
- }],
551
- "constructor-super": "error",
552
- "default-case-last": "error",
553
550
  "new-cap": ["error", {
554
551
  newIsCap: true,
555
552
  capIsNew: false,
556
553
  properties: true
557
554
  }],
555
+ "newline-per-chained-call": "off",
556
+ "no-alert": "error",
558
557
  "no-array-constructor": "error",
558
+ "no-arrow-condition": "off",
559
559
  "no-async-promise-executor": "error",
560
+ "no-await-in-promise/no-await-in-promise": "error",
560
561
  "no-caller": "error",
562
+ "no-case-declarations": "error",
561
563
  "no-class-assign": "error",
564
+ "no-comma-dangle": "off",
562
565
  "no-compare-neg-zero": "error",
566
+ "no-cond-assign": ["error", "always"],
567
+ "no-confusing-arrow": "off",
568
+ "no-console": ["error", { allow: [
569
+ "error",
570
+ "warn",
571
+ "table",
572
+ "time"
573
+ ] }],
563
574
  "no-const-assign": "error",
575
+ "no-constant-condition": "error",
564
576
  "no-control-regex": "error",
577
+ "no-debugger": "error",
565
578
  "no-delete-var": "error",
566
579
  "no-dupe-args": "error",
567
580
  "no-dupe-class-members": "error",
568
581
  "no-dupe-keys": "error",
569
582
  "no-duplicate-case": "error",
570
- "no-useless-backreference": "error",
571
- "no-useless-call": "error",
572
- "no-useless-computed-key": "error",
573
- "no-useless-constructor": "error",
574
- "no-useless-rename": "error",
575
- "no-useless-return": "error",
576
- "no-void": "error",
577
- "no-empty": ["error", { allowEmptyCatch: true }],
578
583
  "no-empty-character-class": "error",
579
584
  "no-empty-pattern": "error",
585
+ "no-empty": ["error", { allowEmptyCatch: true }],
580
586
  "no-eval": "error",
581
587
  "no-ex-assign": "error",
582
588
  "no-extend-native": "error",
583
589
  "no-extra-bind": "error",
584
590
  "no-extra-boolean-cast": "error",
591
+ "no-extra-semi": "off",
585
592
  "no-fallthrough": "error",
586
593
  "no-func-assign": "error",
587
594
  "no-global-assign": "error",
588
595
  "no-implied-eval": "error",
589
596
  "no-import-assign": "error",
590
597
  "no-invalid-regexp": "error",
598
+ "no-invalid-this": "error",
591
599
  "no-irregular-whitespace": "error",
592
600
  "no-iterator": "error",
593
601
  "no-labels": ["error", {
@@ -597,28 +605,20 @@ async function javascript({ overrides } = {}) {
597
605
  "no-lone-blocks": "error",
598
606
  "no-loss-of-precision": "error",
599
607
  "no-misleading-character-class": "error",
608
+ "no-multi-str": "error",
600
609
  "no-new-func": "error",
601
- "no-object-constructor": "error",
602
610
  "no-new-native-nonconstructor": "error",
603
611
  "no-new-wrappers": "error",
604
- "no-prototype-builtins": "error",
605
- "no-useless-catch": "error",
612
+ "no-obj-calls": "error",
613
+ "no-object-constructor": "error",
614
+ "no-octal-escape": "error",
615
+ "no-octal": "error",
606
616
  "no-param-reassign": "off",
607
- "no-constant-condition": "error",
608
- "no-debugger": "error",
609
- "no-console": ["error", { allow: [
610
- "error",
611
- "warn",
612
- "table",
613
- "time"
614
- ] }],
615
- "no-cond-assign": ["error", "always"],
616
- "no-restricted-syntax": [
617
- "error",
618
- "DebuggerStatement",
619
- "LabeledStatement",
620
- "WithStatement"
621
- ],
617
+ "no-proto": "error",
618
+ "no-prototype-builtins": "error",
619
+ "no-redeclare": ["error", { builtinGlobals: false }],
620
+ "no-regex-spaces": "error",
621
+ "no-reserved-keys": "off",
622
622
  "no-restricted-globals": [
623
623
  "error",
624
624
  {
@@ -689,53 +689,31 @@ async function javascript({ overrides } = {}) {
689
689
  message: "Use `Number.parseInt` instead"
690
690
  }
691
691
  ],
692
- "no-obj-calls": "error",
693
- "no-octal": "error",
694
- "no-octal-escape": "error",
695
- "no-proto": "error",
696
- "no-redeclare": ["error", { builtinGlobals: false }],
697
- "no-regex-spaces": "error",
692
+ "no-restricted-syntax": [
693
+ "error",
694
+ "DebuggerStatement",
695
+ "LabeledStatement",
696
+ "WithStatement"
697
+ ],
698
+ "no-return-await": "off",
698
699
  "no-self-assign": ["error", { props: true }],
699
700
  "no-self-compare": "error",
700
701
  "no-sequences": "error",
701
702
  "no-shadow-restricted-names": "error",
703
+ "no-space-before-semi": "off",
704
+ "no-spaced-func": "off",
702
705
  "no-template-curly-in-string": "error",
703
706
  "no-this-before-super": "error",
704
707
  "no-throw-literal": "error",
705
- "no-undef": "error",
706
708
  "no-undef-init": "error",
709
+ "no-undef": "error",
707
710
  "no-unexpected-multiline": "error",
708
711
  "no-unmodified-loop-condition": "error",
709
712
  "no-unneeded-ternary": ["error", { defaultAssignment: false }],
710
- "no-unreachable": "error",
711
713
  "no-unreachable-loop": "error",
714
+ "no-unreachable": "error",
712
715
  "no-unsafe-finally": "error",
713
716
  "no-unsafe-negation": "error",
714
- "no-return-await": "off",
715
- "no-var": "error",
716
- "prefer-const": ["error", {
717
- destructuring: "all",
718
- ignoreReadBeforeAssign: true
719
- }],
720
- "prefer-arrow-callback": ["error", {
721
- allowNamedFunctions: false,
722
- allowUnboundThis: true
723
- }],
724
- "one-var": ["error", "never"],
725
- "object-shorthand": [
726
- "error",
727
- "always",
728
- { ignoreConstructors: false }
729
- ],
730
- "prefer-exponentiation-operator": "error",
731
- "prefer-rest-params": "error",
732
- "prefer-spread": "error",
733
- "prefer-template": "error",
734
- "prefer-promise-reject-errors": "error",
735
- "prefer-regex-literals": ["error", { disallowRedundantWrapping: true }],
736
- "yoda": ["error", "never"],
737
- "array-callback-return": "error",
738
- "block-scoped-var": "error",
739
717
  "no-unused-expressions": ["error", {
740
718
  allowShortCircuit: true,
741
719
  allowTernary: true,
@@ -752,32 +730,62 @@ async function javascript({ overrides } = {}) {
752
730
  classes: false,
753
731
  variables: true
754
732
  }],
755
- "consistent-return": "off",
756
- "complexity": ["off", 11],
757
- "eqeqeq": ["error", "smart"],
758
- "no-alert": "error",
759
- "no-case-declarations": "error",
760
- "no-multi-str": "error",
733
+ "no-useless-backreference": "error",
734
+ "no-useless-call": "error",
735
+ "no-useless-catch": "error",
736
+ "no-useless-computed-key": "error",
737
+ "no-useless-constructor": "error",
738
+ "no-useless-rename": "error",
739
+ "no-useless-return": "error",
740
+ "no-var": "error",
741
+ "no-void": "error",
761
742
  "no-with": "error",
762
- "no-invalid-this": "error",
763
- "vars-on-top": "error",
743
+ "no-wrap-func": "off",
744
+ "nonblock-statement-body-position": "off",
745
+ "object-shorthand": [
746
+ "error",
747
+ "always",
748
+ { ignoreConstructors: false }
749
+ ],
750
+ "one-var-declaration-per-line": "off",
751
+ "one-var": ["error", "never"],
752
+ "prefer-arrow-callback": ["error", {
753
+ allowNamedFunctions: false,
754
+ allowUnboundThis: true
755
+ }],
756
+ "prefer-const": ["error", {
757
+ destructuring: "all",
758
+ ignoreReadBeforeAssign: true
759
+ }],
760
+ "prefer-exponentiation-operator": "error",
761
+ "prefer-promise-reject-errors": "error",
762
+ "prefer-regex-literals": ["error", { disallowRedundantWrapping: true }],
763
+ "prefer-rest-params": "error",
764
+ "prefer-spread": "error",
765
+ "prefer-template": "error",
764
766
  "require-await": "off",
767
+ "so1ve/import-dedupe": "error",
768
+ "so1ve/require-async-with-await": "error",
769
+ "sort-imports/exports": "error",
770
+ "sort-imports/imports": ["error"],
771
+ "switch-colon-spacing": "off",
772
+ "symbol-description": "off",
773
+ "unused-imports/no-unused-imports": "error",
774
+ "unused-imports/no-unused-vars": ["error", {
775
+ vars: "all",
776
+ varsIgnorePattern: "^_",
777
+ args: "after-used",
778
+ argsIgnorePattern: "^_",
779
+ ignoreRestSiblings: true
780
+ }],
765
781
  "use-isnan": ["error", {
766
782
  enforceForSwitchCase: true,
767
783
  enforceForIndexOf: true
768
784
  }],
769
785
  "valid-typeof": ["error", { requireStringLiterals: true }],
770
- "so1ve/import-dedupe": "error",
771
- "so1ve/require-async-with-await": "error",
772
- "sort-imports/imports": ["error"],
773
- "sort-imports/exports": "error",
774
- "array-func/prefer-array-from": "off",
775
- "array-func/no-unnecessary-this-arg": "off",
776
- "array-func/prefer-flat": "off",
777
- "array-func/from-map": "off",
778
- "array-func/avoid-reverse": "error",
779
- "array-func/prefer-flat-map": "error",
780
- "no-await-in-promise/no-await-in-promise": "error",
786
+ "vars-on-top": "error",
787
+ "wrap-regex": "off",
788
+ "yoda": ["error", "never"],
781
789
  ...overrides
782
790
  }
783
791
  },
@@ -817,8 +825,8 @@ async function jsonc() {
817
825
  ...pluginJsonc.configs.base.overrides[0].rules,
818
826
  ...pluginJsonc.configs["recommended-with-jsonc"].rules,
819
827
  "jsonc/no-octal-escape": "error",
820
- "jsonc/quotes": "off",
821
- "jsonc/quotes-props": "off"
828
+ "jsonc/quotes-props": "off",
829
+ "jsonc/quotes": "off"
822
830
  }
823
831
  }];
824
832
  }
@@ -841,21 +849,21 @@ async function mdx({ componentExts = [], overrides } = {}) {
841
849
  rules: {
842
850
  ...pluginMdx.flatCodeBlocks.rules,
843
851
  "html/require-doctype": "off",
844
- "ts/no-redeclare": "off",
845
- "ts/no-unused-vars": "off",
846
- "ts/no-use-before-define": "off",
847
- "ts/no-var-requires": "off",
848
- "ts/consistent-type-imports": "off",
849
- "ts/no-namespace": "off",
850
- "ts/no-require-imports": "off",
851
852
  "import/no-unresolved": "off",
852
- "unused-imports/no-unused-imports": "off",
853
- "unused-imports/no-unused-vars": "off",
854
853
  "no-alert": "off",
855
854
  "no-console": "off",
856
855
  "no-restricted-imports": "off",
857
856
  "no-undef": "off",
858
857
  "no-unused-expressions": "off",
858
+ "ts/consistent-type-imports": "off",
859
+ "ts/no-namespace": "off",
860
+ "ts/no-redeclare": "off",
861
+ "ts/no-require-imports": "off",
862
+ "ts/no-unused-vars": "off",
863
+ "ts/no-use-before-define": "off",
864
+ "ts/no-var-requires": "off",
865
+ "unused-imports/no-unused-imports": "off",
866
+ "unused-imports/no-unused-vars": "off",
859
867
  ...overrides
860
868
  }
861
869
  }];
@@ -869,8 +877,8 @@ const node = () => [{
869
877
  }, {
870
878
  name: "so1ve/node/rules",
871
879
  rules: {
872
- "node/no-callback-literal": "off",
873
880
  "node/handle-callback-err": ["error", "^(err|error)$"],
881
+ "node/no-callback-literal": "off",
874
882
  "node/no-deprecated-api": "error",
875
883
  "node/no-exports-assign": "error",
876
884
  "node/no-new-require": "error",
@@ -999,9 +1007,9 @@ async function test({ overrides } = {}) {
999
1007
  return [{
1000
1008
  name: "so1ve/test/setup",
1001
1009
  plugins: {
1010
+ "jest-formatting": pluginJestFormatting,
1002
1011
  "no-only-tests": pluginNoOnlyTests,
1003
- "vitest": pluginVitest,
1004
- "jest-formatting": pluginJestFormatting
1012
+ "vitest": pluginVitest
1005
1013
  }
1006
1014
  }, {
1007
1015
  name: "so1ve/test/rules",
@@ -1010,13 +1018,11 @@ async function test({ overrides } = {}) {
1010
1018
  ...pluginVitest.configs.recommended.rules,
1011
1019
  "no-only-tests/no-only-tests": "error",
1012
1020
  "vitest/expect-expect": "off",
1013
- "vitest/valid-title": "off",
1014
- "vitest/valid-describe-callback": "off",
1015
1021
  "vitest/no-alias-methods": "error",
1016
1022
  "vitest/no-interpolation-in-snapshots": "error",
1017
1023
  "vitest/no-test-prefixes": "error",
1018
- "vitest/prefer-expect-resolves": "error",
1019
1024
  "vitest/prefer-comparison-matcher": "error",
1025
+ "vitest/prefer-expect-resolves": "error",
1020
1026
  "vitest/prefer-mock-promise-shorthand": "error",
1021
1027
  "vitest/prefer-spy-on": "error",
1022
1028
  "vitest/prefer-to-be-falsy": "error",
@@ -1025,6 +1031,8 @@ async function test({ overrides } = {}) {
1025
1031
  "vitest/prefer-to-contain": "error",
1026
1032
  "vitest/prefer-to-have-length": "error",
1027
1033
  "vitest/prefer-todo": "error",
1034
+ "vitest/valid-describe-callback": "off",
1035
+ "vitest/valid-title": "off",
1028
1036
  ...overrides
1029
1037
  }
1030
1038
  }];
@@ -1100,20 +1108,52 @@ const typescript = async ({ componentExts = [], parserOptions, overrides } = {})
1100
1108
  ...b
1101
1109
  }), {}), { "@typescript-eslint": "ts" }),
1102
1110
  "import/named": "off",
1111
+ "no-dupe-class-members": "off",
1112
+ "no-invalid-this": "off",
1113
+ "no-redeclare": "off",
1114
+ "no-use-before-define": "off",
1115
+ "no-useless-constructor": "off",
1116
+ "object-curly-spacing": "off",
1117
+ "so1ve/no-inline-type-import": "error",
1103
1118
  "so1ve/prefer-ts-expect-error": "error",
1104
- "ts/comma-dangle": "off",
1119
+ "space-before-blocks": "off",
1120
+ "space-before-function-paren": "off",
1121
+ "ts/ban-ts-comment": ["error", { minimumDescriptionLength: 0 }],
1122
+ "ts/ban-ts-ignore": "off",
1105
1123
  "ts/brace-style": "off",
1124
+ "ts/camelcase": "off",
1125
+ "ts/comma-dangle": "off",
1106
1126
  "ts/comma-spacing": "off",
1127
+ "ts/consistent-indexed-object-style": ["error", "record"],
1128
+ "ts/consistent-type-definitions": ["error", "interface"],
1129
+ "ts/consistent-type-imports": ["error", {
1130
+ prefer: "type-imports",
1131
+ disallowTypeAnnotations: false
1132
+ }],
1133
+ "ts/explicit-function-return-type": "off",
1134
+ "ts/explicit-member-accessibility": ["error", {
1135
+ accessibility: "explicit",
1136
+ overrides: { constructors: "no-public" }
1137
+ }],
1138
+ "ts/explicit-module-boundary-types": "off",
1107
1139
  "ts/func-call-spacing": "off",
1108
1140
  "ts/indent": "off",
1109
1141
  "ts/keyword-spacing": "off",
1110
1142
  "ts/member-delimiter-style": "off",
1143
+ "ts/method-signature-style": ["error", "property"],
1144
+ "ts/no-dupe-class-members": "error",
1145
+ "ts/no-duplicate-enum-values": "error",
1146
+ "ts/no-empty-function": "off",
1147
+ "ts/no-empty-interface": "off",
1148
+ "ts/no-empty-object-type": ["error", { allowInterfaces: "always" }],
1149
+ "ts/no-explicit-any": "off",
1111
1150
  "ts/no-extra-semi": "off",
1112
- "ts/quotes": "off",
1113
- "ts/semi": "off",
1114
- "ts/space-before-function-paren": "off",
1115
- "ts/type-annotation-spacing": "off",
1116
- "ts/ban-ts-comment": ["error", { minimumDescriptionLength: 0 }],
1151
+ "ts/no-invalid-this": "error",
1152
+ "ts/no-non-null-asserted-nullish-coalescing": "error",
1153
+ "ts/no-non-null-assertion": "off",
1154
+ "ts/no-parameter-properties": "off",
1155
+ "ts/no-redeclare": "error",
1156
+ "ts/no-require-imports": "error",
1117
1157
  "ts/no-restricted-types": ["error", { types: {
1118
1158
  String: {
1119
1159
  message: "Use `string` instead.",
@@ -1149,52 +1189,20 @@ const typescript = async ({ componentExts = [], parserOptions, overrides } = {})
1149
1189
  }
1150
1190
  } }],
1151
1191
  "ts/no-unsafe-function-type": "error",
1152
- "ts/no-wrapper-object-types": "error",
1153
- "ts/consistent-type-imports": ["error", {
1154
- prefer: "type-imports",
1155
- disallowTypeAnnotations: false
1156
- }],
1157
- "ts/consistent-type-definitions": ["error", "interface"],
1158
- "ts/consistent-indexed-object-style": ["error", "record"],
1159
- "ts/prefer-for-of": "error",
1160
- "ts/no-duplicate-enum-values": "error",
1161
- "ts/no-non-null-asserted-nullish-coalescing": "error",
1162
- "ts/no-require-imports": "error",
1163
- "ts/method-signature-style": ["error", "property"],
1164
- "ts/explicit-member-accessibility": ["error", {
1165
- accessibility: "explicit",
1166
- overrides: { constructors: "no-public" }
1167
- }],
1168
- "ts/no-empty-object-type": ["error", { allowInterfaces: "always" }],
1169
- "no-useless-constructor": "off",
1170
- "no-invalid-this": "off",
1171
- "ts/no-invalid-this": "error",
1172
- "no-redeclare": "off",
1173
- "ts/no-redeclare": "error",
1174
- "no-use-before-define": "off",
1192
+ "ts/no-unused-vars": "off",
1175
1193
  "ts/no-use-before-define": ["error", {
1176
1194
  functions: false,
1177
1195
  classes: false,
1178
1196
  variables: true
1179
1197
  }],
1180
- "object-curly-spacing": "off",
1181
- "space-before-blocks": "off",
1198
+ "ts/no-wrapper-object-types": "error",
1199
+ "ts/prefer-for-of": "error",
1200
+ "ts/quotes": "off",
1201
+ "ts/semi": "off",
1182
1202
  "ts/space-before-blocks": "off",
1183
- "space-before-function-paren": "off",
1184
- "no-dupe-class-members": "off",
1185
- "ts/no-dupe-class-members": "error",
1186
- "so1ve/no-inline-type-import": "error",
1187
- "ts/camelcase": "off",
1188
- "ts/explicit-function-return-type": "off",
1189
- "ts/no-explicit-any": "off",
1190
- "ts/no-parameter-properties": "off",
1191
- "ts/no-empty-interface": "off",
1192
- "ts/ban-ts-ignore": "off",
1193
- "ts/no-empty-function": "off",
1194
- "ts/no-non-null-assertion": "off",
1195
- "ts/explicit-module-boundary-types": "off",
1203
+ "ts/space-before-function-paren": "off",
1196
1204
  "ts/triple-slash-reference": "off",
1197
- "ts/no-unused-vars": "off",
1205
+ "ts/type-annotation-spacing": "off",
1198
1206
  ...overrides
1199
1207
  }
1200
1208
  },
@@ -1233,36 +1241,36 @@ const typescript = async ({ componentExts = [], parserOptions, overrides } = {})
1233
1241
  ] }
1234
1242
  } },
1235
1243
  rules: {
1236
- "no-throw-literal": "off",
1237
- "ts/only-throw-error": "error",
1238
- "no-implied-eval": "off",
1239
- "ts/no-implied-eval": "error",
1240
1244
  "dot-notation": "off",
1241
- "ts/dot-notation": ["error", { allowKeywords: true }],
1245
+ "no-implied-eval": "off",
1246
+ "no-throw-literal": "off",
1242
1247
  "no-void": ["error", { allowAsStatement: true }],
1243
- "ts/await-thenable": "error",
1244
- "ts/no-for-in-array": "error",
1245
- "ts/no-unnecessary-type-assertion": "error",
1246
- "ts/restrict-template-expressions": ["error", {
1247
- allowAny: true,
1248
- allowNumber: true,
1249
- allowBoolean: true
1250
- }],
1251
1248
  "ts/array-type": ["error", {
1252
1249
  default: "array",
1253
1250
  readonly: "array"
1254
1251
  }],
1252
+ "ts/await-thenable": "error",
1255
1253
  "ts/consistent-generic-constructors": "error",
1256
- "ts/consistent-type-exports": "error",
1257
1254
  "ts/consistent-type-assertions": ["error", {
1258
1255
  assertionStyle: "as",
1259
1256
  objectLiteralTypeAssertions: "allow"
1260
1257
  }],
1258
+ "ts/consistent-type-exports": "error",
1259
+ "ts/dot-notation": ["error", { allowKeywords: true }],
1260
+ "ts/no-for-in-array": "error",
1261
+ "ts/no-implied-eval": "error",
1262
+ "ts/no-unnecessary-type-arguments": "error",
1263
+ "ts/no-unnecessary-type-assertion": "error",
1264
+ "ts/non-nullable-type-assertion-style": "error",
1265
+ "ts/only-throw-error": "error",
1261
1266
  "ts/prefer-nullish-coalescing": "error",
1262
1267
  "ts/prefer-optional-chain": "error",
1263
1268
  "ts/prefer-return-this-type": "error",
1264
- "ts/no-unnecessary-type-arguments": "error",
1265
- "ts/non-nullable-type-assertion-style": "error"
1269
+ "ts/restrict-template-expressions": ["error", {
1270
+ allowAny: true,
1271
+ allowNumber: true,
1272
+ allowBoolean: true
1273
+ }]
1266
1274
  }
1267
1275
  },
1268
1276
  {
@@ -1293,54 +1301,57 @@ const unicorn = () => [{
1293
1301
  name: "so1ve/unicorn/rules",
1294
1302
  rules: {
1295
1303
  "unicorn/consistent-assert": "error",
1304
+ "unicorn/consistent-date-clone": "error",
1296
1305
  "unicorn/consistent-empty-array-spread": "error",
1297
1306
  "unicorn/consistent-existence-index-check": "error",
1298
- "unicorn/consistent-date-clone": "error",
1299
- "unicorn/throw-new-error": "error",
1300
- "unicorn/relative-url-style": ["error", "always"],
1301
- "unicorn/switch-case-braces": "error",
1302
- "unicorn/number-literal-case": "error",
1303
- "unicorn/numeric-separators-style": "error",
1304
- "unicorn/new-for-builtins": "error",
1305
1307
  "unicorn/error-message": "error",
1306
1308
  "unicorn/escape-case": "error",
1307
1309
  "unicorn/explicit-length-check": "error",
1308
- "unicorn/no-instanceof-builtins": "error",
1309
- "unicorn/no-new-buffer": "error",
1310
- "unicorn/no-new-array": "error",
1310
+ "unicorn/new-for-builtins": "error",
1311
1311
  "unicorn/no-array-for-each": "error",
1312
1312
  "unicorn/no-array-method-this-argument": "error",
1313
+ "unicorn/no-await-expression-member": "error",
1314
+ "unicorn/no-await-in-promise-methods": "error",
1313
1315
  "unicorn/no-for-loop": "error",
1316
+ "unicorn/no-immediate-mutation": "error",
1317
+ "unicorn/no-instanceof-builtins": "error",
1314
1318
  "unicorn/no-lonely-if": "error",
1315
1319
  "unicorn/no-negated-condition": "error",
1316
- "unicorn/no-useless-spread": "error",
1320
+ "unicorn/no-new-array": "error",
1321
+ "unicorn/no-new-buffer": "error",
1317
1322
  "unicorn/no-useless-collection-argument": "error",
1318
- "unicorn/no-immediate-mutation": "error",
1319
- "unicorn/require-module-specifiers": "error",
1320
- "unicorn/prefer-ternary": "error",
1321
- "unicorn/prefer-query-selector": "error",
1323
+ "unicorn/no-useless-spread": "error",
1324
+ "unicorn/no-zero-fractions": "error",
1325
+ "unicorn/number-literal-case": "error",
1326
+ "unicorn/numeric-separators-style": "error",
1327
+ "unicorn/prefer-array-find": "error",
1328
+ "unicorn/prefer-array-flat": "error",
1329
+ "unicorn/prefer-array-index-of": "error",
1330
+ "unicorn/prefer-array-some": "error",
1331
+ "unicorn/prefer-class-fields": "error",
1332
+ "unicorn/prefer-date-now": "error",
1333
+ "unicorn/prefer-includes": "error",
1334
+ "unicorn/prefer-json-parse-buffer": "error",
1322
1335
  "unicorn/prefer-modern-dom-apis": "error",
1323
1336
  "unicorn/prefer-modern-math-apis": "error",
1324
- "unicorn/prefer-json-parse-buffer": "error",
1325
- "unicorn/prefer-date-now": "error",
1326
- "unicorn/prefer-array-some": "error",
1327
- "unicorn/prefer-array-index-of": "error",
1328
- "unicorn/prefer-array-flat": "error",
1329
- "unicorn/prefer-array-find": "error",
1330
- "unicorn/prefer-spread": "error",
1337
+ "unicorn/prefer-negative-index": "error",
1338
+ "unicorn/prefer-node-protocol": "error",
1339
+ "unicorn/prefer-object-from-entries": "error",
1340
+ "unicorn/prefer-optional-catch-binding": "error",
1341
+ "unicorn/prefer-prototype-methods": "error",
1342
+ "unicorn/prefer-query-selector": "error",
1343
+ "unicorn/prefer-regexp-test": "error",
1344
+ "unicorn/prefer-response-static-json": "error",
1331
1345
  "unicorn/prefer-set-size": "error",
1346
+ "unicorn/prefer-spread": "error",
1332
1347
  "unicorn/prefer-string-slice": "error",
1333
- "unicorn/prefer-includes": "error",
1334
1348
  "unicorn/prefer-string-starts-ends-with": "error",
1349
+ "unicorn/prefer-ternary": "error",
1335
1350
  "unicorn/prefer-type-error": "error",
1336
- "unicorn/prefer-node-protocol": "error",
1337
- "unicorn/prefer-negative-index": "error",
1338
- "unicorn/prefer-regexp-test": "error",
1339
- "unicorn/prefer-response-static-json": "error",
1340
- "unicorn/prefer-optional-catch-binding": "error",
1341
- "unicorn/prefer-object-from-entries": "error",
1342
- "unicorn/prefer-prototype-methods": "error",
1343
- "unicorn/prefer-class-fields": "error"
1351
+ "unicorn/relative-url-style": ["error", "always"],
1352
+ "unicorn/require-module-specifiers": "error",
1353
+ "unicorn/switch-case-braces": "error",
1354
+ "unicorn/throw-new-error": "error"
1344
1355
  }
1345
1356
  }];
1346
1357
 
@@ -1369,19 +1380,56 @@ async function vue({ overrides, typescript: typescript$1 } = {}) {
1369
1380
  ...pluginVue.configs.essential.rules,
1370
1381
  ...pluginVue.configs["strongly-recommended"].rules,
1371
1382
  ...pluginVue.configs.recommended.rules,
1372
- "no-unused-vars": "off",
1373
1383
  "no-undef": "off",
1384
+ "no-unused-vars": "off",
1385
+ "so1ve/vue-root-element-sort-attributes": "error",
1374
1386
  "ts/no-unused-vars": "off",
1375
- "vue/no-v-html": "off",
1376
- "vue/require-prop-types": "off",
1377
- "vue/require-default-prop": "off",
1378
- "vue/multi-word-component-names": "off",
1387
+ "vue/array-bracket-spacing": "off",
1388
+ "vue/arrow-spacing": "off",
1389
+ "vue/attributes-order": ["error", {
1390
+ order: [
1391
+ "DEFINITION",
1392
+ "LIST_RENDERING",
1393
+ "CONDITIONALS",
1394
+ "RENDER_MODIFIERS",
1395
+ "TWO_WAY_BINDING",
1396
+ "OTHER_DIRECTIVES",
1397
+ ["UNIQUE", "SLOT"],
1398
+ "GLOBAL",
1399
+ "OTHER_ATTR",
1400
+ "EVENTS",
1401
+ "CONTENT"
1402
+ ],
1403
+ alphabetical: true
1404
+ }],
1405
+ "vue/block-lang": ["error", {
1406
+ script: { lang: ["js", "ts"] },
1407
+ template: { lang: [
1408
+ "html",
1409
+ "jade",
1410
+ "pug",
1411
+ "ejs"
1412
+ ] },
1413
+ style: { lang: [
1414
+ "css",
1415
+ "sass",
1416
+ "scss",
1417
+ "less",
1418
+ "stylus",
1419
+ "postcss"
1420
+ ] }
1421
+ }],
1379
1422
  "vue/block-order": ["error", { order: [
1380
1423
  "script:not([setup])",
1381
1424
  "script[setup]",
1382
1425
  "template",
1383
1426
  "style"
1384
1427
  ] }],
1428
+ "vue/block-spacing": "off",
1429
+ "vue/brace-style": "off",
1430
+ "vue/comma-dangle": "off",
1431
+ "vue/comma-spacing": "off",
1432
+ "vue/comma-style": "off",
1385
1433
  "vue/component-api-style": ["error", ["script-setup", "composition"]],
1386
1434
  "vue/component-name-in-template-casing": [
1387
1435
  "error",
@@ -1396,31 +1444,63 @@ async function vue({ overrides, typescript: typescript$1 } = {}) {
1396
1444
  "defineProps",
1397
1445
  "defineSlots"
1398
1446
  ] }],
1447
+ "vue/dot-location": ["error", "property"],
1448
+ "vue/dot-notation": ["error", { allowKeywords: true }],
1449
+ "vue/eqeqeq": ["error", "smart"],
1450
+ "vue/html-closing-bracket-spacing": "off",
1451
+ "vue/html-comment-content-newline": ["error", {
1452
+ singleline: "ignore",
1453
+ multiline: "always"
1454
+ }],
1399
1455
  "vue/html-comment-content-spacing": [
1400
1456
  "error",
1401
1457
  "always",
1402
1458
  { exceptions: ["-"] }
1403
1459
  ],
1404
- "vue/no-restricted-v-bind": ["error", "/^v-/"],
1405
- "vue/no-useless-v-bind": ["error", { ignoreIncludesComment: true }],
1406
- "vue/no-unused-refs": "error",
1407
- "vue/no-v-text-v-html-on-component": "error",
1408
- "vue/padding-line-between-blocks": ["error", "always"],
1409
- "vue/prefer-separate-static-class": "error",
1410
- "vue/dot-location": ["error", "property"],
1411
- "vue/dot-notation": ["error", { allowKeywords: true }],
1412
- "vue/eqeqeq": ["error", "smart"],
1460
+ "vue/html-comment-indent": ["error", "tab"],
1461
+ "vue/html-indent": "off",
1462
+ "vue/html-quotes": "off",
1463
+ "vue/html-self-closing": ["error", {
1464
+ html: {
1465
+ void: "always",
1466
+ normal: "always",
1467
+ component: "always"
1468
+ },
1469
+ svg: "always",
1470
+ math: "always"
1471
+ }],
1472
+ "vue/key-spacing": "off",
1473
+ "vue/keyword-spacing": "off",
1474
+ "vue/max-attributes-per-line": "off",
1475
+ "vue/multi-word-component-names": "off",
1476
+ "vue/multiline-html-element-content-newline": "off",
1477
+ "vue/mustache-interpolation-spacing": "off",
1478
+ "vue/no-console": ["error", { allow: [
1479
+ "error",
1480
+ "warn",
1481
+ "table",
1482
+ "time"
1483
+ ] }],
1413
1484
  "vue/no-constant-condition": "error",
1414
1485
  "vue/no-empty-pattern": "error",
1415
1486
  "vue/no-irregular-whitespace": "error",
1416
1487
  "vue/no-loss-of-precision": "error",
1488
+ "vue/no-multi-spaces": "off",
1489
+ "vue/no-multiple-template-root": "off",
1417
1490
  "vue/no-restricted-syntax": [
1418
1491
  "error",
1419
1492
  "DebuggerStatement",
1420
1493
  "LabeledStatement",
1421
1494
  "WithStatement"
1422
1495
  ],
1496
+ "vue/no-restricted-v-bind": ["error", "/^v-/"],
1423
1497
  "vue/no-sparse-arrays": "error",
1498
+ "vue/no-static-inline-styles": ["error", { allowBinding: true }],
1499
+ "vue/no-unused-refs": "error",
1500
+ "vue/no-useless-concat": "error",
1501
+ "vue/no-useless-v-bind": ["error", { ignoreIncludesComment: true }],
1502
+ "vue/no-v-html": "off",
1503
+ "vue/no-v-text-v-html-on-component": "error",
1424
1504
  "vue/object-curly-newline": ["error", {
1425
1505
  multiline: true,
1426
1506
  consistent: true
@@ -1434,25 +1514,14 @@ async function vue({ overrides, typescript: typescript$1 } = {}) {
1434
1514
  avoidQuotes: true
1435
1515
  }
1436
1516
  ],
1517
+ "vue/operator-linebreak": "off",
1518
+ "vue/padding-line-between-blocks": ["error", "always"],
1519
+ "vue/prefer-define-options": "error",
1520
+ "vue/prefer-separate-static-class": "error",
1437
1521
  "vue/prefer-template": "error",
1522
+ "vue/prefer-true-attribute-shorthand": "error",
1438
1523
  "vue/quote-props": ["error", "consistent-as-needed"],
1439
- "vue/block-lang": ["error", {
1440
- script: { lang: ["js", "ts"] },
1441
- template: { lang: [
1442
- "html",
1443
- "jade",
1444
- "pug",
1445
- "ejs"
1446
- ] },
1447
- style: { lang: [
1448
- "css",
1449
- "sass",
1450
- "scss",
1451
- "less",
1452
- "stylus",
1453
- "postcss"
1454
- ] }
1455
- }],
1524
+ "vue/require-default-prop": "off",
1456
1525
  "vue/require-macro-variable-name": ["error", {
1457
1526
  defineProps: "props",
1458
1527
  defineEmits: "emit",
@@ -1460,74 +1529,16 @@ async function vue({ overrides, typescript: typescript$1 } = {}) {
1460
1529
  useSlots: "slots",
1461
1530
  useAttrs: "attrs"
1462
1531
  }],
1532
+ "vue/require-prop-types": "off",
1463
1533
  "vue/require-typed-ref": "error",
1464
- "vue/no-static-inline-styles": ["error", { allowBinding: true }],
1465
- "vue/no-console": ["error", { allow: [
1466
- "error",
1467
- "warn",
1468
- "table",
1469
- "time"
1470
- ] }],
1534
+ "vue/singleline-html-element-content-newline": "off",
1535
+ "vue/template-curly-spacing": "off",
1471
1536
  "vue/v-bind-style": [
1472
1537
  "error",
1473
1538
  "shorthand",
1474
1539
  { sameNameShorthand: "always" }
1475
1540
  ],
1476
1541
  "vue/v-for-delimiter-style": ["error", "in"],
1477
- "vue/attributes-order": ["error", {
1478
- order: [
1479
- "DEFINITION",
1480
- "LIST_RENDERING",
1481
- "CONDITIONALS",
1482
- "RENDER_MODIFIERS",
1483
- "TWO_WAY_BINDING",
1484
- "OTHER_DIRECTIVES",
1485
- ["UNIQUE", "SLOT"],
1486
- "GLOBAL",
1487
- "OTHER_ATTR",
1488
- "EVENTS",
1489
- "CONTENT"
1490
- ],
1491
- alphabetical: true
1492
- }],
1493
- "vue/prefer-true-attribute-shorthand": "error",
1494
- "vue/prefer-define-options": "error",
1495
- "vue/html-comment-content-newline": ["error", {
1496
- singleline: "ignore",
1497
- multiline: "always"
1498
- }],
1499
- "vue/html-comment-indent": ["error", "tab"],
1500
- "vue/html-self-closing": ["error", {
1501
- html: {
1502
- void: "always",
1503
- normal: "always",
1504
- component: "always"
1505
- },
1506
- svg: "always",
1507
- math: "always"
1508
- }],
1509
- "vue/no-useless-concat": "error",
1510
- "so1ve/vue-root-element-sort-attributes": "error",
1511
- "vue/no-multiple-template-root": "off",
1512
- "vue/multiline-html-element-content-newline": "off",
1513
- "vue/singleline-html-element-content-newline": "off",
1514
- "vue/array-bracket-spacing": "off",
1515
- "vue/arrow-spacing": "off",
1516
- "vue/block-spacing": "off",
1517
- "vue/brace-style": "off",
1518
- "vue/comma-dangle": "off",
1519
- "vue/comma-spacing": "off",
1520
- "vue/comma-style": "off",
1521
- "vue/operator-linebreak": "off",
1522
- "vue/template-curly-spacing": "off",
1523
- "vue/key-spacing": "off",
1524
- "vue/keyword-spacing": "off",
1525
- "vue/html-quotes": "off",
1526
- "vue/html-indent": "off",
1527
- "vue/no-multi-spaces": "off",
1528
- "vue/max-attributes-per-line": "off",
1529
- "vue/html-closing-bracket-spacing": "off",
1530
- "vue/mustache-interpolation-spacing": "off",
1531
1542
  ...overrides
1532
1543
  }
1533
1544
  }];
@@ -1547,8 +1558,8 @@ async function yaml({ overrides } = {}) {
1547
1558
  rules: {
1548
1559
  ...renameRules(pluginYaml.configs.prettier.rules, { yml: "yaml" }),
1549
1560
  ...renameRules(pluginYaml.configs.recommended.rules, { yml: "yaml" }),
1550
- "yaml/no-empty-document": "off",
1551
1561
  "style/spaced-comment": "off",
1562
+ "yaml/no-empty-document": "off",
1552
1563
  ...overrides
1553
1564
  }
1554
1565
  }];
@@ -1589,7 +1600,7 @@ function so1ve(options = {}, ...userConfigs) {
1589
1600
  if (enableGitignore) if (typeof enableGitignore === "boolean") {
1590
1601
  if (fs.existsSync(".gitignore")) configs.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r()]));
1591
1602
  } else configs.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r(enableGitignore)]));
1592
- configs.push(ignores(), javascript({ overrides: getOverrides(options, "javascript") }), comments(), node(), onlyError(), promise(), sortImports(), imports(), unicorn());
1603
+ configs.push(ignores(), javascript({ overrides: getOverrides(options, "javascript") }), comments(), node(), onlyError(), promise(), sortImports(), imports(), unicorn(), command());
1593
1604
  if (enableCatalogs) configs.push(pnpm());
1594
1605
  if (enableVue) componentExts.push("vue");
1595
1606
  if (options.html ?? true) configs.push(html());
@@ -1633,4 +1644,4 @@ function getOverrides(options, key) {
1633
1644
  }
1634
1645
 
1635
1646
  //#endregion
1636
- export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_DTS, GLOB_ESLINTRC, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_PACKAGEJSON, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_VUE, GLOB_YAML, astro, comments, defaultPluginRenaming, formatting, getOverrides, html, ignores, imports, interopDefault, javascript, jsonc, mdx, node, onlyError, perfectionist, pnpm, promise, renameRules, resolveSubOptions, so1ve, solid, sortImports, test, toml, typescript, unicorn, vue, yaml };
1647
+ export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_DTS, GLOB_ESLINTRC, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_PACKAGEJSON, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_VUE, GLOB_YAML, astro, command, comments, defaultPluginRenaming, formatting, getOverrides, html, ignores, imports, interopDefault, javascript, jsonc, mdx, node, onlyError, perfectionist, pnpm, promise, renameRules, resolveSubOptions, so1ve, solid, sortImports, test, toml, typescript, unicorn, vue, yaml };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@so1ve/eslint-config",
3
- "version": "3.14.0",
3
+ "version": "3.15.0",
4
4
  "author": "Ray <i@mk1.io> (https://github.com/so1ve/)",
5
5
  "type": "module",
6
6
  "description": "Ray's eslint config.",
@@ -48,6 +48,7 @@
48
48
  "eslint-plugin-array-func": "^5.1.0",
49
49
  "eslint-plugin-astro": "^1.5.0",
50
50
  "eslint-plugin-case-police": "^2.1.1",
51
+ "eslint-plugin-command": "^3.3.1",
51
52
  "eslint-plugin-html": "^8.1.3",
52
53
  "eslint-plugin-import-x": "^4.16.1",
53
54
  "eslint-plugin-jest-formatting": "^3.1.0",
@@ -75,8 +76,8 @@
75
76
  "typescript-eslint": "^8.47.0",
76
77
  "vue-eslint-parser": "^10.2.0",
77
78
  "yaml-eslint-parser": "^1.3.0",
78
- "@so1ve/eslint-plugin-sort-imports": "3.14.0",
79
- "@so1ve/eslint-plugin": "3.14.0"
79
+ "@so1ve/eslint-plugin-sort-imports": "3.15.0",
80
+ "@so1ve/eslint-plugin": "3.15.0"
80
81
  },
81
82
  "peerDependencies": {
82
83
  "eslint": "^9.39.1",