@meteorlxy/eslint-config 6.8.5 → 6.9.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.
@@ -0,0 +1,18 @@
1
+ //#region rolldown:runtime
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, symbols) => {
4
+ let target = {};
5
+ for (var name in all) {
6
+ __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ }
11
+ if (symbols) {
12
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
13
+ }
14
+ return target;
15
+ };
16
+
17
+ //#endregion
18
+ export { __exportAll as t };
package/dist/index.cjs CHANGED
@@ -5,21 +5,30 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (all) => {
8
+ var __exportAll = (all, symbols) => {
9
9
  let target = {};
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: true
13
- });
10
+ for (var name in all) {
11
+ __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ }
16
+ if (symbols) {
17
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
18
+ }
14
19
  return target;
15
20
  };
16
21
  var __copyProps = (to, from, except, desc) => {
17
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
18
- key = keys[i];
19
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
20
- get: ((k) => from[k]).bind(null, key),
21
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
22
- });
22
+ if (from && typeof from === "object" || typeof from === "function") {
23
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
24
+ key = keys[i];
25
+ if (!__hasOwnProp.call(to, key) && key !== except) {
26
+ __defProp(to, key, {
27
+ get: ((k) => from[k]).bind(null, key),
28
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
29
+ });
30
+ }
31
+ }
23
32
  }
24
33
  return to;
25
34
  };
@@ -33,19 +42,20 @@ let eslint_plugin_import_x = require("eslint-plugin-import-x");
33
42
  eslint_plugin_import_x = __toESM(eslint_plugin_import_x);
34
43
  let confusing_browser_globals = require("confusing-browser-globals");
35
44
  confusing_browser_globals = __toESM(confusing_browser_globals);
36
- let __typescript_eslint_eslint_plugin = require("@typescript-eslint/eslint-plugin");
37
- __typescript_eslint_eslint_plugin = __toESM(__typescript_eslint_eslint_plugin);
45
+ let _typescript_eslint_eslint_plugin = require("@typescript-eslint/eslint-plugin");
46
+ _typescript_eslint_eslint_plugin = __toESM(_typescript_eslint_eslint_plugin);
38
47
  let eslint_plugin_eslint_comments = require("eslint-plugin-eslint-comments");
39
48
  eslint_plugin_eslint_comments = __toESM(eslint_plugin_eslint_comments);
40
49
  let globals = require("globals");
41
50
  globals = __toESM(globals);
51
+ let eslint_merge_processors = require("eslint-merge-processors");
42
52
  let eslint_config_prettier_flat = require("eslint-config-prettier/flat");
43
53
  eslint_config_prettier_flat = __toESM(eslint_config_prettier_flat);
44
- let __typescript_eslint_parser = require("@typescript-eslint/parser");
45
- __typescript_eslint_parser = __toESM(__typescript_eslint_parser);
54
+ let _typescript_eslint_parser = require("@typescript-eslint/parser");
55
+ _typescript_eslint_parser = __toESM(_typescript_eslint_parser);
46
56
 
47
57
  //#region src/utils.ts
48
- var utils_exports = /* @__PURE__ */ __export({ interopDefault: () => interopDefault });
58
+ var utils_exports = /* @__PURE__ */ __exportAll({ interopDefault: () => interopDefault });
49
59
  const interopDefault = async (m) => {
50
60
  const resolved = await m;
51
61
  return resolved.default ?? resolved;
@@ -805,7 +815,7 @@ const markdownShimRules = {
805
815
  "import/no-absolute-path": "off",
806
816
  "import/no-extraneous-dependencies": "off",
807
817
  "import/no-unresolved": "off",
808
- ...__typescript_eslint_eslint_plugin.default.configs["disable-type-checked"].rules,
818
+ ..._typescript_eslint_eslint_plugin.default.configs["disable-type-checked"].rules,
809
819
  "@typescript-eslint/explicit-function-return-type": "off",
810
820
  "@typescript-eslint/explicit-module-boundary-types": "off",
811
821
  "@typescript-eslint/no-explicit-any": "off",
@@ -815,6 +825,31 @@ const markdownShimRules = {
815
825
  "vue/require-name-property": "off"
816
826
  };
817
827
 
828
+ //#endregion
829
+ //#region src/rules/markdown.ts
830
+ const markdownRules = {
831
+ "markdown/fenced-code-language": "error",
832
+ "markdown/heading-increment": "error",
833
+ "markdown/no-bare-urls": "off",
834
+ "markdown/no-duplicate-definitions": "error",
835
+ "markdown/no-duplicate-headings": ["error", { checkSiblingsOnly: true }],
836
+ "markdown/no-empty-definitions": "error",
837
+ "markdown/no-empty-images": "error",
838
+ "markdown/no-empty-links": "error",
839
+ "markdown/no-html": "off",
840
+ "markdown/no-invalid-label-refs": "error",
841
+ "markdown/no-missing-atx-heading-space": "error",
842
+ "markdown/no-missing-label-refs": "error",
843
+ "markdown/no-missing-link-fragments": "error",
844
+ "markdown/no-multiple-h1": "error",
845
+ "markdown/no-reference-like-urls": "error",
846
+ "markdown/no-reversed-media-syntax": "error",
847
+ "markdown/no-space-in-emphasis": "error",
848
+ "markdown/no-unused-definitions": "error",
849
+ "markdown/require-alt-text": "error",
850
+ "markdown/table-column-count": "error"
851
+ };
852
+
818
853
  //#endregion
819
854
  //#region src/rules/react-hooks.ts
820
855
  /**
@@ -1143,8 +1178,8 @@ const typescriptShimRules = {
1143
1178
  * @see https://typescript-eslint.io/rules/
1144
1179
  */
1145
1180
  const typescriptRules = {
1146
- ...__typescript_eslint_eslint_plugin.default.configs["strict-type-checked"].rules,
1147
- ...__typescript_eslint_eslint_plugin.default.configs["stylistic-type-checked"].rules,
1181
+ ..._typescript_eslint_eslint_plugin.default.configs["strict-type-checked"].rules,
1182
+ ..._typescript_eslint_eslint_plugin.default.configs["stylistic-type-checked"].rules,
1148
1183
  "@typescript-eslint/class-methods-use-this": ["error", { exceptMethods: [] }],
1149
1184
  "@typescript-eslint/consistent-return": "off",
1150
1185
  "@typescript-eslint/default-param-last": "error",
@@ -1358,6 +1393,7 @@ const typescriptRules = {
1358
1393
  allowAny: false,
1359
1394
  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false
1360
1395
  }],
1396
+ "@typescript-eslint/strict-void-return": ["error", { allowReturnAny: false }],
1361
1397
  "@typescript-eslint/switch-exhaustiveness-check": ["error", {
1362
1398
  allowDefaultCaseForExhaustiveSwitch: true,
1363
1399
  requireDefaultForNonUnion: false
@@ -1457,6 +1493,7 @@ const vueRules = {
1457
1493
  "vue/no-deprecated-delete-set": "error",
1458
1494
  "vue/no-deprecated-model-definition": "error",
1459
1495
  "vue/no-duplicate-attr-inheritance": "error",
1496
+ "vue/no-duplicate-class-names": "error",
1460
1497
  "vue/no-empty-component-block": "warn",
1461
1498
  "vue/no-empty-pattern": builtinRules["no-empty-pattern"],
1462
1499
  "vue/no-implicit-coercion": builtinRules["no-implicit-coercion"],
@@ -1552,11 +1589,12 @@ const vueRules = {
1552
1589
 
1553
1590
  //#endregion
1554
1591
  //#region src/rules/index.ts
1555
- var rules_exports = /* @__PURE__ */ __export({
1592
+ var rules_exports = /* @__PURE__ */ __exportAll({
1556
1593
  builtinRules: () => builtinRules,
1557
1594
  eslintCommentsRules: () => eslintCommentsRules,
1558
1595
  importsRules: () => importsRules,
1559
1596
  jsoncRules: () => jsoncRules,
1597
+ markdownRules: () => markdownRules,
1560
1598
  markdownShimRules: () => markdownShimRules,
1561
1599
  reactHooksRules: () => reactHooksRules,
1562
1600
  reactRefreshRules: () => reactRefreshRules,
@@ -1598,6 +1636,7 @@ const javascript = ({ overrides } = {}) => [
1598
1636
  },
1599
1637
  {
1600
1638
  name: "meteorlxy/javascript/rules",
1639
+ ignores: ["**/*.md"],
1601
1640
  languageOptions: {
1602
1641
  ecmaVersion: 2022,
1603
1642
  globals: {
@@ -1656,8 +1695,8 @@ const jsonc = async ({ files = [
1656
1695
  /**
1657
1696
  * Markdown configuration for eslint.
1658
1697
  */
1659
- const markdown = async ({ files = ["**/*.md"], overrides } = {}) => {
1660
- const markdownPlugin = await interopDefault(import("eslint-plugin-markdown"));
1698
+ const markdown = async ({ files = ["**/*.md"], overrides, overridesCodeBlocks } = {}) => {
1699
+ const markdownPlugin = await interopDefault(import("@eslint/markdown"));
1661
1700
  return [
1662
1701
  {
1663
1702
  name: "meteorlxy/markdown/plugins",
@@ -1667,10 +1706,19 @@ const markdown = async ({ files = ["**/*.md"], overrides } = {}) => {
1667
1706
  name: "meteorlxy/markdown/processor",
1668
1707
  files,
1669
1708
  ignores: ["**/*.md/*.md"],
1670
- processor: markdownPlugin.processors.markdown
1709
+ processor: (0, eslint_merge_processors.mergeProcessors)([markdownPlugin.processors.markdown, eslint_merge_processors.processorPassThrough])
1671
1710
  },
1672
1711
  {
1673
1712
  name: "meteorlxy/markdown/rules",
1713
+ files,
1714
+ language: "markdown/commonmark",
1715
+ rules: {
1716
+ ...markdownRules,
1717
+ ...overrides
1718
+ }
1719
+ },
1720
+ {
1721
+ name: "meteorlxy/markdown/rules-code-blocks",
1674
1722
  files: ["**/*.md/**"],
1675
1723
  languageOptions: { parserOptions: {
1676
1724
  ecmaFeatures: { impliedStrict: true },
@@ -1681,7 +1729,7 @@ const markdown = async ({ files = ["**/*.md"], overrides } = {}) => {
1681
1729
  } },
1682
1730
  rules: {
1683
1731
  ...markdownShimRules,
1684
- ...overrides
1732
+ ...overridesCodeBlocks
1685
1733
  }
1686
1734
  }
1687
1735
  ];
@@ -1748,13 +1796,13 @@ const typescript = ({ files = [
1748
1796
  "**/*.vue"
1749
1797
  ], overrides } = {}) => [{
1750
1798
  name: "meteorlxy/typescript/plugins",
1751
- plugins: { "@typescript-eslint": __typescript_eslint_eslint_plugin.default }
1799
+ plugins: { "@typescript-eslint": _typescript_eslint_eslint_plugin.default }
1752
1800
  }, {
1753
1801
  name: "meteorlxy/typescript/rules",
1754
1802
  files,
1755
1803
  languageOptions: {
1756
1804
  ecmaVersion: 2022,
1757
- parser: __typescript_eslint_parser.default,
1805
+ parser: _typescript_eslint_parser.default,
1758
1806
  parserOptions: {
1759
1807
  projectService: true,
1760
1808
  sourceType: "module"
@@ -1817,7 +1865,7 @@ const vue = async ({ files = ["**/*.vue"], overrides } = {}) => {
1817
1865
  parserOptions: {
1818
1866
  ecmaFeatures: { jsx: true },
1819
1867
  extraFileExtensions: [".vue"],
1820
- parser: __typescript_eslint_parser.default,
1868
+ parser: _typescript_eslint_parser.default,
1821
1869
  sourceType: "module"
1822
1870
  }
1823
1871
  },
@@ -1836,7 +1884,7 @@ const vue = async ({ files = ["**/*.vue"], overrides } = {}) => {
1836
1884
 
1837
1885
  //#endregion
1838
1886
  //#region src/configs/index.ts
1839
- var configs_exports = /* @__PURE__ */ __export({
1887
+ var configs_exports = /* @__PURE__ */ __exportAll({
1840
1888
  ignores: () => ignores,
1841
1889
  imports: () => imports,
1842
1890
  javascript: () => javascript,
@@ -1850,7 +1898,7 @@ var configs_exports = /* @__PURE__ */ __export({
1850
1898
 
1851
1899
  //#endregion
1852
1900
  //#region src/env.ts
1853
- var env_exports = /* @__PURE__ */ __export({
1901
+ var env_exports = /* @__PURE__ */ __exportAll({
1854
1902
  IS_CI: () => IS_CI,
1855
1903
  IS_EDITOR: () => IS_EDITOR
1856
1904
  });
package/dist/index.d.cts CHANGED
@@ -57,13 +57,15 @@ declare const jsonc$1: ({
57
57
  interface EslintMarkdownOptions {
58
58
  files?: FlatConfig.Config['files'];
59
59
  overrides?: FlatConfig.Config['rules'];
60
+ overridesCodeBlocks?: FlatConfig.Config['rules'];
60
61
  }
61
62
  /**
62
63
  * Markdown configuration for eslint.
63
64
  */
64
65
  declare const markdown$1: ({
65
66
  files,
66
- overrides
67
+ overrides,
68
+ overridesCodeBlocks
67
69
  }?: EslintMarkdownOptions) => Promise<FlatConfig.Config[]>;
68
70
  //#endregion
69
71
  //#region src/configs/prettier.d.ts
@@ -763,6 +765,32 @@ declare const markdownShimRules: {
763
765
  'import/no-unresolved': "off";
764
766
  };
765
767
  //#endregion
768
+ //#region src/rules/markdown.d.ts
769
+ declare const markdownRules: {
770
+ 'markdown/fenced-code-language': "error";
771
+ 'markdown/heading-increment': "error";
772
+ 'markdown/no-bare-urls': "off";
773
+ 'markdown/no-duplicate-definitions': "error";
774
+ 'markdown/no-duplicate-headings': ["error", {
775
+ checkSiblingsOnly: boolean;
776
+ }];
777
+ 'markdown/no-empty-definitions': "error";
778
+ 'markdown/no-empty-images': "error";
779
+ 'markdown/no-empty-links': "error";
780
+ 'markdown/no-html': "off";
781
+ 'markdown/no-invalid-label-refs': "error";
782
+ 'markdown/no-missing-atx-heading-space': "error";
783
+ 'markdown/no-missing-label-refs': "error";
784
+ 'markdown/no-missing-link-fragments': "error";
785
+ 'markdown/no-multiple-h1': "error";
786
+ 'markdown/no-reference-like-urls': "error";
787
+ 'markdown/no-reversed-media-syntax': "error";
788
+ 'markdown/no-space-in-emphasis': "error";
789
+ 'markdown/no-unused-definitions': "error";
790
+ 'markdown/require-alt-text': "error";
791
+ 'markdown/table-column-count': "error";
792
+ };
793
+ //#endregion
766
794
  //#region src/rules/react-hooks.d.ts
767
795
  /**
768
796
  * React hooks rules
@@ -1037,8 +1065,8 @@ declare const reactRules: {
1037
1065
  //#region src/rules/typescript-shim.d.ts
1038
1066
  declare const typescriptShimRules: {
1039
1067
  /**
1040
- * Rules that are checked by typescript or recommended to disable in typescript.
1041
- */
1068
+ * Rules that are checked by typescript or recommended to disable in typescript.
1069
+ */
1042
1070
  'constructor-super': "off";
1043
1071
  'getter-return': "off";
1044
1072
  'no-const-assign': "off";
@@ -1058,10 +1086,10 @@ declare const typescriptShimRules: {
1058
1086
  'no-unsafe-negation': "off";
1059
1087
  'valid-typeof': "off";
1060
1088
  /**
1061
- * Rules from eslint-plugin-import that should be disabled
1062
- *
1063
- * @see https://typescript-eslint.io/troubleshooting/performance-troubleshooting#eslint-plugin-import
1064
- */
1089
+ * Rules from eslint-plugin-import that should be disabled
1090
+ *
1091
+ * @see https://typescript-eslint.io/troubleshooting/performance-troubleshooting#eslint-plugin-import
1092
+ */
1065
1093
  'import/default': "off";
1066
1094
  'import/named': "off";
1067
1095
  'import/namespace': "off";
@@ -1072,8 +1100,8 @@ declare const typescriptShimRules: {
1072
1100
  'import/no-named-as-default': "off";
1073
1101
  'import/no-unused-modules': "off";
1074
1102
  /**
1075
- * Rules that have equivalents in typescript-eslint plugin.
1076
- */
1103
+ * Rules that have equivalents in typescript-eslint plugin.
1104
+ */
1077
1105
  'brace-style': "off";
1078
1106
  camelcase: "off";
1079
1107
  'class-methods-use-this': "off";
@@ -1324,6 +1352,9 @@ declare const typescriptRules: {
1324
1352
  allowAny: boolean;
1325
1353
  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: boolean;
1326
1354
  }];
1355
+ '@typescript-eslint/strict-void-return': ["error", {
1356
+ allowReturnAny: boolean;
1357
+ }];
1327
1358
  '@typescript-eslint/switch-exhaustiveness-check': ["error", {
1328
1359
  allowDefaultCaseForExhaustiveSwitch: boolean;
1329
1360
  requireDefaultForNonUnion: boolean;
@@ -1414,6 +1445,7 @@ declare const vueRules: {
1414
1445
  'vue/no-deprecated-delete-set': "error";
1415
1446
  'vue/no-deprecated-model-definition': "error";
1416
1447
  'vue/no-duplicate-attr-inheritance': "error";
1448
+ 'vue/no-duplicate-class-names': "error";
1417
1449
  'vue/no-empty-component-block': "warn";
1418
1450
  'vue/no-empty-pattern': "error";
1419
1451
  'vue/no-implicit-coercion': ["warn", {
@@ -1532,7 +1564,7 @@ declare const vueRules: {
1532
1564
  'vue/valid-v-bind-sync': "off";
1533
1565
  };
1534
1566
  declare namespace index_d_exports$1 {
1535
- export { builtinRules, eslintCommentsRules, importsRules, jsoncRules, markdownShimRules, reactHooksRules, reactRefreshRules, reactRules, typescriptRules, typescriptShimRules, vueRules };
1567
+ export { builtinRules, eslintCommentsRules, importsRules, jsoncRules, markdownRules, markdownShimRules, reactHooksRules, reactRefreshRules, reactRules, typescriptRules, typescriptShimRules, vueRules };
1536
1568
  }
1537
1569
  declare namespace utils_d_exports {
1538
1570
  export { interopDefault };
package/dist/index.d.mts CHANGED
@@ -55,13 +55,15 @@ declare const jsonc$1: ({
55
55
  interface EslintMarkdownOptions {
56
56
  files?: FlatConfig.Config['files'];
57
57
  overrides?: FlatConfig.Config['rules'];
58
+ overridesCodeBlocks?: FlatConfig.Config['rules'];
58
59
  }
59
60
  /**
60
61
  * Markdown configuration for eslint.
61
62
  */
62
63
  declare const markdown$1: ({
63
64
  files,
64
- overrides
65
+ overrides,
66
+ overridesCodeBlocks
65
67
  }?: EslintMarkdownOptions) => Promise<FlatConfig.Config[]>;
66
68
  //#endregion
67
69
  //#region src/configs/prettier.d.ts
@@ -761,6 +763,32 @@ declare const markdownShimRules: {
761
763
  'import/no-unresolved': "off";
762
764
  };
763
765
  //#endregion
766
+ //#region src/rules/markdown.d.ts
767
+ declare const markdownRules: {
768
+ 'markdown/fenced-code-language': "error";
769
+ 'markdown/heading-increment': "error";
770
+ 'markdown/no-bare-urls': "off";
771
+ 'markdown/no-duplicate-definitions': "error";
772
+ 'markdown/no-duplicate-headings': ["error", {
773
+ checkSiblingsOnly: boolean;
774
+ }];
775
+ 'markdown/no-empty-definitions': "error";
776
+ 'markdown/no-empty-images': "error";
777
+ 'markdown/no-empty-links': "error";
778
+ 'markdown/no-html': "off";
779
+ 'markdown/no-invalid-label-refs': "error";
780
+ 'markdown/no-missing-atx-heading-space': "error";
781
+ 'markdown/no-missing-label-refs': "error";
782
+ 'markdown/no-missing-link-fragments': "error";
783
+ 'markdown/no-multiple-h1': "error";
784
+ 'markdown/no-reference-like-urls': "error";
785
+ 'markdown/no-reversed-media-syntax': "error";
786
+ 'markdown/no-space-in-emphasis': "error";
787
+ 'markdown/no-unused-definitions': "error";
788
+ 'markdown/require-alt-text': "error";
789
+ 'markdown/table-column-count': "error";
790
+ };
791
+ //#endregion
764
792
  //#region src/rules/react-hooks.d.ts
765
793
  /**
766
794
  * React hooks rules
@@ -1035,8 +1063,8 @@ declare const reactRules: {
1035
1063
  //#region src/rules/typescript-shim.d.ts
1036
1064
  declare const typescriptShimRules: {
1037
1065
  /**
1038
- * Rules that are checked by typescript or recommended to disable in typescript.
1039
- */
1066
+ * Rules that are checked by typescript or recommended to disable in typescript.
1067
+ */
1040
1068
  'constructor-super': "off";
1041
1069
  'getter-return': "off";
1042
1070
  'no-const-assign': "off";
@@ -1056,10 +1084,10 @@ declare const typescriptShimRules: {
1056
1084
  'no-unsafe-negation': "off";
1057
1085
  'valid-typeof': "off";
1058
1086
  /**
1059
- * Rules from eslint-plugin-import that should be disabled
1060
- *
1061
- * @see https://typescript-eslint.io/troubleshooting/performance-troubleshooting#eslint-plugin-import
1062
- */
1087
+ * Rules from eslint-plugin-import that should be disabled
1088
+ *
1089
+ * @see https://typescript-eslint.io/troubleshooting/performance-troubleshooting#eslint-plugin-import
1090
+ */
1063
1091
  'import/default': "off";
1064
1092
  'import/named': "off";
1065
1093
  'import/namespace': "off";
@@ -1070,8 +1098,8 @@ declare const typescriptShimRules: {
1070
1098
  'import/no-named-as-default': "off";
1071
1099
  'import/no-unused-modules': "off";
1072
1100
  /**
1073
- * Rules that have equivalents in typescript-eslint plugin.
1074
- */
1101
+ * Rules that have equivalents in typescript-eslint plugin.
1102
+ */
1075
1103
  'brace-style': "off";
1076
1104
  camelcase: "off";
1077
1105
  'class-methods-use-this': "off";
@@ -1322,6 +1350,9 @@ declare const typescriptRules: {
1322
1350
  allowAny: boolean;
1323
1351
  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: boolean;
1324
1352
  }];
1353
+ '@typescript-eslint/strict-void-return': ["error", {
1354
+ allowReturnAny: boolean;
1355
+ }];
1325
1356
  '@typescript-eslint/switch-exhaustiveness-check': ["error", {
1326
1357
  allowDefaultCaseForExhaustiveSwitch: boolean;
1327
1358
  requireDefaultForNonUnion: boolean;
@@ -1412,6 +1443,7 @@ declare const vueRules: {
1412
1443
  'vue/no-deprecated-delete-set': "error";
1413
1444
  'vue/no-deprecated-model-definition': "error";
1414
1445
  'vue/no-duplicate-attr-inheritance': "error";
1446
+ 'vue/no-duplicate-class-names': "error";
1415
1447
  'vue/no-empty-component-block': "warn";
1416
1448
  'vue/no-empty-pattern': "error";
1417
1449
  'vue/no-implicit-coercion': ["warn", {
@@ -1530,7 +1562,7 @@ declare const vueRules: {
1530
1562
  'vue/valid-v-bind-sync': "off";
1531
1563
  };
1532
1564
  declare namespace index_d_exports$1 {
1533
- export { builtinRules, eslintCommentsRules, importsRules, jsoncRules, markdownShimRules, reactHooksRules, reactRefreshRules, reactRules, typescriptRules, typescriptShimRules, vueRules };
1565
+ export { builtinRules, eslintCommentsRules, importsRules, jsoncRules, markdownRules, markdownShimRules, reactHooksRules, reactRefreshRules, reactRules, typescriptRules, typescriptShimRules, vueRules };
1534
1566
  }
1535
1567
  declare namespace utils_d_exports {
1536
1568
  export { interopDefault };
package/dist/index.mjs CHANGED
@@ -1,14 +1,15 @@
1
- import { t as __export } from "./chunk-jass6xSI.mjs";
1
+ import { t as __exportAll } from "./chunk-15K8U1wQ.mjs";
2
2
  import importPlugin from "eslint-plugin-import-x";
3
3
  import confusingBrowserGlobals from "confusing-browser-globals";
4
4
  import tsPlugin from "@typescript-eslint/eslint-plugin";
5
5
  import eslintCommentsPlugin from "eslint-plugin-eslint-comments";
6
6
  import globals from "globals";
7
+ import { mergeProcessors, processorPassThrough } from "eslint-merge-processors";
7
8
  import prettierConfig from "eslint-config-prettier/flat";
8
9
  import tsParser from "@typescript-eslint/parser";
9
10
 
10
11
  //#region src/utils.ts
11
- var utils_exports = /* @__PURE__ */ __export({ interopDefault: () => interopDefault });
12
+ var utils_exports = /* @__PURE__ */ __exportAll({ interopDefault: () => interopDefault });
12
13
  const interopDefault = async (m) => {
13
14
  const resolved = await m;
14
15
  return resolved.default ?? resolved;
@@ -778,6 +779,31 @@ const markdownShimRules = {
778
779
  "vue/require-name-property": "off"
779
780
  };
780
781
 
782
+ //#endregion
783
+ //#region src/rules/markdown.ts
784
+ const markdownRules = {
785
+ "markdown/fenced-code-language": "error",
786
+ "markdown/heading-increment": "error",
787
+ "markdown/no-bare-urls": "off",
788
+ "markdown/no-duplicate-definitions": "error",
789
+ "markdown/no-duplicate-headings": ["error", { checkSiblingsOnly: true }],
790
+ "markdown/no-empty-definitions": "error",
791
+ "markdown/no-empty-images": "error",
792
+ "markdown/no-empty-links": "error",
793
+ "markdown/no-html": "off",
794
+ "markdown/no-invalid-label-refs": "error",
795
+ "markdown/no-missing-atx-heading-space": "error",
796
+ "markdown/no-missing-label-refs": "error",
797
+ "markdown/no-missing-link-fragments": "error",
798
+ "markdown/no-multiple-h1": "error",
799
+ "markdown/no-reference-like-urls": "error",
800
+ "markdown/no-reversed-media-syntax": "error",
801
+ "markdown/no-space-in-emphasis": "error",
802
+ "markdown/no-unused-definitions": "error",
803
+ "markdown/require-alt-text": "error",
804
+ "markdown/table-column-count": "error"
805
+ };
806
+
781
807
  //#endregion
782
808
  //#region src/rules/react-hooks.ts
783
809
  /**
@@ -1321,6 +1347,7 @@ const typescriptRules = {
1321
1347
  allowAny: false,
1322
1348
  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false
1323
1349
  }],
1350
+ "@typescript-eslint/strict-void-return": ["error", { allowReturnAny: false }],
1324
1351
  "@typescript-eslint/switch-exhaustiveness-check": ["error", {
1325
1352
  allowDefaultCaseForExhaustiveSwitch: true,
1326
1353
  requireDefaultForNonUnion: false
@@ -1420,6 +1447,7 @@ const vueRules = {
1420
1447
  "vue/no-deprecated-delete-set": "error",
1421
1448
  "vue/no-deprecated-model-definition": "error",
1422
1449
  "vue/no-duplicate-attr-inheritance": "error",
1450
+ "vue/no-duplicate-class-names": "error",
1423
1451
  "vue/no-empty-component-block": "warn",
1424
1452
  "vue/no-empty-pattern": builtinRules["no-empty-pattern"],
1425
1453
  "vue/no-implicit-coercion": builtinRules["no-implicit-coercion"],
@@ -1515,11 +1543,12 @@ const vueRules = {
1515
1543
 
1516
1544
  //#endregion
1517
1545
  //#region src/rules/index.ts
1518
- var rules_exports = /* @__PURE__ */ __export({
1546
+ var rules_exports = /* @__PURE__ */ __exportAll({
1519
1547
  builtinRules: () => builtinRules,
1520
1548
  eslintCommentsRules: () => eslintCommentsRules,
1521
1549
  importsRules: () => importsRules,
1522
1550
  jsoncRules: () => jsoncRules,
1551
+ markdownRules: () => markdownRules,
1523
1552
  markdownShimRules: () => markdownShimRules,
1524
1553
  reactHooksRules: () => reactHooksRules,
1525
1554
  reactRefreshRules: () => reactRefreshRules,
@@ -1561,6 +1590,7 @@ const javascript = ({ overrides } = {}) => [
1561
1590
  },
1562
1591
  {
1563
1592
  name: "meteorlxy/javascript/rules",
1593
+ ignores: ["**/*.md"],
1564
1594
  languageOptions: {
1565
1595
  ecmaVersion: 2022,
1566
1596
  globals: {
@@ -1619,8 +1649,8 @@ const jsonc = async ({ files = [
1619
1649
  /**
1620
1650
  * Markdown configuration for eslint.
1621
1651
  */
1622
- const markdown = async ({ files = ["**/*.md"], overrides } = {}) => {
1623
- const markdownPlugin = await interopDefault(import("eslint-plugin-markdown"));
1652
+ const markdown = async ({ files = ["**/*.md"], overrides, overridesCodeBlocks } = {}) => {
1653
+ const markdownPlugin = await interopDefault(import("@eslint/markdown"));
1624
1654
  return [
1625
1655
  {
1626
1656
  name: "meteorlxy/markdown/plugins",
@@ -1630,10 +1660,19 @@ const markdown = async ({ files = ["**/*.md"], overrides } = {}) => {
1630
1660
  name: "meteorlxy/markdown/processor",
1631
1661
  files,
1632
1662
  ignores: ["**/*.md/*.md"],
1633
- processor: markdownPlugin.processors.markdown
1663
+ processor: mergeProcessors([markdownPlugin.processors.markdown, processorPassThrough])
1634
1664
  },
1635
1665
  {
1636
1666
  name: "meteorlxy/markdown/rules",
1667
+ files,
1668
+ language: "markdown/commonmark",
1669
+ rules: {
1670
+ ...markdownRules,
1671
+ ...overrides
1672
+ }
1673
+ },
1674
+ {
1675
+ name: "meteorlxy/markdown/rules-code-blocks",
1637
1676
  files: ["**/*.md/**"],
1638
1677
  languageOptions: { parserOptions: {
1639
1678
  ecmaFeatures: { impliedStrict: true },
@@ -1644,7 +1683,7 @@ const markdown = async ({ files = ["**/*.md"], overrides } = {}) => {
1644
1683
  } },
1645
1684
  rules: {
1646
1685
  ...markdownShimRules,
1647
- ...overrides
1686
+ ...overridesCodeBlocks
1648
1687
  }
1649
1688
  }
1650
1689
  ];
@@ -1799,7 +1838,7 @@ const vue = async ({ files = ["**/*.vue"], overrides } = {}) => {
1799
1838
 
1800
1839
  //#endregion
1801
1840
  //#region src/configs/index.ts
1802
- var configs_exports = /* @__PURE__ */ __export({
1841
+ var configs_exports = /* @__PURE__ */ __exportAll({
1803
1842
  ignores: () => ignores,
1804
1843
  imports: () => imports,
1805
1844
  javascript: () => javascript,
@@ -1813,7 +1852,7 @@ var configs_exports = /* @__PURE__ */ __export({
1813
1852
 
1814
1853
  //#endregion
1815
1854
  //#region src/env.ts
1816
- var env_exports = /* @__PURE__ */ __export({
1855
+ var env_exports = /* @__PURE__ */ __exportAll({
1817
1856
  IS_CI: () => IS_CI,
1818
1857
  IS_EDITOR: () => IS_EDITOR
1819
1858
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meteorlxy/eslint-config",
3
- "version": "6.8.5",
3
+ "version": "6.9.0",
4
4
  "description": "meteorlxy eslint config",
5
5
  "keywords": [
6
6
  "config",
@@ -17,8 +17,8 @@
17
17
  "type": "module",
18
18
  "exports": {
19
19
  ".": {
20
- "import": "./dist/index.mjs",
21
- "require": "./dist/index.cjs"
20
+ "require": "./dist/index.cjs",
21
+ "import": "./dist/index.mjs"
22
22
  },
23
23
  "./package.json": "./package.json"
24
24
  },
@@ -29,28 +29,29 @@
29
29
  "./dist"
30
30
  ],
31
31
  "dependencies": {
32
- "@typescript-eslint/eslint-plugin": "^8.47.0",
33
- "@typescript-eslint/parser": "^8.47.0",
34
- "@typescript-eslint/utils": "^8.47.0",
32
+ "@eslint/markdown": "^7.5.1",
33
+ "@typescript-eslint/eslint-plugin": "^8.53.0",
34
+ "@typescript-eslint/parser": "^8.53.0",
35
+ "@typescript-eslint/utils": "^8.53.0",
35
36
  "confusing-browser-globals": "^1.0.11",
36
37
  "eslint-config-flat-gitignore": "^2.1.0",
37
38
  "eslint-config-prettier": "^10.1.8",
39
+ "eslint-merge-processors": "^2.0.0",
38
40
  "eslint-plugin-eslint-comments": "^3.2.0",
39
41
  "eslint-plugin-import-x": "^4.16.1",
40
42
  "eslint-plugin-jsonc": "^2.21.0",
41
- "eslint-plugin-markdown": "^5.1.0",
42
- "globals": "^16.5.0",
43
- "jsonc-eslint-parser": "^2.4.1"
43
+ "globals": "^17.0.0",
44
+ "jsonc-eslint-parser": "^2.4.2"
44
45
  },
45
46
  "devDependencies": {
46
47
  "@types/confusing-browser-globals": "^1.0.3",
47
48
  "@types/eslint": "^9.6.1",
48
- "eslint": "^9.39.1",
49
+ "eslint": "^9.39.2",
49
50
  "eslint-plugin-react": "^7.37.5",
50
51
  "eslint-plugin-react-hooks": "^7.0.1",
51
- "eslint-plugin-react-refresh": "^0.4.24",
52
- "eslint-plugin-vue": "^10.5.1",
53
- "tsdown": "^0.16.5",
52
+ "eslint-plugin-react-refresh": "^0.4.26",
53
+ "eslint-plugin-vue": "^10.6.2",
54
+ "tsdown": "^0.20.0-beta.3",
54
55
  "vue-eslint-parser": "^10.2.0"
55
56
  },
56
57
  "peerDependencies": {
@@ -1,13 +0,0 @@
1
- //#region rolldown:runtime
2
- var __defProp = Object.defineProperty;
3
- var __export = (all) => {
4
- let target = {};
5
- for (var name in all) __defProp(target, name, {
6
- get: all[name],
7
- enumerable: true
8
- });
9
- return target;
10
- };
11
-
12
- //#endregion
13
- export { __export as t };